@Nullable private static DimFilter computeWhereFilter( final PartialDruidQuery partialQuery, final RowSignature sourceRowSignature, final PlannerContext plannerContext ) { final Filter whereFilter = partialQuery.getWhereFilter(); if (whereFilter == null) { return null; } final RexNode condition = whereFilter.getCondition(); final DimFilter dimFilter = Expressions.toFilter( plannerContext, sourceRowSignature, condition ); if (dimFilter == null) { throw new CannotBuildQueryException(whereFilter, condition); } else { return dimFilter; } }
@Nullable private static DimFilter computeHavingFilter( final PartialDruidQuery partialQuery, final RowSignature outputRowSignature, final PlannerContext plannerContext ) { final Filter havingFilter = partialQuery.getHavingFilter(); if (havingFilter == null) { return null; } final RexNode condition = havingFilter.getCondition(); final DimFilter dimFilter = Expressions.toFilter( plannerContext, outputRowSignature, condition ); if (dimFilter == null) { throw new CannotBuildQueryException(havingFilter, condition); } else { return dimFilter; } }
return toFilter(plannerContext, rowSignature, Iterables.getOnlyElement(((RexCall) expression).getOperands())); } else if (kind == SqlKind.IS_FALSE || kind == SqlKind.IS_NOT_TRUE) { return new NotDimFilter( toFilter(plannerContext, rowSignature, Iterables.getOnlyElement(((RexCall) expression).getOperands())) ); } else if (kind == SqlKind.CAST && expression.getType().getSqlTypeName() == SqlTypeName.BOOLEAN) { return toFilter(plannerContext, rowSignature, Iterables.getOnlyElement(((RexCall) expression).getOperands())); } else if (kind == SqlKind.AND || kind == SqlKind.OR final List<DimFilter> filters = new ArrayList<>(); for (final RexNode rexNode : ((RexCall) expression).getOperands()) { final DimFilter nextFilter = toFilter( plannerContext, rowSignature,
final DimFilter nonOptimizedFilter = Expressions.toFilter(plannerContext, sourceRowSignature, expression); if (nonOptimizedFilter == null) { return null;
final DimFilter nonNullFilter = Expressions.toFilter( plannerContext, rowSignature,
@Nullable private static DimFilter computeHavingFilter( final PartialDruidQuery partialQuery, final RowSignature outputRowSignature, final PlannerContext plannerContext ) { final Filter havingFilter = partialQuery.getHavingFilter(); if (havingFilter == null) { return null; } final RexNode condition = havingFilter.getCondition(); final DimFilter dimFilter = Expressions.toFilter( plannerContext, outputRowSignature, condition ); if (dimFilter == null) { throw new CannotBuildQueryException(havingFilter, condition); } else { return dimFilter; } }
@Nullable private static DimFilter computeWhereFilter( final PartialDruidQuery partialQuery, final RowSignature sourceRowSignature, final PlannerContext plannerContext ) { final Filter whereFilter = partialQuery.getWhereFilter(); if (whereFilter == null) { return null; } final RexNode condition = whereFilter.getCondition(); final DimFilter dimFilter = Expressions.toFilter( plannerContext, sourceRowSignature, condition ); if (dimFilter == null) { throw new CannotBuildQueryException(whereFilter, condition); } else { return dimFilter; } }
return toFilter(plannerContext, rowSignature, Iterables.getOnlyElement(((RexCall) expression).getOperands())); } else if (kind == SqlKind.IS_FALSE || kind == SqlKind.IS_NOT_TRUE) { return new NotDimFilter( toFilter(plannerContext, rowSignature, Iterables.getOnlyElement(((RexCall) expression).getOperands())) ); } else if (kind == SqlKind.CAST && expression.getType().getSqlTypeName() == SqlTypeName.BOOLEAN) { return toFilter(plannerContext, rowSignature, Iterables.getOnlyElement(((RexCall) expression).getOperands())); } else if (kind == SqlKind.AND || kind == SqlKind.OR final List<DimFilter> filters = Lists.newArrayList(); for (final RexNode rexNode : ((RexCall) expression).getOperands()) { final DimFilter nextFilter = toFilter( plannerContext, rowSignature,
final DimFilter nonOptimizedFilter = Expressions.toFilter(plannerContext, sourceRowSignature, expression); if (nonOptimizedFilter == null) { return null;
final DimFilter nonNullFilter = Expressions.toFilter( plannerContext, rowSignature,