timescaledb/tsl/test/shared/sql/cagg_compression.sql
Sven Klemm 5c22ef3da2 Rename continuous aggregate tests
Change the prefix for continuous aggregate tests from
continuous_aggs_ to cagg_. This is similar to commit 6a8c2b66
which did this adjustment for isolation tests because we were
running into length limitations for the spec name. This patch
adjusts the remaining tests to be consistent with the naming
used in isolation tests.
2022-01-24 14:12:56 +01:00

98 lines
2.9 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.
SELECT
format('include/%s_setup.sql', :'TEST_BASE_NAME') as "TEST_SETUP_NAME",
format('include/%s_query.sql', :'TEST_BASE_NAME') as "TEST_QUERY_NAME",
format('%s/shared/results/%s_results_source.out', :'TEST_OUTPUT_DIR', :'TEST_BASE_NAME') as "TEST_RESULTS_SOURCE",
format('%s/shared/results/%s_results_target.out', :'TEST_OUTPUT_DIR', :'TEST_BASE_NAME') as "TEST_RESULTS_TARGET"
\gset
SELECT format('\! diff -u --label "Source results" --label "Target results" %s %s', :'TEST_RESULTS_SOURCE', :'TEST_RESULTS_TARGET') as "DIFF_CMD"
\gset
-- Setup
\ir :TEST_SETUP_NAME
\o :TEST_RESULTS_SOURCE
\set TEST_TABLE1 'metrics_compressed_summary'
\set TEST_TABLE2 'devices'
\ir :TEST_QUERY_NAME
\set TEST_TABLE1 'metrics_compressed_summary'
\set TEST_TABLE2 'all_devices'
\ir :TEST_QUERY_NAME
\o
\o :TEST_RESULTS_TARGET
\set TEST_TABLE1 'metrics_summary'
\set TEST_TABLE2 'devices'
\ir :TEST_QUERY_NAME
\set TEST_TABLE1 'metrics_summary'
\set TEST_TABLE2 'all_devices'
\ir :TEST_QUERY_NAME
\o
-- Compare results of CAgg over Compressed and Uncompressed hypertables
:DIFF_CMD
\o :TEST_RESULTS_SOURCE
\set TEST_TABLE1 'metrics_compressed_summary'
\set TEST_TABLE2 'devices'
\ir :TEST_QUERY_NAME
\set TEST_TABLE1 'metrics_compressed_summary'
\set TEST_TABLE2 'all_devices'
\ir :TEST_QUERY_NAME
\o
\o :TEST_RESULTS_TARGET
\set TEST_TABLE1 '(SELECT device_id, time_bucket(INTERVAL $$1 week$$, time) AS bucket, AVG(v2), MIN(v2), MAX(v2) FROM metrics_compressed GROUP BY device_id, bucket)'
\set TEST_TABLE2 'devices'
\ir :TEST_QUERY_NAME
\set TEST_TABLE1 '(SELECT device_id, time_bucket(INTERVAL $$1 week$$, time) AS bucket, AVG(v2), MIN(v2), MAX(v2) FROM metrics_compressed GROUP BY device_id, bucket)'
\set TEST_TABLE2 'all_devices'
\ir :TEST_QUERY_NAME
\o
-- Compare results between CAggs and Original View (to check PG and TSDB machinery)
:DIFF_CMD
-- Decompres 1 chunk from cagg
SELECT CASE WHEN res is NULL THEN NULL
ELSE 'decompress'
END as dec
FROM ( SELECT decompress_chunk(ch) res FROM show_chunks('metrics_compressed_summary') ch ORDER BY ch LIMIT 1) q;
-- Run tests and compare results
\o :TEST_RESULTS_SOURCE
\set TEST_TABLE1 'metrics_compressed_summary'
\set TEST_TABLE2 'devices'
\ir :TEST_QUERY_NAME
\set TEST_TABLE1 'metrics_compressed_summary'
\set TEST_TABLE2 'all_devices'
\ir :TEST_QUERY_NAME
\o
\o :TEST_RESULTS_TARGET
\set TEST_TABLE1 'metrics_summary'
\set TEST_TABLE2 'devices'
\ir :TEST_QUERY_NAME
\set TEST_TABLE1 'metrics_summary'
\set TEST_TABLE2 'all_devices'
\ir :TEST_QUERY_NAME
\o
-- Compare results of CAgg (partial compressed) over Compressed hypertables
:DIFF_CMD
-- Teardown
DROP MATERIALIZED VIEW metrics_compressed_summary;
DROP MATERIALIZED VIEW metrics_summary;
DROP VIEW all_devices;
DROP TABLE extra_devices;