/** * @see org.teiid.query.sql.LanguageVisitor#visit(org.teiid.query.sql.lang.ExistsCriteria) */ public void visit(ExistsCriteria obj) { this.commands.add(obj.getCommand()); }
/** * @see org.teiid.query.sql.LanguageVisitor#visit(org.teiid.query.sql.lang.ExistsCriteria) */ public void visit(ExistsCriteria obj) { this.commands.add(obj.getCommand()); }
/** * @see org.teiid.query.sql.LanguageVisitor#visit(org.teiid.query.sql.lang.ExistsCriteria) */ public void visit(ExistsCriteria obj) { this.commands.add(obj.getCommand()); }
/** * Get hash code. WARNING: The hash code is based on data in the criteria. * If data values are changed, the hash code will change - don't hash this * object and change values. * @return Hash code */ public int hashCode() { int hc = 0; hc = HashCodeUtil.hashCode(hc, getCommand()); return hc; }
/** * Get hash code. WARNING: The hash code is based on data in the criteria. * If data values are changed, the hash code will change - don't hash this * object and change values. * @return Hash code */ public int hashCode() { int hc = 0; hc = HashCodeUtil.hashCode(hc, getCommand()); return hc; }
/** * Get hash code. WARNING: The hash code is based on data in the criteria. * If data values are changed, the hash code will change - don't hash this * object and change values. * @return Hash code */ public int hashCode() { int hc = 0; hc = HashCodeUtil.hashCode(hc, getCommand()); return hc; }
/** * Override equals() method. * @param obj Other object * @return True if equal */ public boolean equals(Object obj) { if(obj == this) { return true; } if(!(obj instanceof ExistsCriteria)) { return false; } ExistsCriteria other = (ExistsCriteria)obj; return EquivalenceUtil.areEqual(getCommand(), other.getCommand()) && this.negated == other.negated && this.subqueryHint.equals(other.subqueryHint); }
Condition translate(ExistsCriteria criteria) { Exists exists = new Exists(translate(criteria.getCommand())); if (criteria.isNegated()) { return new Not(exists); } return exists; }
public void visit(ExistsCriteria obj) { if (obj.shouldEvaluate()) { return; } visitor.createChildNamingContext(false); visitNode(obj.getCommand()); visitor.removeChildNamingContext(); }
Condition translate(ExistsCriteria criteria) { Exists exists = new Exists(translate(criteria.getCommand())); if (criteria.isNegated()) { return new Not(exists); } return exists; }
public void visit(ExistsCriteria obj) { preVisitVisitor(obj); if (deep && (!obj.shouldEvaluate() || !skipEvaluatable)) { visitNode(obj.getCommand()); } postVisitVisitor(obj); } public void visit(ExpressionSymbol obj) {
public void visit(ExistsCriteria obj) { preVisitVisitor(obj); if (deep && (!obj.shouldEvaluate() || !skipEvaluatable)) { visitNode(obj.getCommand()); } postVisitVisitor(obj); } public void visit(ExpressionSymbol obj) {
public void visit(ExistsCriteria obj) { if (obj.shouldEvaluate()) { return; } visitor.createChildNamingContext(false); visitNode(obj.getCommand()); visitor.removeChildNamingContext(); }
public void visit(ExistsCriteria obj) { preVisitVisitor(obj); if (deep && (!obj.shouldEvaluate() || !skipEvaluatable)) { visitNode(obj.getCommand()); } postVisitVisitor(obj); } public void visit(ExpressionSymbol obj) {
Condition translate(ExistsCriteria criteria) { Exists exists = new Exists(translate(criteria.getCommand())); if (criteria.isNegated()) { return new Not(exists); } return exists; }
public void visit(ExistsCriteria obj) { if (obj.shouldEvaluate()) { return; } visitor.createChildNamingContext(false); visitNode(obj.getCommand()); visitor.removeChildNamingContext(); }
@Override public void visit( ExistsCriteria obj ) { if (obj.isNegated()) { append(NOT); append(SPACE); } append(EXISTS); addSubqueryHint(obj.getSubqueryHint()); append(" ("); //$NON-NLS-1$ visitNode(obj.getCommand()); append(")"); //$NON-NLS-1$ }
@Override public void visit( ExistsCriteria obj ) { if (obj.isNegated()) { append(NOT); append(SPACE); } append(EXISTS); addSubqueryHint(obj.getSubqueryHint()); append(" ("); //$NON-NLS-1$ visitNode(obj.getCommand()); append(")"); //$NON-NLS-1$ }
@Override public void visit( ExistsCriteria obj ) { if (obj.isNegated()) { append(NOT); append(SPACE); } append(EXISTS); addSubqueryHint(obj.getSubqueryHint()); append(" ("); //$NON-NLS-1$ visitNode(obj.getCommand()); append(")"); //$NON-NLS-1$ }
@Test public void testDeepNesting() throws Exception { String sql = "select * from bqt1.smalla where exists (select intnum from bqt1.smalla x where smalla.intnum = x.intnum and exists (select intnum from bqt1.smalla where exists (select intnum from bqt1.smalla x where smalla.intnum = x.intnum)))"; Command command = TestResolver.helpResolve(sql, RealMetadataFactory.exampleBQTCached()); command = QueryRewriter.rewrite(command, RealMetadataFactory.exampleBQTCached(), null); command = ((ExistsCriteria)((Query)command).getCriteria()).getCommand(); LinkedList<Reference> correlatedReferences = new LinkedList<Reference>(); GroupSymbol gs = new GroupSymbol("bqt1.smalla"); ResolverUtil.resolveGroup(gs, RealMetadataFactory.exampleBQTCached()); CorrelatedReferenceCollectorVisitor.collectReferences(command, Arrays.asList(gs), correlatedReferences, RealMetadataFactory.exampleBQTCached()); assertEquals(1, correlatedReferences.size()); }