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 Summary
Modifier and TypeMethodDescriptionorg.apache.calcite.sql.SqlOperatorReturns the SQL operator corresponding to this function.toDruidExpression(PlannerContext plannerContext, RowSignature rowSignature, org.apache.calcite.rex.RexNode rexNode) Translate a CalciteRexNodeto a Druid expression.default DruidExpressiontoDruidExpressionWithPostAggOperands(PlannerContext plannerContext, RowSignature rowSignature, org.apache.calcite.rex.RexNode rexNode, PostAggregatorVisitor postAggregatorVisitor) Translate a CalciteRexNodeto a Druid expression, with the possibility of having postagg operands.default DimFiltertoDruidFilter(PlannerContext plannerContext, RowSignature rowSignature, VirtualColumnRegistry virtualColumnRegistry, org.apache.calcite.rex.RexNode rexNode) Returns a Druid filter corresponding to a CalciteRexNodeused as a filter condition.default PostAggregatortoPostAggregator(PlannerContext plannerContext, RowSignature querySignature, org.apache.calcite.rex.RexNode rexNode, PostAggregatorVisitor postAggregatorVisitor) Returns a Druid PostAggregator corresponding to a CalciteRexNodeused to transform a row after aggregation has occurred.
-
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 CalciteRexNodeto a Druid expression.- Parameters:
plannerContext- SQL planner contextrowSignature- signature of the rows to be extracted fromrexNode- 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 CalciteRexNodeto a Druid expression, with the possibility of having postagg operands.- Parameters:
plannerContext- SQL planner contextrowSignature- signature of the rows to be extracted fromrexNode- expression meant to be applied on top of the rowspostAggregatorVisitor- 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 CalciteRexNodeused as a filter condition.- Parameters:
plannerContext- SQL planner contextrowSignature- input row signaturevirtualColumnRegistry- re-usable virtual column referencesrexNode- 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 CalciteRexNodeused to transform a row after aggregation has occurred.- Parameters:
plannerContext- SQL planner contextquerySignature- signature of the rows to be extracted fromrexNode- expression meant to be applied on top of the rowspostAggregatorVisitor- visitor that manages postagg names and tracks postaggs that were created by the translation- Returns:
- filter, or null if the call cannot be translated
-