The following bug has been logged online:
Bug reference: 3181
Logged by: Steve Gieseking
Email address: steve.gieseking@camotion.com
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.