#pragma once #include namespace DB { /** SELECT subquery */ class ASTSubquery : public ASTWithAlias { public: /** Get the text that identifies this element. */ String getID() const override { return "Subquery"; } ASTPtr clone() const override { const auto res = std::make_shared(*this); ASTPtr ptr{res}; res->children.clear(); for (const auto & child : children) res->children.emplace_back(child->clone()); return ptr; } protected: void formatImplWithoutAlias(const FormatSettings & settings, FormatState & state, FormatStateStacked frame) const override; void appendColumnNameImpl(WriteBuffer & ostr) const override; }; }