/** * INTERNAL: * Modify this expression to use outer joins wherever there are * equality operations between two field nodes. */ public Expression convertToUseOuterJoin() { ExpressionIterator iterator = new ExpressionIterator() { public void iterate(Expression each) { each.convertNodeToUseOuterJoin(); } }; iterator.iterateOn(this); return this; }
public Expression asOf(AsOfClause clause) { final AsOfClause finalClause = clause; ExpressionIterator iterator = new ExpressionIterator() { public void iterate(Expression each) { if (each.isDataExpression()) { each.asOf(finalClause); } } public boolean shouldIterateOverSubSelects() { return true; } }; iterator.iterateOn(this); return this; }
public Expression asOf(AsOfClause clause) { final AsOfClause finalClause = clause; ExpressionIterator iterator = new ExpressionIterator() { public void iterate(Expression each) { if (each.isDataExpression()) { each.asOf(finalClause); } } public boolean shouldIterateOverSubSelects() { return true; } }; iterator.iterateOn(this); return this; }
public Expression asOf(AsOfClause clause) { final AsOfClause finalClause = clause; ExpressionIterator iterator = new ExpressionIterator() { public void iterate(Expression each) { if (each.isDataExpression()) { each.asOf(finalClause); } } public boolean shouldIterateOverSubSelects() { return true; } }; iterator.iterateOn(this); return this; }
/** * INTERNAL: * Modify this expression to use outer joins wherever there are * equality operations between two field nodes. */ public Expression convertToUseOuterJoin() { ExpressionIterator iterator = new ExpressionIterator() { public void iterate(Expression each) { each.convertNodeToUseOuterJoin(); } }; iterator.iterateOn(this); return this; }
/** * INTERNAL: * Modify this expression to use outer joins wherever there are * equality operations between two field nodes. */ public Expression convertToUseOuterJoin() { ExpressionIterator iterator = new ExpressionIterator() { public void iterate(Expression each) { each.convertNodeToUseOuterJoin(); } }; iterator.iterateOn(this); return this; }
public Expression asOf(AsOfClause clause) { final AsOfClause finalClause = clause; ExpressionIterator iterator = new ExpressionIterator() { public void iterate(Expression each) { if (each.isDataExpression()) { each.asOf(finalClause); } } public boolean shouldIterateOverSubSelects() { return true; } }; iterator.iterateOn(this); return this; }
public Expression asOf(AsOfClause clause) { final AsOfClause finalClause = clause; ExpressionIterator iterator = new ExpressionIterator() { public void iterate(Expression each) { if (each.isDataExpression()) { each.asOf(finalClause); } } public boolean shouldIterateOverSubSelects() { return true; } }; iterator.iterateOn(this); return this; }
@Override public Expression asOf(AsOfClause clause) { final AsOfClause finalClause = clause; ExpressionIterator iterator = new ExpressionIterator() { @Override public void iterate(Expression each) { if (each.isDataExpression()) { each.asOf(finalClause); } } @Override public boolean shouldIterateOverSubSelects() { return true; } }; iterator.iterateOn(this); return this; }
/** * INTERNAL: * This is used by cursored stream to determine if an expression used distinct as the size must account for this. */ public void computeDistinct() { ExpressionIterator iterator = new ExpressionIterator() { public void iterate(Expression expression) { if (expression.isQueryKeyExpression() && ((QueryKeyExpression)expression).shouldQueryToManyRelationship()) { // Aggregate should only use distinct as specified by the user. if (!isDistinctComputed()) { useDistinct(); } } } }; if (getWhereClause() != null) { iterator.iterateOn(getWhereClause()); } }
/** * INTERNAL: * This is used by cursored stream to determine if an expression used distinct as the size must account for this. */ public void computeDistinct() { ExpressionIterator iterator = new ExpressionIterator() { public void iterate(Expression expression) { if (expression.isQueryKeyExpression() && ((QueryKeyExpression)expression).shouldQueryToManyRelationship()) { // Aggregate should only use distinct as specified by the user. if (!isDistinctComputed()) { useDistinct(); } } } }; if (getWhereClause() != null) { iterator.iterateOn(getWhereClause()); } }
/** * INTERNAL: * This is used by cursored stream to determine if an expression used distinct as the size must account for this. */ public void computeDistinct() { ExpressionIterator iterator = new ExpressionIterator() { @Override public void iterate(Expression expression) { if (expression.isQueryKeyExpression() && ((QueryKeyExpression)expression).shouldQueryToManyRelationship()) { // Aggregate should only use distinct as specified by the user. if (!isDistinctComputed()) { useDistinct(); } } } }; if (getWhereClause() != null) { iterator.iterateOn(getWhereClause()); } }
expIterator.iterateOn(this.joinCriteria); HashSet<DatabaseTable> tables = (HashSet)expIterator.getResult();
expIterator.iterateOn(this.joinCriteria); HashSet<DatabaseTable> tables = (HashSet)expIterator.getResult();
expIterator.iterateOn(this.joinCriteria); HashSet<DatabaseTable> tables = (HashSet)expIterator.getResult();
iterator.iterateOn(getWhereClause()); } else if (hasOuterJoinExpressions()) { Expression outerJoinCriteria = (Expression)getOuterJoinedMappingCriteria().firstElement(); if (outerJoinCriteria != null){ iterator.iterateOn(outerJoinCriteria); Object field = fields.next(); if (field instanceof Expression) { iterator.iterateOn((Expression)field); iterator.iterateOn(getBuilder());
/** * INTERNAL: Alias the tables in all of our nodes. */ public void assignAliases(Vector allExpressions) { // For sub-selects all statements must share aliasing information. // For CR#2627019 currentAliasNumber = getCurrentAliasNumber(); ExpressionIterator iterator = new ExpressionIterator() { @Override public void iterate(Expression each) { currentAliasNumber = each.assignTableAliasesStartingAt(currentAliasNumber); } }; if (allExpressions.isEmpty()) { // bug 3878553 - ensure aliases are always assigned for when required . if ((getBuilder() != null) && requiresAliases()) { getBuilder().assignTableAliasesStartingAt(currentAliasNumber); } } else { for (Enumeration expressionEnum = allExpressions.elements(); expressionEnum.hasMoreElements();) { Expression expression = (Expression)expressionEnum.nextElement(); iterator.iterateOn(expression); } } // For sub-selects update aliasing information of all statements. // For CR#2627019 setCurrentAliasNumber(currentAliasNumber); }
/** * INTERNAL: Alias the tables in all of our nodes. */ public void assignAliases(Vector allExpressions) { // For sub-selects all statements must share aliasing information. // For CR#2627019 currentAliasNumber = getCurrentAliasNumber(); ExpressionIterator iterator = new ExpressionIterator() { public void iterate(Expression each) { currentAliasNumber = each.assignTableAliasesStartingAt(currentAliasNumber); } }; if (allExpressions.isEmpty()) { // bug 3878553 - ensure aliases are always assigned for when required . if ((getBuilder() != null) && requiresAliases()) { getBuilder().assignTableAliasesStartingAt(currentAliasNumber); } } else { for (Enumeration expressionEnum = allExpressions.elements(); expressionEnum.hasMoreElements();) { Expression expression = (Expression)expressionEnum.nextElement(); iterator.iterateOn(expression); } } // For sub-selects update aliasing information of all statements. // For CR#2627019 setCurrentAliasNumber(currentAliasNumber); }
iterator.iterateOn(getWhereClause()); } else if (hasOuterJoinExpressions()) { Expression outerJoinCriteria = getOuterJoinExpressionsHolders().get(0).joinExpression; if (outerJoinCriteria != null){ iterator.iterateOn(outerJoinCriteria); iterator.iterateOn((Expression)field); for (Object field : getNonSelectFields()) { if (field instanceof Expression) { iterator.iterateOn((Expression)field); iterator.iterateOn(getBuilder());
/** * INTERNAL: Alias the tables in all of our nodes. */ public void assignAliases(Vector allExpressions) { // For sub-selects all statements must share aliasing information. // For CR#2627019 currentAliasNumber = getCurrentAliasNumber(); ExpressionIterator iterator = new ExpressionIterator() { public void iterate(Expression each) { currentAliasNumber = each.assignTableAliasesStartingAt(currentAliasNumber); } }; if (allExpressions.isEmpty()) { // bug 3878553 - ensure aliases are always assigned for when required . if ((getBuilder() != null) && requiresAliases()) { getBuilder().assignTableAliasesStartingAt(currentAliasNumber); } } else { for (Enumeration expressionEnum = allExpressions.elements(); expressionEnum.hasMoreElements();) { Expression expression = (Expression)expressionEnum.nextElement(); iterator.iterateOn(expression); } } // For sub-selects update aliasing information of all statements. // For CR#2627019 setCurrentAliasNumber(currentAliasNumber); }