-----
(0 rows)
-CREATE TABLE pxtest5 (a SERIAL);
-INSERT INTO pxtest5 DEFAULT VALUES;
-SELECT * FROM pxtest5;
- a
----
- 1
-(1 row)
-
-BEGIN TRANSACTION ISOLATION LEVEL SERIALIZABLE;
- INSERT INTO pxtest5 DEFAULT VALUES;
- INSERT INTO pxtest5 DEFAULT VALUES;
- TRUNCATE pxtest5;
- INSERT INTO pxtest5 DEFAULT VALUES;
-PREPARE TRANSACTION 'trunc-and-pgstat';
-SELECT pg_sleep(0.5);
- pg_sleep
-----------
-
-(1 row)
-
-SELECT n_tup_ins, n_tup_upd, n_tup_del, n_live_tup, n_dead_tup
- FROM pg_stat_user_tables
- WHERE relname='pxtest5';
- n_tup_ins | n_tup_upd | n_tup_del | n_live_tup | n_dead_tup
------------+-----------+-----------+------------+------------
- 1 | 0 | 0 | 1 | 0
-(1 row)
-
-COMMIT PREPARED 'trunc-and-pgstat';
-SELECT pg_sleep(0.5);
- pg_sleep
-----------
-
-(1 row)
-
-SELECT n_tup_ins, n_tup_upd, n_tup_del, n_live_tup, n_dead_tup
- FROM pg_stat_user_tables
- WHERE relname='pxtest5';
- n_tup_ins | n_tup_upd | n_tup_del | n_live_tup | n_dead_tup
------------+-----------+-----------+------------+------------
- 2 | 0 | 0 | 1 | 0
-(1 row)
-
-SELECT * FROM pxtest5;
- a
----
- 4
-(1 row)
-
-- Clean up
DROP TABLE pxtest2;
DROP TABLE pxtest3; -- will still be there if prepared xacts are disabled
ERROR: table "pxtest3" does not exist
DROP TABLE pxtest4;
-DROP TABLE pxtest5;
-----
(0 rows)
-CREATE TABLE pxtest5 (a SERIAL);
-INSERT INTO pxtest5 DEFAULT VALUES;
-SELECT * FROM pxtest5;
- a
----
- 1
-(1 row)
-
-BEGIN TRANSACTION ISOLATION LEVEL SERIALIZABLE;
- INSERT INTO pxtest5 DEFAULT VALUES;
- INSERT INTO pxtest5 DEFAULT VALUES;
- TRUNCATE pxtest5;
- INSERT INTO pxtest5 DEFAULT VALUES;
-PREPARE TRANSACTION 'trunc-and-pgstat';
-ERROR: prepared transactions are disabled
-HINT: Set max_prepared_transactions to a nonzero value.
-SELECT pg_sleep(0.5);
- pg_sleep
-----------
-
-(1 row)
-
-SELECT n_tup_ins, n_tup_upd, n_tup_del, n_live_tup, n_dead_tup
- FROM pg_stat_user_tables
- WHERE relname='pxtest5';
- n_tup_ins | n_tup_upd | n_tup_del | n_live_tup | n_dead_tup
------------+-----------+-----------+------------+------------
- 3 | 0 | 0 | 1 | 2
-(1 row)
-
-COMMIT PREPARED 'trunc-and-pgstat';
-ERROR: prepared transaction with identifier "trunc-and-pgstat" does not exist
-SELECT pg_sleep(0.5);
- pg_sleep
-----------
-
-(1 row)
-
-SELECT n_tup_ins, n_tup_upd, n_tup_del, n_live_tup, n_dead_tup
- FROM pg_stat_user_tables
- WHERE relname='pxtest5';
- n_tup_ins | n_tup_upd | n_tup_del | n_live_tup | n_dead_tup
------------+-----------+-----------+------------+------------
- 3 | 0 | 0 | 1 | 2
-(1 row)
-
-SELECT * FROM pxtest5;
- a
----
- 1
-(1 row)
-
-- Clean up
DROP TABLE pxtest2;
ERROR: table "pxtest2" does not exist
DROP TABLE pxtest3; -- will still be there if prepared xacts are disabled
DROP TABLE pxtest4;
ERROR: table "pxtest4" does not exist
-DROP TABLE pxtest5;
-- There should be no prepared transactions
SELECT gid FROM pg_prepared_xacts;
-CREATE TABLE pxtest5 (a SERIAL);
-INSERT INTO pxtest5 DEFAULT VALUES;
-
-SELECT * FROM pxtest5;
-
-BEGIN TRANSACTION ISOLATION LEVEL SERIALIZABLE;
- INSERT INTO pxtest5 DEFAULT VALUES;
- INSERT INTO pxtest5 DEFAULT VALUES;
- TRUNCATE pxtest5;
- INSERT INTO pxtest5 DEFAULT VALUES;
-PREPARE TRANSACTION 'trunc-and-pgstat';
-
-SELECT pg_sleep(0.5);
-SELECT n_tup_ins, n_tup_upd, n_tup_del, n_live_tup, n_dead_tup
- FROM pg_stat_user_tables
- WHERE relname='pxtest5';
-
-COMMIT PREPARED 'trunc-and-pgstat';
-
-SELECT pg_sleep(0.5);
-SELECT n_tup_ins, n_tup_upd, n_tup_del, n_live_tup, n_dead_tup
- FROM pg_stat_user_tables
- WHERE relname='pxtest5';
-
-SELECT * FROM pxtest5;
-
-- Clean up
DROP TABLE pxtest2;
DROP TABLE pxtest3; -- will still be there if prepared xacts are disabled
DROP TABLE pxtest4;
-DROP TABLE pxtest5;