BUG #2079: strage PREPARE/EXECUTE behavior

Started by Yuriy Vostrikoffover 20 years ago2 messagesbugs
Jump to latest

The following bug has been logged online:

Bug reference: 2079
Logged by: Yuriy Vostrikoff
Email address: mon@lcpi.ru
PostgreSQL version: 8.1.0
Operating system: Debian sarge
Description: strage PREPARE/EXECUTE behavior
Details:

EXECUTE return wrong result after ALTER TABLE ALTER COLUMN TYPE. Is this
expected behavior?

mon=> select version();
version

----------------------------------------------------------------------------
---------------
PostgreSQL 8.1.0 on i386-pc-linux-gnu, compiled by GCC cc (GCC) 3.3.5
(Debian 1:3.3.5-13)
(1 row)

mon=> \d
No relations found.
mon=> create table test (col timestamp);
CREATE TABLE
mon=> insert into test values(current_timestamp);
INSERT 0 1
mon=> insert into test values(current_timestamp);
INSERT 0 1
mon=> prepare q as select * from test;
PREPARE
mon=> EXECUTE q;
col
----------------------------
2005-11-30 12:27:49.569859
2005-11-30 12:27:51.463482
(2 rows)

mon=> alter table test alter col type text;
ALTER TABLE
mon=> execute q;
col
------------------------------
123450-10-10 15:43:18.790174
123450-10-10 15:43:18.790174
(2 rows)

mon=> select * from test;
col
----------------------------
2005-11-30 12:27:49.569859
2005-11-30 12:27:51.463482
(2 rows)

'123450-10-10 15:43:18.790174' is certainly not '2005-11-30
12:27:49.569859'.

Same problem with other datatypes.
And a second question: why PQprepare() from libpq returns empty PQresult?
It's useful to know field number, field types before PQexecutePrepared.

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Yuriy Vostrikoff (#1)
Re: BUG #2079: strage PREPARE/EXECUTE behavior

"Yuriy Vostrikoff" <mon@lcpi.ru> writes:

EXECUTE return wrong result after ALTER TABLE ALTER COLUMN TYPE. Is this
expected behavior?

The prepared plan really should be invalidated by the ALTER, but we
don't currently have any infrastructure that would allow that to happen.
I think Neil Conway is looking into it for 8.2, though.

regards, tom lane