public void initialize(RowData rowData, Key hKey, SpatialColumnHandler spatialColumnHandler, long zValue) {
pKeyAppends = 0;
int indexField = 0;
IndexRowComposition indexRowComp = index.indexRowComposition();
FieldDef[] fieldDefs = index.leafMostTable().rowDef().getFieldDefs();
RowDataSource rowDataValueSource = new RowDataValueSource();
while (indexField < indexRowComp.getLength()) {
// handleSpatialColumn will increment pKeyAppends once for all spatial columns
if (spatialColumnHandler != null && spatialColumnHandler.handleSpatialColumn(this, indexField, zValue)) {
if (indexField == index.firstSpatialArgument()) {
pKeyAppends++;
}
} else {
if (indexRowComp.isInRowData(indexField)) {
FieldDef fieldDef = fieldDefs[indexRowComp.getFieldPosition(indexField)];
Column column = fieldDef.column();
rowDataValueSource.bind(fieldDef, rowData);
pKeyTarget().append(rowDataValueSource,
column.getType());
} else if (indexRowComp.isInHKey(indexField)) {
PersistitKey.appendFieldFromKey(pKey(), hKey, indexRowComp.getHKeyPosition(indexField), index
.getIndexName());