Tabnine Logo
Expressions.toDruidExpression
Code IndexAdd Tabnine to your IDE (free)

How to use
toDruidExpression
method
in
org.apache.druid.sql.calcite.expression.Expressions

Best Java code snippets using org.apache.druid.sql.calcite.expression.Expressions.toDruidExpression (Showing top 20 results out of 315)

origin: apache/incubator-druid

 @Override
 public DruidExpression toDruidExpression(
   final PlannerContext plannerContext,
   final RowSignature rowSignature,
   final RexNode rexNode
 )
 {
  // Nothing to do, just leave the operand unchanged. Druid treats millis and timestamps the same internally.
  final RexCall call = (RexCall) rexNode;
  return Expressions.toDruidExpression(plannerContext, rowSignature, Iterables.getOnlyElement(call.getOperands()));
 }
}
origin: apache/incubator-druid

 @Override
 public DruidExpression toDruidExpression(
   final PlannerContext plannerContext,
   final RowSignature rowSignature,
   final RexNode rexNode
 )
 {
  // Nothing to do, just leave the operand unchanged. Druid treats millis and timestamps the same internally.
  final RexCall call = (RexCall) rexNode;
  return Expressions.toDruidExpression(plannerContext, rowSignature, Iterables.getOnlyElement(call.getOperands()));
 }
}
origin: apache/incubator-druid

/**
 * Translate a list of Calcite {@code RexNode} to Druid expressions.
 *
 * @param plannerContext SQL planner context
 * @param rowSignature   signature of the rows to be extracted from
 * @param rexNodes       list of Calcite expressions meant to be applied on top of the rows
 *
 * @return list of Druid expressions in the same order as rexNodes, or null if not possible.
 * If a non-null list is returned, all elements will be non-null.
 */
@Nullable
public static List<DruidExpression> toDruidExpressions(
  final PlannerContext plannerContext,
  final RowSignature rowSignature,
  final List<RexNode> rexNodes
)
{
 final List<DruidExpression> retVal = new ArrayList<>(rexNodes.size());
 for (RexNode rexNode : rexNodes) {
  final DruidExpression druidExpression = toDruidExpression(plannerContext, rowSignature, rexNode);
  if (druidExpression == null) {
   return null;
  }
  retVal.add(druidExpression);
 }
 return retVal;
}
origin: apache/incubator-druid

/**
 * Translates to an "expression" type leaf filter. Used as a fallback if we can't use a simple leaf filter.
 */
@Nullable
private static DimFilter toExpressionLeafFilter(
  final PlannerContext plannerContext,
  final RowSignature rowSignature,
  final RexNode rexNode
)
{
 final DruidExpression druidExpression = toDruidExpression(plannerContext, rowSignature, rexNode);
 return druidExpression == null
     ? null
     : new ExpressionDimFilter(druidExpression.getExpression(), plannerContext.getExprMacroTable());
}
origin: apache/incubator-druid

final SqlTrimFunction.Flag trimStyle = (SqlTrimFunction.Flag) flag.getValue();
final DruidExpression charsExpression = Expressions.toDruidExpression(
  plannerContext,
  rowSignature,
);
final DruidExpression stringExpression = Expressions.toDruidExpression(
  plannerContext,
  rowSignature,
origin: apache/incubator-druid

 @Override
 public DruidExpression toDruidExpression(
   final PlannerContext plannerContext,
   final RowSignature rowSignature,
   final RexNode rexNode
 )
 {
  // EXTRACT(timeUnit FROM arg)
  final RexCall call = (RexCall) rexNode;
  final RexLiteral flag = (RexLiteral) call.getOperands().get(0);
  final TimeUnitRange calciteUnit = (TimeUnitRange) flag.getValue();
  final RexNode arg = call.getOperands().get(1);

  final DruidExpression input = Expressions.toDruidExpression(plannerContext, rowSignature, arg);
  if (input == null) {
   return null;
  }

  final TimestampExtractExprMacro.Unit druidUnit = EXTRACT_UNIT_MAP.get(calciteUnit);
  if (druidUnit == null) {
   // Don't know how to extract this time unit.
   return null;
  }

  return TimeExtractOperatorConversion.applyTimeExtract(input, druidUnit, plannerContext.getTimeZone());
 }
}
origin: apache/incubator-druid

 @Nullable
 @Override
 public DimFilter toDruidFilter(
   PlannerContext plannerContext,
   RowSignature rowSignature,
   RexNode rexNode
 )
 {
  final List<RexNode> operands = ((RexCall) rexNode).getOperands();
  final DruidExpression druidExpression = Expressions.toDruidExpression(
    plannerContext,
    rowSignature,
    operands.get(0)
  );
  if (druidExpression == null || !druidExpression.isSimpleExtraction()) {
   return null;
  }
  return new LikeDimFilter(
    druidExpression.getSimpleExtraction().getColumn(),
    RexLiteral.stringValue(operands.get(1)),
    operands.size() > 2 ? RexLiteral.stringValue(operands.get(2)) : null,
    druidExpression.getSimpleExtraction().getExtractionFn()
  );
 }
}
origin: apache/incubator-druid

 private static DruidExpression toDruidExpressionForSimpleAggregator(
   final PlannerContext plannerContext,
   final RowSignature rowSignature,
   final RexNode rexNode
 )
 {
  final DruidExpression druidExpression = Expressions.toDruidExpression(plannerContext, rowSignature, rexNode);
  if (druidExpression == null) {
   return null;
  }

  if (druidExpression.isSimpleExtraction() &&
    (!druidExpression.isDirectColumnAccess()
     || rowSignature.getColumnType(druidExpression.getDirectColumn()) == ValueType.STRING)) {
   // Aggregators are unable to implicitly cast strings to numbers. So remove the simple extraction in this case.
   return druidExpression.map(simpleExtraction -> null, Function.identity());
  } else {
   return druidExpression;
  }
 }
}
origin: apache/incubator-druid

final DruidExpression timeExpression = Expressions.toDruidExpression(plannerContext, rowSignature, timeArg);
if (timeExpression == null) {
 return null;
origin: apache/incubator-druid

 @Override
 public DruidExpression toDruidExpression(
   final PlannerContext plannerContext,
   final RowSignature rowSignature,
   final RexNode rexNode
 )
 {
  final RexCall call = (RexCall) rexNode;
  final RexNode timeArg = call.getOperands().get(0);
  final DruidExpression timeExpression = Expressions.toDruidExpression(plannerContext, rowSignature, timeArg);
  if (timeExpression == null) {
   return null;
  }

  final TimestampExtractExprMacro.Unit unit = TimestampExtractExprMacro.Unit.valueOf(
    StringUtils.toUpperCase(RexLiteral.stringValue(call.getOperands().get(1)))
  );

  final DateTimeZone timeZone = call.getOperands().size() > 2 && !RexLiteral.isNullLiteral(call.getOperands().get(2))
                 ? DateTimes.inferTzFromString(RexLiteral.stringValue(call.getOperands().get(2)))
                 : plannerContext.getTimeZone();

  return applyTimeExtract(timeExpression, unit, timeZone);
 }
}
origin: apache/incubator-druid

final DruidExpression expression = Expressions.toDruidExpression(
  plannerContext,
  sourceRowSignature,
origin: apache/incubator-druid

for (final RexNode postAggregatorRexNode : project.getChildExps()) {
 final DruidExpression postAggregatorExpression = Expressions.toDruidExpression(
   plannerContext,
   inputRowSignature,
origin: apache/incubator-druid

final DruidExpression operandExpression = Expressions.toDruidExpression(
  plannerContext,
  rowSignature,
origin: apache/incubator-druid

final DruidExpression druidExpression = Expressions.toDruidExpression(
  plannerContext,
  rowSignature,
origin: apache/incubator-druid

final DruidExpression druidExpression = Expressions.toDruidExpression(
  plannerContext,
  rowSignature,
origin: apache/incubator-druid

final DruidExpression input = Expressions.toDruidExpression(
  plannerContext,
  rowSignature,
origin: apache/incubator-druid

final DruidExpression druidExpression = Expressions.toDruidExpression(
  plannerContext,
  sourceRowSignature,
origin: apache/incubator-druid

final DruidExpression druidExpression = Expressions.toDruidExpression(
  plannerContext,
  rowSignature,
origin: apache/incubator-druid

final RexNode shiftRexNode = operands.get(1);
final DruidExpression timeExpr = Expressions.toDruidExpression(plannerContext, rowSignature, timeRexNode);
final DruidExpression shiftExpr = Expressions.toDruidExpression(plannerContext, rowSignature, shiftRexNode);
origin: apache/incubator-druid

 private void testExpression(
   final RexNode rexNode,
   final DruidExpression expectedExpression,
   final Object expectedResult
 )
 {
  final DruidExpression expression = Expressions.toDruidExpression(plannerContext, rowSignature, rexNode);
  Assert.assertEquals("Expression for: " + rexNode, expectedExpression, expression);

  final ExprEval result = Parser.parse(expression.getExpression(), plannerContext.getExprMacroTable())
                 .eval(Parser.withMap(bindings));
  Assert.assertEquals("Result for: " + rexNode, expectedResult, result.value());
 }
}
org.apache.druid.sql.calcite.expressionExpressionstoDruidExpression

Javadoc

Translate a Calcite RexNode to a Druid expressions.

Popular methods of Expressions

  • fromFieldAccess
    Translate a field access, possibly through a projection, to an underlying Druid dataSource.
  • asTimestampFloorExpr
  • buildTimeFloorFilter
    Build a filter for an expression like FLOOR(column TO granularity) [operator] rhsMillis
  • exprTypeForValueType
  • getBoundTimeDimFilter
  • toDruidExpressions
    Translate a list of Calcite RexNode to Druid expressions.
  • toExpressionLeafFilter
    Translates to an "expression" type leaf filter. Used as a fallback if we can't use a simple leaf fil
  • toFilter
    Translates "condition" to a Druid filter, or returns null if we cannot translate the condition.
  • toLeafFilter
    Translates "condition" to a Druid filter, assuming it does not contain any boolean expressions. Retu
  • toQueryGranularity
    Converts an expression to a Granularity, if possible. This is possible if, and only if, the expressi
  • toSimpleLeafFilter
    Translates to a simple leaf filter, meaning one that hits just a single column and is not an express
  • toSimpleLeafFilter

Popular in Java

  • Finding current android device location
  • getResourceAsStream (ClassLoader)
  • getApplicationContext (Context)
  • onCreateOptionsMenu (Activity)
  • Rectangle (java.awt)
    A Rectangle specifies an area in a coordinate space that is enclosed by the Rectangle object's top-
  • HttpURLConnection (java.net)
    An URLConnection for HTTP (RFC 2616 [http://tools.ietf.org/html/rfc2616]) used to send and receive d
  • MessageFormat (java.text)
    Produces concatenated messages in language-neutral way. New code should probably use java.util.Forma
  • ResourceBundle (java.util)
    ResourceBundle is an abstract class which is the superclass of classes which provide Locale-specifi
  • Vector (java.util)
    Vector is an implementation of List, backed by an array and synchronized. All optional operations in
  • BoxLayout (javax.swing)
  • Best plugins for Eclipse
Tabnine Logo
  • Products

    Search for Java codeSearch for JavaScript code
  • IDE Plugins

    IntelliJ IDEAWebStormVisual StudioAndroid StudioEclipseVisual Studio CodePyCharmSublime TextPhpStormVimGoLandRubyMineEmacsJupyter NotebookJupyter LabRiderDataGripAppCode
  • Company

    About UsContact UsCareers
  • Resources

    FAQBlogTabnine AcademyTerms of usePrivacy policyJava Code IndexJavascript Code Index
Get Tabnine for your IDE now