Re: [HACKERS] Continue transactions after errors in psql - Mailing list pgsql-patches

From Andrew Dunstan
Subject Re: [HACKERS] Continue transactions after errors in psql
Date
Msg-id 426E584C.3080003@dunslane.net
Whole thread Raw
In response to Re: [HACKERS] Continue transactions after errors in psql  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: [HACKERS] Continue transactions after errors in psql  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-patches

Tom Lane wrote:

>Richard Huxton <dev@archonet.com> writes:
>
>
>>Michael Paesold wrote:
>>
>>
>>>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...
>>
>>
>
>Unconvincing.  What if the drop fails for permission reasons, rather
>than because the table's not there?  Then the CREATE will fail too
>... but now the script bulls ahead regardless, with who knows what
>bad consequences.
>
>I would far rather see people code explicit markers around statements
>whose failure can be ignored.  That is, a script that needs this
>behavior ought to look like
>
>    BEGIN;
>    \begin_ignore_error
>    DROP TABLE foo;
>    \end_ignore_error
>    CREATE ...
>    ...
>    COMMIT;
>
>
>
>

That's a lot of work. In this particular case I would actually like to
see us provide "DROP IF EXISTS ..." or some such.

My instinct on this facility is that distinguishing between interactive
and noninteractive use is likely to be highly confusing. So I would
favor behaviour that is consistent and defaults to off.

cheers

andrew



pgsql-patches by date:

Previous
From: Tom Lane
Date:
Subject: Re: [HACKERS] Continue transactions after errors in psql
Next
From: Tom Lane
Date:
Subject: Re: [HACKERS] Continue transactions after errors in psql