* added or removed. The adjust argument is {-1 | 0 | +1}
*/
public final void moveData(Session session, PersistentStore other,
int colindex, int adjust) {
Type oldtype = null;
Type newtype = null;
Object colvalue = null;
if (adjust >= 0 && colindex != -1) {
ColumnSchema column = ((Table) table).getColumn(colindex);
colvalue = column.getDefaultValue(session);
newtype = ((Table) table).getColumnTypes()[colindex];
}
if (adjust <= 0 && colindex != -1) {
oldtype = ((Table) other.getTable()).getColumnTypes()[colindex];
}
RowIterator it = other.rowIterator();
Table table = (Table) this.table;
try {
while (it.hasNext()) {
Row row = it.getNextRow();
Object[] olddata = row.getData();
Object[] data = table.getEmptyRowData();
Object oldvalue = null;
if (adjust == 0 && colindex != -1) {
oldvalue = olddata[colindex];
colvalue = newtype.convertToType(session, oldvalue,
oldtype);
}
if (colvalue != null && newtype.isLobType()) {
session.sessionData.adjustLobUsageCount(colvalue, +1);
}
if (oldvalue != null && oldtype != null
&& oldtype.isLobType()) {