Thread: BUG #2079: strage PREPARE/EXECUTE behavior

BUG #2079: strage PREPARE/EXECUTE behavior

From
"Yuriy Vostrikoff"
Date:
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.

Re: BUG #2079: strage PREPARE/EXECUTE behavior

From
Tom Lane
Date:
"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