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