Craig A. Berry | 28 Aug 15:16 2015

[PATCH] Don't disable system's readpassphrase.h.

We were defining _READPASSPHRASE_H_ in our replacement version,
and then, when HAVE_READPASSPHRASE was defined, including the
system version of readpassphrase.h. At least on BSD-like systems,
the contents of that file are skipped when _READPASSPHRASE_H_ is
already defined.  So use our own macro to guard our own header
rather stealing the guard macro that is also used by the system.
 include/replacements/readpassphrase.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/include/replacements/readpassphrase.h b/include/replacements/readpassphrase.h
index db6312f..bba3190 100644
--- a/include/replacements/readpassphrase.h
+++ b/include/replacements/readpassphrase.h
 <at>  <at>  -29,8 +29,8  <at>  <at> 




Craig A. Berry
(Continue reading)

Craig A. Berry | 28 Aug 15:14 2015

[PATCH] VMS does have getopt.

 vms/config_h.vms | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/vms/config_h.vms b/vms/config_h.vms
index 8da6c11..662e918 100644
--- a/vms/config_h.vms
+++ b/vms/config_h.vms
 <at>  <at>  -108,6 +108,9  <at>  <at> 
 /* Define to 1 if you have the `gettimeofday' function. */

+/* Define to 1 if you have the `getopt' function. */
+#define HAVE_GETOPT 1
 /* Define to 1 if you have the `getuid' function. */
 #define HAVE_GETUID 1



Craig A. Berry
mailto:craigberry <at>

"... getting out of a sonnet is much more
 difficult than getting in."
                 Brad Leithauser

(Continue reading)

Craig A. Berry | 28 Aug 15:12 2015

[PATCH] Drop prefixes from replacements in VMS config.h.

[Inline and attached]

These conflict with the inline prefixes now in use.  We keep
our own prefixes for routines defined in vms/ rather than in
 vms/config_h.vms | 26 +++++---------------------
 1 file changed, 5 insertions(+), 21 deletions(-)

diff --git a/vms/config_h.vms b/vms/config_h.vms
index 1f731d2..8da6c11 100644
--- a/vms/config_h.vms
+++ b/vms/config_h.vms
 <at>  <at>  -337,27 +337,6  <at>  <at> 
 #pragma extern_prefix "freetds_" (getpass)
 char *getpass( const char* prompt );

-#pragma extern_prefix "freetds_" (asprintf)
-#endif /* !HAVE_ASPRINTF */
-#pragma extern_prefix "freetds_" (vasprintf)
-#endif /* !HAVE_VASPRINTF */
-#pragma extern_prefix "portable_" (snprintf)
-extern int snprintf(char *, size_t, const char *, /*args*/ ...);
-#endif /* !HAVE_SNPRINTF */
(Continue reading)

Craig A. Berry | 28 Aug 01:54 2015

build broken on OS X

This is what I see with master as of 6ac57ef9e7eed5fcbcfa80.  I don’t see anything obvious or recent that
caused it, though 9b57e2ad99f7cc32 ("Allow to include replacements/readpassphrase.h directly”)
from back in May is surely part of the picture.  fisql.c itself has not changed in a year.  

Making all in apps
Making all in fisql
  CC     fisql.o
fisql.c:414:3: warning: implicit declaration of function 'readpassphrase' is invalid in C99 [-Wimplicit-function-declaration]
                readpassphrase("Password: ", password, READPASSPHRASE_MAXLEN, RPP_ECHO_OFF);
fisql.c:414:65: error: use of undeclared identifier 'RPP_ECHO_OFF'
                readpassphrase("Password: ", password, READPASSPHRASE_MAXLEN, RPP_ECHO_OFF);
1 warning and 1 error generated.
make[3]: *** [fisql.o] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all-recursive] Error 1

I am getting this defined:

$ grep READPASS include/config.h

Craig A. Berry
mailto:craigberry <at>

"... getting out of a sonnet is much more
 difficult than getting in."
(Continue reading)

Ed Avis | 5 Aug 16:09 2015

freebcp -c and newlines

freebcp -c writes rows in a simple text format with a newline character at
the end of each row.  But if one of the columns itself contains a literal
newline the output will be corrupt.  It would be better for freebcp -c to
check for newlines when writing data, and exit with an error status if it
finds one.  Probably it should also check for the separator character.  If
you want to write arbitrary data to a file you should use the binary bcp
output format.

If you agree that this would be a useful safety check to prevent corrupt
output, I could submit a patch.


Ed Avis <eda <at>>
Corentin Leal | 5 Aug 18:35 2015

Connection problem using pymssql


I have an issue regarding the connection to a Sybase SQL Anywhere database
using a Python library using FreeTDS called pymssql. I can connect to the
database using tsql but not with the library when I use FreeTDS v0.95. When
I use the release 0.91 it works perfectly.

What is the problem ?
Should I consider it is a compatibility problem between pymssql and FreeTDS
v0.95 ?

Thanks for your answers.
Michael Becker | 29 Jul 18:17 2015

Win32 Make


I am using
Visual Studio 2015
cmake 3.3.0-rc4


cmake -G "NMake Makefiles" .

does not find vsnprintf nor _vsnprintf
as result of this the file src\replacements\vasprintf.c can not be compiled
adding "#define _VSNPRINTF 1" to include\config.h solves the problem

is there a better solution?

Thanks: Michael
Attachment (m_becker.vcf): text/x-vcard, 135 bytes
Attachment (smime.p7s): application/pkcs7-signature, 5771 bytes
FreeTDS mailing list
FreeTDS <at>
Randy Syring | 20 Jul 17:46 2015

Re: Appveyor Builds & Testing

Ha!  I forgot I opened that.

Are you making any progress on FreeTDS windows binaries?  FYI, we have a 
paid AppVeyor account which makes the builds go much faster vs the free 
version.  I could set up FreeTDS and pymssql on our account if you think 
that would be helpful.

FYI, we are going to PyOhio next weekend and I'm hoping to sprint on 
pymssql on Friday and Saturday night.  I'm thinking getting FreeTDS and 
pymssql appveyor support going might be a hug win for that sprint.

*Randy Syring*
Husband | Father | Redeemed Sinner

/"For what does it profit a man to gain the whole world
and forfeit his soul?" (Mark 8:36 ESV)/

On 07/18/2015 05:16 PM, Ramiro Morales wrote:
> Randy,
> There is, of course issse #303 you opened:
> I see now I had posted a comment with links there.
> On Fri, Jul 17, 2015 at 4:43 PM, Ramiro Morales <cramm0 <at>> wrote:
>> Randy,
>> On Fri, Jul 17, 2015 at 1:33 PM, Randy Syring <randy <at>> wrote:
>>> Ramiro,
(Continue reading)

Chuck Roberts | 8 Jul 18:17 2015

Cannot get tsql to connect

I'm trying to test my ODBC with Freetds installation and I can't get tsql
to connect. My end result is to use DBD::ODBC with Perl 5.18.2. In the
meantime I'm trying to test with tsql per FreeTDS instructions.

- Machine: Ubuntu 14.04.1 LTS 64-bit, it's a virtual machine.
- Several ODBC packages installed on Ubuntu. /etc/odbc.ini points to
driver: /usr/lib/x86_64-linux-gnu/odbc/
- Trying to connect to MS SQL Server 2005 (yes, we know it will be
unsupported soon). Username is \domain\username, no password.
- FreeTDS 0.91 (most recent I could find)
- Output of tsql -C:
chuck <at> ubuntucomp:~/perl/gilson/jimv/fedex$ tsql -C
Compile-time settings (established with the "configure" script)
Version: freetds v0.91
freetds.conf directory: /etc/freetds
MS db-lib source compatibility: no
Sybase binary compatibility: yes
Thread safety: yes
iconv library: yes
TDS version: 4.2
iODBC: no
unixodbc: yes
SSPI "trusted" logins: no
Kerberos: yes

- In my /etc/freetds/freetds.conf, bottom part I added for my connection:
        host =
        port = 1433
        tds version = 7.0
(Continue reading)

Fergus Smith | 1 Jul 16:25 2015

ct-lib error handling


I've come across this same problem in every version of FreeTDS I've tried.
Running against MSSQL the error isn't trapped.
I think the ct-lib error handler isn't working properly.

The test environments are;

TDS version: 4.2

Version: freetds vdev.0.96.85

Windows 7 SP1

Sybase ASE 12.5.4

Microsoft SQL Server 2012 (SP1)

Running on windows against sybase this is the relevant part of the dump file;


ct.c:994:ct_send() succeeded

ct.c:1129:ct_results(0058B5C0, 0031A910)

token.c:549:tds_process_tokens(00588068, 0031A768, 0031A75C, 0x6914)

(Continue reading)

A. Craig West | 29 Jun 01:42 2015

Building as a DLL on Windows

I discovered that I require freetds to be buildable as a DLL file under
Windows, so I have modified the Nmakefile to add some new build targets and
directories. After I have tested it a bit, I will port my changes up to
I am also getting a fault in the compiler on one of the files, but have not
investigated the cause yet. It is possible that the issue is already
resolved in head. I am currently building with Visual Studio 2008 command
Jas anybody else dealt with similar issues lately? It seems to have been a
while since anybody tried to build DLL's, although it turned out to be
pretty easy to implement...