MCPcopy Index your code
hub / github.com/uber/aresdb / GetAQL

Method GetAQL

query/sql/sql_parser.go:1615–1663  ·  view source on GitHub ↗

GetAQL construct AQLQuery via read through SQL2AqlCtx

()

Source from the content-addressed store, hash-verified

1613
1614// GetAQL construct AQLQuery via read through SQL2AqlCtx
1615func (v *ASTBuilder) GetAQL() *queryCom.AQLQuery {
1616 var (
1617 table string
1618 joins []queryCom.Join
1619 )
1620
1621 if len(v.SQL2AqlCtx.MapQueryIdentifier) == 0 {
1622 // there is no subquery/withQuery in sql
1623 table = v.SQL2AqlCtx.MapJoinTables[0][0].Table
1624
1625 if len(v.SQL2AqlCtx.MapJoinTables[0]) > 1 {
1626 joins = v.SQL2AqlCtx.MapJoinTables[0][1:]
1627 }
1628
1629 v.aql = &queryCom.AQLQuery{
1630 Table: table,
1631 Joins: joins,
1632 Measures: v.SQL2AqlCtx.MapMeasures[0],
1633 Dimensions: v.SQL2AqlCtx.MapDimensions[0],
1634 Filters: v.SQL2AqlCtx.MapRowFilters[0],
1635 TimeFilter: v.SQL2AqlCtx.timeFilter,
1636 Timezone: v.SQL2AqlCtx.timezone,
1637 Now: v.SQL2AqlCtx.timeNow,
1638 Limit: v.SQL2AqlCtx.MapLimit[0],
1639 Sorts: v.SQL2AqlCtx.MapOrderBy[0],
1640 }
1641 // remove measures that should be dimensions
1642 dimsMap := make(map[string]bool)
1643 for _, d := range v.aql.Dimensions {
1644 dimsMap[d.Expr] = true
1645 }
1646 measuresOld := v.aql.Measures
1647 v.aql.Measures = []queryCom.Measure{}
1648 for _, m := range measuresOld {
1649 if !dimsMap[m.Expr] {
1650 v.aql.Measures = append(v.aql.Measures, m)
1651 }
1652 }
1653
1654 } else {
1655 v.aql = &queryCom.AQLQuery{
1656 SupportingMeasures: make([]queryCom.Measure, 0, defaultSliceCap),
1657 SupportingDimensions: make([]queryCom.Dimension, 0, defaultSliceCap),
1658 }
1659 v.mergeWithOrSubQueries()
1660 }
1661
1662 return v.aql
1663}
1664
1665// GetTextIfPresent visits the node
1666func (v *ASTBuilder) GetTextIfPresent(token antlr.Token) string {

Callers 1

ParseFunction · 0.95

Calls 1

mergeWithOrSubQueriesMethod · 0.95

Tested by

no test coverage detected