Last commits and sql 2008
Frediano Ziglio <[email protected]>
| Newsgroups | gmane.comp.db.tds.freetds |
|---|---|
| Message-ID | <1313003231.2836.21.camel@ricky> |
Hi, for people used to use snapshot versions should have noted in these days a lot of changes. I'm committing a lot of patches for tds 7.3 support (that is mssql 2008). Mainly I added new date/time types (mssql 2008 supports tables only for input so if we don't pass tables there is no need to implement them). The main change is that now TDSCOLUMN contains a pointer to TDSCOLUMNFUNCS which is a virtual table translation from C++ to C. The main reason is that data handling was all in some monstrous functions spread all over the code. In mem.c to allocate row, in query.c to pass as parameters, in token.c to read from server, bulk.c to pass bulk data (and perhaps some other). Also some functions was a series of if this type, if this other set of types and so on which was mostly false for some simple types. So adding new data type (as new date/time) was really a pain and I decided to choose this approach. Currently there are 5 functions: - get_info get metadata informations from wire - get get data from wire - put_info write metadata to write - put write data to wire - row_len how many bytes are required in row buffer Still missing - functions for bulk data - getting type declaration odbc is in a good shape, with some work new date/time should be fully supported. Still missing checks for metadata informations (like concise type, scale/precision, display size and so on). Still to decide what to do with other libraries (ctlib and dblib) but I think that is time to break fully compatibility with proprietary libraries. Recently I tried protocol 4.2 with our unitests... a real nightmare! But after some seconds I decided to just ignore them as nobody have noted it... I think nobody will claim :) bye freddy77