Miernik wrote: > BTW, doesn't there exist any tool does what "psql -c" does, but is > written in plain C, not perl? I was looking for such psql replacement, > but couldn't find any.
As others have noted, psql is written in C, and you're using a wrapper. Assuming your're on Debian or similar you should be able to invoke the real psql with: /usr/lib/postgresql/8.3/bin/psql psql is a C executable that uses libpq directly, and is really rather low-overhead and fast. As for how to issue multiple commands in one statement in a shell script: one way is to use a here document instead of "-c". Eg: psql <<__END__ UPDATE blah SET thingy = 7 WHERE otherthingy = 4; DELETE FROM sometable WHERE criterion = -1; __END__ You can of course wrap statements in explicit transaction BEGIN/COMMIT, etc, as appropriate. As you start doing more complex things, and especially once you start wanting to have both good performance *and* good error handling, you'll want to move away from sql scripts with psql and toward using perl, python, or similar so you can use their native interfaces to libpq. -- Craig Ringer -- Sent via pgsql-performance mailing list (pgsql-performance@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-performance