Re: BUG #17633: Define rule on views which do insert to another relation trigger cache lookup failed error.
Richard Guo <guofenglinux@gmail.com>
From: Richard Guo <guofenglinux@gmail.com>
To: jiye_sw@126.com, pgsql-bugs@lists.postgresql.org
Date: 2022-10-11T10:05:09Z
Lists: pgsql-bugs
On Tue, Oct 11, 2022 at 5:48 PM PG Bug reporting form <
noreply@postgresql.org> wrote:
> Just execute as follow sql:
>
> drop view v1;
> drop table t1;
> drop table t2;
> create table t1(i int, j int);
> create table t2(a int, b int, c int, d int);
> create or replace rule t1_r as on insert to t1 do also insert into t2(c,d)
> values (new.i, new.j);
> insert into t1 values (1,default);
> insert into t1 values (1,default),(2, default);
> -- create rule on t1 directly no issue
> drop rule t1_r on t1;
> create view v1 as select * from t1;
> — create rule on view query t1 will trigger this issue
> create or replace rule v1_r as on insert to v1 do also insert into t2(c,d)
> values (new.i, new.j);
> insert into v1 values (1,default);
> -- must multi values.
> insert into v1 values (1,default),(2, default);
> => it will trigger cache lookup failed for type.
Thanks for the report! I can reproduce this issue.
Apparently there is something wrong when we process the DEFAULT marker
in rewriteValuesRTE, because the contents inside att_tup are invalid.
p /x att_tup->atttypid
$13 = 0x7f7f7f7f
Thanks
Richard
Commits
-
Yet further fixes for multi-row VALUES lists for updatable views.
- addde9bc6caf 11.18 landed
- abc510fa2a34 12.13 landed
- 23e2a06acf04 10.23 landed
- b8f2687fdc41 16.0 landed
- 3162bd95cad3 14.6 landed
- 21e042b0bd47 13.9 landed
- 07ce6769824c 15.1 landed