Thread: EXEC SQL INCLUDE syntax
I'm trying to port some Ingres code to PostgreSQL. For Ingres, I had this bit of ESQL: EXEC SQL INCLUDE '../dcl/master_table.sc'; which ecpg (2.10.0) can't digest with single quotes, and Ingres (2.5) esqlc can't digest without single quotes. Can anyone tell me what the ESQL standard says, and if there is an easy ecpg work-around? Thanks, Andy
On Fri, Oct 17, 2003 at 03:42:20PM -0700, Andrew S Halper wrote: > I'm trying to port some Ingres code to PostgreSQL. For Ingres, I had this > bit of ESQL: > > EXEC SQL INCLUDE '../dcl/master_table.sc'; > > which ecpg (2.10.0) can't digest with single quotes, and Ingres (2.5) esqlc > can't digest without single quotes. ecpg only accepts double quotes or no quote at all. > Can anyone tell me what the ESQL standard says, and if there is an easy I thought that ecpg does implement the standard, but I haven't checked it lately so I'm not sure. > ecpg work-around? Other than changing the code, no. It seems we do need an Ingres compatibility mode, too. Michael -- Michael Meskes Email: Michael at Fam-Meskes dot De ICQ: 179140304, AIM/Yahoo: michaelmeskes, Jabber: meskes@jabber.org Go SF 49ers! Go Rhein Fire! Use Debian GNU/Linux! Use PostgreSQL!
On 2003.10.20 11:01, Michael Meskes wrote: > On Fri, Oct 17, 2003 at 03:42:20PM -0700, Andrew S Halper wrote: > > I'm trying to port some Ingres code to PostgreSQL. For Ingres, I had this > > bit of ESQL: > > > > EXEC SQL INCLUDE '../dcl/master_table.sc'; > > > > which ecpg (2.10.0) can't digest with single quotes, and Ingres (2.5) > esqlc > > > can't digest without single quotes. > > ecpg only accepts double quotes or no quote at all. Changing the single quotes to double quotes worked with the Ingres preprocessor, but not with ecpg: natasha:~/nwis-4.4/common/db/midas-tools> ls -l master_table.sc -rw-r--r-- 1 ashalper nwdba 158 Oct 20 13:46 master_table.sc natasha:~/nwis-4.4/common/db/midas-tools> ecpg drop_table.sc drop_table.sc:37: ERROR: Cannot open include file "master_table.sc" in line 37 Thanks, Andy
On Mon, Oct 20, 2003 at 01:50:08PM -0700, Andrew S Halper wrote: > Changing the single quotes to double quotes worked with the Ingres > preprocessor, but not with ecpg: > > natasha:~/nwis-4.4/common/db/midas-tools> ls -l master_table.sc > -rw-r--r-- 1 ashalper nwdba 158 Oct 20 13:46 master_table.sc > natasha:~/nwis-4.4/common/db/midas-tools> ecpg drop_table.sc > drop_table.sc:37: ERROR: Cannot open include file "master_table.sc" in line > 37 It seems ecpg parsed the statement correctly but could not find the file. IIRC double quotes mean to not search all include paths but take "." instead. Michael -- Michael Meskes Email: Michael at Fam-Meskes dot De ICQ: 179140304, AIM/Yahoo: michaelmeskes, Jabber: meskes@jabber.org Go SF 49ers! Go Rhein Fire! Use Debian GNU/Linux! Use PostgreSQL!
On 2003.10.21 00:47, Michael Meskes wrote: > On Mon, Oct 20, 2003 at 01:50:08PM -0700, Andrew S Halper wrote: > > Changing the single quotes to double quotes worked with the Ingres > > preprocessor, but not with ecpg: > > > > natasha:~/nwis-4.4/common/db/midas-tools> ls -l master_table.sc > > -rw-r--r-- 1 ashalper nwdba 158 Oct 20 13:46 master_table.sc > > natasha:~/nwis-4.4/common/db/midas-tools> ecpg drop_table.sc > > drop_table.sc:37: ERROR: Cannot open include file "master_table.sc" in > line > > > 37 > > It seems ecpg parsed the statement correctly but could not find the > file. IIRC double quotes mean to not search all include paths but take > "." instead. I must be doing something wrong because I can't get ecpg to include anything with double quotes around it. I guess I'll just put something in the Makefile to strip the single quotes out of the Ingres includes. I'll send you the two files off-list and you can experiment with it if you like. Andy