Re: [SQL] Rules with Conditions: Bug, or Misunderstanding

Поиск
Список
Период
Сортировка
От Jan Wieck
Тема Re: [SQL] Rules with Conditions: Bug, or Misunderstanding
Дата
Msg-id 200012041904.OAA17594@jupiter.jw.home
обсуждение исходный текст
Ответ на Re: [SQL] Rules with Conditions: Bug, or Misunderstanding  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
Tom Lane wrote:
> Jan Wieck <janwieck@Yahoo.com> writes:
> > Tom Lane wrote:
> >> Hm.  Perhaps the "cannot update view" test is too strict --- it's not
> >> bright enough to realize that the two rules together cover all cases,
> >> so it complains that you *might* be trying to update the view.  As the
> >> code stands, you must provide an unconditional DO INSTEAD rule to
> >> implement insertion or update of a view.
>
> >     Disagree.
>
> >     A  conditional rule splits the command into two, one with the
> >     rules action and  the  condition  added,  one  which  is  the
> >     original  statement  plus the negated condition. So there are
> >     cases left where an INSERT can happen to  the  view  relation
> >     and it's the job of this test to prevent it.
>
> Well, in that case the present code is broken, because it's going to
> spit up if any part of the rewritten query shows the view as result
> relation (cf. QueryRewrite() ... note that this logic no longer looks
> much like it did the last time you touched it ;-)).  You'd have to
> convert the existing rewrite-time test into a runtime test in order to
> see whether the query actually tries to insert any tuples into the view.
   Yepp.

> While that is maybe reasonable for insertions, it's totally silly
> for update and delete queries.  Since the view itself can never contain
> any tuples to be updated or deleted, a runtime test that errors out
> when one attempts to update or delete such a tuple could never fire.
> I don't think that means that we shouldn't complain about an update
> or delete on a view.
>
> I think the test is best left as-is...
   Since  conditional  rules  aren't  any  better compared to an   unconditional multi-action  instead  rule  where
the single   actions  have all the different conditions, let's leave it as   is and insist on one unconditional instead
rule.


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 по дате отправления:

Предыдущее
От: Peter Eisentraut
Дата:
Сообщение: Re: compiling pg 7.0.3 on sco 5.0.5
Следующее
От: Zeugswetter Andreas SB
Дата:
Сообщение: AW: AW: broken locale in 7.0.2 without multibyte suppor t (F reeBSD 4.1-RELEASE) ?