Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add new profile events for queries with subqueries
Differs from SelectQuery/InsertQuery that it could be > 1 (in case of MATERIALIZED VIEW attached to the table), since each local SELECT/INSERT query is accounted, not only initial. Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
- Loading branch information
Showing
7 changed files
with
188 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
24 changes: 24 additions & 0 deletions
24
tests/queries/0_stateless/02765_queries_with_subqueries_profile_events.reference
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
view allow_experimental_analyzer InsertQuery SelectQuery InsertQueriesWithSubqueries SelectQueriesWithSubqueries QueriesWithSubqueries | ||
1 1 0 1 2 3 | ||
subquery allow_experimental_analyzer InsertQuery SelectQuery InsertQueriesWithSubqueries SelectQueriesWithSubqueries QueriesWithSubqueries | ||
1 0 1 0 2 2 | ||
CSE allow_experimental_analyzer InsertQuery SelectQuery InsertQueriesWithSubqueries SelectQueriesWithSubqueries QueriesWithSubqueries | ||
1 0 1 0 2 2 | ||
CSE_Multi allow_experimental_analyzer InsertQuery SelectQuery InsertQueriesWithSubqueries SelectQueriesWithSubqueries QueriesWithSubqueries | ||
1 0 1 0 2 2 | ||
CTE allow_experimental_analyzer InsertQuery SelectQuery InsertQueriesWithSubqueries SelectQueriesWithSubqueries QueriesWithSubqueries | ||
1 0 1 0 2 2 | ||
CTE_Multi allow_experimental_analyzer InsertQuery SelectQuery InsertQueriesWithSubqueries SelectQueriesWithSubqueries QueriesWithSubqueries | ||
1 0 1 0 4 4 | ||
view allow_experimental_analyzer InsertQuery SelectQuery InsertQueriesWithSubqueries SelectQueriesWithSubqueries QueriesWithSubqueries | ||
1 1 1 0 1 3 4 | ||
subquery allow_experimental_analyzer InsertQuery SelectQuery InsertQueriesWithSubqueries SelectQueriesWithSubqueries QueriesWithSubqueries | ||
1 1 0 1 0 2 2 | ||
CSE allow_experimental_analyzer InsertQuery SelectQuery InsertQueriesWithSubqueries SelectQueriesWithSubqueries QueriesWithSubqueries | ||
1 1 0 1 0 2 2 | ||
CSE_Multi allow_experimental_analyzer InsertQuery SelectQuery InsertQueriesWithSubqueries SelectQueriesWithSubqueries QueriesWithSubqueries | ||
1 1 0 1 0 2 2 | ||
CTE allow_experimental_analyzer InsertQuery SelectQuery InsertQueriesWithSubqueries SelectQueriesWithSubqueries QueriesWithSubqueries | ||
1 1 0 1 0 2 2 | ||
CTE_Multi allow_experimental_analyzer InsertQuery SelectQuery InsertQueriesWithSubqueries SelectQueriesWithSubqueries QueriesWithSubqueries | ||
1 1 0 1 0 4 4 |
120 changes: 120 additions & 0 deletions
120
tests/queries/0_stateless/02765_queries_with_subqueries_profile_events.sh
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,120 @@ | ||
#!/usr/bin/env bash | ||
|
||
CUR_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) | ||
# shellcheck source=../shell_config.sh | ||
. "$CUR_DIR"/../shell_config.sh | ||
|
||
$CLICKHOUSE_CLIENT -n -q " | ||
DROP TABLE IF EXISTS mv; | ||
DROP TABLE IF EXISTS output; | ||
DROP TABLE IF EXISTS input; | ||
CREATE TABLE input (key Int) Engine=Null; | ||
CREATE TABLE output AS input Engine=Null; | ||
CREATE MATERIALIZED VIEW mv TO output AS SELECT * FROM input; | ||
" | ||
|
||
for allow_experimental_analyzer in 0 1; do | ||
query_id="$(random_str 10)" | ||
$CLICKHOUSE_CLIENT --allow_experimental_analyzer "$allow_experimental_analyzer" --query_id "$query_id" -q "INSERT INTO input SELECT * FROM numbers(1)" | ||
$CLICKHOUSE_CLIENT -mn -q " | ||
SYSTEM FLUSH LOGS; | ||
SELECT | ||
1 view, | ||
Settings['allow_experimental_analyzer'] allow_experimental_analyzer, | ||
ProfileEvents['InsertQuery'] InsertQuery, | ||
ProfileEvents['SelectQuery'] SelectQuery, | ||
ProfileEvents['InsertQueriesWithSubqueries'] InsertQueriesWithSubqueries, | ||
-- FIXME: for analyzer it will have one more for sample block | ||
ProfileEvents['SelectQueriesWithSubqueries'] SelectQueriesWithSubqueries, | ||
ProfileEvents['QueriesWithSubqueries'] QueriesWithSubqueries | ||
FROM system.query_log | ||
WHERE current_database = currentDatabase() AND type = 'QueryFinish' AND query_id = '$query_id' | ||
FORMAT TSVWithNames; | ||
" | ||
|
||
query_id="$(random_str 10)" | ||
$CLICKHOUSE_CLIENT --allow_experimental_analyzer "$allow_experimental_analyzer" --query_id "$query_id" -q "SELECT * FROM system.one WHERE dummy IN (SELECT * FROM system.one) FORMAT Null" | ||
$CLICKHOUSE_CLIENT -mn -q " | ||
SYSTEM FLUSH LOGS; | ||
SELECT | ||
1 subquery, | ||
Settings['allow_experimental_analyzer'] allow_experimental_analyzer, | ||
ProfileEvents['InsertQuery'] InsertQuery, | ||
ProfileEvents['SelectQuery'] SelectQuery, | ||
ProfileEvents['InsertQueriesWithSubqueries'] InsertQueriesWithSubqueries, | ||
ProfileEvents['SelectQueriesWithSubqueries'] SelectQueriesWithSubqueries, | ||
ProfileEvents['QueriesWithSubqueries'] QueriesWithSubqueries | ||
FROM system.query_log | ||
WHERE current_database = currentDatabase() AND type = 'QueryFinish' AND query_id = '$query_id' | ||
FORMAT TSVWithNames; | ||
" | ||
|
||
query_id="$(random_str 10)" | ||
$CLICKHOUSE_CLIENT --allow_experimental_analyzer "$allow_experimental_analyzer" --query_id "$query_id" -q "WITH (SELECT * FROM system.one) AS x SELECT x FORMAT Null" | ||
$CLICKHOUSE_CLIENT -mn -q " | ||
SYSTEM FLUSH LOGS; | ||
SELECT | ||
1 CSE, | ||
Settings['allow_experimental_analyzer'] allow_experimental_analyzer, | ||
ProfileEvents['InsertQuery'] InsertQuery, | ||
ProfileEvents['SelectQuery'] SelectQuery, | ||
ProfileEvents['InsertQueriesWithSubqueries'] InsertQueriesWithSubqueries, | ||
ProfileEvents['SelectQueriesWithSubqueries'] SelectQueriesWithSubqueries, | ||
ProfileEvents['QueriesWithSubqueries'] QueriesWithSubqueries | ||
FROM system.query_log | ||
WHERE current_database = currentDatabase() AND type = 'QueryFinish' AND query_id = '$query_id' | ||
FORMAT TSVWithNames; | ||
" | ||
|
||
query_id="$(random_str 10)" | ||
$CLICKHOUSE_CLIENT --allow_experimental_analyzer "$allow_experimental_analyzer" --query_id "$query_id" -q "WITH (SELECT * FROM system.one) AS x SELECT x, x FORMAT Null" | ||
$CLICKHOUSE_CLIENT -mn -q " | ||
SYSTEM FLUSH LOGS; | ||
SELECT | ||
1 CSE_Multi, | ||
Settings['allow_experimental_analyzer'] allow_experimental_analyzer, | ||
ProfileEvents['InsertQuery'] InsertQuery, | ||
ProfileEvents['SelectQuery'] SelectQuery, | ||
ProfileEvents['InsertQueriesWithSubqueries'] InsertQueriesWithSubqueries, | ||
ProfileEvents['SelectQueriesWithSubqueries'] SelectQueriesWithSubqueries, | ||
ProfileEvents['QueriesWithSubqueries'] QueriesWithSubqueries | ||
FROM system.query_log | ||
WHERE current_database = currentDatabase() AND type = 'QueryFinish' AND query_id = '$query_id' | ||
FORMAT TSVWithNames; | ||
" | ||
|
||
query_id="$(random_str 10)" | ||
$CLICKHOUSE_CLIENT --allow_experimental_analyzer "$allow_experimental_analyzer" --query_id "$query_id" -q "WITH x AS (SELECT * FROM system.one) SELECT * FROM x FORMAT Null" | ||
$CLICKHOUSE_CLIENT -mn -q " | ||
SYSTEM FLUSH LOGS; | ||
SELECT | ||
1 CTE, | ||
Settings['allow_experimental_analyzer'] allow_experimental_analyzer, | ||
ProfileEvents['InsertQuery'] InsertQuery, | ||
ProfileEvents['SelectQuery'] SelectQuery, | ||
ProfileEvents['InsertQueriesWithSubqueries'] InsertQueriesWithSubqueries, | ||
ProfileEvents['SelectQueriesWithSubqueries'] SelectQueriesWithSubqueries, | ||
ProfileEvents['QueriesWithSubqueries'] QueriesWithSubqueries | ||
FROM system.query_log | ||
WHERE current_database = currentDatabase() AND type = 'QueryFinish' AND query_id = '$query_id' | ||
FORMAT TSVWithNames; | ||
" | ||
|
||
query_id="$(random_str 10)" | ||
$CLICKHOUSE_CLIENT --allow_experimental_analyzer "$allow_experimental_analyzer" --query_id "$query_id" -q "WITH x AS (SELECT * FROM system.one) SELECT * FROM x UNION ALL SELECT * FROM x FORMAT Null" | ||
$CLICKHOUSE_CLIENT -mn -q " | ||
SYSTEM FLUSH LOGS; | ||
SELECT | ||
1 CTE_Multi, | ||
Settings['allow_experimental_analyzer'] allow_experimental_analyzer, | ||
ProfileEvents['InsertQuery'] InsertQuery, | ||
ProfileEvents['SelectQuery'] SelectQuery, | ||
ProfileEvents['InsertQueriesWithSubqueries'] InsertQueriesWithSubqueries, | ||
ProfileEvents['SelectQueriesWithSubqueries'] SelectQueriesWithSubqueries, | ||
ProfileEvents['QueriesWithSubqueries'] QueriesWithSubqueries | ||
FROM system.query_log | ||
WHERE current_database = currentDatabase() AND type = 'QueryFinish' AND query_id = '$query_id' | ||
FORMAT TSVWithNames; | ||
" | ||
done |