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

Method parseCTEStmt

parser/parser_query.go:1178–1207  ·  view source on GitHub ↗
(pos Pos)

Source from the content-addressed store, hash-verified

1176}
1177
1178func (p *Parser) parseCTEStmt(pos Pos) (*CTEStmt, error) {
1179 expr, err := p.parseExpr(pos)
1180 if err != nil {
1181 return nil, err
1182 }
1183 if err := p.expectKeyword(KeywordAs); err != nil {
1184 return nil, err
1185 }
1186 if p.matchTokenKind(TokenKindLParen) {
1187 selectQuery, err := p.parseSelectQuery(p.Pos())
1188 if err != nil {
1189 return nil, err
1190 }
1191 return &CTEStmt{
1192 CTEPos: pos,
1193 Expr: expr,
1194 Alias: selectQuery,
1195 }, nil
1196 }
1197 name, err := p.parseIdent()
1198 if err != nil {
1199 return nil, err
1200 }
1201
1202 return &CTEStmt{
1203 CTEPos: pos,
1204 Expr: expr,
1205 Alias: name,
1206 }, nil
1207}
1208
1209func (p *Parser) tryParseSampleClause(pos Pos) (*SampleClause, error) {
1210 if !p.matchKeyword(KeywordSample) {

Callers 1

parseWithClauseMethod · 0.95

Calls 6

parseExprMethod · 0.95
expectKeywordMethod · 0.95
matchTokenKindMethod · 0.95
parseSelectQueryMethod · 0.95
PosMethod · 0.95
parseIdentMethod · 0.95

Tested by

no test coverage detected