Basilis Kladis wrote:
[Charset iso-8859-7 unsupported, filtering to ASCII...]
>  I am ussing Postgresql v. 6.3 in a RedHat Linux system. I try to create a
> rule to log the deletes on table 'filter' ussing the following:

    First  of  all, the rule system up to version 6.3 is known to
    be broken in several ways. And IIRC delete rules where one of
    the cases that didn't work reliable.

    To  answer your question, in 6.3 the old row is identified by
    the keyword CURRENT, not OLD.


Jan

>
>  CREATE RULE log_delete_filter AS  ON DELETE TO filter
>   DO
>   INSERT INTO log_activity (mod_table, mod_record, mod_type)
>   VALUES ('filter', old.did, 'D');
>
>  The atributes of tables are:
>     filter (did int4, text text)
>     log_activity (mod_table char(20), mod_rec int4, mod_type char(1) )
>
>  I have the following result:
>     ERROR:  old: Table does not exist.
>  and the rule is not created.
>
>  I tested a same rule on INSERT with the keyword new.did and is working
> perfect.
>  Also I tested the commands:
>  SELECT new.did;
>  > ERROR:  NEW used in non-rule query
>  SELECT current.did;
>  >ERROR:  CURRENT used in non-rule query
>  SELECT old.did;
>  >ERROR:  old: Table does not exist.
>
>  What is going on? Do you have any idea why does system not undestand
> keyword 'old'?
>
> Sincerely,
>  Basilis Kladis <[EMAIL PROTECTED]>
>
> _______ ______
> Language Engineering Dept.
> KNOWLEDGE S.A.
>


--

#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me.                                  #
#================================================== [EMAIL PROTECTED] #


Reply via email to