"Peter Garner" <peter.garner@toward.com> writes:
> However, it seems to me that if certain
> queries fail, the current transaction is aborted and all
> queries are ignored until the transaction is ended, either
> via commit or rollback.
*Any* backend-detected "fatal" error causes the transaction to
be aborted. I've kinda wished that transactions (atomic update)
could be separated from error-abort also, but right now the two
always go together in Postgres.
> Also if there is no begin
> transaction block, I assume that each statement is a unit
> of work and that all subsequent queries will work.
Right: a statement appearing outside any begin-transaction block
is treated as a self-contained transaction.
regards, tom lane