From: | Hiroshi Inoue <Inoue(at)tpf(dot)co(dot)jp> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Matteo Cavalleri <theos(at)bp(dot)lnf(dot)it> |
Cc: | pgsql-odbc(at)postgresql(dot)org |
Subject: | Re: select from a table having more than 32 fields: Quick Workaround |
Date: | 2001-02-22 03:51:21 |
Message-ID: | 3A948CB9.7B2AD712@tpf.co.jp |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-odbc |
Tom Lane wrote:
>
> "Matteo Cavalleri" <theos(at)bp(dot)lnf(dot)it> writes:
> > A select from a table having more than 32 fields fails during
> > SQLDescribeCol on field # 33.
>
> > In my opinion the driver try to allocate space for fields in blocks of
> > 32 items as defined in FLD_INCR (parse.c) . The realloc() works
> > well but for some reasons the fi pointer seems to get lost during
> > SQLDescribeCol on column 1.
>
> I think the bug is in lines 681-694 (of current CVS sources). Actually
> there are a couple bugs there: first that the new fi value is not stored
> back into stmt->fi (your complaint). Secondly, the calculation of
> required space looks to me to have a bunch of errors, both fencepost
> type (roundup of stmt->nfld to number of slots actually allocated is
> wrong) and conceptual (roundup should be done on total number of slots
> needed, not on parts of it). I have no way to test ODBC, though, so
> I won't try to fix it.
>
I've just committed a fix according to Tom's analysis.
Thanks to Tom for his accurate analysis as usual.
Matteo, if you want to check the change I would send
you a binary.
Regards,
Hiroshi Inoue
From | Date | Subject | |
---|---|---|---|
Next Message | Bruce Momjian | 2001-02-22 03:58:36 | Re: select from a table having more than 32 fields: Quick Workaround |
Previous Message | Tom Lane | 2001-02-21 23:56:07 | Re: select from a table having more than 32 fields: Quick Workaround |