James Le Cuirot <chewi@xxxxxxxxxxxxxxxxx> writes: > This got me wondering what Rails uses. I dug into ActiveRecord and > found that apart from the odd call to PQexec with hardcoded single > statements, it uses PQsendQuery. The libpq docs state a few of the > differences but don't mention whether PQsendQuery automatically creates > a transaction like PQexec does. Please could you clarify this? PG is not capable of executing queries that are not in transactions, so yes, PQsendQuery will create a single-statement transaction if you haven't sent BEGIN. However, there's a huge difference for the purposes we're discussing here: PQsendQuery does not allow more than one SQL command in the string. So most of this discussion is irrelevant when you're going through that API. regards, tom lane