public void visit(ScalarSubquery obj){ if (obj.shouldEvaluate()) { evaluationNotPossible(EvaluationLevel.PROCESSING); } else { evaluationNotPossible(EvaluationLevel.PUSH_DOWN); } }
public void visit(ScalarSubquery obj){ if (obj.shouldEvaluate()) { evaluationNotPossible(EvaluationLevel.PROCESSING); } else { evaluationNotPossible(EvaluationLevel.PUSH_DOWN); } }
public void visit(ScalarSubquery obj){ if (obj.shouldEvaluate()) { evaluationNotPossible(EvaluationLevel.PROCESSING); } else { evaluationNotPossible(EvaluationLevel.PUSH_DOWN); } }
public void visit(ScalarSubquery obj) { if (obj.shouldEvaluate()) { return; } visitor.createChildNamingContext(false); visitNode(obj.getCommand()); visitor.removeChildNamingContext(); }
public void visit(ScalarSubquery obj) { preVisitVisitor(obj); if (deep && (!obj.shouldEvaluate() || !skipEvaluatable)) { visitNode(obj.getCommand()); } postVisitVisitor(obj); } public void visit(SearchedCaseExpression obj) {
public void visit(ScalarSubquery obj) { preVisitVisitor(obj); if (deep && (!obj.shouldEvaluate() || !skipEvaluatable)) { visitNode(obj.getCommand()); } postVisitVisitor(obj); } public void visit(SearchedCaseExpression obj) {
public void visit(ScalarSubquery obj) { if (obj.shouldEvaluate()) { return; } visitor.createChildNamingContext(false); visitNode(obj.getCommand()); visitor.removeChildNamingContext(); }
public void visit(ScalarSubquery obj) { preVisitVisitor(obj); if (deep && (!obj.shouldEvaluate() || !skipEvaluatable)) { visitNode(obj.getCommand()); } postVisitVisitor(obj); } public void visit(SearchedCaseExpression obj) {
public void visit(ScalarSubquery obj) { if (obj.shouldEvaluate()) { return; } visitor.createChildNamingContext(false); visitNode(obj.getCommand()); visitor.removeChildNamingContext(); }
continue; if (container instanceof ScalarSubquery && ((ScalarSubquery) container).shouldEvaluate()) { continue;
continue; if (container instanceof ScalarSubquery && ((ScalarSubquery) container).shouldEvaluate()) { continue;
continue; if (container instanceof ScalarSubquery && ((ScalarSubquery) container).shouldEvaluate()) { continue;
@Override public void visit(ScalarSubquery obj) { try { if (obj.shouldEvaluate()) { return;
public static void prepareSubquery(SubqueryContainer container) { RelationalPlan subqueryPlan = (RelationalPlan)container.getCommand().getProcessorPlan(); AccessNode aNode = CriteriaCapabilityValidatorVisitor.getAccessNode(subqueryPlan); QueryCommand command = CriteriaCapabilityValidatorVisitor.getQueryCommand(aNode); if (command == null) { return; } final SymbolMap map = container.getCommand().getCorrelatedReferences(); if (map != null) { ExpressionMappingVisitor visitor = new RulePlanSubqueries.ReferenceReplacementVisitor(map); DeepPostOrderNavigator.doVisit(command, visitor); } command.setProcessorPlan(container.getCommand().getProcessorPlan()); boolean removeLimit = false; if (container instanceof ExistsCriteria) { removeLimit = !((ExistsCriteria)container).shouldEvaluate(); } else if (container instanceof ScalarSubquery) { removeLimit = !((ScalarSubquery)container).shouldEvaluate(); } if (removeLimit && command.getLimit() != null && command.getLimit().isImplicit()) { command.setLimit(null); } container.setCommand(command); }
@Override public void visit(ScalarSubquery obj) { try { if (obj.shouldEvaluate()) { return;
} else if (expression instanceof ScalarSubquery) { ScalarSubquery subquery = (ScalarSubquery)expression; if (subquery.shouldEvaluate() && processing) { return new Constant(evaluator.evaluate(subquery, null), subquery.getType());
@Override public void visit(ScalarSubquery obj) { try { if (obj.shouldEvaluate()) { return;
public static void prepareSubquery(SubqueryContainer container) { RelationalPlan subqueryPlan = (RelationalPlan)container.getCommand().getProcessorPlan(); AccessNode aNode = CriteriaCapabilityValidatorVisitor.getAccessNode(subqueryPlan); QueryCommand command = CriteriaCapabilityValidatorVisitor.getQueryCommand(aNode); if (command == null) { return; } final SymbolMap map = container.getCommand().getCorrelatedReferences(); if (map != null) { ExpressionMappingVisitor visitor = new RuleMergeCriteria.ReferenceReplacementVisitor(map); DeepPostOrderNavigator.doVisit(command, visitor); } command.setProcessorPlan(container.getCommand().getProcessorPlan()); boolean removeLimit = false; if (container instanceof ExistsCriteria) { removeLimit = !((ExistsCriteria)container).shouldEvaluate(); } else if (container instanceof ScalarSubquery) { removeLimit = !((ScalarSubquery)container).shouldEvaluate(); } if (removeLimit && command.getLimit() != null && command.getLimit().isImplicit()) { command.setLimit(null); } container.setCommand(command); }
public static void prepareSubquery(SubqueryContainer container) { RelationalPlan subqueryPlan = (RelationalPlan)container.getCommand().getProcessorPlan(); AccessNode aNode = CriteriaCapabilityValidatorVisitor.getAccessNode(subqueryPlan); QueryCommand command = CriteriaCapabilityValidatorVisitor.getQueryCommand(aNode); if (command == null) { return; } final SymbolMap map = container.getCommand().getCorrelatedReferences(); if (map != null) { ExpressionMappingVisitor visitor = new RulePlanSubqueries.ReferenceReplacementVisitor(map); DeepPostOrderNavigator.doVisit(command, visitor); } command.setProcessorPlan(container.getCommand().getProcessorPlan()); boolean removeLimit = false; if (container instanceof ExistsCriteria) { removeLimit = !((ExistsCriteria)container).shouldEvaluate(); } else if (container instanceof ScalarSubquery) { removeLimit = !((ScalarSubquery)container).shouldEvaluate(); } if (removeLimit && command.getLimit() != null && command.getLimit().isImplicit()) { command.setLimit(null); } container.setCommand(command); }
} else if (expression instanceof ScalarSubquery) { ScalarSubquery subquery = (ScalarSubquery)expression; if (subquery.shouldEvaluate() && processing) { return new Constant(evaluator.evaluate(subquery, null), subquery.getType());