mirror of
https://github.com/timescale/timescaledb.git
synced 2025-05-17 19:13:16 +08:00
54 lines
1.6 KiB
SQL
54 lines
1.6 KiB
SQL
-- This file and its contents are licensed under the Timescale License.
|
|
-- Please see the included NOTICE for copyright information and
|
|
-- LICENSE-TIMESCALE for a copy of the license.
|
|
|
|
SET timezone TO 'America/Los_Angeles';
|
|
|
|
\set TEST_BASE_NAME jit
|
|
SELECT format('include/%s_load.sql', :'TEST_BASE_NAME') as "TEST_LOAD_NAME",
|
|
format('include/%s_query.sql', :'TEST_BASE_NAME') as "TEST_QUERY_NAME",
|
|
format('include/%s_cleanup.sql', :'TEST_BASE_NAME') as "TEST_CLEANUP_NAME",
|
|
format('%s/results/%s_results_optimized.out', :'TEST_OUTPUT_DIR', :'TEST_BASE_NAME') as "TEST_RESULTS_OPTIMIZED",
|
|
format('%s/results/%s_results_unoptimized.out', :'TEST_OUTPUT_DIR', :'TEST_BASE_NAME') as "TEST_RESULTS_UNOPTIMIZED"
|
|
\gset
|
|
SELECT format('\! diff -u --label "Unoptimized results" --label "Optimized results" %s %s', :'TEST_RESULTS_UNOPTIMIZED', :'TEST_RESULTS_OPTIMIZED') as "DIFF_CMD"
|
|
\gset
|
|
|
|
-- enable all jit optimizations
|
|
SET jit=on;
|
|
SET jit_above_cost=0;
|
|
SET jit_inline_above_cost=0;
|
|
SET jit_optimize_above_cost=0;
|
|
SET jit_tuple_deforming=on;
|
|
SET enable_hashagg=off;
|
|
|
|
\ir :TEST_LOAD_NAME
|
|
\set PREFIX 'EXPLAIN (VERBOSE, TIMING OFF, COSTS OFF, SUMMARY OFF)'
|
|
\ir :TEST_QUERY_NAME
|
|
|
|
-- generate the results into two different files
|
|
\set ECHO errors
|
|
SET client_min_messages TO error;
|
|
\set PREFIX ''
|
|
|
|
-- get query results with jit enabled
|
|
\o :TEST_RESULTS_OPTIMIZED
|
|
\ir :TEST_QUERY_NAME
|
|
\o
|
|
|
|
-- disable jit optimizations and repeat
|
|
SET jit=off;
|
|
|
|
\o /dev/null
|
|
\ir :TEST_CLEANUP_NAME
|
|
\ir :TEST_LOAD_NAME
|
|
\o :TEST_RESULTS_UNOPTIMIZED
|
|
\ir :TEST_QUERY_NAME
|
|
\o
|
|
|
|
-- compare jit vs non-jit output
|
|
:DIFF_CMD
|
|
|
|
\set ECHO queries
|
|
\qecho '--TEST END--'
|