Re: [SQL] rules - Mailing list pgsql-sql

From jwieck@debis.com (Jan Wieck)
Subject Re: [SQL] rules
Date
Msg-id m10IwzP-000EBQC@orion.SAPserv.Hamburg.dsh.de
Whole thread Raw
In response to rules  (Remigiusz Sokolowski <rems@gdansk.sprint.pl>)
Responses Re: [SQL] rules  ("Emils Klotins" <emils@mail.usis.bkc.lv>)
Re: [SQL] rules  (Remigiusz Sokolowski <rems@gdansk.sprint.pl>)
List pgsql-sql
> I try to create two rules
> -first one on update one_id in one table
> CREATE RULE rupd_one AS ON UPDATE TO one
>    DO UPDATE many
>         SET many_onef = new.one_id
>         WHERE many_onef = current.one_id;
>
> -second one on delete record from one table
> CREATE RULE rdel_one AS ON DELETE TO one
>    DO DELETE FROM many
>         WHERE many_onef = old.one_id;
>
> In short these two seem don't work. I'm not sure of either syntax or some
> other errors - psql at first rule don't report any errors, just output
> UPDATE 0
> and second one usually something like this:
> PQexec() -- Request was sent to backend, but backend closed the channel
> before responding.
>         This probably means the backend terminated abnormally before or
> while processing the request.

    There  seems  nothing  wrong  with the rules, except that you
    should use OLD instead of CURRENT  in  the  update  rule  too
    because CURRENT will disappear in v6.5.

    But  from  the  'UPDATE  0'  I  guess you're using a Postgres
    version prior to v6.4 - right? I fixed the  rule  system  for
    v6.4,  before that it was so badly broken that you should not
    even try.


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) #

pgsql-sql by date:

Previous
From: "Emils Klotins"
Date:
Subject: Hello & create rule question
Next
From: "Emils Klotins"
Date:
Subject: Re: [SQL] rules