public void removeSpecificRoutine(Routine routine) { for (int i = 0; i < this.routines.length; i++) { if (routines[i] == routine) { routines = (Routine[]) ArrayUtil.toAdjustedArray(routines, null, i, -1); break; } } }
/** * Removes any foreign key Constraint objects (exported keys) held by any tables referenced by the * specified table. * * <p>This method is called as the last step of a successful call to dropTable() in order to * ensure that the dropped Table ceases to be referenced when enforcing referential integrity. * * @param toDrop The table to which other tables may be holding keys. This is a table that is in * the process of being dropped. */ void removeExportedKeys(Table toDrop) { for (int i = 0; i < tTable.size(); i++) { Table table = (Table) tTable.get(i); for (int j = table.constraintList.length - 1; j >= 0; j--) { Table refTable = table.constraintList[j].getRef(); if (toDrop == refTable) { table.constraintList = (Constraint[]) ArrayUtil.toAdjustedArray(table.constraintList, null, j, -1); } } } }
public void resetAccessorKeys(Index[] keys) { if (indexList.length == 0 || indexList[0] == null || accessorList[0] == null) { indexList = keys; accessorList = new CachedObject[indexList.length]; return; } CachedObject[] oldAccessors = accessorList; Index[] oldIndexList = indexList; int limit = indexList.length; int diff = 1; int position = 0; if (keys.length < indexList.length) { diff = -1; limit = keys.length; } for (; position < limit; position++) { if (indexList[position] != keys[position]) { break; } } accessorList = (CachedObject[]) ArrayUtil.toAdjustedArray(accessorList, null, position, diff); indexList = keys; try { if (diff > 0) { insertIndexNodes(indexList[0], indexList[position]); } else { dropIndexFromRows(indexList[0], oldIndexList[position]); } } catch (HsqlException e) { accessorList = oldAccessors; indexList = oldIndexList; throw e; } }
public void resolveRangeTable(Session session, RangeGroup rangeGroup, RangeGroup[] rangeGroups) { QueryExpression queryExpression = rangeTable.getQueryExpression(); Expression dataExpression = rangeTable.getDataExpression(); if (queryExpression == null && dataExpression == null) { return; } rangeGroups = (RangeGroup[]) ArrayUtil.toAdjustedArray(rangeGroups, rangeGroup, rangeGroups.length, 1); if (dataExpression != null) { HsqlList unresolved = dataExpression.resolveColumnReferences(session, RangeGroup.emptyGroup, rangeGroups, null); unresolved = Expression.resolveColumnSet( session, RangeVariable.emptyArray, RangeGroup.emptyArray, unresolved); ExpressionColumn.checkColumnsResolved(unresolved); dataExpression.resolveTypes(session, null); setRangeTableVariables(); } if (queryExpression != null) { queryExpression.resolveReferences(session, rangeGroups); HsqlList unresolved = queryExpression.getUnresolvedExpressions(); unresolved = Expression.resolveColumnSet( session, RangeVariable.emptyArray, RangeGroup.emptyArray, unresolved); ExpressionColumn.checkColumnsResolved(unresolved); queryExpression.resolveTypesPartOne(session); queryExpression.resolveTypesPartTwo(session); rangeTable.prepareTable(); setRangeTableVariables(); } }