MCPcopy Create free account
hub / github.com/ByConity/ByConity / parseImpl

Method parseImpl

src/Parsers/ParserRefreshQuery.cpp:26–62  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

24namespace DB
25{
26 bool ParserRefreshQuery::parseImpl(Pos & pos, ASTPtr & node, Expected & expected)
27 {
28 auto query = std::make_shared<ASTRefreshQuery>();
29 node = query;
30
31 ParserKeyword s_refresh_view("REFRESH MATERIALIZED VIEW");
32 ParserKeyword s_partition("PARTITION");
33 ParserKeyword s_where("WHERE");
34 ParserKeyword s_sync("SYNC");
35 ParserKeyword s_async("ASYNC");
36 ParserPartition parser_partition(dt);
37 ParserExpression parser_exp(dt);
38
39 if (!s_refresh_view.ignore(pos, expected))
40 return false;
41
42 if (!parseDatabaseAndTableName(pos, expected, query->database, query->table))
43 return false;
44
45 if (s_partition.ignore(pos, expected))
46 {
47 if (!parser_partition.parse(pos, query->partition, expected))
48 return false;
49 }
50 else if (s_where.ignore(pos, expected))
51 {
52 if (!parser_exp.parse(pos, query->where_expr, expected))
53 return false;
54 }
55
56 if (s_sync.ignore(pos, expected))
57 query->async = false;
58 else if (s_async.ignore(pos, expected))
59 query->async = true;
60
61 return true;
62 }
63}

Callers

nothing calls this directly

Calls 3

ignoreMethod · 0.45
parseMethod · 0.45

Tested by

no test coverage detected