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



Sat, 11 Jan 2003 17:46:37 +0800 (WST)
Christopher Kings-Lynne <chriskl@familyhealth.com.au>
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

Sat, 11 Jan 2003 11:31:03 -0500
Tom Lane <tgl@sss.pgh.pa.us>
Re: pg_rules view 