Peter Eisentraut <peter_e@gmx.net> writes:
>> Sure, because the transaction is rolled back. The whole string
>> is executed in one transaction. You will definitely break existing
>> applications if you change that.
> Applications that rely on this behaviour are broken. It was always said
> that statements are in their own transaction block unless in an explicit
> BEGIN/COMMIT block. A statement is defined to end at the semicolon, not
> at the end of the string you submit to PQexec().
Au contraire: single query strings have always been executed as single
transactions. Whether that would be the most consistent behavior in a
green field is quite irrelevant. We *cannot* change it now, or we will
break existing applications --- silently.
If you can find something in the documentation that states what you
claim is the definition, I'll gladly change it ;-).
regards, tom lane