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

Method parseColumnExprListWithTerm

parser/parser_column.go:545–573  ·  view source on GitHub ↗
(term TokenKind, pos Pos)

Source from the content-addressed store, hash-verified

543}
544
545func (p *Parser) parseColumnExprListWithTerm(term TokenKind, pos Pos) (*ColumnExprList, error) {
546 columnExprList := &ColumnExprList{
547 ListPos: pos,
548 ListEnd: pos,
549 }
550 columnExprList.HasDistinct = p.tryConsumeKeywords(KeywordDistinct)
551 columnList := make([]Expr, 0)
552 for !p.lexer.isEOF() || p.last() != nil {
553 if term != "" && p.matchTokenKind(term) {
554 break
555 }
556 columnExpr, err := p.parseColumnsExpr(p.Pos())
557 if err != nil {
558 return nil, err
559 }
560 if columnExpr == nil {
561 break
562 }
563 columnList = append(columnList, columnExpr)
564 if p.tryConsumeTokenKind(TokenKindComma) == nil {
565 break
566 }
567 }
568 columnExprList.Items = columnList
569 if len(columnList) > 0 {
570 columnExprList.ListEnd = columnList[len(columnList)-1].End()
571 }
572 return columnExprList, nil
573}
574
575func (p *Parser) parseSelectItems() ([]*SelectItem, error) {
576 selectItems := make([]*SelectItem, 0)

Calls 8

tryConsumeKeywordsMethod · 0.95
lastMethod · 0.95
matchTokenKindMethod · 0.95
parseColumnsExprMethod · 0.95
PosMethod · 0.95
tryConsumeTokenKindMethod · 0.95
isEOFMethod · 0.80
EndMethod · 0.65

Tested by

no test coverage detected