/** * @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); } }
((ScalarSubquery) subqueryContainer).setShouldEvaluate(true); } else if (subqueryContainer instanceof ExistsCriteria) { ((ExistsCriteria) subqueryContainer).setShouldEvaluate(true); } else { throw new QueryPlannerException(QueryPlugin.Event.TEIID30253, QueryPlugin.Util.gs(QueryPlugin.Event.TEIID30253, container));
((ScalarSubquery) subqueryContainer).setShouldEvaluate(true); } else if (subqueryContainer instanceof ExistsCriteria) { ((ExistsCriteria) subqueryContainer).setShouldEvaluate(true); } else { throw new QueryPlannerException(QueryPlugin.Event.TEIID30253, QueryPlugin.Util.gs(QueryPlugin.Event.TEIID30253, container));
((ScalarSubquery) subqueryContainer).setShouldEvaluate(true); } else if (subqueryContainer instanceof ExistsCriteria) { ((ExistsCriteria) subqueryContainer).setShouldEvaluate(true); } else { throw new QueryPlannerException(QueryPlugin.Event.TEIID30253, QueryPlugin.Util.gs(QueryPlugin.Event.TEIID30253, container));