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