BUG #3181: ecpg generating wrong code

Поиск
Список
Период
Сортировка
От Steve Gieseking
Тема BUG #3181: ecpg generating wrong code
Дата
Msg-id 200703220534.l2M5Y5mj056374@wwwmaster.postgresql.org
обсуждение исходный текст
Ответы Re: BUG #3181: ecpg generating wrong code  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-bugs
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.

В списке pgsql-bugs по дате отправления:

Предыдущее
От: "Murali"
Дата:
Сообщение: BUG #3183: set maximum row to retrieve + postgresql.conf
Следующее
От: Tom Lane
Дата:
Сообщение: Re: BUG #3181: ecpg generating wrong code