Re: BUG #17633: Define rule on views which do insert to another relation trigger cache lookup failed error. - Mailing list pgsql-bugs

From Richard Guo
Subject Re: BUG #17633: Define rule on views which do insert to another relation trigger cache lookup failed error.
Date
Msg-id CAMbWs49K+LkBFTu3XqJgso=_BTJ81NJv9N5Bx0_4XikkmG-qdA@mail.gmail.com
Whole thread Raw
In response to BUG #17633: Define rule on views which do insert to another relation trigger cache lookup failed error.  (PG Bug reporting form <noreply@postgresql.org>)
Responses Re: BUG #17633: Define rule on views which do insert to another relation trigger cache lookup failed error.
List 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

pgsql-bugs by date:

Previous
From: PG Bug reporting form
Date:
Subject: BUG #17633: Define rule on views which do insert to another relation trigger cache lookup failed error.
Next
From: Richard Guo
Date:
Subject: Re: BUG #17633: Define rule on views which do insert to another relation trigger cache lookup failed error.