create temporary sequence and ecpg

Started by Edmund Baconover 22 years ago2 messagesbugs
Jump to latest
#1Edmund Bacon
ebacon@onesystem.com

============================================================================
POSTGRESQL BUG REPORT TEMPLATE
============================================================================

Your name : Edmund Bacon
Your email address : ebacon@onesystem.com

System Configuration
---------------------
Architecture (example: Intel Pentium) : Intel Pentium

Operating System (example: Linux 2.0.26 ELF) : Linux 2.4.20

PostgreSQL version (example: PostgreSQL-7.3.4): PostgreSQL-7.3.4

Compiler used (example: gcc 2.95.2) : gcc 3.2.2

Please enter a FULL description of your problem:
------------------------------------------------

Trying to create a TEMPORARY SEQUENCE with ecpg produces
a runtime erorr. the sqlprint error is:

sql error 'ERROR: parser: parse error at or near "foo" at character 27'
in lin

A workaround is to use EXECUTE IMMEDIATE

Please describe a way to repeat the problem. Please try to provide a
concise reproducible example, if at all possible:
----------------------------------------------------------------------

exec sql include sqlca;

$ cat tmpseq.pgc

int main()
{
exec sql whenever sqlerror sqlprint;

exec sql connect to test;

exec sql create temporary sequence foo;

exec sql disconnect;

return 0;
}

Looking at the emitted C code we see:

{ ECPGdo(__LINE__, NULL, "create sequence temporary foo ", ECPGt_EOIT,
ECPGt_EORT);

Note that the tokens "sequence" and "temporary" have been reversed.

If you know how this problem might be fixed, list the solution below:

---------------------------------------------------------------------

--
Edmund Bacon <ebacon@onesystem.com>

#2Bruce Momjian
bruce@momjian.us
In reply to: Edmund Bacon (#1)
Re: create temporary sequence and ecpg

Nice bug report. I have attached a fix that will appear in our 7.4
release. Thanks.

---------------------------------------------------------------------------

Edmund Bacon wrote:

============================================================================
POSTGRESQL BUG REPORT TEMPLATE
============================================================================

Your name : Edmund Bacon
Your email address : ebacon@onesystem.com

System Configuration
---------------------
Architecture (example: Intel Pentium) : Intel Pentium

Operating System (example: Linux 2.0.26 ELF) : Linux 2.4.20

PostgreSQL version (example: PostgreSQL-7.3.4): PostgreSQL-7.3.4

Compiler used (example: gcc 2.95.2) : gcc 3.2.2

Please enter a FULL description of your problem:
------------------------------------------------

Trying to create a TEMPORARY SEQUENCE with ecpg produces
a runtime erorr. the sqlprint error is:

sql error 'ERROR: parser: parse error at or near "foo" at character 27'
in lin

A workaround is to use EXECUTE IMMEDIATE

Please describe a way to repeat the problem. Please try to provide a
concise reproducible example, if at all possible:
----------------------------------------------------------------------

exec sql include sqlca;

$ cat tmpseq.pgc

int main()
{
exec sql whenever sqlerror sqlprint;

exec sql connect to test;

exec sql create temporary sequence foo;

exec sql disconnect;

return 0;
}

Looking at the emitted C code we see:

{ ECPGdo(__LINE__, NULL, "create sequence temporary foo ", ECPGt_EOIT,
ECPGt_EORT);

Note that the tokens "sequence" and "temporary" have been reversed.

If you know how this problem might be fixed, list the solution below:

---------------------------------------------------------------------

--
Edmund Bacon <ebacon@onesystem.com>

---------------------------(end of broadcast)---------------------------
TIP 7: don't forget to increase your free space map settings

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

Attachments:

/bjm/difftext/plainDownload+2-2