Interface SqlOperatorConversion

All Known Implementing Classes:
AliasedOperatorConversion, ArrayAppendOperatorConversion, ArrayConcatOperatorConversion, ArrayConstructorOperatorConversion, ArrayContainsOperatorConversion, ArrayLengthOperatorConversion, ArrayOffsetOfOperatorConversion, ArrayOffsetOperatorConversion, ArrayOrdinalOfOperatorConversion, ArrayOrdinalOperatorConversion, ArrayOverlapOperatorConversion, ArrayPrependOperatorConversion, ArrayQuantileOperatorConversion, ArraySliceOperatorConversion, ArrayToMultiValueStringOperatorConversion, ArrayToStringOperatorConversion, BaseExpressionDimFilterOperatorConversion, BinaryOperatorConversion, BTrimOperatorConversion, CastOperatorConversion, CeilOperatorConversion, CoalesceOperatorConversion, ComplexDecodeBase64OperatorConversion, ConcatOperatorConversion, ContainsOperatorConversion, DateTruncOperatorConversion, DecodeBase64UTFOperatorConversion, DirectOperatorConversion, DivOperatorConversion, DruidExternTableMacroConversion, DruidUserDefinedTableMacroConversion, ExternalOperatorConversion, ExtractOperatorConversion, FloorOperatorConversion, GreatestOperatorConversion, HttpOperatorConversion, HumanReadableFormatOperatorConversion, InlineOperatorConversion, IPv4AddressMatchOperatorConversion, IPv4AddressParseOperatorConversion, IPv4AddressStringifyOperatorConversion, IPv6AddressMatchOperatorConversion, LeastOperatorConversion, LeftOperatorConversion, LikeOperatorConversion, LocalOperatorConversion, LPadOperatorConversion, LTrimOperatorConversion, MillisToTimestampOperatorConversion, MultiValueStringOperatorConversions.Append, MultiValueStringOperatorConversions.Concat, MultiValueStringOperatorConversions.FilterNone, MultiValueStringOperatorConversions.FilterOnly, MultiValueStringOperatorConversions.Length, MultiValueStringOperatorConversions.MultiStringToString, MultiValueStringOperatorConversions.Offset, MultiValueStringOperatorConversions.OffsetOf, MultiValueStringOperatorConversions.Ordinal, MultiValueStringOperatorConversions.OrdinalOf, MultiValueStringOperatorConversions.PrefixFilter, MultiValueStringOperatorConversions.Prepend, MultiValueStringOperatorConversions.RegexFilter, MultiValueStringOperatorConversions.Slice, MultiValueStringOperatorConversions.StringToMultiString, MultiValueStringToArrayOperatorConversion, NestedDataOperatorConversions.JsonKeysOperatorConversion, NestedDataOperatorConversions.JsonMergeOperatorConversion, NestedDataOperatorConversions.JsonObjectOperatorConversion, NestedDataOperatorConversions.JsonPathsOperatorConversion, NestedDataOperatorConversions.JsonQueryArrayOperatorConversion, NestedDataOperatorConversions.JsonQueryOperatorConversion, NestedDataOperatorConversions.JsonValueAnyOperatorConversion, NestedDataOperatorConversions.JsonValueBigintOperatorConversion, NestedDataOperatorConversions.JsonValueDoubleOperatorConversion, NestedDataOperatorConversions.JsonValueReturningArrayBigIntOperatorConversion, NestedDataOperatorConversions.JsonValueReturningArrayDoubleOperatorConversion, NestedDataOperatorConversions.JsonValueReturningArrayTypeOperatorConversion, NestedDataOperatorConversions.JsonValueReturningArrayVarcharOperatorConversion, NestedDataOperatorConversions.JsonValueReturningTypeOperatorConversion, NestedDataOperatorConversions.JsonValueVarcharOperatorConversion, NestedDataOperatorConversions.ParseJsonOperatorConversion, NestedDataOperatorConversions.ToJsonStringOperatorConversion, NestedDataOperatorConversions.TryParseJsonOperatorConversion, ParseLongOperatorConversion, PositionOperatorConversion, QueryLookupOperatorConversion, RegexpExtractOperatorConversion, RegexpLikeOperatorConversion, RegexpReplaceOperatorConversion, ReinterpretOperatorConversion, RepeatOperatorConversion, ReverseOperatorConversion, RightOperatorConversion, RPadOperatorConversion, RTrimOperatorConversion, SafeDivideOperatorConversion, ScalarInArrayOperatorConversion, SearchOperatorConversion, StringFormatOperatorConversion, StringToArrayOperatorConversion, StrposOperatorConversion, SubstringOperatorConversion, TextcatOperatorConversion, TimeArithmeticOperatorConversion, TimeArithmeticOperatorConversion.TimeMinusIntervalOperatorConversion, TimeArithmeticOperatorConversion.TimePlusIntervalOperatorConversion, TimeCeilOperatorConversion, TimeExtractOperatorConversion, TimeFloorOperatorConversion, TimeFormatOperatorConversion, TimeParseOperatorConversion, TimeShiftOperatorConversion, TimestampToMillisOperatorConversion, TrimOperatorConversion, TruncateOperatorConversion, UnaryPrefixOperatorConversion

public interface SqlOperatorConversion
  • Method Details

    • calciteOperator

      org.apache.calcite.sql.SqlOperator calciteOperator()
      Returns the SQL operator corresponding to this function. Should be a singleton.
      Returns:
      operator
    • toDruidExpression

      @Nullable DruidExpression toDruidExpression(PlannerContext plannerContext, RowSignature rowSignature, org.apache.calcite.rex.RexNode rexNode)
      Translate a Calcite RexNode to a Druid expression.
      Parameters:
      plannerContext - SQL planner context
      rowSignature - signature of the rows to be extracted from
      rexNode - expression meant to be applied on top of the rows
      Returns:
      Druid expression, or null if translation is not possible
      See Also:
    • toDruidExpressionWithPostAggOperands

      @Nullable default DruidExpression toDruidExpressionWithPostAggOperands(PlannerContext plannerContext, RowSignature rowSignature, org.apache.calcite.rex.RexNode rexNode, PostAggregatorVisitor postAggregatorVisitor)
      Translate a Calcite RexNode to a Druid expression, with the possibility of having postagg operands.
      Parameters:
      plannerContext - SQL planner context
      rowSignature - signature of the rows to be extracted from
      rexNode - expression meant to be applied on top of the rows
      postAggregatorVisitor - visitor that manages postagg names and tracks postaggs that were created as by the translation
      Returns:
      Druid expression, or null if translation is not possible
      See Also:
    • toDruidFilter

      @Nullable default DimFilter toDruidFilter(PlannerContext plannerContext, RowSignature rowSignature, @Nullable VirtualColumnRegistry virtualColumnRegistry, org.apache.calcite.rex.RexNode rexNode)
      Returns a Druid filter corresponding to a Calcite RexNode used as a filter condition.
      Parameters:
      plannerContext - SQL planner context
      rowSignature - input row signature
      virtualColumnRegistry - re-usable virtual column references
      rexNode - filter expression rex node
      Returns:
      filter, or null if the call cannot be translated to a filter
    • toPostAggregator

      @Nullable default PostAggregator toPostAggregator(PlannerContext plannerContext, RowSignature querySignature, org.apache.calcite.rex.RexNode rexNode, PostAggregatorVisitor postAggregatorVisitor)
      Returns a Druid PostAggregator corresponding to a Calcite RexNode used to transform a row after aggregation has occurred.
      Parameters:
      plannerContext - SQL planner context
      querySignature - signature of the rows to be extracted from
      rexNode - expression meant to be applied on top of the rows
      postAggregatorVisitor - visitor that manages postagg names and tracks postaggs that were created by the translation
      Returns:
      filter, or null if the call cannot be translated