@@ -1856,6 +1856,7 @@ typedef struct {
1856
1856
void * SPIState ;
1857
1857
void * SnapshotState ;
1858
1858
void * PredicateState ;
1859
+ void * StorageState ;
1859
1860
struct TransInvalidationInfo * InvalidationInfo ;
1860
1861
1861
1862
List * on_commit_actions ;
@@ -2197,19 +2198,16 @@ CommitTransaction(void)
2197
2198
RESOURCE_RELEASE_AFTER_LOCKS ,
2198
2199
true, true);
2199
2200
2200
- if (!is_autonomous_transaction )
2201
- {
2202
- /*
2203
- * Likewise, dropping of files deleted during the transaction is best done
2204
- * after releasing relcache and buffer pins. (This is not strictly
2205
- * necessary during commit, since such pins should have been released
2206
- * already, but this ordering is definitely critical during abort.) Since
2207
- * this may take many seconds, also delay until after releasing locks.
2208
- * Other backends will observe the attendant catalog changes and not
2209
- * attempt to access affected files.
2210
- */
2211
- smgrDoPendingDeletes (true);
2212
- }
2201
+ /*
2202
+ * Likewise, dropping of files deleted during the transaction is best done
2203
+ * after releasing relcache and buffer pins. (This is not strictly
2204
+ * necessary during commit, since such pins should have been released
2205
+ * already, but this ordering is definitely critical during abort.) Since
2206
+ * this may take many seconds, also delay until after releasing locks.
2207
+ * Other backends will observe the attendant catalog changes and not
2208
+ * attempt to access affected files.
2209
+ */
2210
+ smgrDoPendingDeletes (true);
2213
2211
2214
2212
AtCommit_Notify ();
2215
2213
AtEOXact_GUC (true, s -> gucNestLevel );
@@ -3532,7 +3530,8 @@ void SuspendTransaction(void)
3532
3530
3533
3531
sus -> SnapshotState = SuspendSnapshot (); /* only before the resource-owner stuff */
3534
3532
sus -> PredicateState = SuspendPredicate ();
3535
-
3533
+ sus -> StorageState = SuspendStorage ();
3534
+
3536
3535
if (HasCatcacheInvalidationMessages ())
3537
3536
{
3538
3537
ResetCatalogCaches ();
@@ -3655,6 +3654,7 @@ bool ResumeTransaction(void)
3655
3654
3656
3655
ResumeSnapshot (sus -> SnapshotState ); /* only after the resource-owner stuff */
3657
3656
ResumePredicate (sus -> PredicateState );
3657
+ ResumeStorage (sus -> StorageState );
3658
3658
ResumeInvalidationInfo (sus -> InvalidationInfo );
3659
3659
if (xactHasCatcacheInvalidationMessages )
3660
3660
{
0 commit comments