Re: [HACKERS] Continue transactions after errors in psql

Michael Paesold <mpaesold@gmx.at>

From: "Michael Paesold" <mpaesold@gmx.at>
To: "Richard Huxton" <dev@archonet.com>
Cc: "Greg Sabino Mullane" <greg@turnstep.com>, <pgsql-hackers@postgresql.org>, <pgsql-patches@postgresql.org>
Date: 2005-04-26T14:30:45Z
Lists: pgsql-hackers
Richard Huxton wrote:

> Michael Paesold wrote:
>>
>> But people (like me for example) will want to enable this behaviour by 
>> default. So they (me too) will put the option in .psqlrc. It is then 
>> enabled "by default". But then many of my scripts will destroy data 
>> instead of just erroring out.
>> I just don't see why non-interactive mode does need such a switch because 
>> there is no way to check if there was an error. So just put two queries 
>> there and hope one will work?
>
> DROP TABLE foo;
> CREATE TABLE foo...

This would be:

\set AUTOCOMMIT off
DROP TABLE foo; -- error, rolled back
CREATE TABLE foo ...
COMMIT;

You could as well do:

\set AUTOCOMMIT on -- default
DROP TABLE foo; -- print error message
CREATE TABLE foo ...

There is not much difference, except for locking, ok. I see your point, but 
I don't think this makes enabling it by default (even in .psqlrc) any safer.

Best Regards,
Michael Paesold