Merge pull request #46947 from ClickHouse/evillique-patch-1

Another fix for clone() for ASTColumnMatchers
This commit is contained in:
Alexey Milovidov 2023-02-27 19:28:30 +03:00 committed by GitHub
commit 866c318c12
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -18,6 +18,7 @@ namespace ErrorCodes
ASTPtr ASTColumnsRegexpMatcher::clone() const ASTPtr ASTColumnsRegexpMatcher::clone() const
{ {
auto clone = std::make_shared<ASTColumnsRegexpMatcher>(*this); auto clone = std::make_shared<ASTColumnsRegexpMatcher>(*this);
clone->children.clear();
if (expression) { clone->expression = expression->clone(); clone->children.push_back(clone->expression); } if (expression) { clone->expression = expression->clone(); clone->children.push_back(clone->expression); }
if (transformers) { clone->transformers = transformers->clone(); clone->children.push_back(clone->transformers); } if (transformers) { clone->transformers = transformers->clone(); clone->children.push_back(clone->transformers); }
@ -91,6 +92,7 @@ bool ASTColumnsRegexpMatcher::isColumnMatching(const String & column_name) const
ASTPtr ASTColumnsListMatcher::clone() const ASTPtr ASTColumnsListMatcher::clone() const
{ {
auto clone = std::make_shared<ASTColumnsListMatcher>(*this); auto clone = std::make_shared<ASTColumnsListMatcher>(*this);
clone->children.clear();
if (expression) { clone->expression = expression->clone(); clone->children.push_back(clone->expression); } if (expression) { clone->expression = expression->clone(); clone->children.push_back(clone->expression); }
if (transformers) { clone->transformers = transformers->clone(); clone->children.push_back(clone->transformers); } if (transformers) { clone->transformers = transformers->clone(); clone->children.push_back(clone->transformers); }
@ -150,6 +152,7 @@ void ASTColumnsListMatcher::formatImpl(const FormatSettings & settings, FormatSt
ASTPtr ASTQualifiedColumnsRegexpMatcher::clone() const ASTPtr ASTQualifiedColumnsRegexpMatcher::clone() const
{ {
auto clone = std::make_shared<ASTQualifiedColumnsRegexpMatcher>(*this); auto clone = std::make_shared<ASTQualifiedColumnsRegexpMatcher>(*this);
clone->children.clear();
if (transformers) { clone->transformers = transformers->clone(); clone->children.push_back(clone->transformers); } if (transformers) { clone->transformers = transformers->clone(); clone->children.push_back(clone->transformers); }
@ -216,6 +219,7 @@ void ASTQualifiedColumnsRegexpMatcher::formatImpl(const FormatSettings & setting
ASTPtr ASTQualifiedColumnsListMatcher::clone() const ASTPtr ASTQualifiedColumnsListMatcher::clone() const
{ {
auto clone = std::make_shared<ASTQualifiedColumnsListMatcher>(*this); auto clone = std::make_shared<ASTQualifiedColumnsListMatcher>(*this);
clone->children.clear();
if (transformers) { clone->transformers = transformers->clone(); clone->children.push_back(clone->transformers); } if (transformers) { clone->transformers = transformers->clone(); clone->children.push_back(clone->transformers); }