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

Method parseCreateDatabase

parser/parser_table.go:78–121  ·  view source on GitHub ↗
(pos Pos)

Source from the content-addressed store, hash-verified

76}
77
78func (p *Parser) parseCreateDatabase(pos Pos) (*CreateDatabase, error) {
79 if err := p.expectKeyword(KeywordDatabase); err != nil {
80 return nil, err
81 }
82
83 // try to parse IF NOT EXISTS clause
84 ifNotExists, err := p.tryParseIfNotExists()
85 if err != nil {
86 return nil, err
87 }
88 // parse database name
89 name, err := p.parseIdent()
90 if err != nil {
91 return nil, err
92 }
93 StatementEnd := name.End()
94 onCluster, err := p.tryParseClusterClause(p.Pos())
95 if err != nil {
96 return nil, err
97 }
98 if onCluster != nil {
99 StatementEnd = onCluster.End()
100 }
101 engineExpr, err := p.tryParseEngineExpr(p.Pos())
102 if err != nil {
103 return nil, err
104 }
105 if engineExpr != nil {
106 StatementEnd = engineExpr.End()
107 }
108 commentExpr, err := p.tryParseComment()
109 if err != nil {
110 return nil, err
111 }
112 return &CreateDatabase{
113 CreatePos: pos,
114 StatementEnd: StatementEnd,
115 Name: name,
116 IfNotExists: ifNotExists,
117 OnCluster: onCluster,
118 Engine: engineExpr,
119 Comment: commentExpr,
120 }, nil
121}
122
123func (p *Parser) parseCreateDictionary(pos Pos, orReplace bool) (*CreateDictionary, error) {
124 if err := p.expectKeyword(KeywordDictionary); err != nil {

Callers 1

parseDDLMethod · 0.95

Calls 8

expectKeywordMethod · 0.95
tryParseIfNotExistsMethod · 0.95
parseIdentMethod · 0.95
tryParseClusterClauseMethod · 0.95
PosMethod · 0.95
tryParseEngineExprMethod · 0.95
tryParseCommentMethod · 0.95
EndMethod · 0.65

Tested by

no test coverage detected