private Object getSubqueryModelId(QueryMetadataInterface metadata, CapabilitiesFinder capFinder, PlanNode critNode, AnalysisRecord record) throws TeiidComponentException, QueryMetadataException { Object modelId = null; for (SubqueryContainer subqueryContainer : critNode.getSubqueryContainers()) { Object validId = CriteriaCapabilityValidatorVisitor.validateSubqueryPushdown(subqueryContainer, null, metadata, capFinder, record); if (validId == null) { return null; } if (modelId == null) { modelId = validId; } else if (!CapabilitiesUtil.isSameConnector(modelId, validId, metadata, capFinder)) { return null; } } return modelId; }
private Object getSubqueryModelId(QueryMetadataInterface metadata, CapabilitiesFinder capFinder, PlanNode critNode, AnalysisRecord record) throws TeiidComponentException, QueryMetadataException { Object modelId = null; for (SubqueryContainer subqueryContainer : critNode.getSubqueryContainers()) { Object validId = CriteriaCapabilityValidatorVisitor.validateSubqueryPushdown(subqueryContainer, null, metadata, capFinder, record); if (validId == null) { return null; } if (modelId == null) { modelId = validId; } else if (!CapabilitiesUtil.isSameConnector(modelId, validId, metadata, capFinder)) { return null; } } return modelId; }
private Object getSubqueryModelId(QueryMetadataInterface metadata, CapabilitiesFinder capFinder, PlanNode critNode, AnalysisRecord record) throws TeiidComponentException, QueryMetadataException { Object modelId = null; for (SubqueryContainer subqueryContainer : critNode.getSubqueryContainers()) { Object validId = CriteriaCapabilityValidatorVisitor.validateSubqueryPushdown(subqueryContainer, null, metadata, capFinder, record); if (validId == null) { return null; } if (modelId == null) { modelId = validId; } else if (!CapabilitiesUtil.isSameConnector(modelId, validId, metadata, capFinder)) { return null; } } return modelId; }
public void visit(SubquerySetCriteria crit) { checkAbstractSetCriteria(crit); try { // Check if compares with subqueries are allowed if(! this.caps.supportsCapability(Capability.CRITERIA_IN_SUBQUERY)) { markInvalid(crit, "SubqueryIn is not supported by source"); //$NON-NLS-1$ return; } if (validateSubqueryPushdown(crit, modelID, metadata, capFinder, analysisRecord) == null) { markInvalid(crit.getCommand(), "Subquery cannot be pushed down"); //$NON-NLS-1$ } } catch(QueryMetadataException e) { handleException(new TeiidComponentException(e)); } catch(TeiidComponentException e) { handleException(e); } }
public void visit(SubquerySetCriteria crit) { checkAbstractSetCriteria(crit); try { // Check if compares with subqueries are allowed if(! this.caps.supportsCapability(Capability.CRITERIA_IN_SUBQUERY)) { markInvalid(crit, "SubqueryIn is not supported by source"); //$NON-NLS-1$ return; } if (validateSubqueryPushdown(crit, modelID, metadata, capFinder, analysisRecord) == null) { markInvalid(crit.getCommand(), "Subquery cannot be pushed down"); //$NON-NLS-1$ } } catch(QueryMetadataException e) { handleException(new TeiidComponentException(e)); } catch(TeiidComponentException e) { handleException(e); } }
public void visit(SubquerySetCriteria crit) { checkAbstractSetCriteria(crit); try { // Check if compares with subqueries are allowed if(! this.caps.supportsCapability(Capability.CRITERIA_IN_SUBQUERY)) { markInvalid(crit, "SubqueryIn is not supported by source"); //$NON-NLS-1$ return; } if (validateSubqueryPushdown(crit, modelID, metadata, capFinder, analysisRecord) == null) { markInvalid(crit.getCommand(), "Subquery cannot be pushed down"); //$NON-NLS-1$ } } catch(QueryMetadataException e) { handleException(new TeiidComponentException(e)); } catch(TeiidComponentException e) { handleException(e); } }
if (validateSubqueryPushdown(crit, modelID, metadata, capFinder, analysisRecord) == null) { markInvalid(crit.getCommand(), "Subquery cannot be pushed down"); //$NON-NLS-1$
if (validateSubqueryPushdown(crit, modelID, metadata, capFinder, analysisRecord) == null) { markInvalid(crit.getCommand(), "Subquery cannot be pushed down"); //$NON-NLS-1$
if (validateSubqueryPushdown(crit, modelID, metadata, capFinder, analysisRecord) == null) { markInvalid(crit.getCommand(), "Subquery cannot be pushed down"); //$NON-NLS-1$
/** * @see org.teiid.query.sql.LanguageVisitor#visit(org.teiid.query.sql.lang.ExistsCriteria) */ public void visit(ExistsCriteria crit) { // Check if exists criteria are allowed if(! this.caps.supportsCapability(Capability.CRITERIA_EXISTS)) { markInvalid(crit, "Exists is not supported by source"); //$NON-NLS-1$ return; } if (crit.isNegated() && !this.caps.supportsCapability(Capability.CRITERIA_NOT)) { markInvalid(crit, "Negation is not supported by source"); //$NON-NLS-1$ return; } try { if (validateSubqueryPushdown(crit, modelID, metadata, capFinder, analysisRecord) == null) { if (crit.getCommand().getCorrelatedReferences() == null) { crit.setShouldEvaluate(true); } else { markInvalid(crit.getCommand(), "Subquery cannot be pushed down"); //$NON-NLS-1$ } } } catch (TeiidComponentException e) { handleException(e); } }
/** * @see org.teiid.query.sql.LanguageVisitor#visit(org.teiid.query.sql.lang.ExistsCriteria) */ public void visit(ExistsCriteria crit) { // Check if exists criteria are allowed if(! this.caps.supportsCapability(Capability.CRITERIA_EXISTS)) { markInvalid(crit, "Exists is not supported by source"); //$NON-NLS-1$ return; } if (crit.isNegated() && !this.caps.supportsCapability(Capability.CRITERIA_NOT)) { markInvalid(crit, "Negation is not supported by source"); //$NON-NLS-1$ return; } try { if (validateSubqueryPushdown(crit, modelID, metadata, capFinder, analysisRecord) == null) { if (crit.getCommand().getCorrelatedReferences() == null) { crit.setShouldEvaluate(true); } else { markInvalid(crit.getCommand(), "Subquery cannot be pushed down"); //$NON-NLS-1$ } } } catch (TeiidComponentException e) { handleException(e); } }
/** * @see org.teiid.query.sql.LanguageVisitor#visit(org.teiid.query.sql.lang.ExistsCriteria) */ public void visit(ExistsCriteria crit) { // Check if exists criteria are allowed if(! this.caps.supportsCapability(Capability.CRITERIA_EXISTS)) { markInvalid(crit, "Exists is not supported by source"); //$NON-NLS-1$ return; } if (crit.isNegated() && !this.caps.supportsCapability(Capability.CRITERIA_NOT)) { markInvalid(crit, "Negation is not supported by source"); //$NON-NLS-1$ return; } try { if (validateSubqueryPushdown(crit, modelID, metadata, capFinder, analysisRecord) == null) { if (crit.getCommand().getCorrelatedReferences() == null) { crit.setShouldEvaluate(true); } else { markInvalid(crit.getCommand(), "Subquery cannot be pushed down"); //$NON-NLS-1$ } } } catch (TeiidComponentException e) { handleException(e); } }
if(!this.caps.supportsCapability(Capability.QUERY_SUBQUERIES_SCALAR)) { markEvaluatable(obj, canPreEval, "Correlated/nonDeterministic ScalarSubquery is not supported"); //$NON-NLS-1$ } else if (validateSubqueryPushdown(obj, modelID, metadata, capFinder, analysisRecord) == null) { markEvaluatable(obj, canPreEval, "Subquery cannot be pushed down"); //$NON-NLS-1$ } else if (this.isSelectClause && !this.caps.supportsCapability(Capability.QUERY_SUBQUERIES_SCALAR_PROJECTION)) {
if(!this.caps.supportsCapability(Capability.QUERY_SUBQUERIES_SCALAR)) { markEvaluatable(obj, canPreEval, "Correlated/nonDeterministic ScalarSubquery is not supported"); //$NON-NLS-1$ } else if (validateSubqueryPushdown(obj, modelID, metadata, capFinder, analysisRecord) == null) { markEvaluatable(obj, canPreEval, "Subquery cannot be pushed down"); //$NON-NLS-1$ } else if (this.isSelectClause && !this.caps.supportsCapability(Capability.QUERY_SUBQUERIES_SCALAR_PROJECTION)) {
if(!this.caps.supportsCapability(Capability.QUERY_SUBQUERIES_SCALAR)) { markEvaluatable(obj, canPreEval, "Correlated/nonDeterministic ScalarSubquery is not supported"); //$NON-NLS-1$ } else if (validateSubqueryPushdown(obj, modelID, metadata, capFinder, analysisRecord) == null) { markEvaluatable(obj, canPreEval, "Subquery cannot be pushed down"); //$NON-NLS-1$ } else if (this.isSelectClause && !this.caps.supportsCapability(Capability.QUERY_SUBQUERIES_SCALAR_PROJECTION)) {