Thread: Fix ecpg SQL CONNECT with variable user name

Fix ecpg SQL CONNECT with variable user name

From
ITAGAKI Takahiro
Date:
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

Re: Fix ecpg SQL CONNECT with variable user name

From
Michael Meskes
Date:
On Fri, Dec 28, 2007 at 11:43:49AM +0900, ITAGAKI Takahiro wrote:
> Here is a fix for ecpg in 8.3 when the user name is specified by
> variables on SQL CONNECT.
> ...

Just committed fix to CVS. Thanks for pointing this out and fixing it
Takahiro-san.

Michael
--
Michael Meskes
Email: Michael at Fam-Meskes dot De, Michael at Meskes dot (De|Com|Net|Org)
ICQ: 179140304, AIM/Yahoo: michaelmeskes, Jabber: meskes@jabber.org
Go VfL Borussia! Go SF 49ers! Use Debian GNU/Linux! Use PostgreSQL!