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

Method parseCreateDictionary

parser/parser_table.go:123–187  ·  view source on GitHub ↗
(pos Pos, orReplace bool)

Source from the content-addressed store, hash-verified

121}
122
123func (p *Parser) parseCreateDictionary(pos Pos, orReplace bool) (*CreateDictionary, error) {
124 if err := p.expectKeyword(KeywordDictionary); err != nil {
125 return nil, err
126 }
127
128 createDict := &CreateDictionary{
129 CreatePos: pos,
130 OrReplace: orReplace,
131 }
132
133 // parse IF NOT EXISTS clause if exists
134 var err error
135 createDict.IfNotExists, err = p.tryParseIfNotExists()
136 if err != nil {
137 return nil, err
138 }
139
140 // parse dictionary name
141 name, err := p.parseTableIdentifier(p.Pos())
142 if err != nil {
143 return nil, err
144 }
145 createDict.Name = name
146
147 // try parse UUID clause if exists
148 uuid, err := p.tryParseUUID()
149 if err != nil {
150 return nil, err
151 }
152 createDict.UUID = uuid
153
154 // parse ON CLUSTER clause if exists
155 onCluster, err := p.tryParseClusterClause(p.Pos())
156 if err != nil {
157 return nil, err
158 }
159 createDict.OnCluster = onCluster
160
161 // parse dictionary schema clause (required)
162 schema, err := p.parseDictionarySchemaClause(p.Pos())
163 if err != nil {
164 return nil, err
165 }
166 createDict.Schema = schema
167
168 // parse dictionary engine clause (required)
169 engine, err := p.parseDictionaryEngineClause(p.Pos())
170 if err != nil {
171 return nil, err
172 }
173 createDict.Engine = engine
174 createDict.StatementEnd = engine.End()
175
176 // parse COMMENT clause if exists
177 comment, err := p.tryParseComment()
178 if err != nil {
179 return nil, err
180 }

Callers 1

parseDDLMethod · 0.95

Calls 10

expectKeywordMethod · 0.95
tryParseIfNotExistsMethod · 0.95
parseTableIdentifierMethod · 0.95
PosMethod · 0.95
tryParseUUIDMethod · 0.95
tryParseClusterClauseMethod · 0.95
tryParseCommentMethod · 0.95
EndMethod · 0.65

Tested by

no test coverage detected