Pro*C versus {ecpg and PostgreSQL}

From: Alexandra Roy <Alexandra(dot)Roy(at)bull(dot)net>
To: pgsql general <pgsql-general(at)postgresql(dot)org>
Subject: Pro*C versus {ecpg and PostgreSQL}
Date: 2010-01-07 15:23:00
Message-ID: 4B45FC54.8020709@bull.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Dear list,

I am migrating an Oracle database to PostgreSQL and the last step I must
perform is to convert several Pro*C programs into PostgreSQL embedded SQL.
I work on AIX 5.3 TL9 64-bits, on which I have built PostgreSQL 8.3.8 in
64-bits too.
I am a newbie in Embedded SQL and I am facing several problems / questions.
I hope you could help me.


1. Initially, the Pro*C program include an external file, having #ifdef
lines at the beginning, using : EXEC SQL INCLUDE "file1.h";
If I let this command in the ".pgc" file, the preprocess with ecpg failed :
$ ecpg prog1.pgc
./file1.h:17: ERROR: syntax error at or near "EXTERN"

The first lines of the "file1.h" file are :
#if defined(var1)
EXTERN int a;
... ...

I see in the 8.2.15 documentation (even if this release is a bit old
now) a comment indicating :
/Unfortunately "exec sql include" can NOT be thought of as simply
inserting the included file at the appropriate place. For instance,
having #ifdef lines in the included file does not work, you must use
"exec sql ifdef", even though having #ifdef's in the original source
file is fine./

So, I have replaced the line
EXEC SQL INCLUDE "file1.h";
by (at the beginning of the embedded SQL program) :
#include "file1.h";
and now the preprocess succeeded :
$ ecpg prog1.pgc
$

=> Any explanation please ?

2. In examples of PostgreSQL embedded SQL, I saw these includes :
#include <stdio.h>
#include <stdlib.h>
#include <sqltypes.h>
without any comments.

=> Do I need to specify them anyway ?

3. Do "best practices" to convert Pro*C program in PostgreSQL exist ?
What are the main differences between Pro*C and embedded SQL program in
PostgreSQL ?

Thank you very much for your help !
Regards,
Alexandra

Browse pgsql-general by date

  From Date Subject
Next Message Adrian von Bidder 2010-01-07 15:27:42 Re: Minimizing disk space
Previous Message Tom Lane 2010-01-07 14:52:16 Re: A maybe-bug?