freetds AT lists.ibiblio.org
Subject: FreeTDS Development Group
List archive
[freetds] dbdatlen() returns 8 for NULL timestamp / rowversion value
- From: Geoff Montee <geoff.montee AT gmail.com>
- To: FreeTDS Development Group <freetds AT lists.ibiblio.org>
- Subject: [freetds] dbdatlen() returns 8 for NULL timestamp / rowversion value
- Date: Wed, 24 Feb 2016 16:35:15 -0800
Hi all,
According to MS SQL Server's documentation, the timestamp / rowversion
data type is equivalent to binary(8) or varbinary(8) depending on
whether the column is nullable.
"A nonnullable rowversion column is semantically equivalent to a
binary(8) column. A nullable rowversion column is semantically
equivalent to a varbinary(8) column."
https://msdn.microsoft.com/en-us/library/ms182776.aspx
I can confirm that FreeTDS's dbcoltype() function returns 45
(SYBBINARY) as the data type for a timestamp column. I've noticed some
strange behavior by dbdatlen() though.
If I query a NULL binary(8) or varbinary(8) column, then dbdatlen()
returns 0, which makes sense for a NULL column. However, if I query a
NULL timestamp column, then dbdatlen() returns 8. This causes the NULL
checks in my application (tds_fdw) to say that the column is not NULL.
Is this intentional, or is this a bug?
I noticed this behavior on FreeTDS 0.95.19 on RHEL 7.
Thanks!
Geoff
-
[freetds] dbdatlen() returns 8 for NULL timestamp / rowversion value,
Geoff Montee, 02/24/2016
- Re: [freetds] dbdatlen() returns 8 for NULL timestamp / rowversion value, Frediano Ziglio, 02/28/2016
Archive powered by MHonArc 2.6.24.