pg_rules view

Started by Christopher Kings-Lynneabout 23 years ago2 messages
#1Christopher Kings-Lynne
chriskl@familyhealth.com.au

I tried creating a rule like:

create rule "_RETURN" as on select to asfd do instead select * from blah;

And it worked.

But it doesn't appear in pg_rules.

I created this one:

create rule myrule as on insert to asfd do instead nothing;

And it does appear:

test=# select * from pg_rules ;
schemaname | tablename | rulename |
definition
------------+-------------+---------------+-----------------------------------------------------------------------------------------------------------------------------------------------------
pg_catalog | pg_settings | pg_settings_n | CREATE RULE pg_settings_n AS
ON UPDATE TO pg_settings DO INSTEAD NOTHING;
pg_catalog | pg_settings | pg_settings_u | CREATE RULE pg_settings_u AS
ON UPDATE TO pg_settings WHERE (new.name = old.name) DO SELECT
set_config(old.name, new.setting, false) AS set_config;
chriskl | asfd | myrule | CREATE RULE myrule AS ON
INSERT TO asfd DO INSTEAD NOTHING;
(3 rows)

What gives?

Chris

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Christopher Kings-Lynne (#1)
Re: pg_rules view

Christopher Kings-Lynne <chriskl@familyhealth.com.au> writes:

I tried creating a rule like:
create rule "_RETURN" as on select to asfd do instead select * from blah;
And it worked.
But it doesn't appear in pg_rules.

That's by design. pg_rules suppresses view rules. You'll find asfd in
pg_views, instead.

regards, tom lane