Thank you , it's likely a bug caused by pg_hint_plan extension , it's not a pg's bug.
i comment the pg_hint_plan , and will not crash now.
```
#shared_preload_libraries = 'oracle_fdw,pg_hint_plan' # (change requires restart)
restart pg.
postgres=# prepare a(int) as select * from tf where id=$1;
PREPARE
postgres=# \d tf
Table "public.tf"
Column | Type | Collation | Nullable | Default
--------+---------+-----------+----------+--------------------------------
id | integer | | not null | nextval('tf_id_seq'::regclass)
postgres=# execute a(1);
id
----
(0 rows)
postgres=# insert into tf values (1);
INSERT 0 1
postgres=# insert into tf values (2);
INSERT 0 1
postgres=# execute a(1);
id
----
1
(1 row)
postgres=# alter table tf add column c1 int;
ALTER TABLE
postgres=# execute a(1);
ERROR: cached plan must not change result type
postgres=# \set VERBOSITY verbose
postgres=# execute a(1);
ERROR: 0A000: cached plan must not change result type
LOCATION: RevalidateCachedQuery, plancache.c:723
postgres=# discard plans;
DISCARD PLANS
postgres=# execute a(1);
ERROR: 0A000: cached plan must not change result type
LOCATION: RevalidateCachedQuery, plancache.c:723
postgres=# execute a(1);
ERROR: 0A000: cached plan must not change result type
LOCATION: RevalidateCachedQuery, plancache.c:723
```
best regards,
digoal.
------------------------------------------------------------------
发件人:Tom Lane <tgl@sss.pgh.pa.us>
发送时间:2019年4月18日(星期四) 01:09
收件人:digoal <digoal@126.com>
抄 送:pgsql-bugs <pgsql-bugs@lists.postgresql.org>
主 题:Re: BUG #15766: discard plans bug. database CRASH
PG Bug reporting form <noreply@postgresql.org> writes:
> PostgreSQL version: 11.1
> discard plans bug. database CRASH
This seems to be fixed already; I just get additional reports of
ERROR: cached plan must not change result type
in all branches. I didn't go through the git logs to try to
identify the relevant fix, so possibly it was post-11.2.
regards, tom lane