public static boolean canPushLanguageObject(LanguageObject obj, Object modelID, QueryMetadataInterface metadata, CapabilitiesFinder capFinder, AnalysisRecord analysisRecord) throws QueryMetadataException, TeiidComponentException { return canPushLanguageObject(obj, modelID, metadata, capFinder, analysisRecord, new ValidatorOptions()); }
@Override public void visit(XMLSerialize obj) { if (willBecomeConstant(obj)) { return; } markInvalid(obj, "Pushdown of XMLSerialize not allowed"); //$NON-NLS-1$ }
private boolean canPushCrossJoin(QueryMetadataInterface metadata, PlanNode accessNode1, PlanNode accessNode2) throws QueryMetadataException, TeiidComponentException { float cost1 = NewCalculateCostUtil.computeCostForTree(accessNode1, metadata); float cost2 = NewCalculateCostUtil.computeCostForTree(accessNode2, metadata); float acceptableCost = 64; return !((cost1 == NewCalculateCostUtil.UNKNOWN_VALUE || cost2 == NewCalculateCostUtil.UNKNOWN_VALUE || (cost1 > acceptableCost && cost2 > acceptableCost))); }
@Override public boolean isValid(PlanNode copyNode) throws QueryMetadataException, QueryPlannerException, TeiidComponentException { return RuleRaiseAccess.canRaiseOverSelect(destination, metadata, capFinder, copyNode, null); } }, (DependentSetCriteria)crit, destination);
private void handleException(TeiidComponentException e) { this.valid = false; this.exception = e; setAbort(true); }
@Override public PlanNode execute(PlanNode plan, QueryMetadataInterface metadata, CapabilitiesFinder capabilitiesFinder, RuleStack rules, AnalysisRecord analysisRecord, CommandContext context) throws QueryPlannerException, QueryMetadataException, TeiidComponentException { return optimizeSorts(false, plan, plan, metadata, capabilitiesFinder, analysisRecord, context); }
@Override public PlanNode execute(PlanNode plan, QueryMetadataInterface metadata, CapabilitiesFinder capabilitiesFinder, RuleStack rules, AnalysisRecord analysisRecord, CommandContext context) throws QueryPlannerException, QueryMetadataException, TeiidComponentException { while (planLeftOuterJoinAssociativity(plan, metadata, capabilitiesFinder, analysisRecord, context)) { //repeat } return plan; }
boolean checkForAnyInput(Collection<Expression> expressions) { for (Expression expr : expressions) { if (checkForAnyInput(expr)) { return true; } } return false; }
private void prepareSubqueries(List<SubqueryContainer<?>> containers) { for (SubqueryContainer<?> container : containers) { prepareSubquery(container); } }
public void visit(XMLCast xmlCast) { if (willBecomeConstant(xmlCast)) { return; } markInvalid(xmlCast, "Pushdown of XMLCast not allowed"); //$NON-NLS-1$ }
public static boolean canPushLanguageObject(LanguageObject obj, Object modelID, QueryMetadataInterface metadata, CapabilitiesFinder capFinder, AnalysisRecord analysisRecord) throws QueryMetadataException, TeiidComponentException { return canPushLanguageObject(obj, modelID, metadata, capFinder, analysisRecord, new ValidatorOptions()); }
private boolean canPushCrossJoin(QueryMetadataInterface metadata, PlanNode accessNode1, PlanNode accessNode2) throws QueryMetadataException, TeiidComponentException { float cost1 = NewCalculateCostUtil.computeCostForTree(accessNode1, metadata); float cost2 = NewCalculateCostUtil.computeCostForTree(accessNode2, metadata); float acceptableCost = 64; return !((cost1 == NewCalculateCostUtil.UNKNOWN_VALUE || cost2 == NewCalculateCostUtil.UNKNOWN_VALUE || (cost1 > acceptableCost && cost2 > acceptableCost))); }
@Override public boolean isValid(PlanNode copyNode) throws QueryMetadataException, QueryPlannerException, TeiidComponentException { return RuleRaiseAccess.canRaiseOverSelect(destination, metadata, capFinder, copyNode, null); } }, (DependentSetCriteria)crit, destination);
@Override public void visit(QueryString obj) { if (willBecomeConstant(obj)) { return; } markInvalid(obj, "Pushdown of QueryString not allowed"); //$NON-NLS-1$ }
@Override public void visit(XMLForest obj) { if (willBecomeConstant(obj)) { return; } markInvalid(obj, "Pushdown of XMLForest not allowed"); //$NON-NLS-1$ }
@Override public void visit(XMLParse obj) { if (willBecomeConstant(obj)) { return; } markInvalid(obj, "Pushdown of XMLParse not allowed"); //$NON-NLS-1$ }
public void visit(XMLCast xmlCast) { if (willBecomeConstant(xmlCast)) { return; } markInvalid(xmlCast, "Pushdown of XMLCast not allowed"); //$NON-NLS-1$ }
@Override public void visit(XMLElement obj) { if (willBecomeConstant(obj)) { return; } markInvalid(obj, "Pushdown of XMLElement not allowed"); //$NON-NLS-1$ }
@Override public void visit(XMLExists obj) { if (willBecomeConstant(obj)) { return; } markInvalid(obj, "Pushdown of XMLExists not allowed"); //$NON-NLS-1$ }
@Override public void visit(XMLQuery obj) { if (willBecomeConstant(obj)) { return; } markInvalid(obj, "Pushdown of XMLQuery not allowed"); //$NON-NLS-1$ }