Re: RULE vs. SEQUENCE - Mailing list pgsql-hackers

From Jan Wieck
Subject Re: RULE vs. SEQUENCE
Date
Msg-id 200009041434.JAA02259@jupiter.jw.home
Whole thread Raw
In response to Re: RULE vs. SEQUENCE  (Karel Zak <zakkr@zf.jcu.cz>)
List pgsql-hackers
Karel Zak wrote:
> > >  But executor can knows that somethig was already executed, we can mark
> > > some already executed expressions in rewriter and not execute it again in
> > > final executor... like:
> > ...
> > >
> > >  IMHO this is a good point for 7.2 ...
> >
> > But if instead of nextval() you had random(), would you still want to execute
> > it
> > only once ? And how should postgres know ?
>
>  Talking you still about RULEs?
   Yes, he is.

>
>  ...I don't undestand you. What is a 'NEW' in RULE? I (and probably more
> users) expect that new data from tuple which go into original table. Right?
   Most  people  would  expect  that  - but it is the targetlist   expression of this column from  the  query  which
fired the   rule! That's a little difference.
 

> Not ... if you use sequence. IMHO it's not "feature" but nice bug that
> crash your data integrity...
   The PostgreSQL rule system is based on a general productional   query rewrite  rule  system,  designed  decades  ago
without   thinking  about column values like nextval() or random(). The   usage of those expressions in a query firing
rules leads  to   unpredictable results.
 
   To  understand  how  rules  work  in  detail  you should read   chapter 8 of the programmers manual.


Jan

--

#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me.                                  #
#================================================== JanWieck@Yahoo.com #




pgsql-hackers by date:

Previous
From: Jan Wieck
Date:
Subject: Re: RULE vs. SEQUENCE
Next
From: Tom Lane
Date:
Subject: Re: OO inheritance implementation