static PlanNode createDependentSetNode(String id, List<DependentSetCriteria.AttributeComparison> expressions) { DependentSetCriteria crit = createDependentSetCriteria(id, expressions); return RelationalPlanner.createSelectNode(crit, false); }
static PlanNode createDependentSetNode(String id, List<DependentSetCriteria.AttributeComparison> expressions) { DependentSetCriteria crit = createDependentSetCriteria(id, expressions); return RelationalPlanner.createSelectNode(crit, false); }
static PlanNode createDependentSetNode(String id, List<DependentSetCriteria.AttributeComparison> expressions) { DependentSetCriteria crit = createDependentSetCriteria(id, expressions); PlanNode selectNode = RelationalPlanner.createSelectNode(crit, false); selectNode.setProperty(NodeConstants.Info.IS_DEPENDENT_SET, Boolean.TRUE); return selectNode; }
DependentSetCriteria crit = RuleChooseDependent.createDependentSetCriteria(dsc.getContextSymbol(), comps); crit.setMakeDepOptions(dsc.getMakeDepOptions()); crits.add(crit);
DependentSetCriteria crit = RuleChooseDependent.createDependentSetCriteria(dsc.getContextSymbol(), comps); crit.setMakeDepOptions(dsc.getMakeDepOptions()); crits.add(crit);
DependentSetCriteria crit = RuleChooseDependent.createDependentSetCriteria(dsc.getContextSymbol(), comps); crit.setMakeDepOptions(dsc.getMakeDepOptions()); crits.add(crit);
private boolean splitSet(PlanNode critNode, DependentNodeTest test, DependentSetCriteria dscOrig, PlanNode destination) throws QueryMetadataException, TeiidComponentException, QueryPlannerException { boolean result = false; List<DependentSetCriteria> dscList = splitDependentSetCriteria(dscOrig, false, null); List<DependentSetCriteria.AttributeComparison> pushable = new ArrayList<AttributeComparison>(); List<DependentSetCriteria.AttributeComparison> nonPushable = new ArrayList<AttributeComparison>(); for (DependentSetCriteria dsc : dscList) { PlanNode copyNode = copyNode(critNode); setCriteria(dsc, copyNode); if (test.isValid(copyNode)) { pushable.add(dsc.getAttributes().get(0)); } else { nonPushable.add(dsc.getAttributes().get(0)); } } if (!pushable.isEmpty()) { result = true; //signal that we should run again if (nonPushable.isEmpty()) { throw new AssertionError("should not be completely pushed"); //$NON-NLS-1$ } setCriteria(RuleChooseDependent.createDependentSetCriteria(dscOrig.getContextSymbol(), nonPushable), critNode); PlanNode copyNode = copyNode(critNode); setCriteria(RuleChooseDependent.createDependentSetCriteria(dscOrig.getContextSymbol(), pushable), copyNode); destination.addAsParent(copyNode); //it should be pushed in the next run } return result; }
private boolean splitSet(PlanNode critNode, DependentNodeTest test, DependentSetCriteria dscOrig, PlanNode destination) throws QueryMetadataException, TeiidComponentException, QueryPlannerException { boolean result = false; List<DependentSetCriteria> dscList = splitDependentSetCriteria(dscOrig, false, null); List<DependentSetCriteria.AttributeComparison> pushable = new ArrayList<AttributeComparison>(); List<DependentSetCriteria.AttributeComparison> nonPushable = new ArrayList<AttributeComparison>(); for (DependentSetCriteria dsc : dscList) { PlanNode copyNode = copyNode(critNode); setCriteria(dsc, copyNode); if (test.isValid(copyNode)) { pushable.add(dsc.getAttributes().get(0)); } else { nonPushable.add(dsc.getAttributes().get(0)); } } if (!pushable.isEmpty()) { result = true; //signal that we should run again if (nonPushable.isEmpty()) { throw new AssertionError("should not be completely pushed"); //$NON-NLS-1$ } setCriteria(RuleChooseDependent.createDependentSetCriteria(dscOrig.getContextSymbol(), nonPushable), critNode); PlanNode copyNode = copyNode(critNode); setCriteria(RuleChooseDependent.createDependentSetCriteria(dscOrig.getContextSymbol(), pushable), copyNode); destination.addAsParent(copyNode); //it should be pushed in the next run } return result; }
private boolean splitSet(PlanNode critNode, DependentNodeTest test, DependentSetCriteria dscOrig, PlanNode destination) throws QueryMetadataException, TeiidComponentException, QueryPlannerException { boolean result = false; List<DependentSetCriteria> dscList = splitDependentSetCriteria(dscOrig, false, null); List<DependentSetCriteria.AttributeComparison> pushable = new ArrayList<AttributeComparison>(); List<DependentSetCriteria.AttributeComparison> nonPushable = new ArrayList<AttributeComparison>(); for (DependentSetCriteria dsc : dscList) { PlanNode copyNode = copyNode(critNode); setCriteria(dsc, copyNode); if (test.isValid(copyNode)) { pushable.add(dsc.getAttributes().get(0)); } else { nonPushable.add(dsc.getAttributes().get(0)); } } if (!pushable.isEmpty()) { result = true; //signal that we should run again if (nonPushable.isEmpty()) { throw new AssertionError("should not be completely pushed"); //$NON-NLS-1$ } setCriteria(RuleChooseDependent.createDependentSetCriteria(dscOrig.getContextSymbol(), nonPushable), critNode); PlanNode copyNode = copyNode(critNode); setCriteria(RuleChooseDependent.createDependentSetCriteria(dscOrig.getContextSymbol(), pushable), copyNode); destination.addAsParent(copyNode); //it should be pushed in the next run } return result; }
criteria = RuleChooseDependent.createDependentSetCriteria(dsc.getContextSymbol(), joinExprs); PlanNode left = RuleChooseDependent.createDependentSetNode(dsc.getContextSymbol(), leftExprs); if (left != null) {
criteria = RuleChooseDependent.createDependentSetCriteria(dsc.getContextSymbol(), joinExprs); PlanNode left = RuleChooseDependent.createDependentSetNode(dsc.getContextSymbol(), leftExprs); if (left != null) {
criteria = RuleChooseDependent.createDependentSetCriteria(dsc.getContextSymbol(), joinExprs); PlanNode left = RuleChooseDependent.createDependentSetNode(dsc.getContextSymbol(), leftExprs); if (left != null) {