The following bug has been logged online:

Bug reference:      3181
Logged by:          Steve Gieseking
Email address:      [EMAIL PROTECTED]
PostgreSQL version: 8.2.3
Operating system:   Linux Fedora Core 6
Description:        ecpg generating wrong code
Details: 

I am maintaining code that uses ecpg.  The following query was working with
the previous version of ecpg:

exec sql SELECT count(PortNum) INTO :cnt FROM Serial
  WHERE ProjectId = :prjId and Enable = true;

After upgrading, the code is produced incorrectly.  It now generates code as
follows:

  { ECPGdo(__LINE__, 0, 1, NULL, "select  count ( PortNum )  from Serial
where ProjectId =  ? and ensable = true  ", 
        ECPGt_int,&(prjId),(long)1,(long)1,sizeof(int), 
        ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, 
        ECPGt_int,&(cnt),(long)1,(long)1,sizeof(int), 
        ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);

The problem is the translation to ensable.  This appears to be caused by the
file 'preproc.y' at the line:

                | ENABLE_P                      { $$ = make_str("ensable"); }

Changing this to 'enable', fixes the problem.

---------------------------(end of broadcast)---------------------------
TIP 7: You can help support the PostgreSQL project by donating at

                http://www.postgresql.org/about/donate

Reply via email to