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

Method tryParseRefreshExpr

parser/parser_view.go:173–202  ·  view source on GitHub ↗
(pos Pos)

Source from the content-addressed store, hash-verified

171}
172
173func (p *Parser) tryParseRefreshExpr(pos Pos) (*RefreshExpr, error) {
174 if !p.tryConsumeKeywords(KeywordRefresh) {
175 return nil, nil // nolint
176 }
177
178 // REFRESH EVERY|AFTER interval
179 refreshExpr := &RefreshExpr{RefreshPos: pos}
180 if !p.matchOneOfKeywords(KeywordEvery, KeywordAfter) {
181 return nil, fmt.Errorf("expected EVERY or AFTER, but got %q", p.lastTokenKind())
182 }
183 refreshExpr.Frequency = p.last().String
184 _ = p.lexer.consumeToken()
185
186 interval, err := p.parseInterval(false)
187 if err != nil {
188 return nil, err
189 }
190 refreshExpr.Interval = interval
191
192 // [OFFSET interval]
193 if p.tryConsumeKeywords(KeywordOffset) {
194 offset, err := p.parseInterval(false)
195 if err != nil {
196 return nil, err
197 }
198 refreshExpr.Offset = offset
199 }
200
201 return refreshExpr, nil
202}
203
204// (ATTACH | CREATE) (OR REPLACE)? VIEW (IF NOT EXISTS)? tableIdentifier uuidClause? clusterClause? tableSchemaClause? subqueryClause
205func (p *Parser) parseCreateView(pos Pos, orReplace bool) (*CreateView, error) {

Callers 1

Calls 6

tryConsumeKeywordsMethod · 0.95
matchOneOfKeywordsMethod · 0.95
lastTokenKindMethod · 0.95
lastMethod · 0.95
parseIntervalMethod · 0.95
consumeTokenMethod · 0.80

Tested by

no test coverage detected