http://qs321.pair.com?node_id=775674


in reply to validating SQL using DBI

I don't know Postgres, but in databases I've used, DDL statements are indifferent to transactions and can't be rolled back. Not sure that will be an issue.

But in general, using transactions to validate SQL is not a bad idea. I have an application that does something similar.

If you're having data values interpreted as placeholders, it sounds like your SQL text may not actually be in a form that's valid for an individual statement. I don't know the COPY statement so I may be out of my league here.

Replies are listed 'Best First'.
Re^2: validating SQL using DBI
by erix (Prior) on Jun 29, 2009 at 14:44 UTC

    Yes, PostgreSQL does transactional DDL, see this page for an example. It is a handy feature but as you can see from that page, not widely implemented.

    It lets you try out changes (adding or dropping indexes, for instance) and evaluating their effects, before actually COMMITting them (or ROLLBACK, as the case may be). (Other sessions are not effected.)

    See also the -1 option of psql (the cli client):

            -1 ("one")      execute command file as a single transaction