From: | Shelby Cain <alyandon(at)yahoo(dot)com> |
---|---|
To: | pgsql-bugs(at)postgresql(dot)org |
Subject: | ecpg mapping struct members for indicators incorrectly? |
Date: | 2004-02-19 19:57:33 |
Message-ID: | 20040219195733.45089.qmail@web41610.mail.yahoo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
I'm coming from a Pro*C background so I'm not entirely
certain whether what I am attempting is simply not
allowed in ecpg or not.
ecpg --version
ecpg (PostgreSQL 7.4.1) 3.1.0
showbug.pgc
------------------------------------------
#define HOSTSIZE 100
exec sql begin declare section;
typedef struct _my_host_t {
char field1[HOSTSIZE][20];
int field2[HOSTSIZE];
} _my_host_ary_t;
typedef struct _my_host_ind_t {
int field1_ind[HOSTSIZE];
int field2_ind[HOSTSIZE];
} _my_host_ind_ary_t;
exec sql end declare section;
exec sql declare my_cur cursor for select field1,
field2 from sometable;
int main()
{
exec sql begin declare section;
_my_host_ary_t *mydata;
_my_host_ind_ary_t *myind;
int fetchsize;
exec sql end declare section;
fetchsize = HOSTSIZE;
exec sql fetch :fetchsize from my_cur into :mydata
INDICATOR :myind;
}
------------------------------------------
After running ecpg -o showbug.c showbug.pgc the
section of interest in the generated .c file is:
showbug.c
------------------------------------------
/* Processed by ecpg (3.1.0) */
[...]
int main()
{
/* exec sql begin declare section */
[...]
{ ECPGdo(__LINE__, 0, 1, NULL, "fetch ? from
my_cur",
ECPGt_int,&(vArySize),(long)1,(long)1,sizeof(int),
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
ECPGt_EOIT,
ECPGt_char,(mydata->field1),(long)20,(long)HOSTSIZE,20*sizeof(char),
ECPGt_int,(mydata->field1_ind),(long)1,(long)HOSTSIZE,sizeof(int),
ECPGt_int,(mydata->field2),(long)1,(long)HOSTSIZE,sizeof(int),
ECPGt_int,(mydata->field2_ind),(long)1,(long)HOSTSIZE,sizeof(int),
ECPGt_EORT);}
[...]
}
You can see that ecpg incorrectly mapped the indicator
fields field1_ind and field2_ind to the mydata struct
instead of myind which will cause a compile error.
Regards,
Shelby Cain
__________________________________
Do you Yahoo!?
Yahoo! Mail SpamGuard - Read only the mail you want.
http://antispam.yahoo.com/tools
From | Date | Subject | |
---|---|---|---|
Next Message | wade | 2004-02-20 00:23:30 | |
Previous Message | Roopali Sharma | 2004-02-19 18:26:06 | pg_restore problems |