*** a/src/backend/access/heap/heapam.c
--- b/src/backend/access/heap/heapam.c
***************
*** 5115,5120 **** bool
--- 5115,5134 ----
  heap_freeze_tuple(HeapTupleHeader tuple, TransactionId cutoff_xid,
  				  MultiXactId cutoff_multi)
  {
+ 	return heap_freeze_tuple_impl(tuple, cutoff_xid, cutoff_multi,
+ 								  NULL, NULL);
+ }
+ 
+ /*
+  * This entry point is created to backpatch a fix for the interplay between
+  * freezing and the predicate locks needed for serializable transactions.
+  *
+  * It is created in back-patches to 9.1 and expected to go away again in 9.4.
+  */
+ bool
+ heap_freeze_tuple_impl(HeapTupleHeader tuple, TransactionId cutoff_xid,
+ 					   MultiXactId cutoff_multi, Relation rel, HeapTuple tup)
+ {
  	bool		changed = false;
  	TransactionId xid;
  
***************
*** 5122,5127 **** heap_freeze_tuple(HeapTupleHeader tuple, TransactionId cutoff_xid,
--- 5136,5151 ----
  	if (TransactionIdIsNormal(xid) &&
  		TransactionIdPrecedes(xid, cutoff_xid))
  	{
+ 		/*
+ 		 * Pending predicate locks on the tuple will be made invalid; promote
+ 		 * to page granularity if relation is specified.
+ 		 */
+ 		if (rel != NULL)
+ 		{
+ 			Assert(tup != NULL);
+ 			TransferPredicateTupleLocksToPage(rel, tup);
+ 		}
+ 
  		HeapTupleHeaderSetXmin(tuple, FrozenTransactionId);
  
  		/*
*** a/src/backend/commands/vacuumlazy.c
--- b/src/backend/commands/vacuumlazy.c
***************
*** 867,874 **** lazy_scan_heap(Relation onerel, LVRelStats *vacrelstats,
  				 * Each non-removable tuple must be checked to see if it needs
  				 * freezing.  Note we already have exclusive buffer lock.
  				 */
! 				if (heap_freeze_tuple(tuple.t_data, FreezeLimit,
! 									  MultiXactCutoff))
  					frozen[nfrozen++] = offnum;
  			}
  		}						/* scan along page */
--- 867,874 ----
  				 * Each non-removable tuple must be checked to see if it needs
  				 * freezing.  Note we already have exclusive buffer lock.
  				 */
! 				if (heap_freeze_tuple_impl(tuple.t_data, FreezeLimit,
! 										   MultiXactCutoff, onerel, &tuple))
  					frozen[nfrozen++] = offnum;
  			}
  		}						/* scan along page */
*** a/src/backend/storage/lmgr/predicate.c
--- b/src/backend/storage/lmgr/predicate.c
***************
*** 156,165 ****
   *		PredicateLockTuple(Relation relation, HeapTuple tuple,
   *						Snapshot snapshot)
   *		PredicateLockPageSplit(Relation relation, BlockNumber oldblkno,
!  *							   BlockNumber newblkno);
   *		PredicateLockPageCombine(Relation relation, BlockNumber oldblkno,
!  *								 BlockNumber newblkno);
   *		TransferPredicateLocksToHeapRelation(Relation relation)
   *		ReleasePredicateLocks(bool isCommit)
   *
   * conflict detection (may also trigger rollback)
--- 156,166 ----
   *		PredicateLockTuple(Relation relation, HeapTuple tuple,
   *						Snapshot snapshot)
   *		PredicateLockPageSplit(Relation relation, BlockNumber oldblkno,
!  *							   BlockNumber newblkno)
   *		PredicateLockPageCombine(Relation relation, BlockNumber oldblkno,
!  *								 BlockNumber newblkno)
   *		TransferPredicateLocksToHeapRelation(Relation relation)
+  *		TransferPredicateTupleLocksToPage(Relation relation, HeapTuple tuple)
   *		ReleasePredicateLocks(bool isCommit)
   *
   * conflict detection (may also trigger rollback)
***************
*** 3014,3019 **** TransferPredicateLocksToHeapRelation(Relation relation)
--- 3015,3068 ----
  	DropAllPredicateLocksFromTable(relation, true);
  }
  
+ /*
+  * TransferPredicateTupleLocksToPage
+  *		For a particular tuple, check whether there any predicate locks, and
+  *		transfer them to the page level if found.  This is initially useful
+  *		for tuples which are being frozen while predicate locks are held.
+  *
+  * 		This is being back-patched to 9.1 as part of a fix, and is expected to
+  * 		go away again in 9.4.
+  */
+ void
+ TransferPredicateTupleLocksToPage(Relation relation, HeapTuple tuple)
+ {
+ 	PREDICATELOCKTARGETTAG oldtargettag;
+ 	PREDICATELOCKTARGETTAG newtargettag;
+ 	ItemPointer tid;
+ 	bool		success;
+ 
+ 	if (!PredicateLockingNeededForRelation(relation))
+ 		return;
+ 
+ 	/* This function should only be called for heap tuples. */
+ 	Assert(relation->rd_index == NULL);
+ 
+ 	tid = &(tuple->t_data->t_ctid);
+ 	SET_PREDICATELOCKTARGETTAG_TUPLE(oldtargettag,
+ 									 relation->rd_node.dbNode,
+ 									 relation->rd_id,
+ 									 ItemPointerGetBlockNumber(tid),
+ 									 ItemPointerGetOffsetNumber(tid),
+ 									 HeapTupleHeaderGetXmin(tuple->t_data));
+ 	SET_PREDICATELOCKTARGETTAG_PAGE(newtargettag,
+ 									relation->rd_node.dbNode,
+ 									relation->rd_id,
+ 									ItemPointerGetBlockNumber(tid));
+ 
+ 	LWLockAcquire(SerializablePredicateLockListLock, LW_EXCLUSIVE);
+ 
+ 	/*
+ 	 * Try copying the locks over to the new page's tag, creating it if
+ 	 * necessary.
+ 	 */
+ 	success = TransferPredicateLocksToNewTarget(oldtargettag,
+ 												newtargettag,
+ 												true);
+ 	Assert(success);
+ 
+ 	LWLockRelease(SerializablePredicateLockListLock);
+ }
  
  /*
   *		PredicateLockPageSplit
*** a/src/include/access/heapam.h
--- b/src/include/access/heapam.h
***************
*** 150,155 **** extern HTSU_Result heap_lock_tuple(Relation relation, HeapTuple tuple,
--- 150,157 ----
  extern void heap_inplace_update(Relation relation, HeapTuple tuple);
  extern bool heap_freeze_tuple(HeapTupleHeader tuple, TransactionId cutoff_xid,
  				  TransactionId cutoff_multi);
+ extern bool heap_freeze_tuple_impl(HeapTupleHeader tuple, TransactionId cutoff_xid,
+ 				  TransactionId cutoff_multi, Relation rel, HeapTuple tup);
  extern bool heap_tuple_needs_freeze(HeapTupleHeader tuple, TransactionId cutoff_xid,
  						MultiXactId cutoff_multi, Buffer buf);
  
*** a/src/include/storage/predicate.h
--- b/src/include/storage/predicate.h
***************
*** 52,57 **** extern void PredicateLockTuple(Relation relation, HeapTuple tuple, Snapshot snap
--- 52,58 ----
  extern void PredicateLockPageSplit(Relation relation, BlockNumber oldblkno, BlockNumber newblkno);
  extern void PredicateLockPageCombine(Relation relation, BlockNumber oldblkno, BlockNumber newblkno);
  extern void TransferPredicateLocksToHeapRelation(Relation relation);
+ extern void TransferPredicateTupleLocksToPage(Relation relation, HeapTuple tuple);
  extern void ReleasePredicateLocks(bool isCommit);
  
  /* conflict detection (may also trigger rollback) */
*** /dev/null
--- b/src/test/isolation/expected/freezetest.out
***************
*** 0 ****
--- 1,2507 ----
+ Parsed test spec with 3 sessions
+ 
+ starting permutation: r1 w1 c1 r2 w2 c2 freeze
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c1: COMMIT;
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear_xact1     
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c2: COMMIT;
+ step freeze: VACUUM FREEZE test;
+ 
+ starting permutation: r1 w1 c1 r2 w2 freeze c2
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c1: COMMIT;
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear_xact1     
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step freeze: VACUUM FREEZE test;
+ step c2: COMMIT;
+ 
+ starting permutation: r1 w1 c1 r2 freeze w2 c2
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c1: COMMIT;
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear_xact1     
+ step freeze: VACUUM FREEZE test;
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c2: COMMIT;
+ 
+ starting permutation: r1 w1 c1 freeze r2 w2 c2
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c1: COMMIT;
+ step freeze: VACUUM FREEZE test;
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear_xact1     
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c2: COMMIT;
+ 
+ starting permutation: r1 w1 r2 c1 w2 c2 freeze
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step c1: COMMIT;
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ step c2: COMMIT;
+ step freeze: VACUUM FREEZE test;
+ 
+ starting permutation: r1 w1 r2 c1 w2 freeze c2
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step c1: COMMIT;
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ step freeze: VACUUM FREEZE test;
+ step c2: COMMIT;
+ 
+ starting permutation: r1 w1 r2 c1 freeze w2 c2
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step c1: COMMIT;
+ step freeze: VACUUM FREEZE test;
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ step c2: COMMIT;
+ 
+ starting permutation: r1 w1 r2 w2 c1 c2 freeze
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c1: COMMIT;
+ step c2: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ step freeze: VACUUM FREEZE test;
+ 
+ starting permutation: r1 w1 r2 w2 c1 freeze c2
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c1: COMMIT;
+ step freeze: VACUUM FREEZE test;
+ step c2: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r1 w1 r2 w2 c2 c1 freeze
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c2: COMMIT;
+ step c1: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ step freeze: VACUUM FREEZE test;
+ 
+ starting permutation: r1 w1 r2 w2 c2 freeze c1
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c2: COMMIT;
+ step freeze: VACUUM FREEZE test;
+ step c1: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r1 w1 r2 w2 freeze c1 c2
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step freeze: VACUUM FREEZE test;
+ step c1: COMMIT;
+ step c2: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r1 w1 r2 w2 freeze c2 c1
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step freeze: VACUUM FREEZE test;
+ step c2: COMMIT;
+ step c1: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r1 w1 r2 freeze c1 w2 c2
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step freeze: VACUUM FREEZE test;
+ step c1: COMMIT;
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ step c2: COMMIT;
+ 
+ starting permutation: r1 w1 r2 freeze w2 c1 c2
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step freeze: VACUUM FREEZE test;
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c1: COMMIT;
+ step c2: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r1 w1 r2 freeze w2 c2 c1
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step freeze: VACUUM FREEZE test;
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c2: COMMIT;
+ step c1: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r1 w1 freeze c1 r2 w2 c2
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step freeze: VACUUM FREEZE test;
+ step c1: COMMIT;
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear_xact1     
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c2: COMMIT;
+ 
+ starting permutation: r1 w1 freeze r2 c1 w2 c2
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step freeze: VACUUM FREEZE test;
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step c1: COMMIT;
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ step c2: COMMIT;
+ 
+ starting permutation: r1 w1 freeze r2 w2 c1 c2
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step freeze: VACUUM FREEZE test;
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c1: COMMIT;
+ step c2: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r1 w1 freeze r2 w2 c2 c1
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step freeze: VACUUM FREEZE test;
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c2: COMMIT;
+ step c1: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r1 r2 w1 c1 w2 c2 freeze
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c1: COMMIT;
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ step c2: COMMIT;
+ step freeze: VACUUM FREEZE test;
+ 
+ starting permutation: r1 r2 w1 c1 w2 freeze c2
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c1: COMMIT;
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ step freeze: VACUUM FREEZE test;
+ step c2: COMMIT;
+ 
+ starting permutation: r1 r2 w1 c1 freeze w2 c2
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c1: COMMIT;
+ step freeze: VACUUM FREEZE test;
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ step c2: COMMIT;
+ 
+ starting permutation: r1 r2 w1 w2 c1 c2 freeze
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c1: COMMIT;
+ step c2: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ step freeze: VACUUM FREEZE test;
+ 
+ starting permutation: r1 r2 w1 w2 c1 freeze c2
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c1: COMMIT;
+ step freeze: VACUUM FREEZE test;
+ step c2: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r1 r2 w1 w2 c2 c1 freeze
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c2: COMMIT;
+ step c1: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ step freeze: VACUUM FREEZE test;
+ 
+ starting permutation: r1 r2 w1 w2 c2 freeze c1
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c2: COMMIT;
+ step freeze: VACUUM FREEZE test;
+ step c1: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r1 r2 w1 w2 freeze c1 c2
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step freeze: VACUUM FREEZE test;
+ step c1: COMMIT;
+ step c2: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r1 r2 w1 w2 freeze c2 c1
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step freeze: VACUUM FREEZE test;
+ step c2: COMMIT;
+ step c1: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r1 r2 w1 freeze c1 w2 c2
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step freeze: VACUUM FREEZE test;
+ step c1: COMMIT;
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ step c2: COMMIT;
+ 
+ starting permutation: r1 r2 w1 freeze w2 c1 c2
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step freeze: VACUUM FREEZE test;
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c1: COMMIT;
+ step c2: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r1 r2 w1 freeze w2 c2 c1
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step freeze: VACUUM FREEZE test;
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c2: COMMIT;
+ step c1: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r1 r2 w2 w1 c1 c2 freeze
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c1: COMMIT;
+ step c2: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ step freeze: VACUUM FREEZE test;
+ 
+ starting permutation: r1 r2 w2 w1 c1 freeze c2
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c1: COMMIT;
+ step freeze: VACUUM FREEZE test;
+ step c2: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r1 r2 w2 w1 c2 c1 freeze
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c2: COMMIT;
+ step c1: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ step freeze: VACUUM FREEZE test;
+ 
+ starting permutation: r1 r2 w2 w1 c2 freeze c1
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c2: COMMIT;
+ step freeze: VACUUM FREEZE test;
+ step c1: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r1 r2 w2 w1 freeze c1 c2
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step freeze: VACUUM FREEZE test;
+ step c1: COMMIT;
+ step c2: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r1 r2 w2 w1 freeze c2 c1
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step freeze: VACUUM FREEZE test;
+ step c2: COMMIT;
+ step c1: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r1 r2 w2 c2 w1 c1 freeze
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c2: COMMIT;
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ step c1: COMMIT;
+ step freeze: VACUUM FREEZE test;
+ 
+ starting permutation: r1 r2 w2 c2 w1 freeze c1
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c2: COMMIT;
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ step freeze: VACUUM FREEZE test;
+ step c1: COMMIT;
+ 
+ starting permutation: r1 r2 w2 c2 freeze w1 c1
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c2: COMMIT;
+ step freeze: VACUUM FREEZE test;
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ step c1: COMMIT;
+ 
+ starting permutation: r1 r2 w2 freeze w1 c1 c2
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step freeze: VACUUM FREEZE test;
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c1: COMMIT;
+ step c2: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r1 r2 w2 freeze w1 c2 c1
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step freeze: VACUUM FREEZE test;
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c2: COMMIT;
+ step c1: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r1 r2 w2 freeze c2 w1 c1
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step freeze: VACUUM FREEZE test;
+ step c2: COMMIT;
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ step c1: COMMIT;
+ 
+ starting permutation: r1 r2 freeze w1 c1 w2 c2
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step freeze: VACUUM FREEZE test;
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c1: COMMIT;
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ step c2: COMMIT;
+ 
+ starting permutation: r1 r2 freeze w1 w2 c1 c2
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step freeze: VACUUM FREEZE test;
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c1: COMMIT;
+ step c2: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r1 r2 freeze w1 w2 c2 c1
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step freeze: VACUUM FREEZE test;
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c2: COMMIT;
+ step c1: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r1 r2 freeze w2 w1 c1 c2
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step freeze: VACUUM FREEZE test;
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c1: COMMIT;
+ step c2: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r1 r2 freeze w2 w1 c2 c1
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step freeze: VACUUM FREEZE test;
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c2: COMMIT;
+ step c1: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r1 r2 freeze w2 c2 w1 c1
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step freeze: VACUUM FREEZE test;
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c2: COMMIT;
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ step c1: COMMIT;
+ 
+ starting permutation: r1 freeze w1 c1 r2 w2 c2
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step freeze: VACUUM FREEZE test;
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c1: COMMIT;
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear_xact1     
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c2: COMMIT;
+ 
+ starting permutation: r1 freeze w1 r2 c1 w2 c2
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step freeze: VACUUM FREEZE test;
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step c1: COMMIT;
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ step c2: COMMIT;
+ 
+ starting permutation: r1 freeze w1 r2 w2 c1 c2
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step freeze: VACUUM FREEZE test;
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c1: COMMIT;
+ step c2: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r1 freeze w1 r2 w2 c2 c1
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step freeze: VACUUM FREEZE test;
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c2: COMMIT;
+ step c1: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r1 freeze r2 w1 c1 w2 c2
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step freeze: VACUUM FREEZE test;
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c1: COMMIT;
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ step c2: COMMIT;
+ 
+ starting permutation: r1 freeze r2 w1 w2 c1 c2
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step freeze: VACUUM FREEZE test;
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c1: COMMIT;
+ step c2: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r1 freeze r2 w1 w2 c2 c1
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step freeze: VACUUM FREEZE test;
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c2: COMMIT;
+ step c1: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r1 freeze r2 w2 w1 c1 c2
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step freeze: VACUUM FREEZE test;
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c1: COMMIT;
+ step c2: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r1 freeze r2 w2 w1 c2 c1
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step freeze: VACUUM FREEZE test;
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c2: COMMIT;
+ step c1: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r1 freeze r2 w2 c2 w1 c1
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step freeze: VACUUM FREEZE test;
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c2: COMMIT;
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ step c1: COMMIT;
+ 
+ starting permutation: r2 r1 w1 c1 w2 c2 freeze
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c1: COMMIT;
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ step c2: COMMIT;
+ step freeze: VACUUM FREEZE test;
+ 
+ starting permutation: r2 r1 w1 c1 w2 freeze c2
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c1: COMMIT;
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ step freeze: VACUUM FREEZE test;
+ step c2: COMMIT;
+ 
+ starting permutation: r2 r1 w1 c1 freeze w2 c2
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c1: COMMIT;
+ step freeze: VACUUM FREEZE test;
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ step c2: COMMIT;
+ 
+ starting permutation: r2 r1 w1 w2 c1 c2 freeze
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c1: COMMIT;
+ step c2: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ step freeze: VACUUM FREEZE test;
+ 
+ starting permutation: r2 r1 w1 w2 c1 freeze c2
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c1: COMMIT;
+ step freeze: VACUUM FREEZE test;
+ step c2: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r2 r1 w1 w2 c2 c1 freeze
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c2: COMMIT;
+ step c1: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ step freeze: VACUUM FREEZE test;
+ 
+ starting permutation: r2 r1 w1 w2 c2 freeze c1
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c2: COMMIT;
+ step freeze: VACUUM FREEZE test;
+ step c1: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r2 r1 w1 w2 freeze c1 c2
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step freeze: VACUUM FREEZE test;
+ step c1: COMMIT;
+ step c2: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r2 r1 w1 w2 freeze c2 c1
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step freeze: VACUUM FREEZE test;
+ step c2: COMMIT;
+ step c1: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r2 r1 w1 freeze c1 w2 c2
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step freeze: VACUUM FREEZE test;
+ step c1: COMMIT;
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ step c2: COMMIT;
+ 
+ starting permutation: r2 r1 w1 freeze w2 c1 c2
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step freeze: VACUUM FREEZE test;
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c1: COMMIT;
+ step c2: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r2 r1 w1 freeze w2 c2 c1
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step freeze: VACUUM FREEZE test;
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c2: COMMIT;
+ step c1: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r2 r1 w2 w1 c1 c2 freeze
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c1: COMMIT;
+ step c2: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ step freeze: VACUUM FREEZE test;
+ 
+ starting permutation: r2 r1 w2 w1 c1 freeze c2
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c1: COMMIT;
+ step freeze: VACUUM FREEZE test;
+ step c2: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r2 r1 w2 w1 c2 c1 freeze
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c2: COMMIT;
+ step c1: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ step freeze: VACUUM FREEZE test;
+ 
+ starting permutation: r2 r1 w2 w1 c2 freeze c1
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c2: COMMIT;
+ step freeze: VACUUM FREEZE test;
+ step c1: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r2 r1 w2 w1 freeze c1 c2
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step freeze: VACUUM FREEZE test;
+ step c1: COMMIT;
+ step c2: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r2 r1 w2 w1 freeze c2 c1
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step freeze: VACUUM FREEZE test;
+ step c2: COMMIT;
+ step c1: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r2 r1 w2 c2 w1 c1 freeze
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c2: COMMIT;
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ step c1: COMMIT;
+ step freeze: VACUUM FREEZE test;
+ 
+ starting permutation: r2 r1 w2 c2 w1 freeze c1
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c2: COMMIT;
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ step freeze: VACUUM FREEZE test;
+ step c1: COMMIT;
+ 
+ starting permutation: r2 r1 w2 c2 freeze w1 c1
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c2: COMMIT;
+ step freeze: VACUUM FREEZE test;
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ step c1: COMMIT;
+ 
+ starting permutation: r2 r1 w2 freeze w1 c1 c2
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step freeze: VACUUM FREEZE test;
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c1: COMMIT;
+ step c2: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r2 r1 w2 freeze w1 c2 c1
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step freeze: VACUUM FREEZE test;
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c2: COMMIT;
+ step c1: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r2 r1 w2 freeze c2 w1 c1
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step freeze: VACUUM FREEZE test;
+ step c2: COMMIT;
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ step c1: COMMIT;
+ 
+ starting permutation: r2 r1 freeze w1 c1 w2 c2
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step freeze: VACUUM FREEZE test;
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c1: COMMIT;
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ step c2: COMMIT;
+ 
+ starting permutation: r2 r1 freeze w1 w2 c1 c2
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step freeze: VACUUM FREEZE test;
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c1: COMMIT;
+ step c2: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r2 r1 freeze w1 w2 c2 c1
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step freeze: VACUUM FREEZE test;
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c2: COMMIT;
+ step c1: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r2 r1 freeze w2 w1 c1 c2
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step freeze: VACUUM FREEZE test;
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c1: COMMIT;
+ step c2: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r2 r1 freeze w2 w1 c2 c1
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step freeze: VACUUM FREEZE test;
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c2: COMMIT;
+ step c1: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r2 r1 freeze w2 c2 w1 c1
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step freeze: VACUUM FREEZE test;
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c2: COMMIT;
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ step c1: COMMIT;
+ 
+ starting permutation: r2 w2 r1 w1 c1 c2 freeze
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c1: COMMIT;
+ step c2: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ step freeze: VACUUM FREEZE test;
+ 
+ starting permutation: r2 w2 r1 w1 c1 freeze c2
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c1: COMMIT;
+ step freeze: VACUUM FREEZE test;
+ step c2: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r2 w2 r1 w1 c2 c1 freeze
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c2: COMMIT;
+ step c1: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ step freeze: VACUUM FREEZE test;
+ 
+ starting permutation: r2 w2 r1 w1 c2 freeze c1
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c2: COMMIT;
+ step freeze: VACUUM FREEZE test;
+ step c1: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r2 w2 r1 w1 freeze c1 c2
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step freeze: VACUUM FREEZE test;
+ step c1: COMMIT;
+ step c2: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r2 w2 r1 w1 freeze c2 c1
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step freeze: VACUUM FREEZE test;
+ step c2: COMMIT;
+ step c1: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r2 w2 r1 c2 w1 c1 freeze
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step c2: COMMIT;
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ step c1: COMMIT;
+ step freeze: VACUUM FREEZE test;
+ 
+ starting permutation: r2 w2 r1 c2 w1 freeze c1
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step c2: COMMIT;
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ step freeze: VACUUM FREEZE test;
+ step c1: COMMIT;
+ 
+ starting permutation: r2 w2 r1 c2 freeze w1 c1
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step c2: COMMIT;
+ step freeze: VACUUM FREEZE test;
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ step c1: COMMIT;
+ 
+ starting permutation: r2 w2 r1 freeze w1 c1 c2
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step freeze: VACUUM FREEZE test;
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c1: COMMIT;
+ step c2: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r2 w2 r1 freeze w1 c2 c1
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step freeze: VACUUM FREEZE test;
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c2: COMMIT;
+ step c1: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r2 w2 r1 freeze c2 w1 c1
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step freeze: VACUUM FREEZE test;
+ step c2: COMMIT;
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ step c1: COMMIT;
+ 
+ starting permutation: r2 w2 c2 r1 w1 c1 freeze
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c2: COMMIT;
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple_xact2    
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c1: COMMIT;
+ step freeze: VACUUM FREEZE test;
+ 
+ starting permutation: r2 w2 c2 r1 w1 freeze c1
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c2: COMMIT;
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple_xact2    
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step freeze: VACUUM FREEZE test;
+ step c1: COMMIT;
+ 
+ starting permutation: r2 w2 c2 r1 freeze w1 c1
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c2: COMMIT;
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple_xact2    
+ 7              pear           
+ step freeze: VACUUM FREEZE test;
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c1: COMMIT;
+ 
+ starting permutation: r2 w2 c2 freeze r1 w1 c1
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c2: COMMIT;
+ step freeze: VACUUM FREEZE test;
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple_xact2    
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c1: COMMIT;
+ 
+ starting permutation: r2 w2 freeze r1 w1 c1 c2
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step freeze: VACUUM FREEZE test;
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c1: COMMIT;
+ step c2: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r2 w2 freeze r1 w1 c2 c1
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step freeze: VACUUM FREEZE test;
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c2: COMMIT;
+ step c1: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r2 w2 freeze r1 c2 w1 c1
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step freeze: VACUUM FREEZE test;
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step c2: COMMIT;
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ step c1: COMMIT;
+ 
+ starting permutation: r2 w2 freeze c2 r1 w1 c1
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step freeze: VACUUM FREEZE test;
+ step c2: COMMIT;
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple_xact2    
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c1: COMMIT;
+ 
+ starting permutation: r2 freeze r1 w1 c1 w2 c2
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step freeze: VACUUM FREEZE test;
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c1: COMMIT;
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ step c2: COMMIT;
+ 
+ starting permutation: r2 freeze r1 w1 w2 c1 c2
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step freeze: VACUUM FREEZE test;
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c1: COMMIT;
+ step c2: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r2 freeze r1 w1 w2 c2 c1
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step freeze: VACUUM FREEZE test;
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c2: COMMIT;
+ step c1: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r2 freeze r1 w2 w1 c1 c2
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step freeze: VACUUM FREEZE test;
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c1: COMMIT;
+ step c2: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r2 freeze r1 w2 w1 c2 c1
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step freeze: VACUUM FREEZE test;
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c2: COMMIT;
+ step c1: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r2 freeze r1 w2 c2 w1 c1
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step freeze: VACUUM FREEZE test;
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c2: COMMIT;
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ step c1: COMMIT;
+ 
+ starting permutation: r2 freeze w2 r1 w1 c1 c2
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step freeze: VACUUM FREEZE test;
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c1: COMMIT;
+ step c2: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r2 freeze w2 r1 w1 c2 c1
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step freeze: VACUUM FREEZE test;
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c2: COMMIT;
+ step c1: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: r2 freeze w2 r1 c2 w1 c1
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step freeze: VACUUM FREEZE test;
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step c2: COMMIT;
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ step c1: COMMIT;
+ 
+ starting permutation: r2 freeze w2 c2 r1 w1 c1
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step freeze: VACUUM FREEZE test;
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c2: COMMIT;
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple_xact2    
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c1: COMMIT;
+ 
+ starting permutation: freeze r1 w1 c1 r2 w2 c2
+ step freeze: VACUUM FREEZE test;
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c1: COMMIT;
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear_xact1     
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c2: COMMIT;
+ 
+ starting permutation: freeze r1 w1 r2 c1 w2 c2
+ step freeze: VACUUM FREEZE test;
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step c1: COMMIT;
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ step c2: COMMIT;
+ 
+ starting permutation: freeze r1 w1 r2 w2 c1 c2
+ step freeze: VACUUM FREEZE test;
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c1: COMMIT;
+ step c2: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: freeze r1 w1 r2 w2 c2 c1
+ step freeze: VACUUM FREEZE test;
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c2: COMMIT;
+ step c1: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: freeze r1 r2 w1 c1 w2 c2
+ step freeze: VACUUM FREEZE test;
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c1: COMMIT;
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ step c2: COMMIT;
+ 
+ starting permutation: freeze r1 r2 w1 w2 c1 c2
+ step freeze: VACUUM FREEZE test;
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c1: COMMIT;
+ step c2: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: freeze r1 r2 w1 w2 c2 c1
+ step freeze: VACUUM FREEZE test;
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c2: COMMIT;
+ step c1: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: freeze r1 r2 w2 w1 c1 c2
+ step freeze: VACUUM FREEZE test;
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c1: COMMIT;
+ step c2: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: freeze r1 r2 w2 w1 c2 c1
+ step freeze: VACUUM FREEZE test;
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c2: COMMIT;
+ step c1: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: freeze r1 r2 w2 c2 w1 c1
+ step freeze: VACUUM FREEZE test;
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c2: COMMIT;
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ step c1: COMMIT;
+ 
+ starting permutation: freeze r2 r1 w1 c1 w2 c2
+ step freeze: VACUUM FREEZE test;
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c1: COMMIT;
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ step c2: COMMIT;
+ 
+ starting permutation: freeze r2 r1 w1 w2 c1 c2
+ step freeze: VACUUM FREEZE test;
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c1: COMMIT;
+ step c2: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: freeze r2 r1 w1 w2 c2 c1
+ step freeze: VACUUM FREEZE test;
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c2: COMMIT;
+ step c1: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: freeze r2 r1 w2 w1 c1 c2
+ step freeze: VACUUM FREEZE test;
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c1: COMMIT;
+ step c2: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: freeze r2 r1 w2 w1 c2 c1
+ step freeze: VACUUM FREEZE test;
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c2: COMMIT;
+ step c1: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: freeze r2 r1 w2 c2 w1 c1
+ step freeze: VACUUM FREEZE test;
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c2: COMMIT;
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ step c1: COMMIT;
+ 
+ starting permutation: freeze r2 w2 r1 w1 c1 c2
+ step freeze: VACUUM FREEZE test;
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c1: COMMIT;
+ step c2: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: freeze r2 w2 r1 w1 c2 c1
+ step freeze: VACUUM FREEZE test;
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c2: COMMIT;
+ step c1: COMMIT;
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ 
+ starting permutation: freeze r2 w2 r1 c2 w1 c1
+ step freeze: VACUUM FREEZE test;
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step c2: COMMIT;
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ ERROR:  could not serialize access due to read/write dependencies among transactions
+ step c1: COMMIT;
+ 
+ starting permutation: freeze r2 w2 c2 r1 w1 c1
+ step freeze: VACUUM FREEZE test;
+ step r2: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple          
+ 7              pear           
+ step w2: UPDATE test SET t = 'apple_xact2' WHERE i = 5
+ step c2: COMMIT;
+ step r1: SELECT * FROM test WHERE i IN (5, 7)
+ i              t              
+ 
+ 5              apple_xact2    
+ 7              pear           
+ step w1: UPDATE test SET t = 'pear_xact1' WHERE i = 7
+ step c1: COMMIT;
*** a/src/test/isolation/isolation_schedule
--- b/src/test/isolation/isolation_schedule
***************
*** 10,15 **** test: partial-index
--- 10,16 ----
  test: two-ids
  test: multiple-row-versions
  test: index-only-scan
+ test: freezetest
  test: fk-contention
  test: fk-deadlock
  test: fk-deadlock2
*** /dev/null
--- b/src/test/isolation/specs/freezetest.spec
***************
*** 0 ****
--- 1,38 ----
+ # Test predicate locks with freezing
+ #
+ # This test has two serializable transactions. Both select two rows
+ # from the table, and then update one of them.
+ # If these were serialized (run one at a time), the transaction that
+ # runs later would see one of the rows to be updated.
+ #
+ # This test is similar to simple-write-skew, but it forces index usage
+ # and has a third session to freeze all eligible tuples at each possible
+ # point in each permutation, so it should cover different code paths.
+ #
+ # Any overlap between the transactions must cause a serialization failure.
+ 
+ setup
+ {
+   CREATE TABLE test (i int PRIMARY KEY, t text);
+   INSERT INTO test VALUES (5, 'apple'), (7, 'pear'), (11, 'banana');
+ }
+ 
+ teardown
+ {
+   DROP TABLE test;
+ }
+ 
+ session "s1"
+ setup { BEGIN ISOLATION LEVEL SERIALIZABLE; SET LOCAL enable_seqscan=off; }
+ step "r1" { SELECT * FROM test WHERE i IN (5, 7) }
+ step "w1" { UPDATE test SET t = 'pear_xact1' WHERE i = 7 }
+ step "c1" { COMMIT; }
+ 
+ session "s2"
+ setup { BEGIN ISOLATION LEVEL SERIALIZABLE; SET LOCAL enable_seqscan=off; }
+ step "r2" { SELECT * FROM test WHERE i IN (5, 7) }
+ step "w2" { UPDATE test SET t = 'apple_xact2' WHERE i = 5 }
+ step "c2" { COMMIT; }
+ 
+ session "freezer"
+ step "freeze" { VACUUM FREEZE test; }
