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

Method parseDropStmt

parser/parser_drop.go:37–82  ·  view source on GitHub ↗
(pos Pos)

Source from the content-addressed store, hash-verified

35}
36
37func (p *Parser) parseDropStmt(pos Pos) (*DropStmt, error) {
38 var isTemporary bool
39 dropTarget := KeywordTable
40 switch {
41 case p.tryConsumeKeywords(KeywordDictionary):
42 dropTarget = KeywordDictionary
43 case p.tryConsumeKeywords(KeywordView):
44 dropTarget = KeywordView
45 default:
46 isTemporary = p.tryConsumeKeywords(KeywordTemporary)
47 if err := p.expectKeyword(KeywordTable); err != nil {
48 return nil, err
49 }
50 }
51
52 isExists, err := p.tryParseIfExists()
53 if err != nil {
54 return nil, err
55 }
56
57 name, err := p.parseTableIdentifier(p.Pos())
58 if err != nil {
59 return nil, err
60 }
61
62 onCluster, err := p.tryParseClusterClause(p.Pos())
63 if err != nil {
64 return nil, err
65 }
66
67 modifier, err := p.tryParseModifier()
68 if err != nil {
69 return nil, err
70 }
71
72 return &DropStmt{
73 DropPos: pos,
74 DropTarget: dropTarget,
75 Name: name,
76 IfExists: isExists,
77 OnCluster: onCluster,
78 IsTemporary: isTemporary,
79 Modifier: modifier,
80 StatementEnd: p.Pos(),
81 }, nil
82}
83
84func (p *Parser) tryParseModifier() (string, error) {
85 switch {

Callers 1

parseDDLMethod · 0.95

Calls 7

tryConsumeKeywordsMethod · 0.95
expectKeywordMethod · 0.95
tryParseIfExistsMethod · 0.95
parseTableIdentifierMethod · 0.95
PosMethod · 0.95
tryParseClusterClauseMethod · 0.95
tryParseModifierMethod · 0.95

Tested by

no test coverage detected