@@ -21,11 +21,11 @@ DROP TABLE public.aqo_query_texts CASCADE;
2121DROP TABLE public .aqo_query_stat CASCADE;
2222
2323CREATE FUNCTION aqo_queries (
24- OUT queryidbigint ,
25- OUTfspace_hash bigint ,
26- OUT learn_aqoboolean ,
27- OUT use_aqoboolean ,
28- OUT auto_tuningboolean
24+ OUT queryidbigint ,
25+ OUTfs bigint ,
26+ OUT learn_aqoboolean ,
27+ OUT use_aqoboolean ,
28+ OUT auto_tuningboolean
2929)
3030RETURNS SETOF record
3131AS ' MODULE_PATHNAME' ,' aqo_queries'
@@ -91,13 +91,6 @@ CREATE FUNCTION aqo_stat_remove(fs bigint) RETURNS bool
9191AS ' MODULE_PATHNAME'
9292LANGUAGE C STRICT PARALLEL SAFE;
9393
94- -- INSERT INTO aqo_queries VALUES (0, false, false, 0, false);
95- -- a virtual query for COMMON feature space
96-
97- -- CREATE TRIGGER aqo_queries_invalidate AFTER UPDATE OR DELETE OR TRUNCATE
98- -- ON aqo_queries FOR EACH STATEMENT
99- -- EXECUTE PROCEDURE invalidate_deactivated_queries_cache();
100-
10194--
10295-- Show execution time of queries, for which AQO has statistics.
10396-- controlled - show stat on executions where AQO was used for cardinality
@@ -118,7 +111,7 @@ IF (controlled) THEN
118111FROM (
119112SELECT
120113aq .queryid AS queryid,
121- aq .fspace_hash AS fs_hash,
114+ aq .fs AS fs_hash,
122115 execution_time_with_aqo[array_length(execution_time_with_aqo,1 )]AS exectime,
123116 executions_with_aqoAS execs
124117FROM aqo_queries aqJOIN aqo_query_stat aqs
137130FROM (
138131SELECT
139132aq .queryid AS queryid,
140- aq .fspace_hash AS fs_hash,
133+ aq .fs AS fs_hash,
141134 (SELECT AVG (t)FROM unnest(execution_time_without_aqo) t)AS exectime,
142135 executions_without_aqoAS execs
143136FROM aqo_queries aqJOIN aqo_query_stat aqs
@@ -165,7 +158,7 @@ BEGIN
165158 raise EXCEPTION' [AQO] Cannot remove basic class %.' , queryid_rm;
166159 END IF;
167160
168- SELECT fspace_hash FROM aqo_queriesWHERE (queryid= queryid_rm) INTO lfs;
161+ SELECT fs FROM aqo_queriesWHERE (queryid= queryid_rm) INTO lfs;
169162
170163 IF (lfs ISNULL ) THEN
171164 raise WARNING' [AQO] Nothing to remove for the class %.' , queryid_rm;
@@ -258,7 +251,7 @@ IF (controlled) THEN
258251FROM (
259252SELECT
260253aq .queryid AS query_id,
261- aq .fspace_hash AS fs_hash,
254+ aq .fs AS fs_hash,
262255 cardinality_error_with_aqo[array_length(cardinality_error_with_aqo,1 )]AS cerror,
263256 executions_with_aqoAS execs
264257FROM aqo_queries aqJOIN aqo_query_stat aqs
274267FROM (
275268SELECT
276269aq .queryid AS query_id,
277- aq .fspace_hash AS fs_hash,
270+ aq .fs AS fs_hash,
278271(SELECT AVG (t)FROM unnest(cardinality_error_without_aqo) t)AS cerror,
279272 executions_without_aqoAS execs
280273FROM aqo_queries aqJOIN aqo_query_stat aqs
@@ -300,15 +293,15 @@ CREATE OR REPLACE FUNCTION aqo_reset_query(queryid_res bigint)
300293RETURNSinteger AS $$
301294DECLARE
302295 numinteger ;
303- fs bigint ;
296+ lfs bigint ;
304297BEGIN
305298 IF (queryid_res= 0 ) THEN
306299 raise WARNING' [AQO] Reset common feature space.'
307300 END IF;
308301
309- SELECT fspace_hash FROM aqo_queriesWHERE queryid= queryid_res INTOfs ;
310- SELECT count (* )FROM aqo_dataWHERE fspace_hash = fs INTO num;
311- DELETE FROM aqo_dataWHERE fspace_hash = fs ;
302+ SELECT fs FROM aqo_queriesWHERE queryid= queryid_res INTOlfs ;
303+ SELECT count (* )FROM aqo_dataWHERE fs = lfs INTO num;
304+ DELETE FROM aqo_dataWHERE fs = lfs ;
312305 RETURN num;
313306END;
314307$$ LANGUAGE plpgsql;
@@ -329,7 +322,7 @@ RETURNS TABLE (
329322" err_aqo" TEXT ,
330323" iters_aqo" BIGINT
331324)AS $$
332- SELECT learn_aqo,use_aqo,auto_tuning,fspace_hash ,
325+ SELECT learn_aqo,use_aqo,auto_tuning,fs ,
333326to_char(execution_time_without_aqo[n4],' 9.99EEEE' ),
334327to_char(cardinality_error_without_aqo[n2],' 9.99EEEE' ),
335328executions_without_aqo,
@@ -350,35 +343,18 @@ WHERE (aqs.queryid = aq.queryid) AND
350343aqs .queryid = $1 ;
351344$$ LANGUAGE SQL;
352345
353- /* CREATE FUNCTION aqo_enable_query(hash bigint)
354- RETURNS VOID AS $$
355- UPDATE aqo_queries SET
356- learn_aqo = 'true',
357- use_aqo = 'true'
358- WHERE queryid = $1;
359- $$ LANGUAGE SQL;
360-
361- CREATE FUNCTION aqo_disable_query(hash bigint)
362- RETURNS VOID AS $$
363- UPDATE aqo_queries SET
364- learn_aqo = 'false',
365- use_aqo = 'false',
366- auto_tuning = 'false'
367- WHERE queryid = $1;
368- $$ LANGUAGE SQL;
369- */
370-
371- CREATE FUNCTION aqo_enable_query (hashbigint )
346+ CREATE FUNCTION aqo_enable_query (queryidbigint )
372347RETURNS void
373348AS ' MODULE_PATHNAME' ,' aqo_enable_query'
374349LANGUAGE C STRICT VOLATILE;
375350
376- CREATE FUNCTION aqo_disable_query (hash bigint )
351+ CREATE FUNCTION aqo_disable_query (queryid bigint )
377352RETURNS void
378353AS ' MODULE_PATHNAME' ,' aqo_enable_query'
379354LANGUAGE C STRICT VOLATILE;
380355
381- CREATE FUNCTION aqo_queries_update (learn_aqoint , use_aqoint , auto_tuningint )
382- RETURNS void
356+ CREATE FUNCTION aqo_queries_update (queryidbigint , fsbigint , learn_aqo bool,
357+ use_aqo bool, auto_tuning bool)
358+ RETURNS bool
383359AS ' MODULE_PATHNAME' ,' aqo_queries_update'
384- LANGUAGE CSTRICT VOLATILE;
360+ LANGUAGE C VOLATILE;