22
33PG_MODULE_MAGIC ;
44
5- void _PG_init (void );
6- void _PG_fini ( void );
5+ void _PG_init (void );
6+
77
88/* Strategy of determining feature space for new queries. */
99int aqo_mode ;
@@ -50,17 +50,17 @@ boolexplain_aqo;
5050instr_time query_starttime ;
5151double query_planning_time ;
5252
53- /* Saved hook valuesin case of unload */
54- post_parse_analyze_hook_type prev_post_parse_analyze_hook ;
55- planner_hook_type prev_planner_hook ;
56- ExecutorStart_hook_type prev_ExecutorStart_hook ;
57- ExecutorEnd_hook_type prev_ExecutorEnd_hook ;
58- set_baserel_rows_estimate_hook_type prev_set_baserel_rows_estimate_hook ;
59- get_parameterized_baserel_size_hook_type prev_get_parameterized_baserel_size_hook ;
60- set_joinrel_size_estimates_hook_type prev_set_joinrel_size_estimates_hook ;
61- get_parameterized_joinrel_size_hook_type prev_get_parameterized_joinrel_size_hook ;
62- copy_generic_path_info_hook_type prev_copy_generic_path_info_hook ;
63- ExplainOnePlan_hook_type prev_ExplainOnePlan_hook ;
53+ /* Saved hook values */
54+ post_parse_analyze_hook_type prev_post_parse_analyze_hook ;
55+ planner_hook_type prev_planner_hook ;
56+ ExecutorStart_hook_type prev_ExecutorStart_hook ;
57+ ExecutorEnd_hook_type prev_ExecutorEnd_hook ;
58+ set_baserel_rows_estimate_hook_type prev_set_baserel_rows_estimate_hook ;
59+ get_parameterized_baserel_size_hook_type prev_get_parameterized_baserel_size_hook ;
60+ set_joinrel_size_estimates_hook_type prev_set_joinrel_size_estimates_hook ;
61+ get_parameterized_joinrel_size_hook_type prev_get_parameterized_joinrel_size_hook ;
62+ copy_generic_path_info_hook_type prev_copy_generic_path_info_hook ;
63+ ExplainOnePlan_hook_type prev_ExplainOnePlan_hook ;
6464
6565/*****************************************************************************
6666 *
@@ -83,49 +83,28 @@ _PG_init(void)
8383NULL ,
8484NULL );
8585
86- prev_planner_hook = planner_hook ;
87- planner_hook = & aqo_planner ;
88- prev_post_parse_analyze_hook = post_parse_analyze_hook ;
89- post_parse_analyze_hook = & get_query_text ;
90- prev_ExecutorStart_hook = ExecutorStart_hook ;
91- ExecutorStart_hook = & aqo_ExecutorStart ;
92- prev_ExecutorEnd_hook = ExecutorEnd_hook ;
93- ExecutorEnd_hook = & learn_query_stat ;
94- prev_set_baserel_rows_estimate_hook = set_baserel_rows_estimate_hook ;
95- set_baserel_rows_estimate_hook = & aqo_set_baserel_rows_estimate ;
96- prev_get_parameterized_baserel_size_hook =
97- get_parameterized_baserel_size_hook ;
98- get_parameterized_baserel_size_hook =
99- & aqo_get_parameterized_baserel_size ;
100- prev_set_joinrel_size_estimates_hook = set_joinrel_size_estimates_hook ;
101- set_joinrel_size_estimates_hook = & aqo_set_joinrel_size_estimates ;
102- prev_get_parameterized_joinrel_size_hook =
103- get_parameterized_joinrel_size_hook ;
104- get_parameterized_joinrel_size_hook =
105- & aqo_get_parameterized_joinrel_size ;
106- prev_copy_generic_path_info_hook = copy_generic_path_info_hook ;
107- copy_generic_path_info_hook = & aqo_copy_generic_path_info ;
108- prev_ExplainOnePlan_hook = ExplainOnePlan_hook ;
109- ExplainOnePlan_hook = print_into_explain ;
110- init_deactivated_queries_storage ();
111- }
86+ prev_planner_hook = planner_hook ;
87+ planner_hook = aqo_planner ;
88+ prev_post_parse_analyze_hook = post_parse_analyze_hook ;
89+ post_parse_analyze_hook = get_query_text ;
90+ prev_ExecutorStart_hook = ExecutorStart_hook ;
91+ ExecutorStart_hook = aqo_ExecutorStart ;
92+ prev_ExecutorEnd_hook = ExecutorEnd_hook ;
93+ ExecutorEnd_hook = learn_query_stat ;
94+ prev_set_baserel_rows_estimate_hook = set_baserel_rows_estimate_hook ;
95+ set_baserel_rows_estimate_hook = aqo_set_baserel_rows_estimate ;
96+ prev_get_parameterized_baserel_size_hook = get_parameterized_baserel_size_hook ;
97+ get_parameterized_baserel_size_hook = aqo_get_parameterized_baserel_size ;
98+ prev_set_joinrel_size_estimates_hook = set_joinrel_size_estimates_hook ;
99+ set_joinrel_size_estimates_hook = aqo_set_joinrel_size_estimates ;
100+ prev_get_parameterized_joinrel_size_hook = get_parameterized_joinrel_size_hook ;
101+ get_parameterized_joinrel_size_hook = aqo_get_parameterized_joinrel_size ;
102+ prev_copy_generic_path_info_hook = copy_generic_path_info_hook ;
103+ copy_generic_path_info_hook = aqo_copy_generic_path_info ;
104+ prev_ExplainOnePlan_hook = ExplainOnePlan_hook ;
105+ ExplainOnePlan_hook = print_into_explain ;
112106
113- void
114- _PG_fini (void )
115- {
116- planner_hook = prev_planner_hook ;
117- post_parse_analyze_hook = prev_post_parse_analyze_hook ;
118- ExecutorStart_hook = prev_ExecutorStart_hook ;
119- ExecutorEnd_hook = prev_ExecutorEnd_hook ;
120- set_baserel_rows_estimate_hook = prev_set_baserel_rows_estimate_hook ;
121- get_parameterized_baserel_size_hook =
122- prev_get_parameterized_baserel_size_hook ;
123- set_joinrel_size_estimates_hook = prev_set_joinrel_size_estimates_hook ;
124- get_parameterized_joinrel_size_hook =
125- prev_get_parameterized_joinrel_size_hook ;
126- copy_generic_path_info_hook = prev_copy_generic_path_info_hook ;
127- ExplainOnePlan_hook = prev_ExplainOnePlan_hook ;
128- fini_deactivated_queries_storage ();
107+ init_deactivated_queries_storage ();
129108}
130109
131110PG_FUNCTION_INFO_V1 (invalidate_deactivated_queries_cache );