Rules: first fix - Mailing list pgsql-hackers

From jwieck@debis.com (Jan Wieck)
Subject Rules: first fix
Date
Msg-id m0z8PEC-000EBPC@orion.SAPserv.Hamburg.dsh.de
Whole thread Raw
Responses Re: [HACKERS] Rules: first fix  (The Hermit Hacker <scrappy@hub.org>)
List pgsql-hackers
Hi,

    as  proposed here comes the first patch for the query rewrite
    system.

    The tar archive contains mainly  a  little  test  suite  that
    would  fit  into  our regression tests. You'll find the patch
    itself (src.diff) in the directory ./ruletest.

    Changes:

        The syntax of CREATE RULE now accepts () in  addition  to
        []  to  group  the  action statements. I looked around to
        see, what ANSI says on CREATE RULE with no  luck.  But  I
        found what other database systems expect:

            Sybase,  Microsoft  SQL  Server  and  some others use
            CREATE RULE to add value checking on  table  columns.
            But  Sybase says for ANSI compliance the check clause
            on CREATE TABLE should be used.

            Ingres uses CREATE RULE where PostgreSQL uses  CREATE
            TRIGGER   (and   it   uses   ...   EXECUTE  PROCEDURE
            proname(args) too on it).

            AMOS uses ... DO  proname(args),  so  I  assume  this
            means trigger like in Ingres.

        INSTEAD  NOTHING  rules now create an action. It is a new
        query command type CMD_NOTHING that  is  treated  in  the
        rewrite  handler  as a null statement (thrown away). This
        allows now event qualification on instead  nothing  rules
        (formerly not supported).

        Queries  that  are  fired  in  by the rule system are now
        executed before the original query (if  it  still  exists
        after  rewriting).  This is required because a constraint
        delete query fired in by a delete  rule  would  become  a
        mergejoin (or the like) that does a scan on the triggered
        relation, but in the case of a delete it cannot find  the
        deleted  tuples if the delete takes place first. The same
        would happen if an update modifies the key  fields.  This
        might  interfere  with table constraints or triggers that
        check for foreign keys. It could  be  a  situation  where
        only  a  real  trigger  can  help (Bruce, did you receive
        PL/pgSQL?).

        Major change is that relation level rules  seem  to  work
        now  (as  far  as  I  tested  them). I was able to create
        insert/update/delete rules on a view that do the required
        actions    on   the   tables   behind   it.    Constraint
        update/delete   rules   work.    Instead    rules    with
        qualification  can  be  used to distribute insertion into
        different tables (user inserts every time into  the  same
        table  but  tuples  are  really  inserted  into different
        and/or multiple tables depending on qualifications).

    Left to do:

        Create more tests.

        There  are  still  problems  (don't  know  how  to   copy
        object...)  when  using  a  rule  after  creation without
        starting a new backend.  This must get fixed.

        Create more tests.

        I haven't had a look on attribute level rules.

        Create more tests.

        I still must look at the update new stuff. I  don't  know
        what  it  currently  does at all, but I know what it must
        do. It must modify (or  extend)  the  actual  parsetree's
        targetlist  entries  putting  in  the rule actions target
        list expressions.

        Create more tests.

        Last but not least: create much more tests (would someone
        be so kind to assist?)


Jan

--

#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me.                                  #
#======================================== jwieck@debis.com (Jan Wieck) #


begin 644 ruletest.tar.gz
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
G/GUY_\<0WP!"[_\8#/YEQH_O_WC\/'X>/X^?'_;Y"ZF1A?@`\```
`
end

pgsql-hackers by date:

Previous
From: The Hermit Hacker
Date:
Subject: What does "cannot extend" mean?
Next
From: David Hartwig
Date:
Subject: Re: [HACKERS] Regression test status (was type coersion)