AIX- FreeTds 0.51

Mark Schaal mark at champ.tstonramp.com
Fri Nov 10 14:55:31 EST 2000


> 
> 
> TDS 7.0 is little endian only.  Which means that the client (AIX in this
> case) needs to reverse all the data going and coming from the server.
> Somewhere along the line the tds_put_*() calls were 'fixed' and no longer
> support non-native byte orders.  :-/
> 
> I'll need to look through the logs and see whose changes these were but
> methinks we need to set this at the connection level anyway, so that we
> can support different byte orders for different connections.  This would
> handle the date hack for SQL Server 7.0 as well if we pretended to be
> little endian
> 
> Brian

Unless I'm misreading "cvs diff" there never was any such support in
the tds_put_*() calls.  I'll cop to removing some code from 
tds_get_smallint(), but that code wasn't doing anything, honest,
and it definitely wasn't TDS7 support.

I don't see the need for connection level support.  Isn't it 
sufficient to check for "if (big_endian and tds7.0)" in the
appropriate places?  The most readable way I've thought of is
to force configure to set WORDS_BIGENDIAN=0 for little endian
machines and then the test is
  if (WORDS_BIGENDIAN && IS_TDS7(tds))

(...which you would think the compiler could optimize away but
my gcc 2.8.1 and gcc 2.91.66 at -O2 don't seem to, hmm.)

Mark
-- 
Mark J. Schaal					Phone:      (909) 620-7724
TST On Ramp					Fax:	    (909) 620-8174
System Administrator				E-Mail: mark at tstonramp.com



More information about the FreeTDS mailing list