Thread: [HACKERS] RENAME RULE doesn't work with partitioned tables

[HACKERS] RENAME RULE doesn't work with partitioned tables

From
Amit Langote
Date:
Just noticed that RangeVarCallbackForRenameRule() was not updated to
handle partitioned tables, causing the following bug:

create table parted_table (a int) partition by list (a);
create table part partition of parted_table for values in (1);
create rule parted_table_insert as on insert to parted_table
  do instead insert into part values (new.*);
alter rule parted_table_insert on parted_table
  rename to parted_table_insert_redirect;
-- ERROR:  "parted_table" is not a table or view

Attached fixes this and adds a test.  Added to open items list.

Thanks,
Amit

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Attachment

Re: [HACKERS] RENAME RULE doesn't work with partitioned tables

From
Robert Haas
Date:
On Tue, Apr 11, 2017 at 5:54 AM, Amit Langote
<Langote_Amit_f8@lab.ntt.co.jp> wrote:
> Just noticed that RangeVarCallbackForRenameRule() was not updated to
> handle partitioned tables, causing the following bug:
>
> create table parted_table (a int) partition by list (a);
> create table part partition of parted_table for values in (1);
> create rule parted_table_insert as on insert to parted_table
>   do instead insert into part values (new.*);
> alter rule parted_table_insert on parted_table
>   rename to parted_table_insert_redirect;
> -- ERROR:  "parted_table" is not a table or view
>
> Attached fixes this and adds a test.  Added to open items list.

Committed.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



Re: [HACKERS] RENAME RULE doesn't work with partitioned tables

From
Amit Langote
Date:
On 2017/04/12 2:20, Robert Haas wrote:
> On Tue, Apr 11, 2017 at 5:54 AM, Amit Langote
> <Langote_Amit_f8@lab.ntt.co.jp> wrote:
>> Just noticed that RangeVarCallbackForRenameRule() was not updated to
>> handle partitioned tables, causing the following bug:
>>
>> create table parted_table (a int) partition by list (a);
>> create table part partition of parted_table for values in (1);
>> create rule parted_table_insert as on insert to parted_table
>>   do instead insert into part values (new.*);
>> alter rule parted_table_insert on parted_table
>>   rename to parted_table_insert_redirect;
>> -- ERROR:  "parted_table" is not a table or view
>>
>> Attached fixes this and adds a test.  Added to open items list.
> 
> Committed.

Thanks.

Regards,
Amit