The same bug was filed already in the end of Nov.
There are two ways to fix this.
1) After altering the table, prepare buffer should be cleared
or
2) The prepare stmt should be updated whenever alter query is executed.
I hope that this bug will be fixed in the next version..
Regards
Dhanaraj
Qingqing Zhou wrote:
> I encounter a server(8.1.1) problem like this:
>
> create table tt(id int);
> prepare p1(int) as insert into tt values($1);
> execute p1(3);
> alter table tt alter id type char(10);
> execute p1(9999999);
> select * from tt;
> ^ server core dumps here
>
> Command "execute p1(9999999)" works because the prepared plan still treat
> 9999999 as an integer, but "select * from tt" causes core dump because it
> treats the attribute as type varlena char - so 9999999 becomes the varlen.
>
> This might be a known issue, but seems not mentioned in the document:
> http://www.postgresql.org/docs/current/static/sql-prepare.html
>
>
> Regards,
> Qingqing
>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 2: Don't 'kill -9' the postmaster
>