[HACKERS] about error handling mechanism

2010-12-17 Thread fanng yuan
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

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] about error handling mechanism

2010-12-17 Thread Heikki Linnakangas

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

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers