Thread: about error handling mechanism

about error handling mechanism

From
fanng yuan
Date:
Hi!
I was looking into the postgres error handling mechanism, and the
documentation states that the present mechanism is primitive.

I quote "whenever the parser, planner/optimizer or executor decide that a
statement cannot be processed any longer,
the whole transaction gets aborted and the system jumps back into the main
loop to get the next command from the client application."

Also, it states " it is possible that the database server is in an
inconsistent state at this point so returning to the upper executor or
issuing
more commands might corrupt the whole database"

Since postgres aborts the transaction compeletely, why would it be ever
left in an inconsistant state in such an event?

Also , I want to get someone's help about the mechanism about how it works.
Could someone help me?

thanks


Re: about error handling mechanism

From
Heikki Linnakangas
Date:
On 17.12.2010 11:18, fanng yuan wrote:
> Hi!
> I was looking into the postgres error handling mechanism, and the
> documentation states that the present mechanism is primitive.
>
> I quote "whenever the parser, planner/optimizer or executor decide that a
> statement cannot be processed any longer,
> the whole transaction gets aborted and the system jumps back into the main
> loop to get the next command from the client application."

That quote is from the 7.4 manual. You should look at something more recent.

> Also, it states " it is possible that the database server is in an
> inconsistent state at this point so returning to the upper executor or
> issuing
> more commands might corrupt the whole database"
>
> Since postgres aborts the transaction compeletely, why would it be ever
> left in an inconsistant state in such an event?

What it tries to say is that the system might be in an inconsistent 
state, which is the reason the transaction has to be aborted. The abort 
cleans it up, so you're not left in an inconsistent state.

--   Heikki Linnakangas  EnterpriseDB   http://www.enterprisedb.com