if (filter.findFirst(session)) {
int[] colmap = cs.columnMap; // column map
Expression[] colvalues = cs.columnValues;
Expression condition = cs.condition; // update condition
int len = colvalues.length;
HashMappedList rowset = new HashMappedList();
int size = table.getColumnCount();
int[] coltypes = table.getColumnTypes();
boolean success = false;
do {
if (condition == null || condition.testCondition(session)) {
try {
Row row = filter.currentRow;
Object[] ni = table.getEmptyRowData();
System.arraycopy(row.getData(), 0, ni, 0, size);
for (int i = 0; i < len; i++) {
int ci = colmap[i];
ni[ci] = colvalues[i].getValue(session,
coltypes[ci]);
}
rowset.add(row, ni);
} catch (HsqlInternalException e) {}
}
} while (filter.next(session));
session.beginNestedTransaction();