The following bug has been logged on the website: Bug reference: 7866 Logged by: Tim Romano Email address: tim.rom...@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=current_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=current_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=current_user; --ERROR: could not convert table "rls3" to a view because it has child tables -- Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs