CS_UINT_TYPE, but not CS_BIGINT_TYPE

"James K. Lowden" <[email protected]>
Newsgroups gmane.comp.db.tds.freetds
Message-ID <[email protected]>
Federico Alves wrote:
> I open a ticket with DBD-Sybase and the author Michel Peppler thinks
> there is an issue
> with freetds, not with DBD-Sybase.
> <URL: http://rt.cpan.org/Ticket/Display.html?id=34411 >
> 
> On Mon Mar 24 20:19:06 2008, falves1 wrote:
> > I compiled DBD-Sybase 1.08 using DBI 1.604, and the perl Makefile.PL 
> > works fine, but then when I do a make I get this
> > Sybase.xsi:275: error: invalid lvalue in assignment
> > Sybase.xsi: In function âXS_DBD__Sybase__db_DESTROYâ:
> > Sybase.xsi:334: error: invalid lvalue in assignment
> > make: *** [Sybase.o] Error 1
> 
> This is a problem with FreeTDS.
> 
> The issue is that FreeTDS defines CS_UINT_TYPE, but not CS_BIGINT_TYPE,
> and Sybase never defines one without the other.

I'm not convinced this is a "problem" with FreeTDS, and I'm not sure how
to fix it.  

FreeTDS doesn't guarantee line-by-line compatibility with Sybase's header
files.  The project's header files describe the functions, structures, and
datatypes implemented by the library.  If CS_UINT_TYPE but not
CS_BIGINT_TYPE is supported/used/implemented by the library, then only
CS_UINT_TYPE *should* appear in the header file.  Anything else would
mislead the developer: the translation unit might compile but fail to
link, or link and not work.  

Michael, AIUI DBD::Sybase assumes CS_BIGINT_TYPE upon testing for
CS_UINT_TYPE.  Wouldn't it be better to test for CS_BIGINT_TYPE directly? 


I'm always eager to make sure FreeTDS supports DBD::Sybase to the extent
possible, allowing for deficiencies in the implementation.  But adding
something to the header file not implemented by the library could
adversely affect other users.  

--jkl
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.