Thread: BUG #2079: strage PREPARE/EXECUTE behavior
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.
"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