MCPcopy Create free account
hub / github.com/rilldata/rill / AddTimeRange

Method AddTimeRange

runtime/metricsview/ast.go:738–760  ·  view source on GitHub ↗

AddTimeRange adds a time range to the given SelectNode's WHERE clause.

(n *SelectNode, tr *TimeRange)

Source from the content-addressed store, hash-verified

736
737// AddTimeRange adds a time range to the given SelectNode's WHERE clause.
738func (a *AST) AddTimeRange(n *SelectNode, tr *TimeRange) error {
739 if tr == nil || tr.IsZero() || (a.MetricsView.TimeDimension == "" && tr.TimeDimension == "") {
740 return nil
741 }
742
743 // Since resolving time ranges may require contextual info (like watermarks), the upstream caller is responsible for resolving them.
744 if tr.Start.IsZero() && tr.End.IsZero() {
745 panic("ast received a non-empty, unresolved time range")
746 }
747
748 timeDimExpr, typeCode, err := a.getTimeDimensionExpression(tr)
749 if err != nil {
750 return err
751 }
752
753 expr, args := a.sqlForTimeRange(timeDimExpr, typeCode, tr.Start, tr.End)
754 n.TimeWhere = &ExprNode{
755 Expr: expr,
756 Args: args,
757 }
758
759 return nil
760}
761
762// AddMeasureField adds a measure field to the given SelectNode.
763// Depending on the measure type, it may rewrite the SelectNode to accommodate the measure.

Callers 2

buildBaseSelectMethod · 0.95
buildSpineSelectMethod · 0.95

Calls 3

sqlForTimeRangeMethod · 0.95
IsZeroMethod · 0.45

Tested by

no test coverage detected