mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-21 17:20:50 +00:00
Fix msan crash from #22517.
This commit is contained in:
parent
6ebc11ff4e
commit
1c1cc22a06
@ -157,9 +157,12 @@ void ExecuteScalarSubqueriesMatcher::visit(const ASTSubquery & subquery, ASTPtr
|
||||
if (data.only_analyze || !settings.enable_scalar_subquery_optimization || worthConvertingToLiteral(scalar)
|
||||
|| !data.getContext()->hasQueryContext())
|
||||
{
|
||||
auto alias = subquery.alias;
|
||||
auto prefer_alias_to_column_name = subquery.prefer_alias_to_column_name;
|
||||
|
||||
auto lit = std::make_unique<ASTLiteral>((*scalar.safeGetByPosition(0).column)[0]);
|
||||
lit->alias = subquery.alias;
|
||||
lit->prefer_alias_to_column_name = subquery.prefer_alias_to_column_name;
|
||||
lit->alias = alias;
|
||||
lit->prefer_alias_to_column_name = prefer_alias_to_column_name;
|
||||
ast = addTypeConversionToAST(std::move(lit), scalar.safeGetByPosition(0).type->getName());
|
||||
|
||||
/// If only analyze was requested the expression is not suitable for constant folding, disable it.
|
||||
@ -167,8 +170,8 @@ void ExecuteScalarSubqueriesMatcher::visit(const ASTSubquery & subquery, ASTPtr
|
||||
{
|
||||
ast->as<ASTFunction>()->alias.clear();
|
||||
auto func = makeASTFunction("identity", std::move(ast));
|
||||
func->alias = subquery.alias;
|
||||
func->prefer_alias_to_column_name = subquery.prefer_alias_to_column_name;
|
||||
func->alias = alias;
|
||||
func->prefer_alias_to_column_name = prefer_alias_to_column_name;
|
||||
ast = std::move(func);
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1 @@
|
||||
0
|
@ -0,0 +1,3 @@
|
||||
SELECT a FROM (SELECT ignore((SELECT 1)) AS a, a AS b);
|
||||
|
||||
SELECT x FROM (SELECT dummy AS x, plus(ignore(ignore(ignore(ignore('-922337203.6854775808', ignore(NULL)), ArrLen = 256, ignore(100, Arr.C3, ignore(NULL), (SELECT 10.000100135803223, count(*) FROM system.time_zones) > NULL)))), dummy, 65535) AS dummy ORDER BY ignore(-2) ASC, identity(x) DESC NULLS FIRST) FORMAT Null; -- { serverError 47 }
|
Loading…
Reference in New Issue
Block a user