From: | Thierry Missimilly <THIERRY(dot)MISSIMILLY(at)BULL(dot)NET> |
---|---|
To: | postgres general <pgsql-general(at)postgresql(dot)org> |
Subject: | ECPG bug or development choice |
Date: | 2003-09-09 12:48:19 |
Message-ID: | 3F5DCC13.7C4449E9@BULL.NET |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Hi,
I'm not sure it's a bug or it's normal, so i don't send it to pgsq-bugs.
Well, i have written pgbench in PRO*C to have a common pgbench.pgc
source for Postgres and Oracle.
However, there are some differences between the Postgres Pro*c and
Oracle Pro*c.
So, i use #ifdef ORACLE #else #endif preprocessing instructions to
differentiate PG from Oracle Pro*c syntaxes.
This works fine with Oracle Pro*c but EGPG tries to translate the code
into #ifdef ORACLE #endif blocks and FAILS with the message : "ERROR :
INVALID DATA TYPE ...".
That means cpp is not called by ECPG but is more or less called by PROC
ORACLE.
For example, this following code : test.pgc
#include <stdlib.h>
main()
{
printf("Before define\n");
#ifdef ORACLE
sql_context ctx;
EXEC SQL CONTEXT USE :ctx;
EXEC SQL CONNECT "scott/tiger";
#else
EXEC SQL CONNECT TO template1 as "cnx_init";
#endif
printf("After endif\n");
}
ecpg -o test.c test.pgc
returns :
test.pgc:8: INVALID DATA TYPE 'CONTEXT'
But by doing the following commands :
cpp -E -o testE.pgc test.pgc
ecpg -o test.c testE.pgc
is OK.
So, is there an other solutions to share EXEC SQL instructions between
Postgres and Oracle ?
Best regards,
Thierry.
Attachment | Content-Type | Size |
---|---|---|
THIERRY.MISSIMILLY.vcf | text/x-vcard | 327 bytes |
From | Date | Subject | |
---|---|---|---|
Next Message | Michael Meskes | 2003-09-09 13:17:08 | Re: ECPG bug or development choice |
Previous Message | Hema Sekhar | 2003-09-09 12:29:35 | Help needed in Replicating pgsql |