Thread: BUG #17771: add a "status" column to the pg_rules system view

BUG #17771: add a "status" column to the pg_rules system view

From
PG Bug reporting form
Date:
The following bug has been logged on the website:

Bug reference:      17771
Logged by:          Albin Hermange
Email address:      albin.hermange@gmail.com
PostgreSQL version: 15.1
Operating system:   all OS
Description:

hi, 

I noticed that the pg_rules system view (all PG versions) does not include a
"status" field (like in pg_trigger with tgenabled column)

the official view (from 15.1 sources) is :

CREATE VIEW pg_rules AS
    SELECT
        N.nspname AS schemaname,
        C.relname AS tablename,
        R.rulename AS rulename,
        pg_get_ruledef(R.oid) AS definition
    FROM (pg_rewrite R JOIN pg_class C ON (C.oid = R.ev_class))
        LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace)
    WHERE R.rulename != '_RETURN';

i propose to add a new field "rule_enabled" to get (easilly and officially)
the rule status to all PG version 

CREATE VIEW pg_rules AS
    SELECT
        N.nspname AS schemaname,
        C.relname AS tablename,
        R.rulename AS rulename,
        R.ev_enabled as rule_enabled,
        pg_get_ruledef(R.oid) AS definition
    FROM (pg_rewrite R JOIN pg_class C ON (C.oid = R.ev_class))
        LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace)
    WHERE R.rulename != '_RETURN';


What do u think about that ?

Thx

Albin


Re: BUG #17771: add a "status" column to the pg_rules system view

From
"David G. Johnston"
Date:
On Sun, Feb 5, 2023 at 9:51 AM PG Bug reporting form <noreply@postgresql.org> wrote:
The following bug has been logged on the website:

Bug reference:      17771
Logged by:          Albin Hermange
Email address:      albin.hermange@gmail.com
PostgreSQL version: 15.1
Operating system:   all OS
Description:       

i propose to add a new field "rule_enabled" to get (easilly and officially)
the rule status to all PG version

CREATE VIEW pg_rules AS
    SELECT
        N.nspname AS schemaname,
        C.relname AS tablename,
        R.rulename AS rulename,
        R.ev_enabled as rule_enabled,
        pg_get_ruledef(R.oid) AS definition
    FROM (pg_rewrite R JOIN pg_class C ON (C.oid = R.ev_class))
        LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace)
    WHERE R.rulename != '_RETURN';


What do u think about that ?


Its absence isn't a bug - if you want to take a poll, post something to pgsql-general, if you want to submit a patch, send it to pgsql-hackers.

David J.