ecpg bug with SQL TYPE xxxPtr is xxx REFERENCE?

From: lkindness(at)csl(dot)co(dot)uk (Lee Kindness)
To: pgsql-interfaces(at)postgresql(dot)org
Subject: ecpg bug with SQL TYPE xxxPtr is xxx REFERENCE?
Date: 2001-08-08 16:07:18
Message-ID: 3fb2003d.0108080807.7ec5e135@posting.google.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-interfaces

Hi,

I believe ecpg is incorrectly handling the placement of results into a
pointer to a host structure, consider the following function:

GeoContractorTabPtr sel_geo_contractor_rec(char *project_id)
{
EXEC SQL BEGIN DECLARE SECTION;
GeoContractorTabPtr ptr;
char *id;
EXEC SQL END DECLARE SECTION;

id = project_id;

tab_geo_contractor = calloc(1, sizeof(GeoContractorTabStr));
ptr = tab_geo_contractor;

EXEC SQL SELECT *
INTO :ptr
FROM geo_contractor
WHERE project_id = :id;

return( tab_geo_contractor );
}

and the following type definitions:

/* Description of table geo_contractor from database */
EXEC SQL TYPE GeoContractorTabStr IS STRUCT {
char project_id[9];
char contractor[53];
};
EXEC SQL TYPE GeoContractorTabPtr IS GeoContractorTabStr REFERENCE;

The following code is output by ecpg:

GeoContractorTabPtr sel_geo_contractor_rec(char *project_id)
{
/* exec sql begin declare section */
GeoContractorTabPtr ptr ;
char * id ;
/* exec sql end declare section */

id = project_id;
tab_geo_contractor = calloc(1, sizeof(GeoContractorTabStr));
ptr = tab_geo_contractor;

{ ECPGdo(__LINE__, NULL, "select * from geo_contractor where
project_id = ? ",
ECPGt_char,&(id),0L,1L,1*sizeof(char),
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT,
ECPGt_char,(ptr.project_id),9L,1L,9*sizeof(char),
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
ECPGt_char,(ptr.contractor),53L,1L,53*sizeof(char),
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);

return( tab_geo_contractor );
}

Specifically ptr.project_id should be ptr->project_id and likewise for
contractor. Am I correct in this?

Thanks, Lee Kindness.

Responses

Browse pgsql-interfaces by date

  From Date Subject
Next Message Michael Meskes 2001-08-08 18:50:22 Re: ecpg bug with SQL TYPE xxxPtr is xxx REFERENCE?
Previous Message iafmgc 2001-08-07 17:29:48 RE: pg_hba.conf and password files