MCPcopy
hub / github.com/uber/aresdb / VisitSortItem

Method VisitSortItem

query/sql/sql_parser.go:611–647  ·  view source on GitHub ↗

VisitSortItem visits the node

(ctx *antlrgen.SortItemContext)

Source from the content-addressed store, hash-verified

609
610// VisitSortItem visits the node
611func (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

Callers

nothing calls this directly

Calls 13

getCtxLevelsMethod · 0.95
setCtxLevelsMethod · 0.95
VisitMethod · 0.95
lookupSQLExprMethod · 0.95
getLocationMethod · 0.95
getTextMethod · 0.95
GetSubstringFunction · 0.92
NewSortItemFunction · 0.92
DebugfMethod · 0.65
GetOrderingMethod · 0.65
GetValueMethod · 0.65
SetValueMethod · 0.65

Tested by

no test coverage detected