Re: bug: virtual generated column can be partition key - Mailing list pgsql-hackers

From Ashutosh Bapat
Subject Re: bug: virtual generated column can be partition key
Date
Msg-id CAExHW5tBizivPO34Y3zv933jCruyWxtA_-cjm1TwPb2GMGJTGA@mail.gmail.com
Whole thread Raw
In response to Re: bug: virtual generated column can be partition key  (jian he <jian.universality@gmail.com>)
List pgsql-hackers


On Tue, Apr 22, 2025 at 11:19 AM jian he <jian.universality@gmail.com> wrote:
On Tue, Apr 22, 2025 at 11:45 AM Ashutosh Bapat
<ashutosh.bapat.oss@gmail.com> wrote:
>
>
> While looking at this I realised that a generated column may end up being part of the partition key if the partition key expression contains a whole row reference. Attached patch also has a fix and a testcase for the same. PARTITION BY RANGE ((gtest_part_key is not null)) expression in the test is kinda silly, but it tests the whole-row reference as part of an expression. I haven't looked for more sensible expressions.
>

I begin to wonder if wholerow reference should be allowed.
then error occurred:

drop table if exists t4;
CREATE TABLE t4(f1 int, f2 bigint) PARTITION BY list ((t4));
create table t4_1 partition of t4 for values in ((1,2));
alter table t4 alter column f2 set data type text using f2;

insert into t4 select 1, '2';
ERROR:  invalid memory alloc request size 18446744073709551615

I can reproduce this error without my patc. It seems to be a different existing bug.

--
Best Wishes,
Ashutosh Bapat

pgsql-hackers by date:

Previous
From: vignesh C
Date:
Subject: Re: Logical Replication of sequences
Next
From: Bertrand Drouvot
Date:
Subject: Re: Recent pg_rewind test failures in buildfarm