"Matteo Cavalleri" <theos@bp.lnf.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.
regards, tom lane