mirror of
https://github.com/timescale/timescaledb.git
synced 2025-05-23 22:41:34 +08:00
This patch adds the postgres join tests and adjusts them to run on hypertables. We run the tests once with all optimizations and diff the result with optimization against the result without optimizations to ensure results do not change with optimizations enabled.
43 lines
1.6 KiB
SQL
43 lines
1.6 KiB
SQL
-- This file and its contents are licensed under the Apache License 2.0.
|
|
-- Please see the included NOTICE for copyright information and
|
|
-- LICENSE-APACHE for a copy of the license.
|
|
|
|
-- this test suite is based on the postgres join tests
|
|
--
|
|
-- the tests have been adjusted to work with hypertables
|
|
-- statements that would generate an error have been commented out
|
|
-- because errors don't play nicely with psql output redirection
|
|
-- plan output has been disabled, because we are not interested in
|
|
-- the actual plans produced but in the correctness of the results
|
|
|
|
-- we need superuser because some of the tests modify statistics
|
|
\c :TEST_DBNAME :ROLE_SUPERUSER
|
|
|
|
\set TEST_BASE_NAME join
|
|
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('%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
|
|
|
|
set client_min_messages to warning;
|
|
\ir :TEST_LOAD_NAME
|
|
|
|
\set PREFIX ''
|
|
\set ECHO errors
|
|
-- get results with optimizations disabled
|
|
\o :TEST_RESULTS_UNOPTIMIZED
|
|
SET timescaledb.disable_optimizations TO true;
|
|
\ir :TEST_QUERY_NAME
|
|
\o
|
|
|
|
-- get query results with all optimizations
|
|
\o :TEST_RESULTS_OPTIMIZED
|
|
SET timescaledb.disable_optimizations TO false;
|
|
\ir :TEST_QUERY_NAME
|
|
\o
|
|
|
|
:DIFF_CMD
|