bool Table::Compact_ColumnWalk(LinkedListEntry *Entry, int id, void *data1, void *data2)
{
	ColumnField *field = static_cast<ColumnField *>(Entry);
	Table *ctable = (Table *)data1;
	LinkedList *sublist = (LinkedList *)data2;

	ColumnField *ccol = ctable->NewColumn(field->GetFieldId(), field->GetFieldName(), field->GetDataType(), field->GetUnique());
	if (field->GetUnique()) {
		Scanner *subscan = ccol->GetUniqueDataScanner();
		if (subscan != NULL) {
			Table *subtable = subscan->GetTable();
			if (subtable != NULL) {
				StringField *f = new StringField();
				f->SetString(subtable->Name);
				sublist->AddEntry(f, 1);
				f = new StringField();
				f->SetString(subtable->IdxName);
				sublist->AddEntry(f, 1);
			}
		}
	}
	return true;
}