@@ -80,9 +80,6 @@ static void makePackHTAB(Package *package, bool is_trans);
80
80
static inline ChangedObject * makeChangedObject (TransObject * object ,
81
81
MemoryContext ctx );
82
82
83
- /* Hook functions */
84
- static void variable_ExecutorEnd (QueryDesc * queryDesc );
85
-
86
83
#define CHECK_ARGS_FOR_NULL () \
87
84
do { \
88
85
if (fcinfo->argnull[0]) \
@@ -113,9 +110,6 @@ static Oid LastTypeId = InvalidOid;
113
110
*/
114
111
static HASH_SEQ_STATUS * LastHSeqStatus = NULL ;
115
112
116
- /* Saved hook values for recall */
117
- static ExecutorEnd_hook_type prev_ExecutorEnd = NULL ;
118
-
119
113
/* This stack contains lists of changed variables and packages per each subxact level */
120
114
static dlist_head * changesStack = NULL ;
121
115
static MemoryContext changesStackContext = NULL ;
@@ -2120,23 +2114,15 @@ pgvTransCallback(XactEvent event, void *arg)
2120
2114
break ;
2121
2115
}
2122
2116
}
2123
- }
2124
2117
2125
- /*
2126
- * ExecutorEnd hook: clean up hash table sequential scan status
2127
- */
2128
- static void
2129
- variable_ExecutorEnd (QueryDesc * queryDesc )
2130
- {
2131
- if (LastHSeqStatus )
2132
- {
2133
- hash_seq_term (LastHSeqStatus );
2134
- LastHSeqStatus = NULL ;
2135
- }
2136
- if (prev_ExecutorEnd )
2137
- prev_ExecutorEnd (queryDesc );
2138
- else
2139
- standard_ExecutorEnd (queryDesc );
2118
+ if (event == XACT_EVENT_PARALLEL_COMMIT || event == XACT_EVENT_COMMIT ||
2119
+ event == XACT_EVENT_PREPARE ||
2120
+ event == XACT_EVENT_PARALLEL_ABORT || event == XACT_EVENT_ABORT )
2121
+ if (LastHSeqStatus )
2122
+ {
2123
+ hash_seq_term (LastHSeqStatus );
2124
+ LastHSeqStatus = NULL ;
2125
+ }
2140
2126
}
2141
2127
2142
2128
/*
@@ -2147,10 +2133,6 @@ _PG_init(void)
2147
2133
{
2148
2134
RegisterXactCallback (pgvTransCallback , NULL );
2149
2135
RegisterSubXactCallback (pgvSubTransCallback , NULL );
2150
-
2151
- /* Install hooks. */
2152
- prev_ExecutorEnd = ExecutorEnd_hook ;
2153
- ExecutorEnd_hook = variable_ExecutorEnd ;
2154
2136
}
2155
2137
2156
2138
/*
@@ -2161,5 +2143,4 @@ _PG_fini(void)
2161
2143
{
2162
2144
UnregisterXactCallback (pgvTransCallback , NULL );
2163
2145
UnregisterSubXactCallback (pgvSubTransCallback , NULL );
2164
- ExecutorEnd_hook = prev_ExecutorEnd ;
2165
2146
}
0 commit comments