VisitSortItem visits the node
(ctx *antlrgen.SortItemContext)
| 609 | |
| 610 | // VisitSortItem visits the node |
| 611 | func (v *ASTBuilder) VisitSortItem(ctx *antlrgen.SortItemContext) interface{} { |
| 612 | v.Logger.Debugf("VisitSortItem: %s", ctx.GetText()) |
| 613 | |
| 614 | level, levelWith, levelQuery := v.getCtxLevels(v.SQL2AqlCtx) |
| 615 | |
| 616 | if ctx.Expression() == nil { |
| 617 | return nil |
| 618 | } |
| 619 | |
| 620 | var ordering tree.OrderType |
| 621 | if ctx.GetOrdering() != nil { |
| 622 | if ctx.GetOrdering().GetText() == tree.OrderTypes[tree.ASC] { |
| 623 | ordering = tree.ASC |
| 624 | } else if ctx.GetOrdering().GetText() == tree.OrderTypes[tree.DESC] { |
| 625 | ordering = tree.DESC |
| 626 | } |
| 627 | } |
| 628 | |
| 629 | v.setCtxLevels(v.SQL2AqlCtx, level, levelWith, levelQuery) |
| 630 | v.SQL2AqlCtx.exprCheck = true |
| 631 | v.Visit(ctx.Expression()) |
| 632 | v.SQL2AqlCtx.exprCheck = false |
| 633 | expr := v.Visit(ctx.Expression()).(tree.IExpression) |
| 634 | _, name := v.lookupSQLExpr(v.SQL2AqlCtx, v.SQL2AqlCtx.mapKey, util.GetSubstring(expr.GetValue())) |
| 635 | v.SQL2AqlCtx.MapOrderBy[v.SQL2AqlCtx.mapKey] = |
| 636 | append(v.SQL2AqlCtx.MapOrderBy[v.SQL2AqlCtx.mapKey], |
| 637 | queryCom.SortField{ |
| 638 | Name: name, |
| 639 | Order: tree.OrderTypes[ordering], |
| 640 | }) |
| 641 | |
| 642 | sortItem := tree.NewSortItem(v.getLocation(ctx), expr, ordering) |
| 643 | sortItem.SetValue(fmt.Sprintf("SortItem: (%s)", v.getText(ctx.BaseParserRuleContext))) |
| 644 | |
| 645 | v.setCtxLevels(v.SQL2AqlCtx, level-1, levelWith, levelQuery) |
| 646 | return sortItem |
| 647 | } |
| 648 | |
| 649 | // ***************** boolean expressions ****************** |
| 650 |
nothing calls this directly
no test coverage detected