mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-24 08:32:02 +00:00
fix duplicated any function rewrite (#13419)
This commit is contained in:
parent
cece629145
commit
e05dc65e73
@ -14,7 +14,7 @@ namespace DB
|
|||||||
namespace
|
namespace
|
||||||
{
|
{
|
||||||
|
|
||||||
bool extractIdentifiers(const ASTFunction & func, std::vector<ASTPtr *> & identifiers)
|
bool extractIdentifiers(const ASTFunction & func, std::unordered_set<ASTPtr *> & identifiers)
|
||||||
{
|
{
|
||||||
for (auto & arg : func.arguments->children)
|
for (auto & arg : func.arguments->children)
|
||||||
{
|
{
|
||||||
@ -30,7 +30,7 @@ bool extractIdentifiers(const ASTFunction & func, std::vector<ASTPtr *> & identi
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
else if (arg->as<ASTIdentifier>())
|
else if (arg->as<ASTIdentifier>())
|
||||||
identifiers.emplace_back(&arg);
|
identifiers.emplace(&arg);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@ -67,7 +67,7 @@ void RewriteAnyFunctionMatcher::visit(const ASTFunction & func, ASTPtr & ast, Da
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<ASTPtr *> identifiers;
|
std::unordered_set<ASTPtr *> identifiers; /// implicit remove duplicates
|
||||||
if (!extractIdentifiers(func, identifiers))
|
if (!extractIdentifiers(func, identifiers))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -0,0 +1 @@
|
|||||||
|
1
|
@ -0,0 +1 @@
|
|||||||
|
SELECT any(if(if(x, 1, 2) AS a_, a_, 0)) FROM (SELECT 1 AS x);
|
Loading…
Reference in New Issue
Block a user