[freetds] Compiling Against FreeTDS 0.95 w/7.3 TDSVER Features Possible?

Frediano Ziglio freddy77 at gmail.com
Mon Nov 16 11:58:02 EST 2015

2015-11-15 20:14 GMT+00:00 Ken Collins <ken at metaskills.net>:
> I am in the process of upgrading the Ruby C extensions to FreeTDS from 0.91 to 0.95.
> The primary goal is to also support using TDSVER 7.3 and the newly supported 2008 data types.
> Is this possible to use these new types in 0.95 when many of the types are not defined in sybdb.h? For example here is a diff of that file when comparing 0.95 to master. https://gist.github.com/metaskills/4c9900c3d1078e5c4763
> For example, I can see that dbcoltype() is returning integers that match these below. I can even see the binary data, but I am unsure how what API functions I need to use this data. So far dbdatecrack() is not working. Any recommendations?

Yes, actually the patch could be backported (beside the 7.4 stuff).

The binary structure is well defined (and an ABI actually) however is
defined in tds.h (TDS_DATETIMEALL). The date field is the same as
dtdays in DATETIME however
time is completely different (100-nanosecondth from start of day).

dbdatecrack only supports DATETIME. I suppose a new dbanydatecrack (or whatever)
extension could be defined (possibly extending time precision). Or in
the meantime you could pass date field into a DATETIME, use
dbdatecrack and split time manually (at least the precision).


More information about the FreeTDS mailing list