@@ -195,7 +195,7 @@ init_deactivated_queries_storage(void)
195195 MemSet (& hash_ctl , 0 , sizeof (hash_ctl ));
196196 hash_ctl .keysize = sizeof (uint64 );
197197 hash_ctl .entrysize = sizeof (uint64 );
198- deactivated_queries = hash_create ("aqo_deactivated_queries " ,
198+ deactivated_queries = hash_create ("AQO deactivated queries " ,
199199 128 , /* start small and extend */
200200 & hash_ctl ,
201201 HASH_ELEM | HASH_BLOBS );
@@ -207,15 +207,29 @@ query_is_deactivated(uint64 queryid)
207207{
208208 bool found ;
209209
210- hash_search (deactivated_queries , & queryid , HASH_FIND , & found );
210+ ( void ) hash_search (deactivated_queries , & queryid , HASH_FIND , & found );
211211 return found ;
212212}
213213
214214/* Adds given query hash into the set of hashes of deactivated queries */
215215void
216216add_deactivated_query (uint64 queryid )
217217{
218- hash_search (deactivated_queries , & queryid , HASH_ENTER , NULL );
218+ (void ) hash_search (deactivated_queries , & queryid , HASH_ENTER , NULL );
219+ }
220+
221+ static void
222+ reset_deactivated_queries (void )
223+ {
224+ HASH_SEQ_STATUS hash_seq ;
225+ uint64 * queryid ;
226+
227+ hash_seq_init (& hash_seq , deactivated_queries );
228+ while ((queryid = hash_seq_search (& hash_seq )) != NULL )
229+ {
230+ if (!hash_search (deactivated_queries , queryid , HASH_REMOVE , NULL ))
231+ elog (PANIC , "[AQO] hash table corrupted" );
232+ }
219233}
220234
221235/*
@@ -2179,7 +2193,6 @@ aqo_queries_update(PG_FUNCTION_ARGS)
21792193 { PG_ARGISNULL (AQ_FS ), PG_ARGISNULL (AQ_LEARN_AQO ),
21802194 PG_ARGISNULL (AQ_USE_AQO ), PG_ARGISNULL (AQ_AUTO_TUNING ) };
21812195
2182-
21832196 if (PG_ARGISNULL (AQ_QUERYID ))
21842197 PG_RETURN_BOOL (false);
21852198
@@ -2211,6 +2224,10 @@ aqo_reset(PG_FUNCTION_ARGS)
22112224 counter += aqo_qtexts_reset ();
22122225 counter += aqo_data_reset ();
22132226 counter += aqo_queries_reset ();
2227+
2228+ /* Cleanup cache of deactivated queries */
2229+ reset_deactivated_queries ();
2230+
22142231 PG_RETURN_INT64 (counter );
22152232}
22162233
0 commit comments