On Thu, Apr 29, 2004 at 06:42:31PM +0200, Manfred Koizar wrote:
> On Wed, 28 Apr 2004 12:02:44 -0400, Alvaro Herrera
> <alvherre@dcc.uchile.cl> wrote:
> >In fact, I think we should mark ERROR as aborting the whole transaction
> >tree, and create a new level which would abort the innermost
> >subtransaction. We would then change whatever is appropiate to the new
> >elevel. Doing otherwise would leave us open to unexpected conditions
> >causing only subtrans abort, which could lead to unreliable behavior.
>
> Why? Subtransaction commit propagates an error state to the parent
> transaction. And if a subtransaction is rolled back the parent can
> continue cleanly no matter what was the reason for the subtrans abort.
Not necessarily; consider can't-happen conditions, like everything that
is marked elog(ERROR) rather than ereport(ERROR). Corrupt hashes,
should-exist catalog entries that are not there, etc. They should not
be frequent, be we should be prepared for them.
--
Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
"La virtud es el justo medio entre dos defectos" (Aristóteles)