MCPcopy Create free account
hub / github.com/AfterShip/clickhouse-sql-parser / parseSystemFlushExpr

Method parseSystemFlushExpr

parser/parse_system.go:36–63  ·  view source on GitHub ↗
(pos Pos)

Source from the content-addressed store, hash-verified

34}
35
36func (p *Parser) parseSystemFlushExpr(pos Pos) (*SystemFlushExpr, error) {
37 if err := p.expectKeyword(KeywordFlush); err != nil {
38 return nil, err
39 }
40
41 switch {
42 case p.matchKeyword(KeywordLogs):
43 lastToken := p.last()
44 _ = p.lexer.consumeToken()
45 return &SystemFlushExpr{
46 FlushPos: pos,
47 StatementEnd: lastToken.End,
48 Logs: true,
49 }, nil
50 case p.tryConsumeKeywords(KeywordDistributed):
51 distributed, err := p.parseTableIdentifier(p.Pos())
52 if err != nil {
53 return nil, err
54 }
55 return &SystemFlushExpr{
56 FlushPos: pos,
57 StatementEnd: distributed.End(),
58 Distributed: distributed,
59 }, nil
60 default:
61 return nil, fmt.Errorf("expected LOGS|DISTRIBUTED")
62 }
63}
64
65func (p *Parser) parseSystemReloadExpr(pos Pos) (*SystemReloadExpr, error) {
66 if err := p.expectKeyword(KeywordReload); err != nil {

Callers 1

parseSystemStmtMethod · 0.95

Calls 8

expectKeywordMethod · 0.95
matchKeywordMethod · 0.95
lastMethod · 0.95
tryConsumeKeywordsMethod · 0.95
parseTableIdentifierMethod · 0.95
PosMethod · 0.95
consumeTokenMethod · 0.80
EndMethod · 0.65

Tested by

no test coverage detected