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                                    [EMAIL PROTECTED] 
> <-=-=-=-=-=-=-><-=-=-=-=-=-><-=-=-=-=-=-><-=-=-=-=-=-><-=-=-=-=-=-=-> 
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 5: Have you checked our extensive FAQ?
> 
>                http://www.postgresql.org/docs/faqs/FAQ.html

-- 
>-=-=-=-=-=-=-<>-=-=-=-=-=-<>-=-=-=-=-=-<>-=-=-=-=-=-<>-=-=-=-=-=-=-<
Ryan Mooney                                      [EMAIL PROTECTED] 
<-=-=-=-=-=-=-><-=-=-=-=-=-><-=-=-=-=-=-><-=-=-=-=-=-><-=-=-=-=-=-=-> 
*** 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;
  
---------------------------(end of broadcast)---------------------------
TIP 9: the planner will ignore your desire to choose an index scan if your
      joining column's datatypes do not match

Reply via email to