Skip to content

Commit f42eb1a

Browse files
committed
Patch primary key field path parsing e.g. id.value
1 parent 1df2e1d commit f42eb1a

File tree

2 files changed

+9
-8
lines changed

2 files changed

+9
-8
lines changed

hollow/src/main/java/com/netflix/hollow/tools/history/keyindex/HollowHistoryTypeKeyIndex.java

+7-6
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
import static com.netflix.hollow.core.HollowConstants.ORDINAL_NONE;
2020
import static com.netflix.hollow.tools.util.SearchUtils.MULTI_FIELD_KEY_DELIMITER;
2121

22-
import com.netflix.hollow.Hollow;
2322
import com.netflix.hollow.core.HollowDataset;
2423
import com.netflix.hollow.core.index.key.PrimaryKey;
2524
import com.netflix.hollow.core.memory.encoding.HashCodes;
@@ -97,18 +96,20 @@ public void initializeKeySchema(HollowObjectTypeReadState initialTypeState) {
9796
if (isInitialized) return;
9897
HollowObjectSchema schema = initialTypeState.getSchema();
9998

100-
for (String[] keyFieldPart : keyFieldNames) addSchemaField(schema, keyFieldPart, 0);
99+
for (int i= 0; i < keyFieldNames.length; i ++) {
100+
String[] keyFieldPart = keyFieldNames[i];
101+
fieldTypes[i] = addSchemaField(schema, keyFieldPart, 0);
102+
}
101103
isInitialized = true;
102104
}
103105

104-
private void addSchemaField(HollowObjectSchema schema, String[] keyFieldNames, int keyFieldPartPosition) {
106+
private FieldType addSchemaField(HollowObjectSchema schema, String[] keyFieldNames, int keyFieldPartPosition) {
105107
int schemaPosition = schema.getPosition(keyFieldNames[keyFieldPartPosition]);
106108
if (keyFieldPartPosition < keyFieldNames.length - 1) {
107109
HollowObjectSchema nextPartSchema = (HollowObjectSchema) schema.getReferencedTypeState(schemaPosition).getSchema();
108-
addSchemaField(nextPartSchema, keyFieldNames, keyFieldPartPosition + 1);
109-
} else {
110-
fieldTypes[keyFieldPartPosition] = schema.getFieldType(schemaPosition);
110+
return addSchemaField(nextPartSchema, keyFieldNames, keyFieldPartPosition + 1);
111111
}
112+
return schema.getFieldType(schemaPosition);
112113
}
113114

114115
private void initializeKeyParts(HollowDataset dataModel) {

hollow/src/main/java/com/netflix/hollow/tools/history/keyindex/HollowOrdinalMapper.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,14 @@
1616
*/
1717
package com.netflix.hollow.tools.history.keyindex;
1818

19+
import static com.netflix.hollow.core.HollowConstants.ORDINAL_NONE;
20+
1921
import com.netflix.hollow.core.index.key.PrimaryKey;
2022
import com.netflix.hollow.core.memory.encoding.HashCodes;
2123
import com.netflix.hollow.core.read.HollowReadFieldUtils;
2224
import com.netflix.hollow.core.read.engine.object.HollowObjectTypeReadState;
2325
import com.netflix.hollow.core.schema.HollowObjectSchema;
2426
import com.netflix.hollow.tools.util.ObjectInternPool;
25-
26-
import static com.netflix.hollow.core.HollowConstants.ORDINAL_NONE;
2727
import java.util.Arrays;
2828
import java.util.HashMap;
2929
import java.util.Map;

0 commit comments

Comments
 (0)