ECPG patchset

From: Boszormenyi Zoltan <zb(at)cybertec(dot)at>
To: pgsql-hackers(at)postgresql(dot)org, Michael Meskes <meskes(at)postgresql(dot)org>
Cc: Hans-Juergen Schoenig <hs(at)cybertec(dot)at>
Subject: ECPG patchset
Date: 2009-09-03 13:20:42
Message-ID: 4A9FC2AA.1080603@cybertec.at
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,

we have updated our patchset to current 8.5 CVS.
The actual patches will be in emails coming as
answers to this one. As two patches were already included,
the remaining patches are as follows:

1. dynamic cursorname
2. sqlda support
3. describe support
4. proper out-of-scope declare/open/fetch for cursors in compat mode

Changes (the numbers indicate the patch it was made in):

1. ECPG auto-generated grammar couldn't deal with
grammar objects having both an "addon" and a "rule"
extension, emitting an extra '{' between the "addon"
and the original rule code blocks. Fix was needed for parse.pl
and now the grammar looks nicer, my previous question was
solved by it.

2. No more ecpg_compare_sqlda_with_PGresult() function, it triggered
most of the time anyway, it's cheaper to unconditionally free() and
malloc().
No more realloc(), it ruined the internal pointers inside the sqlda
structure.
A small leak fix for FETCH when a decimal or numeric was used:

> diff -durpN pgsql.dyncursor/src/interfaces/ecpg/ecpglib/data.c
> pgsql.sqlda/src/interfaces/ecpg/ecpglib/data.c
> --- pgsql.dyncursor/src/interfaces/ecpg/ecpglib/data.c 2009-08-08
> 17:19:45.000000000 +0200
> +++ pgsql.sqlda/src/interfaces/ecpg/ecpglib/data.c 2009-09-03
> 12:56:36.000000000 +0200
> @@ -554,7 +554,7 @@ ecpg_get_data(const PGresult *results, i
> else
>
> PGTYPESnumeric_to_decimal(nres, (decimal *) (var + offset * act_tuple));
>
> - free(nres);
> + PGTYPESnumeric_free(nres);
> break;
>
> case ECPGt_interval:

Now sqlda usage is valgrind-clean.
We added the possibility to extend SQLDA for multi-row FETCH,
using the ->desc_next pointer, but not implemented. Multi-row
FETCH is not available in Informix.

3. Only updated to current CVS.

4. Fixed uninitialized pointers that were discovered by valgrind and
were causing problems on HP-UX. (Small malloc()s seem to be
zeroed out by Fedora 9's glibc, but not on HP-UX.)

Best regards,
Zoltán Böszörményi

--
Bible has answers for everything. Proof:
"But let your communication be, Yea, yea; Nay, nay: for whatsoever is more
than these cometh of evil." (Matthew 5:37) - basics of digital technology.
"May your kingdom come" - superficial description of plate tectonics

----------------------------------
Zoltán Böszörményi
Cybertec Schönig & Schönig GmbH
http://www.postgresql.at/

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Boszormenyi Zoltan 2009-09-03 13:21:38 Re: ECPG patchset
Previous Message Andrew Dunstan 2009-09-03 12:15:36 Re: Triggers on columns