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

From: Richard Guo <guofenglinux(at)gmail(dot)com>
To: jiye_sw(at)126(dot)com, pgsql-bugs(at)lists(dot)postgresql(dot)org
Subject: Re: BUG #17633: Define rule on views which do insert to another relation trigger cache lookup failed error.
Date: 2022-10-11 12:09:30
Message-ID: CAMbWs4-Z8hSnHOTrCV4-Pp1+H9+i34O68pSkhEHLyDpYfPyqpQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

On Tue, Oct 11, 2022 at 6:05 PM Richard Guo <guofenglinux(at)gmail(dot)com> wrote:

>
> On Tue, Oct 11, 2022 at 5:48 PM PG Bug reporting form <
> noreply(at)postgresql(dot)org> wrote:
>
>> -- 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
>

I think the problem exists for auto-updatable view, as we leave the
DEFAULT items untouched because we expect to apply the underlying base
rel's default.

In this case there is a rewrite rule on the view. Applying the rule
we'd get a product query whose target entries referring to the VALUES
RTE have attribute 3 and 4 while the relation has only two attributes.
Then we proceed to replacing the remaining DEFAULT items with NULLs.
And when we try to access the relation's 3rd and 4th attributes, we are
accessing illegal memory areas.

Thanks
Richard

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Japin Li 2022-10-11 12:29:16 Re: BUG #17633: Define rule on views which do insert to another relation trigger cache lookup failed error.
Previous Message Richard Guo 2022-10-11 10:05:09 Re: BUG #17633: Define rule on views which do insert to another relation trigger cache lookup failed error.