Thread: new.oid not working inside rule [repost]

new.oid not working inside rule [repost]

From
Michael Olivier
Date:
I am reposting this because I haven't gotten an answer... is anyone
successfully using new.oid within a rule to store the oid of an inserted
row into another table?  (See below)

This is in 6.4.2-3.

thanks,
--Michael


Michael Olivier wrote:
> 
> 2. How can I get the oid of a record being inserted?  Using new.oid
> isn't getting it for me... the field in my changes table remains
> blank...
> 
>     create rule users_add_rule as on insert to users do
>         insert into changes (table_name, change_time, ref_oid, type)
>         values ('users', 'now', new.oid, 'insert');
> 
> Getting some other field, like new.acctname, does work...
> 
> Thanks,
> Michael


Re: [SQL] new.oid not working inside rule [repost]

From
wieck@debis.com (Jan Wieck)
Date:
>
> I am reposting this because I haven't gotten an answer... is anyone
> successfully using new.oid within a rule to store the oid of an inserted
> row into another table?  (See below)
>
> This is in 6.4.2-3.

    It cannot work - sorry.

    This  is because of the way rules are executed. If you have a
    rule on INSERT, this rules action is executed  prior  to  the
    INSERT  itself  and  will do mainly the same scans to collect
    the  data  that  will   be   inserted   (in   the   case   of
    INSERT...SELECT...). At this time, the OID's which will later
    get assigned aren't known.


Jan

--

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