From 6fe26d24e7f2aaf140e040be7b97dc7ce86a82e1 Mon Sep 17 00:00:00 2001 From: Pablo Alegre Date: Wed, 9 Mar 2022 17:27:38 +0100 Subject: [PATCH] Add test for #26965 * Add a test for 'WITH'+CTE performance if enable_global_with_statement is enabled --- ...t_enable_with_statement_cte_perf.reference | 4 +++ ...233_set_enable_with_statement_cte_perf.sql | 27 +++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 tests/queries/0_stateless/02233_set_enable_with_statement_cte_perf.reference create mode 100644 tests/queries/0_stateless/02233_set_enable_with_statement_cte_perf.sql diff --git a/tests/queries/0_stateless/02233_set_enable_with_statement_cte_perf.reference b/tests/queries/0_stateless/02233_set_enable_with_statement_cte_perf.reference new file mode 100644 index 00000000000..d97ba04b8c3 --- /dev/null +++ b/tests/queries/0_stateless/02233_set_enable_with_statement_cte_perf.reference @@ -0,0 +1,4 @@ +1000 +1000 +1000 +3 diff --git a/tests/queries/0_stateless/02233_set_enable_with_statement_cte_perf.sql b/tests/queries/0_stateless/02233_set_enable_with_statement_cte_perf.sql new file mode 100644 index 00000000000..bae7e562d6c --- /dev/null +++ b/tests/queries/0_stateless/02233_set_enable_with_statement_cte_perf.sql @@ -0,0 +1,27 @@ +DROP TABLE IF EXISTS ev; +DROP TABLE IF EXISTS idx; + +CREATE TABLE ev (a Int32, b Int32) Engine=MergeTree() ORDER BY a; +CREATE TABLE idx (a Int32) Engine=MergeTree() ORDER BY a; +INSERT INTO ev SELECT number, number FROM numbers(100000000); +INSERT INTO idx SELECT number*5 FROM numbers(1000); + +SET enable_global_with_statement = 1; + +-- test_enable_global_with_statement_performance_1 +WITH 'test' AS u SELECT count()FROM ev WHERE a IN (SELECT a FROM idx); + +-- test_enable_global_with_statement_performance_2 +SELECT count() FROM ev WHERE a IN (SELECT a FROM idx); + +SET enable_global_with_statement = 0; + +-- test_enable_global_with_statement_performance_3 +WITH 'test' AS u SELECT count() FROM ev WHERE a IN (SELECT a FROM idx); + +SYSTEM FLUSH LOGS; + +SELECT count(read_rows) FROM (SELECT read_rows FROM system.query_log WHERE current_database=currentDatabase() AND type='QueryFinish' AND query LIKE '%test_enable_global_with_statement_performance%' ORDER BY event_date, event_time DESC LIMIT 3) GROUP BY read_rows; + +DROP TABLE IF EXISTS ev; +DROP TABLE IF EXISTS idx; \ No newline at end of file