Preparing an invalid statement during a transaction should put that transaction in the Aborted state. PGAdapter does not do that:
PGAdapter
knut-test-db=> begin;
BEGIN
knut-test-db=*> prepare s as select * from foo;
ERROR: relation "foo" does not exist - Statement: 'select * from foo'
knut-test-db=*> select 1;
?column?
----------
1
(1 row)
knut-test-db=*> rollback;
ROLLBACK
knut-test-db=>
PostgreSQL
knut-test-db=# select * from foo;
id | colfoo
----+---------
1 | (1,One)
(1 row)
knut-test-db=# begin;
BEGIN
knut-test-db=*# prepare s as select * from bar;
ERROR: relation "bar" does not exist
LINE 1: prepare s as select * from bar;
^
knut-test-db=!# select 1;
ERROR: current transaction is aborted, commands ignored until end of transaction block
knut-test-db=!#
Preparing an invalid statement during a transaction should put that transaction in the Aborted state. PGAdapter does not do that:
PGAdapter
PostgreSQL