Hello pgdev,

(Second attempt)

I've conducted a statistical study about PostgreSQL use in OSS. One of the result is that quite a few projects have errors in their SQL setup scripts which lead to some statements to be ignored, typically somme ADD CONSTRAINTS which do not change the database schema from a functional point of view, or syntactic errors (typically a mysql syntax...) that result in missing tables, but which are not found if the application is not fully tested.

I think that there are two reasons why these errors are not caught by application developers:

(1) the default verbosity is set to "notice", which is much to high. The users just get used to seeing a lot of messages on loading an sql script, and to ignore them, so that errors are just hidden in the flow of notices. I think that a better default setting would be "warnings", that is messages that require some attention from the developer.

(2) the default behavior of psql on errors is to keep going. Developers of SQL script that are expected to work shoud be advised to:
 - encourage application devs to set ON_ERROR_STOP and/or use a global
   transaction in their script.
 - provide a simple/short option to do that from the command line
   basically that could be an enhanced "-1", NOT restricted
   to "-f" but that would work on standard input as well.

   sh> psql -1 -f setup.sql # -1 does work here
   sh> psql -1 < setup.sql # -1 does not apply to stdin stuff...

So I would suggest the following todos:

1 - change the default verbosity to "warning".

2 - change -1 to work on stdin as well instead of being ignored,
    or provide another option that would do that.

Fabien Coelho - coe...@cri.ensmp.fr

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

Reply via email to