1#pragma once
2
3#include <Parsers/IAST.h>
4
5
6namespace DB
7{
8
9struct AsteriskSemantic;
10struct AsteriskSemanticImpl;
11
12/** Something like t.*
13 * It will have qualifier as its child ASTIdentifier.
14 */
15class ASTQualifiedAsterisk : public IAST
16{
17public:
18 String getID(char) const override { return "QualifiedAsterisk"; }
19 ASTPtr clone() const override
20 {
21 auto clone = std::make_shared<ASTQualifiedAsterisk>(*this);
22 clone->cloneChildren();
23 return clone;
24 }
25 void appendColumnName(WriteBuffer & ostr) const override;
26
27protected:
28 void formatImpl(const FormatSettings & settings, FormatState & state, FormatStateStacked frame) const override;
29
30private:
31 std::shared_ptr<AsteriskSemanticImpl> semantic; /// pimpl
32
33 friend struct AsteriskSemantic;
34};
35
36}
37