Skip to content
This repository was archived by the owner on Feb 24, 2026. It is now read-only.

Commit 413d6f0

Browse files
authored
fix: BQTableSchemaToProtoDescriptor change type mapping (#402)
Change BQ Date to map to Proto Int32.
1 parent 85c571b commit 413d6f0

File tree

4 files changed

+32
-19
lines changed

4 files changed

+32
-19
lines changed

google-cloud-bigquerystorage/clirr-ignored-differences.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,4 +28,9 @@
2828
<method>com.google.cloud.bigquery.storage.v1alpha2.WriterCache getTestInstance(com.google.cloud.bigquery.storage.v1alpha2.BigQueryWriteClient, int, com.google.cloud.bigquery.storage.v1alpha2.SchemaCompact) </method>
2929
<to>com.google.cloud.bigquery.storage.v1alpha2.WriterCache getTestInstance(com.google.cloud.bigquery.storage.v1alpha2.BigQueryWriteClient, int, com.google.cloud.bigquery.storage.v1alpha2.SchemaCompatibility)</to>
3030
</difference>
31+
<difference>
32+
<differenceType>7002</differenceType>
33+
<className>com/google/cloud/bigquery/storage/v1alpha2/BQTableSchemaToProtoDescriptor</className>
34+
<method>com.google.protobuf.Descriptors$Descriptor ConvertBQTableSchemaToProtoDescriptor(com.google.cloud.bigquery.storage.v1alpha2.Table$TableSchema)</method>
35+
</difference>
3136
</differences>

google-cloud-bigquerystorage/src/main/java/com/google/cloud/bigquery/storage/v1alpha2/BQTableSchemaToProtoDescriptor.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public class BQTableSchemaToProtoDescriptor {
4444
new ImmutableMap.Builder<Table.TableFieldSchema.Type, FieldDescriptorProto.Type>()
4545
.put(Table.TableFieldSchema.Type.BOOL, FieldDescriptorProto.Type.TYPE_BOOL)
4646
.put(Table.TableFieldSchema.Type.BYTES, FieldDescriptorProto.Type.TYPE_BYTES)
47-
.put(Table.TableFieldSchema.Type.DATE, FieldDescriptorProto.Type.TYPE_INT64)
47+
.put(Table.TableFieldSchema.Type.DATE, FieldDescriptorProto.Type.TYPE_INT32)
4848
.put(Table.TableFieldSchema.Type.DATETIME, FieldDescriptorProto.Type.TYPE_INT64)
4949
.put(Table.TableFieldSchema.Type.DOUBLE, FieldDescriptorProto.Type.TYPE_DOUBLE)
5050
.put(Table.TableFieldSchema.Type.GEOGRAPHY, FieldDescriptorProto.Type.TYPE_BYTES)
@@ -62,9 +62,9 @@ public class BQTableSchemaToProtoDescriptor {
6262
* @param BQTableSchema
6363
* @throws Descriptors.DescriptorValidationException
6464
*/
65-
public static Descriptor ConvertBQTableSchemaToProtoDescriptor(Table.TableSchema BQTableSchema)
65+
public static Descriptor convertBQTableSchemaToProtoDescriptor(Table.TableSchema BQTableSchema)
6666
throws Descriptors.DescriptorValidationException {
67-
return ConvertBQTableSchemaToProtoDescriptorImpl(
67+
return convertBQTableSchemaToProtoDescriptorImpl(
6868
BQTableSchema, "root", new HashMap<ImmutableList<Table.TableFieldSchema>, Descriptor>());
6969
}
7070

@@ -77,7 +77,7 @@ public static Descriptor ConvertBQTableSchemaToProtoDescriptor(Table.TableSchema
7777
* @param dependencyMap Stores already constructed descriptors to prevent reconstruction
7878
* @throws Descriptors.DescriptorValidationException
7979
*/
80-
private static Descriptor ConvertBQTableSchemaToProtoDescriptorImpl(
80+
private static Descriptor convertBQTableSchemaToProtoDescriptorImpl(
8181
Table.TableSchema BQTableSchema,
8282
String scope,
8383
HashMap<ImmutableList<Table.TableFieldSchema>, Descriptor> dependencyMap)
@@ -93,19 +93,19 @@ private static Descriptor ConvertBQTableSchemaToProtoDescriptorImpl(
9393
if (dependencyMap.containsKey(fieldList)) {
9494
Descriptor descriptor = dependencyMap.get(fieldList);
9595
dependenciesList.add(descriptor.getFile());
96-
fields.add(ConvertBQTableFieldToProtoField(BQTableField, index++, descriptor.getName()));
96+
fields.add(convertBQTableFieldToProtoField(BQTableField, index++, descriptor.getName()));
9797
} else {
9898
Descriptor descriptor =
99-
ConvertBQTableSchemaToProtoDescriptorImpl(
99+
convertBQTableSchemaToProtoDescriptorImpl(
100100
Table.TableSchema.newBuilder().addAllFields(fieldList).build(),
101101
currentScope,
102102
dependencyMap);
103103
dependenciesList.add(descriptor.getFile());
104104
dependencyMap.put(fieldList, descriptor);
105-
fields.add(ConvertBQTableFieldToProtoField(BQTableField, index++, currentScope));
105+
fields.add(convertBQTableFieldToProtoField(BQTableField, index++, currentScope));
106106
}
107107
} else {
108-
fields.add(ConvertBQTableFieldToProtoField(BQTableField, index++, currentScope));
108+
fields.add(convertBQTableFieldToProtoField(BQTableField, index++, currentScope));
109109
}
110110
}
111111
FileDescriptor[] dependenciesArray = new FileDescriptor[dependenciesList.size()];
@@ -127,7 +127,7 @@ private static Descriptor ConvertBQTableSchemaToProtoDescriptorImpl(
127127
* @param index Index for protobuf fields.
128128
* @param scope used to name descriptors
129129
*/
130-
private static FieldDescriptorProto ConvertBQTableFieldToProtoField(
130+
private static FieldDescriptorProto convertBQTableFieldToProtoField(
131131
Table.TableFieldSchema BQTableField, int index, String scope) {
132132
Table.TableFieldSchema.Mode mode = BQTableField.getMode();
133133
String fieldName = BQTableField.getName();

google-cloud-bigquerystorage/src/test/java/com/google/cloud/bigquery/storage/v1alpha2/BQTableSchemaToProtoDescriptorTest.java

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ public class BQTableSchemaToProtoDescriptorTest {
3838
new ImmutableMap.Builder<Table.TableFieldSchema.Type, Descriptor>()
3939
.put(Table.TableFieldSchema.Type.BOOL, BoolType.getDescriptor())
4040
.put(Table.TableFieldSchema.Type.BYTES, BytesType.getDescriptor())
41-
.put(Table.TableFieldSchema.Type.DATE, Int64Type.getDescriptor())
41+
.put(Table.TableFieldSchema.Type.DATE, Int32Type.getDescriptor())
4242
.put(Table.TableFieldSchema.Type.DATETIME, Int64Type.getDescriptor())
4343
.put(Table.TableFieldSchema.Type.DOUBLE, DoubleType.getDescriptor())
4444
.put(Table.TableFieldSchema.Type.GEOGRAPHY, BytesType.getDescriptor())
@@ -101,7 +101,7 @@ public void testSimpleTypes() throws Exception {
101101
final Table.TableSchema tableSchema =
102102
Table.TableSchema.newBuilder().addFields(0, tableFieldSchema).build();
103103
final Descriptor descriptor =
104-
BQTableSchemaToProtoDescriptor.ConvertBQTableSchemaToProtoDescriptor(tableSchema);
104+
BQTableSchemaToProtoDescriptor.convertBQTableSchemaToProtoDescriptor(tableSchema);
105105
isDescriptorEqual(descriptor, entry.getValue());
106106
}
107107
}
@@ -124,7 +124,7 @@ public void testStructSimple() throws Exception {
124124
final Table.TableSchema tableSchema =
125125
Table.TableSchema.newBuilder().addFields(0, tableFieldSchema).build();
126126
final Descriptor descriptor =
127-
BQTableSchemaToProtoDescriptor.ConvertBQTableSchemaToProtoDescriptor(tableSchema);
127+
BQTableSchemaToProtoDescriptor.convertBQTableSchemaToProtoDescriptor(tableSchema);
128128
isDescriptorEqual(descriptor, MessageType.getDescriptor());
129129
}
130130

@@ -160,6 +160,12 @@ public void testStructComplex() throws Exception {
160160
.setMode(Table.TableFieldSchema.Mode.REPEATED)
161161
.setName("test_double")
162162
.build();
163+
final Table.TableFieldSchema test_date =
164+
Table.TableFieldSchema.newBuilder()
165+
.setType(Table.TableFieldSchema.Type.DATE)
166+
.setMode(Table.TableFieldSchema.Mode.REQUIRED)
167+
.setName("test_date")
168+
.build();
163169
final Table.TableFieldSchema ComplexLvl2 =
164170
Table.TableFieldSchema.newBuilder()
165171
.setType(Table.TableFieldSchema.Type.STRUCT)
@@ -182,11 +188,12 @@ public void testStructComplex() throws Exception {
182188
.addFields(2, test_bytes)
183189
.addFields(3, test_bool)
184190
.addFields(4, test_double)
185-
.addFields(5, ComplexLvl1)
186-
.addFields(6, ComplexLvl2)
191+
.addFields(5, test_date)
192+
.addFields(6, ComplexLvl1)
193+
.addFields(7, ComplexLvl2)
187194
.build();
188195
final Descriptor descriptor =
189-
BQTableSchemaToProtoDescriptor.ConvertBQTableSchemaToProtoDescriptor(tableSchema);
196+
BQTableSchemaToProtoDescriptor.convertBQTableSchemaToProtoDescriptor(tableSchema);
190197
isDescriptorEqual(descriptor, ComplexRoot.getDescriptor());
191198
}
192199

@@ -217,7 +224,7 @@ public void testOptions() throws Exception {
217224
.addFields(2, optional)
218225
.build();
219226
final Descriptor descriptor =
220-
BQTableSchemaToProtoDescriptor.ConvertBQTableSchemaToProtoDescriptor(tableSchema);
227+
BQTableSchemaToProtoDescriptor.convertBQTableSchemaToProtoDescriptor(tableSchema);
221228
isDescriptorEqual(descriptor, OptionTest.getDescriptor());
222229
}
223230

@@ -267,7 +274,7 @@ public void testDescriptorReuseDuringCreation() throws Exception {
267274
.addFields(2, reuse_lvl1_2)
268275
.build();
269276
final Descriptor descriptor =
270-
BQTableSchemaToProtoDescriptor.ConvertBQTableSchemaToProtoDescriptor(tableSchema);
277+
BQTableSchemaToProtoDescriptor.convertBQTableSchemaToProtoDescriptor(tableSchema);
271278
HashMap<String, Integer> descriptorToCount = new HashMap<String, Integer>();
272279
mapDescriptorToCount(descriptor, descriptorToCount);
273280
assertEquals(descriptorToCount.size(), 2);

google-cloud-bigquerystorage/src/test/proto/jsonTest.proto

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,9 @@ message ComplexRoot {
88
required bytes test_bytes = 3;
99
optional bool test_bool = 4;
1010
repeated double test_double = 5;
11-
required ComplexLvl1 complexLvl1 = 6;
12-
required ComplexLvl2 complexLvl2 = 7;
11+
required int32 test_date = 6;
12+
required ComplexLvl1 complexLvl1 = 7;
13+
required ComplexLvl2 complexLvl2 = 8;
1314
}
1415

1516
message ComplexLvl1 {

0 commit comments

Comments
 (0)