BUG #7866: even after T's child-tables are deleted it cannot have select-rule - Mailing list pgsql-bugs

From tim.romano@yahoo.com
Subject BUG #7866: even after T's child-tables are deleted it cannot have select-rule
Date
Msg-id E1U4W0A-0008FF-Ve@wrigleys.postgresql.org
Whole thread Raw
Responses Re: BUG #7866: even after T's child-tables are deleted it cannot have select-rule
List pgsql-bugs
The following bug has been logged on the website:

Bug reference:      7866
Logged by:          Tim Romano
Email address:      tim.romano@yahoo.com
PostgreSQL version: 9.2.2
Operating system:   Windows 7 x64
Description:        =


After a table has been inherited, a select-rule cannot be created on it
*even if its child tables are deleted and a vacuum is performed afterwards*.
 =


Moreover, the select-rule documentation is vague and incomplete. Instead of
clear and concise definition, with a few simple examples illuminating a
variety of use cases, there is a long, unnecessarily complex, and not very
illuminating example.


    create table RLS3
    (tenant varchar(25) not null default current_user);
    --Query returned successfully with no result in 10 ms.

    create table customer
     (id int primary key not null,
     custname varchar(25) not null
     ) INHERITS (RLS3);
     --NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index =

     -- "customer_pkey" for table "customer"
    =

    CREATE RULE "_RETURN" AS ON SELECT TO RLS3 =

    do instead select * from RLS3 where tenant=3Dcurrent_user;
    --ERROR:  could not convert table "rls3" to a view because it has child
tables

    drop table customer;
    Query returned successfully with no result in 11 ms.
   =

     CREATE RULE "_RETURN" AS ON SELECT TO RLS3 =

     do instead select * from RLS3 where tenant=3Dcurrent_user;
    --ERROR:  could not convert table "rls3" to a view because it has child
tables
 =

     VACUUM;
     --Query returned successfully with no result in 91 ms.

    CREATE RULE "_RETURN" AS ON SELECT TO RLS3 =

    do instead select * from RLS3 where tenant=3Dcurrent_user;

    --ERROR:  could not convert table "rls3" to a view because it has child
tables

pgsql-bugs by date:

Previous
From: Chris Meisinger
Date:
Subject: Re: BUG #7857: postgresql91-libs fails to create ld.so.conf.d symlink
Next
From: Tom Lane
Date:
Subject: Re: BUG #7866: even after T's child-tables are deleted it cannot have select-rule