Re: [INTERFACES] ECPG Connect user :variable problem

From: Ryan Mooney <ryan(at)pcslink(dot)com>
To: pgsql-interfaces(at)postgresql(dot)org
Cc: pgsql-bugs(at)postgresql(dot)org
Subject: Re: [INTERFACES] ECPG Connect user :variable problem
Date: 2003-08-20 00:43:07
Message-ID: 20030820004307.GB10232@pcslink.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs 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(at)pcslink(dot)com
> <-=-=-=-=-=-=-><-=-=-=-=-=-><-=-=-=-=-=-><-=-=-=-=-=-><-=-=-=-=-=-=->
>
> ---------------------------(end of broadcast)---------------------------
> TIP 5: Have you checked our extensive FAQ?
>
> http://www.postgresql.org/docs/faqs/FAQ.html

--
>-=-=-=-=-=-=-<>-=-=-=-=-=-<>-=-=-=-=-=-<>-=-=-=-=-=-<>-=-=-=-=-=-=-<
Ryan Mooney ryan(at)pcslink(dot)com
<-=-=-=-=-=-=-><-=-=-=-=-=-><-=-=-=-=-=-><-=-=-=-=-=-><-=-=-=-=-=-=->

Attachment Content-Type Size
preproc.y.diffs text/plain 473 bytes

In response to

Browse pgsql-bugs by date

  From Date Subject
Next Message Arnold Mavromatis 2003-08-20 05:13:38 postgresql 7.3.2 bug on date '1901-12-13' and '1901-12-13' - PK v iolation
Previous Message Ryan Mooney 2003-08-19 22:17:08 ECPG Connect user :variable problem

Browse pgsql-interfaces by date

  From Date Subject
Next Message Ryan Mooney 2003-08-20 18:05:28 Re: [INTERFACES] ECPG Connect user :variable problem
Previous Message Ryan Mooney 2003-08-19 22:17:08 ECPG Connect user :variable problem