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



---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?

http://archives.postgresql.org

Reply via email to