freetds AT lists.ibiblio.org
Subject: FreeTDS Development Group
List archive
[freetds] Read UNIVARCHAR field from Sybase 12.5.1
- From: Alex Kiesel <kiesel AT schlund.de>
- To: freetds AT lists.ibiblio.org
- Subject: [freetds] Read UNIVARCHAR field from Sybase 12.5.1
- Date: Thu, 20 Nov 2003 16:15:42 +0100
Hi,
I am trying to read a column of type UNIVARCHAR with current FreeTDS
from CVS (TDS version is set to 50), with patch 20031120 from Frediano
(without it did not work at all).
The UNIVARCHAR is being transmitted as TDS_LONGBINARY (0xE1), the
columns column_varint_size is 4 (which is correct, I think) but this
leads to:
token.c, line 1519 ff.:
switch (curcol->column_varint_size) {
case 4:
curcol->column_size = tds_get_int(tds);
curcol->table_namelen =
tds_get_string(tds, tds_get_smallint(tds), curcol->table_name,
sizeof(curcol->table_name) - 1);
break;
This seems incorrect as this calls tds_get_string() which then fails
on the assertion in read.c, line 264:
assertion "string_len >= 0 && dest_size >= 0" failed: file "read.c", line 264
Abort trap (core dumped)
Not reading the table_namelen from the wire in token.c seems to fix this
problem - though I think that generally removing this may be the wrong
thing; I don't know tds good enough.
So my questing is: what is that piece of code used for? What is
curcol->table_name?
Additionally, as I am trying to get this working, should a
TDS_LONGBINARY be handled like a varchar or like a blob? There are
several occurances where this is being distinguished (within
eg. tds_get_data()).
Btw: the conversion seems to work correctly and convert the UTF-16 into
my charset (iso-8859-1).
Greetings from Karlsruhe,
Alex
-
[freetds] Read UNIVARCHAR field from Sybase 12.5.1,
Alex Kiesel, 11/20/2003
- <Possible follow-up(s)>
- RE: [freetds] Read UNIVARCHAR field from Sybase 12.5.1, Thompson, Bill D (London), 11/20/2003
-
RE: [freetds] Read UNIVARCHAR field from Sybase 12.5.1,
Thompson, Bill D (London), 11/20/2003
- Re: [freetds] Read UNIVARCHAR field from Sybase 12.5.1, Alex Kiesel, 11/21/2003
- RE: [freetds] Read UNIVARCHAR field from Sybase 12.5.1, ZIGLIO Frediano, 11/20/2003
-
RE: [freetds] Read UNIVARCHAR field from Sybase 12.5.1,
ZIGLIO Frediano, 11/20/2003
- Re: [freetds] Read UNIVARCHAR field from Sybase 12.5.1, Alex Kiesel, 11/21/2003
Archive powered by MHonArc 2.6.24.