public static String functionCall(final String functionName, final DruidExpression... args) { return functionCall(functionName, Arrays.asList(args)); }
public static DruidExpression fromFunctionCall(final String functionName, final List<DruidExpression> args) { return new DruidExpression(null, functionCall(functionName, args)); }
@Nullable public static DruidExpression convertCall( final PlannerContext plannerContext, final RowSignature rowSignature, final RexNode rexNode, final String functionName, final Function<List<DruidExpression>, SimpleExtraction> simpleExtractionFunction ) { return convertCall( plannerContext, rowSignature, rexNode, druidExpressions -> DruidExpression.of( simpleExtractionFunction == null ? null : simpleExtractionFunction.apply(druidExpressions), DruidExpression.functionCall(functionName, druidExpressions) ) ); }
@Override public DruidExpression toDruidExpression( final PlannerContext plannerContext, final RowSignature rowSignature, final RexNode rexNode ) { return OperatorConversions.convertCall( plannerContext, rowSignature, rexNode, operands -> DruidExpression.fromExpression(DruidExpression.functionCall(druidFunctionName, operands)) ); } }
@Override public DruidExpression toDruidExpression( final PlannerContext plannerContext, final RowSignature rowSignature, final RexNode rexNode ) { return OperatorConversions.convertCall( plannerContext, rowSignature, rexNode, druidExpressions -> DruidExpression.of( null, DruidExpression.functionCall("concat", druidExpressions) ) ); } }
@Override public DruidExpression toDruidExpression( final PlannerContext plannerContext, final RowSignature rowSignature, final RexNode rexNode ) { return OperatorConversions.convertCall( plannerContext, rowSignature, rexNode, druidExpressions -> DruidExpression.of( null, DruidExpression.functionCall("concat", druidExpressions) ) ); } }
StringUtils.format( "(%s + 1)", DruidExpression.functionCall( "strpos", ImmutableList.of(druidExpressions.get(1), druidExpressions.get(0), fromIndexExpression)
@Override public DruidExpression toDruidExpression( final PlannerContext plannerContext, final RowSignature rowSignature, final RexNode rexNode ) { return OperatorConversions.convertCall( plannerContext, rowSignature, rexNode, druidExpressions -> DruidExpression.of( null, StringUtils.format( "(%s + 1)", DruidExpression.functionCall("strpos", druidExpressions) ) ) ); } }
DruidExpression.functionCall( "timestamp_shift", timeExpr,
public static String functionCall(final String functionName, final DruidExpression... args) { return functionCall(functionName, Arrays.asList(args)); }
public static DruidExpression fromFunctionCall(final String functionName, final List<DruidExpression> args) { return new DruidExpression(null, functionCall(functionName, args)); }
@Nullable public static DruidExpression convertCall( final PlannerContext plannerContext, final RowSignature rowSignature, final RexNode rexNode, final String functionName, final Function<List<DruidExpression>, SimpleExtraction> simpleExtractionFunction ) { return convertCall( plannerContext, rowSignature, rexNode, druidExpressions -> DruidExpression.of( simpleExtractionFunction == null ? null : simpleExtractionFunction.apply(druidExpressions), DruidExpression.functionCall(functionName, druidExpressions) ) ); }
@Override public DruidExpression toDruidExpression( final PlannerContext plannerContext, final RowSignature rowSignature, final RexNode rexNode ) { return OperatorConversions.convertCall( plannerContext, rowSignature, rexNode, operands -> DruidExpression.fromExpression(DruidExpression.functionCall(druidFunctionName, operands)) ); } }
@Override public DruidExpression toDruidExpression( final PlannerContext plannerContext, final RowSignature rowSignature, final RexNode rexNode ) { return OperatorConversions.convertCall( plannerContext, rowSignature, rexNode, druidExpressions -> DruidExpression.of( null, DruidExpression.functionCall("concat", druidExpressions) ) ); } }
@Override public DruidExpression toDruidExpression( final PlannerContext plannerContext, final RowSignature rowSignature, final RexNode rexNode ) { return OperatorConversions.convertCall( plannerContext, rowSignature, rexNode, druidExpressions -> DruidExpression.of( null, DruidExpression.functionCall("concat", druidExpressions) ) ); } }
@Override public DruidExpression toDruidExpression( final PlannerContext plannerContext, final RowSignature rowSignature, final RexNode rexNode ) { return OperatorConversions.convertCall( plannerContext, rowSignature, rexNode, druidExpressions -> DruidExpression.of( null, StringUtils.format( "(%s + 1)", DruidExpression.functionCall("strpos", druidExpressions) ) ) ); } }
DruidExpression.functionCall( "timestamp_shift", timeExpr,