[freetds] Running FreeTDS under VMS

Lowden, James K LowdenJK at bernstein.com
Thu May 1 15:03:22 EDT 2003

> Iconv problem:
>   I'm using native VMS iconv. I first tried to copy necessary
>   files with the names FreeTDS expects, without success.
>   I then tried to put the VMS names in
>   alternative_character_sets.h, but tds_canonical_charset_name
>   doesn't seem to be used.
>   Finally I added them in character_sets.h.

Ach.  I see I missed something: We look up byte/char based on charset name.

It seems we need alternative_character_sets.h after all, so we can get the
GNU name, and use that to search src/tds/character_sets.h for the character
sizes.  Consider this broken for now.  :-(  The place to patch is
src/tds/iconv.c::bytes_per_char.  That function should call
tds_canonical_charset_name() before searching its charsets array.   

I'm thankful for any help.  As you can see, things are a bit unstable atm,
but questions like yours provoke thought, sometimes even while the lights
are on.  ;-)

>         /* *input_size += output_size; BG: should decrement */
>         *input_size -= output_size;

Committed, thanks.  

>   what is the purpose of emul_little_endian ?
>   That should be only applicable to the client side, shouldn't?
>   Anyway, I had to leave it to 0 with this kind of code:
>         if (IS_TDS7_PLUS(tds)) {
> #ifndef VMS
>                 /* TDS 7/8 only supports little endian */
>                 tds->emul_little_endian = 1;
> #endif
>         }
> #endif

See how WORDS_BIGENDIAN is defined and make sure it's 0 for VMS.  On unixy
systems, the configure script sets it based on system interrogation.  It
would be well to note this in the VMS readme.  

This reminds me about floats.  IIRC Craig is on Alpha.  If you're on VAX,
you can't exchange floating point data with the server, because VAXen don't
use IEEE floating point bit patterns.  

You're right, it's client-side.  We know in what form we'll get the data
from the server, and sometimes have to adjust it to suit the client.  



The information contained in this transmission may contain privileged and
confidential information and is intended only for the use of the person(s)
named above.  If you are not the intended recipient, or an employee or agent
responsible for delivering this message to the intended recipient, any
review, dissemination, distribution or duplication of this communication is
strictly prohibited. If you are not the intended recipient, please contact
the sender immediately by reply e-mail and destroy all copies of the
original message. Please note that we do not accept account orders and/or
instructions by e-mail, and therefore will not be responsible for carrying
out such orders and/or instructions.

More information about the FreeTDS mailing list