about error handling mechanism

Started by fanng yuanabout 15 years ago2 messages
#1fanng yuan
fanngyuan@gmail.com

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

#2Heikki Linnakangas
heikki.linnakangas@enterprisedb.com
In reply to: fanng yuan (#1)
Re: about error handling mechanism

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