Here is a fix for ecpg in 8.3 when the user name is specified by
variables on SQL CONNECT.

When we compile the following statement in ecpg:
    EXEC SQL CONNECT TO :dbname USER :usrname IDENTIFIED BY :usrpass;

ecpg in 8.2 compiles it correctly.
    { ECPGconnect(__LINE__, 0, dbname , usrname , usrpass , NULL, 0); }

but ecpg in 8.3beta4 returns wrong results.
    { ECPGconnect(__LINE__, 0, dbname , " $1 " , " $2 " , NULL, 0); }


It seems to come from the change of create_questionmarks() in
  http://archives.postgresql.org/pgsql-committers/2007-08/msg00185.php
  
http://developer.postgresql.org/cvsweb.cgi/pgsql/src/interfaces/ecpg/preproc/preproc.y?r1=1.348&r2=1.349

Variables are represented as "$%d" instead of "?" now.
The grammer of "user_name" should have followed the change.

Regards,
---
ITAGAKI Takahiro
NTT Open Source Software Center

Attachment: ecpg-connect.patch
Description: Binary data

---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
       choose an index scan if your joining column's datatypes do not
       match

Reply via email to