1 | #pragma once |
2 | |
3 | #include <Parsers/IParserBase.h> |
4 | |
5 | |
6 | namespace DB |
7 | { |
8 | |
9 | /** List of single or multiple JOIN-ed tables or subqueries in SELECT query, with ARRAY JOINs and SAMPLE, FINAL modifiers. |
10 | */ |
11 | class ParserTablesInSelectQuery : public IParserBase |
12 | { |
13 | protected: |
14 | const char * getName() const { return "table, table function, subquery or list of joined tables" ; } |
15 | bool parseImpl(Pos & pos, ASTPtr & node, Expected & expected); |
16 | }; |
17 | |
18 | |
19 | class ParserTablesInSelectQueryElement : public IParserBase |
20 | { |
21 | public: |
22 | ParserTablesInSelectQueryElement(bool is_first_) : is_first(is_first_) {} |
23 | |
24 | protected: |
25 | const char * getName() const { return "table, table function, subquery or list of joined tables" ; } |
26 | bool parseImpl(Pos & pos, ASTPtr & node, Expected & expected); |
27 | |
28 | private: |
29 | bool is_first; |
30 | }; |
31 | |
32 | |
33 | class ParserTableExpression : public IParserBase |
34 | { |
35 | protected: |
36 | const char * getName() const { return "table or subquery or table function" ; } |
37 | bool parseImpl(Pos & pos, ASTPtr & node, Expected & expected); |
38 | }; |
39 | |
40 | |
41 | class ParserArrayJoin : public IParserBase |
42 | { |
43 | protected: |
44 | const char * getName() const { return "array join" ; } |
45 | bool parseImpl(Pos & pos, ASTPtr & node, Expected & expected); |
46 | }; |
47 | |
48 | |
49 | } |
50 | |