RangeVariable.java (hsqldb-2.6.0) | : | RangeVariable.java (hsqldb-2.6.1) | ||
---|---|---|---|---|
skipping to change at line 57 | skipping to change at line 57 | |||
import org.hsqldb.lib.OrderedLongHashSet; | import org.hsqldb.lib.OrderedLongHashSet; | |||
import org.hsqldb.navigator.RangeIterator; | import org.hsqldb.navigator.RangeIterator; | |||
import org.hsqldb.navigator.RowIterator; | import org.hsqldb.navigator.RowIterator; | |||
import org.hsqldb.persist.PersistentStore; | import org.hsqldb.persist.PersistentStore; | |||
import org.hsqldb.types.Type; | import org.hsqldb.types.Type; | |||
/** | /** | |||
* Metadata for range variables, including conditions. | * Metadata for range variables, including conditions. | |||
* | * | |||
* @author Fred Toussi (fredt@users dot sourceforge.net) | * @author Fred Toussi (fredt@users dot sourceforge.net) | |||
* @version 2.5.1 | * @version 2.6.1 | |||
* @since 1.9.0 | * @since 1.9.0 | |||
*/ | */ | |||
public class RangeVariable { | public class RangeVariable { | |||
static final RangeVariable[] emptyArray = new RangeVariable[]{}; | static final RangeVariable[] emptyArray = new RangeVariable[]{}; | |||
// | // | |||
public static final int TABLE_RANGE = 1; | public static final int TABLE_RANGE = 1; | |||
public static final int TRANSITION_RANGE = 2; | public static final int TRANSITION_RANGE = 2; | |||
public static final int PARAMETER_RANGE = 3; | public static final int PARAMETER_RANGE = 3; | |||
skipping to change at line 748 | skipping to change at line 748 | |||
OrderedHashSet temp = queryExpression.getSubqueries(); | OrderedHashSet temp = queryExpression.getSubqueries(); | |||
set = OrderedHashSet.addAll(set, temp); | set = OrderedHashSet.addAll(set, temp); | |||
set = OrderedHashSet.add(set, rangeTable); | set = OrderedHashSet.add(set, rangeTable); | |||
} | } | |||
} | } | |||
return set; | return set; | |||
} | } | |||
OrderedHashSet collectRangeVariables(RangeVariable[] rangeVars, | ||||
OrderedHashSet set) { | ||||
QueryExpression queryExpression = rangeTable.getQueryExpression(); | ||||
Expression dataExpression = rangeTable.getDataExpression(); | ||||
if (queryExpression != null) { | ||||
set = queryExpression.collectRangeVariables(rangeVars, set); | ||||
} | ||||
if (dataExpression != null) { | ||||
set = dataExpression.collectRangeVariables(rangeVars, set); | ||||
} | ||||
return set; | ||||
} | ||||
public OrderedHashSet collectAllExpressions(OrderedHashSet set, | public OrderedHashSet collectAllExpressions(OrderedHashSet set, | |||
OrderedIntHashSet typeSet, OrderedIntHashSet stopAtTypeSet) { | OrderedIntHashSet typeSet, OrderedIntHashSet stopAtTypeSet) { | |||
if (joinCondition != null) { | if (joinCondition != null) { | |||
set = joinCondition.collectAllExpressions(set, typeSet, | set = joinCondition.collectAllExpressions(set, typeSet, | |||
stopAtTypeSet); | stopAtTypeSet); | |||
} | } | |||
QueryExpression queryExpression = rangeTable.getQueryExpression(); | QueryExpression queryExpression = rangeTable.getQueryExpression(); | |||
Expression dataExpression = rangeTable.getDataExpression(); | Expression dataExpression = rangeTable.getDataExpression(); | |||
skipping to change at line 854 | skipping to change at line 871 | |||
Expression dataExpression = rangeTable.getDataExpression(); | Expression dataExpression = rangeTable.getDataExpression(); | |||
if (queryExpression == null && dataExpression == null) { | if (queryExpression == null && dataExpression == null) { | |||
return; | return; | |||
} | } | |||
rangeGroups = (RangeGroup[]) ArrayUtil.toAdjustedArray(rangeGroups, | rangeGroups = (RangeGroup[]) ArrayUtil.toAdjustedArray(rangeGroups, | |||
rangeGroup, rangeGroups.length, 1); | rangeGroup, rangeGroups.length, 1); | |||
if (dataExpression != null) { | if (dataExpression != null) { | |||
List unresolved = | List unresolved = dataExpression.resolveColumnReferences(session, | |||
dataExpression.resolveColumnReferences(session, | RangeGroup.emptyGroup, rangeGroups, null); | |||
RangeGroup.emptyGroup, rangeGroups, null); | ||||
unresolved = Expression.resolveColumnSet(session, | unresolved = Expression.resolveColumnSet(session, | |||
RangeVariable.emptyArray, RangeGroup.emptyArray, | RangeVariable.emptyArray, RangeGroup.emptyArray, | |||
unresolved); | unresolved); | |||
ExpressionColumn.checkColumnsResolved(unresolved); | ExpressionColumn.checkColumnsResolved(unresolved); | |||
dataExpression.resolveTypes(session, null); | dataExpression.resolveTypes(session, null); | |||
setRangeTableVariables(); | setRangeTableVariables(); | |||
} | } | |||
End of changes. 3 change blocks. | ||||
4 lines changed or deleted | 20 lines changed or added |