mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-22 01:30:51 +00:00
dbms: implement ASTSubquery::clone properly. [#METR-13399]
This commit is contained in:
parent
dcae14d25e
commit
29de25c608
@ -14,21 +14,22 @@ using Poco::SharedPtr;
|
||||
class ASTExpressionList : public IAST
|
||||
{
|
||||
public:
|
||||
ASTExpressionList() {}
|
||||
ASTExpressionList() = default;
|
||||
ASTExpressionList(StringRange range_) : IAST(range_) {}
|
||||
|
||||
/** Получить текст, который идентифицирует этот элемент. */
|
||||
String getID() const { return "ExpressionList"; }
|
||||
String getID() const override { return "ExpressionList"; }
|
||||
|
||||
ASTPtr clone() const
|
||||
ASTPtr clone() const override
|
||||
{
|
||||
ASTExpressionList * res = new ASTExpressionList(*this);
|
||||
const auto res = new ASTExpressionList(*this);
|
||||
ASTPtr ptr{res};
|
||||
res->children.clear();
|
||||
|
||||
for (ASTs::const_iterator it = children.begin(); it != children.end(); ++it)
|
||||
res->children.push_back((*it)->clone());
|
||||
for (const auto & child : children)
|
||||
res->children.emplace_back(child->clone());
|
||||
|
||||
return res;
|
||||
return ptr;
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -9,25 +9,30 @@ namespace DB
|
||||
{
|
||||
|
||||
|
||||
/** Подзарос SELECT в секции IN.
|
||||
/** Подзарос SELECT
|
||||
*/
|
||||
class ASTSubquery : public IAST
|
||||
{
|
||||
public:
|
||||
/// тип возвращаемого значения
|
||||
DataTypePtr return_type;
|
||||
/// номер столбца возвращаемого значения
|
||||
size_t return_column_number;
|
||||
|
||||
ASTSubquery() {}
|
||||
ASTSubquery(StringRange range_) : IAST(range_), return_column_number(0) {}
|
||||
ASTSubquery() = default;
|
||||
ASTSubquery(StringRange range_) : IAST(range_) {}
|
||||
|
||||
/** Получить текст, который идентифицирует этот элемент. */
|
||||
String getID() const { return "Subquery"; };
|
||||
String getID() const override { return "Subquery"; }
|
||||
|
||||
ASTPtr clone() const { return new ASTSubquery(*this); }
|
||||
ASTPtr clone() const override
|
||||
{
|
||||
const auto res = new ASTSubquery{*this};
|
||||
ASTPtr ptr{res};
|
||||
res->children.clear();
|
||||
|
||||
String getColumnName() const { return getTreeID(); }
|
||||
for (const auto & child : children)
|
||||
res->children.emplace_back(child->clone());
|
||||
|
||||
return ptr;
|
||||
}
|
||||
|
||||
String getColumnName() const override { return getTreeID(); }
|
||||
};
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user