Skip to content

Commit b43e884

Browse files
committed
Some generated protobuf descriptors do not quite match what protoc would do and some bindings are more particular about this.
1 parent 8b91d19 commit b43e884

File tree

6 files changed

+17
-4
lines changed

6 files changed

+17
-4
lines changed

fdb-record-layer-core/src/main/java/com/apple/foundationdb/record/metadata/SyntheticRecordTypeBuilder.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,7 @@ protected void addConstituentFields(@Nonnull DescriptorProtos.DescriptorProto.Bu
166166
for (Constituent constituent : constituents) {
167167
descriptorProto.addFieldBuilder()
168168
.setName(constituent.getName())
169+
.setJsonName(constituent.getName())
169170
.setNumber(++fieldNumber)
170171
.setType(DescriptorProtos.FieldDescriptorProto.Type.TYPE_MESSAGE)
171172
.setTypeName("." + constituent.getRecordType().getDescriptor().getFullName());

fdb-record-layer-core/src/main/java/com/apple/foundationdb/record/metadata/UnnestedRecordTypeBuilder.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -317,6 +317,7 @@ public void buildDescriptor(@Nonnull final DescriptorProtos.FileDescriptorProto.
317317
.setLabel(DescriptorProtos.FieldDescriptorProto.Label.LABEL_OPTIONAL)
318318
.setType(DescriptorProtos.FieldDescriptorProto.Type.TYPE_INT64)
319319
.setName(constituent.getName())
320+
.setJsonName(constituent.getName())
320321
.setNumber(indexPosition++);
321322
}
322323
}
@@ -325,6 +326,7 @@ public void buildDescriptor(@Nonnull final DescriptorProtos.FileDescriptorProto.
325326
.setType(DescriptorProtos.FieldDescriptorProto.Type.TYPE_MESSAGE)
326327
.setTypeName(name + "." + indexesProto.getName())
327328
.setName(UnnestedRecordType.POSITIONS_FIELD)
329+
.setJsonName(UnnestedRecordType.POSITIONS_FIELD)
328330
.setNumber(getConstituents().size() + 1);
329331
}
330332

fdb-record-layer-core/src/main/java/com/apple/foundationdb/record/provider/foundationdb/MetaDataProtoEditor.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ private static void addFieldToUnion(@Nonnull DescriptorProtos.DescriptorProto.Bu
102102
.setType(DescriptorProtos.FieldDescriptorProto.Type.TYPE_MESSAGE)
103103
.setTypeName(fullyQualifiedTypeName(fileBuilder, typeName))
104104
.setName("_" + typeName)
105+
.setJsonName("_" + typeName)
105106
.setNumber(assignFieldNumber(unionBuilder));
106107
unionBuilder.addField(fieldBuilder);
107108
}
@@ -416,6 +417,7 @@ public static void renameRecordType(@Nonnull RecordMetaDataProto.MetaData.Builde
416417
.noneMatch(otherUnionField -> otherUnionField != unionFieldBuilder
417418
&& otherUnionField.getName().equals(newFieldName))) {
418419
unionFieldBuilder.setName(newFieldName);
420+
unionFieldBuilder.setJsonName(newFieldName);
419421
}
420422
}
421423
}

fdb-record-layer-core/src/main/java/com/apple/foundationdb/record/query/plan/cascades/typing/Type.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -988,6 +988,7 @@ public void addProtoField(@Nonnull final TypeRepository.Builder typeRepositoryBu
988988
descriptorBuilder.addField(FieldDescriptorProto.newBuilder()
989989
.setNumber(fieldNumber)
990990
.setName(fieldName)
991+
.setJsonName(fieldName)
991992
.setType(protoType)
992993
.setLabel(label)
993994
.build());
@@ -1634,6 +1635,7 @@ public void addProtoField(@Nonnull final TypeRepository.Builder typeRepositoryBu
16341635
FieldDescriptorProto.Builder builder = FieldDescriptorProto.newBuilder()
16351636
.setNumber(fieldNumber)
16361637
.setName(fieldName)
1638+
.setJsonName(fieldName)
16371639
.setType(protoType)
16381640
.setLabel(label);
16391641
typeNameOptional.ifPresent(builder::setTypeName);
@@ -2067,9 +2069,11 @@ public void addProtoField(@Nonnull final TypeRepository.Builder typeRepositoryBu
20672069
final var fieldDescriptorProto = FieldDescriptorProto.newBuilder();
20682070
fieldDescriptorProto
20692071
.setName(fieldName)
2072+
.setJsonName(fieldName)
20702073
.setNumber(fieldNumber)
2074+
.setType(FieldDescriptorProto.Type.TYPE_MESSAGE)
20712075
.setLabel(label);
2072-
typeNameOptional.ifPresent(fieldDescriptorProto::setTypeName);
2076+
typeNameOptional.ifPresent(localName -> fieldDescriptorProto.setTypeName("." + localName));
20732077
descriptorBuilder.addField(fieldDescriptorProto.build());
20742078
}
20752079

@@ -3036,7 +3040,9 @@ public void addProtoField(@Nonnull final TypeRepository.Builder typeRepositoryBu
30363040
FieldDescriptorProto.Builder builder = FieldDescriptorProto.newBuilder()
30373041
.setNumber(fieldNumber)
30383042
.setName(fieldName)
3043+
.setJsonName(fieldName)
30393044
.setLabel(label)
3045+
.setType(FieldDescriptorProto.Type.TYPE_MESSAGE)
30403046
.setTypeName(TupleFieldsProto.UUID.getDescriptor().getFullName());
30413047
typeNameOptional.ifPresent(builder::setTypeName);
30423048
descriptorBuilder.addField(builder);

fdb-relational-core/src/main/java/com/apple/foundationdb/relational/recordlayer/metadata/serde/FileDescriptorSerializer.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,11 +101,13 @@ public void visit(@Nonnull final Table table) {
101101
// add the table as an entry in the final 'RecordTypeUnion' entry of the record store metadata. There is one
102102
// field for each generation of the RecordLayerTable.
103103
for (var version : generations.entrySet()) {
104+
final String name = recordLayerTable.getName() + "_" + (fieldCounter++);
104105
final var tableEntryInUnionDescriptor = DescriptorProtos.FieldDescriptorProto.newBuilder()
105106
.setNumber(version.getKey())
106-
.setName(recordLayerTable.getName() + "_" + (fieldCounter++))
107+
.setName(name)
108+
.setJsonName(name)
107109
.setType(DescriptorProtos.FieldDescriptorProto.Type.TYPE_MESSAGE)
108-
.setTypeName(typeDescriptor)
110+
.setTypeName("." + typeDescriptor)
109111
.setOptions(version.getValue())
110112
.build();
111113
unionDescriptorBuilder.addField(tableEntryInUnionDescriptor);

fdb-relational-core/src/test/java/com/apple/foundationdb/relational/api/ProtobufDataBuilderTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ public static DescriptorProtos.FieldDescriptorProto newDescriptor(String name,
120120
String messageType,
121121
boolean isRepeated) {
122122
DescriptorProtos.FieldDescriptorProto.Builder proto = DescriptorProtos.FieldDescriptorProto.newBuilder()
123-
.setName(name);
123+
.setName(name).setJsonName(name);
124124
switch (javaType) {
125125
case INT:
126126
proto.setType(DescriptorProtos.FieldDescriptorProto.Type.TYPE_INT32);

0 commit comments

Comments
 (0)