ECPG patchset - Mailing list pgsql-hackers

From Boszormenyi Zoltan
Subject ECPG patchset
Date
Msg-id 4A9FC2AA.1080603@cybertec.at
Whole thread Raw
Responses Re: ECPG patchset
List 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,
emittingan extra '{' between the "addon"  and the original rule code blocks. Fix was needed for parse.pl  and now the
grammarlooks 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
unconditionallyfree() 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_nextpointer, 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
seemto 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/



pgsql-hackers by date:

Previous
From: Ľubomír Varga
Date:
Subject: suggestion to improve planer
Next
From: Boszormenyi Zoltan
Date:
Subject: Re: ECPG patchset