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

Method parseProjectionSelect

parser/parser_alter.go:186–222  ·  view source on GitHub ↗
(pos Pos)

Source from the content-addressed store, hash-verified

184}
185
186func (p *Parser) parseProjectionSelect(pos Pos) (*ProjectionSelectStmt, error) {
187 if err := p.expectTokenKind(TokenKindLParen); err != nil {
188 return nil, err
189 }
190 with, err := p.tryParseWithClause(p.Pos())
191 if err != nil {
192 return nil, err
193 }
194 if err := p.expectKeyword(KeywordSelect); err != nil {
195 return nil, err
196 }
197 columns, err := p.parseColumnExprList(p.Pos())
198 if err != nil {
199 return nil, err
200 }
201 groupBy, err := p.tryParseGroupByClause(p.Pos())
202 if err != nil {
203 return nil, err
204 }
205 orderBy, err := p.parseProjectionOrderBy(p.Pos())
206 if err != nil {
207 return nil, err
208 }
209
210 lastToken := p.last()
211 if err := p.expectTokenKind(TokenKindRParen); err != nil {
212 return nil, err
213 }
214 return &ProjectionSelectStmt{
215 LeftParenPos: pos,
216 RightParenPos: lastToken.Pos,
217 With: with,
218 SelectColumns: columns,
219 GroupBy: groupBy,
220 OrderBy: orderBy,
221 }, nil
222}
223
224func (p *Parser) parseTableProjection(pos Pos, includeProjectionKeyword bool) (*TableProjection, error) {
225 if includeProjectionKeyword {

Callers 1

parseTableProjectionMethod · 0.95

Calls 8

expectTokenKindMethod · 0.95
tryParseWithClauseMethod · 0.95
PosMethod · 0.95
expectKeywordMethod · 0.95
parseColumnExprListMethod · 0.95
tryParseGroupByClauseMethod · 0.95
lastMethod · 0.95

Tested by

no test coverage detected