@Test public void testNestedNeedsEvaluation() throws Exception { Query command = (Query)TestResolver.helpResolve("select * from pm1.g1 where e1 in (select e1 from pm1.g2 where e2 = ?)", RealMetadataFactory.example1Cached()); assertTrue(EvaluatableVisitor.needsProcessingEvaluation(command)); }
public static final boolean needsProcessingEvaluation(LanguageObject obj) { EvaluatableVisitor visitor = new EvaluatableVisitor(); DeepPreOrderNavigator.doVisit(obj, visitor); return visitor.levels.contains(EvaluationLevel.PROCESSING); }
EvaluatableVisitor extends LanguageVisitor { public static final boolean needsProcessingEvaluation(LanguageObject obj) { EvaluatableVisitor visitor = new EvaluatableVisitor(); DeepPreOrderNavigator.doVisit(obj, visitor); return visitor.levels.contains(EvaluationLevel.PROCESSING); } }
EvaluatableVisitor extends LanguageVisitor { public static final boolean needsProcessingEvaluation(LanguageObject obj) { EvaluatableVisitor visitor = new EvaluatableVisitor(); DeepPreOrderNavigator.doVisit(obj, visitor); return visitor.levels.contains(EvaluationLevel.PROCESSING); } EvaluatableVisitor();  EvaluatableVisitor(Object modelId, QueryMetadataInterface metadata, CapabilitiesFinder capFinder); }
EvaluatableVisitor extends LanguageVisitor { public static final boolean needsProcessingEvaluation(LanguageObject obj) { EvaluatableVisitor visitor = new EvaluatableVisitor(); DeepPreOrderNavigator.doVisit(obj, visitor); return visitor.levels.contains(EvaluationLevel.PROCESSING); } EvaluatableVisitor();  EvaluatableVisitor(Object modelId, QueryMetadataInterface metadata, CapabilitiesFinder capFinder); void visit(Function obj); @Override void visit(Constant obj); void setDeterminismLevel(Determinism value); void evaluationNotPossible(EvaluationLevel newLevel); void visit(ElementSymbol obj); void visit(ExpressionSymbol obj); void visit(AliasSymbol obj); void visit(AggregateSymbol obj); void visit(Reference obj); void visit(StoredProcedure proc); void visit(ScalarSubquery obj); void visit(DependentSetCriteria obj); void visit(ExistsCriteria obj); void visit(SubquerySetCriteria obj); void visit(SubqueryCompareCriteria obj); @Override void visit(IsDistinctCriteria isDistinctCriteria); static final boolean willBecomeConstant(LanguageObject obj); static final boolean isFullyEvaluatable(LanguageObject obj, boolean duringPlanning); static final boolean isEvaluatable(LanguageObject obj, EvaluationLevel target); static final boolean willBecomeConstant(LanguageObject obj, boolean pushdown); static final boolean needsProcessingEvaluation(LanguageObject obj); boolean requiresEvaluation(EvaluationLevel evaluationLevel); Determinism getDeterminismLevel(); boolean hasCorrelatedReferences(); static final EvaluatableVisitor needsEvaluationVisitor(Object modelID, QueryMetadataInterface metadata, CapabilitiesFinder capFinder); void reset(); }
EvaluatableVisitor extends LanguageVisitor { public static final boolean needsProcessingEvaluation(LanguageObject obj) { EvaluatableVisitor visitor = new EvaluatableVisitor(); DeepPreOrderNavigator.doVisit(obj, visitor); return visitor.levels.contains(EvaluationLevel.PROCESSING); } EvaluatableVisitor();  EvaluatableVisitor(Object modelId, QueryMetadataInterface metadata, CapabilitiesFinder capFinder); void visit(Function obj); @Override void visit(Constant obj); void setDeterminismLevel(Determinism value); void evaluationNotPossible(EvaluationLevel newLevel); void visit(ElementSymbol obj); void visit(ExpressionSymbol obj); void visit(AliasSymbol obj); void visit(AggregateSymbol obj); void visit(Reference obj); void visit(StoredProcedure proc); void visit(ScalarSubquery obj); void visit(DependentSetCriteria obj); void visit(ExistsCriteria obj); void visit(SubquerySetCriteria obj); void visit(SubqueryCompareCriteria obj); @Override void visit(IsDistinctCriteria isDistinctCriteria); static final boolean willBecomeConstant(LanguageObject obj); static final boolean isFullyEvaluatable(LanguageObject obj, boolean duringPlanning); static final boolean isEvaluatable(LanguageObject obj, EvaluationLevel target); static final boolean willBecomeConstant(LanguageObject obj, boolean pushdown); static final boolean needsProcessingEvaluation(LanguageObject obj); boolean requiresEvaluation(EvaluationLevel evaluationLevel); Determinism getDeterminismLevel(); boolean hasCorrelatedReferences(); static final EvaluatableVisitor needsEvaluationVisitor(Object modelID, QueryMetadataInterface metadata, CapabilitiesFinder capFinder); void reset();  }