mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-21 07:01:59 +00:00
Merge pull request #72155 from ClickHouse/backport/24.8/71982
Backport #71982 to 24.8: Allow only SELECT queries in EXPLAIN AST used inside subquery
This commit is contained in:
commit
81036bd118
@ -140,6 +140,9 @@ bool ParserSubquery::parseImpl(Pos & pos, ASTPtr & node, Expected & expected)
|
|||||||
const ASTPtr & explained_ast = explain_query.getExplainedQuery();
|
const ASTPtr & explained_ast = explain_query.getExplainedQuery();
|
||||||
if (explained_ast)
|
if (explained_ast)
|
||||||
{
|
{
|
||||||
|
if (!explained_ast->as<ASTSelectWithUnionQuery>())
|
||||||
|
throw Exception(ErrorCodes::BAD_ARGUMENTS, "EXPLAIN inside subquery supports only SELECT queries");
|
||||||
|
|
||||||
auto view_explain = makeASTFunction("viewExplain",
|
auto view_explain = makeASTFunction("viewExplain",
|
||||||
std::make_shared<ASTLiteral>(kind_str),
|
std::make_shared<ASTLiteral>(kind_str),
|
||||||
std::make_shared<ASTLiteral>(settings_str),
|
std::make_shared<ASTLiteral>(settings_str),
|
||||||
|
@ -0,0 +1,11 @@
|
|||||||
|
SelectWithUnionQuery (children 1)
|
||||||
|
ExpressionList (children 1)
|
||||||
|
SelectQuery (children 2)
|
||||||
|
ExpressionList (children 1)
|
||||||
|
Asterisk
|
||||||
|
TablesInSelectQuery (children 1)
|
||||||
|
TablesInSelectQueryElement (children 1)
|
||||||
|
TableExpression (children 1)
|
||||||
|
Function numbers (children 1)
|
||||||
|
ExpressionList (children 1)
|
||||||
|
Literal UInt64_10
|
@ -0,0 +1,5 @@
|
|||||||
|
SELECT * FROM ( EXPLAIN AST SELECT * FROM numbers(10) );
|
||||||
|
SELECT * FROM ( EXPLAIN AST CREATE TABLE test ENGINE=Memory ); -- {clientError BAD_ARGUMENTS}
|
||||||
|
SELECT * FROM ( EXPLAIN AST CREATE MATERIALIZED VIEW mv (data String) AS SELECT data FROM table ); -- {clientError BAD_ARGUMENTS}
|
||||||
|
SELECT * FROM ( EXPLAIN AST INSERT INTO TABLE test VALUES); -- {clientError BAD_ARGUMENTS}
|
||||||
|
SELECT * FROM ( EXPLAIN AST ALTER TABLE test MODIFY COLUMN x UInt32 ); -- {clientError BAD_ARGUMENTS}
|
Loading…
Reference in New Issue
Block a user