Re: ECPG Connect user :variable problem - Mailing list pgsql-interfaces
From | Ryan Mooney |
---|---|
Subject | Re: ECPG Connect user :variable problem |
Date | |
Msg-id | 20030820004307.GB10232@pcslink.com Whole thread Raw |
In response to | ECPG Connect user :variable problem (Ryan Mooney <ryan@pcslink.com>) |
List | pgsql-interfaces |
All, It appears that there is an extra space around a " ?" replaceable string in the preprocessor that should have read "?". Attached (and inline) is a patch to /src/interfaces/ecpg/preproc/prepoc.y that fixes the problem. Also interestingly none of the test files for the ecpg processor exercise the "USER :user USING :password" functionality (at least that I could see - although I'm sortof blind so I might be missing something :) *** preproc.y Tue Aug 19 17:06:44 2003 --- preproc.y.old Tue Aug 19 17:06:35 2003 *************** *** 4174,4180 **** { if ($1[0] == '\"') $$ = $1; ! else if (strcmp($1, "?") == 0) /* variable */ { enum ECPGttype type = argsinsert->variable->type->type; --- 4174,4180 ---- { if ($1[0] == '\"') $$ = $1; ! else if (strcmp($1, " ?") == 0) /* variable */ { enum ECPGttype type = argsinsert->variable->type->type; > > Hello, > > I'm having a major problem using ecpg with 7.4beta1. The problem is that > if I try to pass in the username or password as :variables to the EXEC SQL > CONNECT code they are essentially ignored (replaced by " ?"). > > I've tried it on both redhat 7.2 IA64 and Redhat 9.0 IA32 (different enough > that I don't think its the platform). I also tried it with postgres 7.3.2 > which seemed to do the "right thing" and put the variables into the ECPGconnect > call. > > Any thoughts? > > ------------------------------<snip "connect.pgc">--------------------------------- > int pg_connect(void) > { > > EXEC SQL BEGIN DECLARE SECTION; > char *target = "dbname"; > char *connection_name = "myconnection"; > char *uname = "myuser"; > char *password = "mypassword"; > EXEC SQL END DECLARE SECTION; > > EXEC SQL CONNECT TO :target as :connection_name user :uname using :password; > > } > > ------------------------------<snip "connect.c">--------------------------------- > > int pg_connect(void) > { > > /* exec sql begin declare section */ > > > > > > #line 5 "connect.pgc" > char * target = "dbname" ; > > #line 6 "connect.pgc" > char * connection_name = "myconnection" ; > > #line 7 "connect.pgc" > char * uname = "myuser" ; > > #line 8 "connect.pgc" > char * password = "mypassword" ; > /* exec sql end declare section */ > #line 9 "connect.pgc" > > > { ECPGconnect(__LINE__, 0, target , " ?" , " ?" , connection_name, 0); } > #line 11 "connect.pgc" > > > } > > > -- > >-=-=-=-=-=-=-<>-=-=-=-=-=-<>-=-=-=-=-=-<>-=-=-=-=-=-<>-=-=-=-=-=-=-< > Ryan Mooney ryan@pcslink.com > <-=-=-=-=-=-=-><-=-=-=-=-=-><-=-=-=-=-=-><-=-=-=-=-=-><-=-=-=-=-=-=-> > > ---------------------------(end of broadcast)--------------------------- > TIP 5: Have you checked our extensive FAQ? > > http://www.postgresql.org/docs/faqs/FAQ.html -- >-=-=-=-=-=-=-<>-=-=-=-=-=-<>-=-=-=-=-=-<>-=-=-=-=-=-<>-=-=-=-=-=-=-< Ryan Mooney ryan@pcslink.com <-=-=-=-=-=-=-><-=-=-=-=-=-><-=-=-=-=-=-><-=-=-=-=-=-><-=-=-=-=-=-=->
Attachment
pgsql-interfaces by date: