Skip to Content.
Sympa Menu

freetds - RE: [freetds] Read UNIVARCHAR field from Sybase 12.5.1

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • From: "ZIGLIO Frediano" <Frediano.Ziglio AT vodafone.com>
  • To: "FreeTDS Development Group" <freetds AT lists.ibiblio.org>
  • Subject: RE: [freetds] Read UNIVARCHAR field from Sybase 12.5.1
  • Date: Thu, 20 Nov 2003 17:10:51 +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
>

Last but not least... please set TDSDUMP and post some log with
univarchar and others new types. I don't have a Sybase 12.x machine to
test with... Remember to remove sensitive data from log.

freddy77




Archive powered by MHonArc 2.6.24.

Top of Page