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

Commit 2fcae4f

Browse files
authored
fix: update schema compat check with backend type changes (#522)
* fix: update schema compat check with backend type changes * remove BIGNUMERIC, the client library is not populated with the type
1 parent 91899a9 commit 2fcae4f

File tree

2 files changed

+12
-16
lines changed

2 files changed

+12
-16
lines changed

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

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -156,8 +156,8 @@ private static boolean isCompatibleWithBQDate(Descriptors.FieldDescriptor.Type f
156156
}
157157

158158
private static boolean isCompatibleWithBQDatetime(Descriptors.FieldDescriptor.Type field) {
159-
if (field == Descriptors.FieldDescriptor.Type.INT64
160-
|| field == Descriptors.FieldDescriptor.Type.SFIXED64) {
159+
if (field == Descriptors.FieldDescriptor.Type.STRING
160+
|| field == Descriptors.FieldDescriptor.Type.INT64) {
161161
return true;
162162
}
163163
return false;
@@ -174,7 +174,7 @@ private static boolean isCompatibleWithBQFloat(Descriptors.FieldDescriptor.Type
174174
}
175175

176176
private static boolean isCompatibleWithBQGeography(Descriptors.FieldDescriptor.Type field) {
177-
if (field == Descriptors.FieldDescriptor.Type.BYTES) {
177+
if (field == Descriptors.FieldDescriptor.Type.STRING) {
178178
return true;
179179
}
180180
return false;
@@ -201,15 +201,10 @@ private static boolean isCompatibleWithBQNumeric(Descriptors.FieldDescriptor.Typ
201201
|| field == Descriptors.FieldDescriptor.Type.FIXED32
202202
|| field == Descriptors.FieldDescriptor.Type.FIXED64
203203
|| field == Descriptors.FieldDescriptor.Type.SFIXED32
204-
|| field == Descriptors.FieldDescriptor.Type.SFIXED64) {
205-
return true;
206-
}
207-
208-
if (field == Descriptors.FieldDescriptor.Type.BYTES) {
209-
return true;
210-
}
211-
212-
if (field == Descriptors.FieldDescriptor.Type.FLOAT
204+
|| field == Descriptors.FieldDescriptor.Type.SFIXED64
205+
|| field == Descriptors.FieldDescriptor.Type.STRING
206+
|| field == Descriptors.FieldDescriptor.Type.BYTES
207+
|| field == Descriptors.FieldDescriptor.Type.FLOAT
213208
|| field == Descriptors.FieldDescriptor.Type.DOUBLE) {
214209
return true;
215210
}
@@ -235,7 +230,7 @@ private static boolean isCompatibleWithBQString(Descriptors.FieldDescriptor.Type
235230

236231
private static boolean isCompatibleWithBQTime(Descriptors.FieldDescriptor.Type field) {
237232
if (field == Descriptors.FieldDescriptor.Type.INT64
238-
|| field == Descriptors.FieldDescriptor.Type.SFIXED64) {
233+
|| field == Descriptors.FieldDescriptor.Type.STRING) {
239234

240235
return true;
241236
}

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

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -587,7 +587,7 @@ public void testBQDatetime() {
587587
.build()));
588588
SchemaCompatibility compact = SchemaCompatibility.getInstance(mockBigquery);
589589
HashSet<Descriptors.Descriptor> compatible =
590-
new HashSet<>(Arrays.asList(Int64Type.getDescriptor(), SFixed64Type.getDescriptor()));
590+
new HashSet<>(Arrays.asList(Int64Type.getDescriptor(), StringType.getDescriptor()));
591591

592592
for (Descriptors.Descriptor descriptor : type_descriptors) {
593593
if (compatible.contains(descriptor)) {
@@ -649,7 +649,7 @@ public void testBQGeography() {
649649
.build()));
650650
SchemaCompatibility compact = SchemaCompatibility.getInstance(mockBigquery);
651651
HashSet<Descriptors.Descriptor> compatible =
652-
new HashSet<>(Arrays.asList(BytesType.getDescriptor()));
652+
new HashSet<>(Arrays.asList(StringType.getDescriptor()));
653653

654654
for (Descriptors.Descriptor descriptor : type_descriptors) {
655655
if (compatible.contains(descriptor)) {
@@ -730,6 +730,7 @@ public void testBQNumeric() {
730730
SFixed32Type.getDescriptor(),
731731
SFixed64Type.getDescriptor(),
732732
BytesType.getDescriptor(),
733+
StringType.getDescriptor(),
733734
FloatType.getDescriptor(),
734735
DoubleType.getDescriptor()));
735736

@@ -879,7 +880,7 @@ public void testBQTime() {
879880
.build()));
880881
SchemaCompatibility compact = SchemaCompatibility.getInstance(mockBigquery);
881882
HashSet<Descriptors.Descriptor> compatible =
882-
new HashSet<>(Arrays.asList(Int64Type.getDescriptor(), SFixed64Type.getDescriptor()));
883+
new HashSet<>(Arrays.asList(Int64Type.getDescriptor(), StringType.getDescriptor()));
883884

884885
for (Descriptors.Descriptor descriptor : type_descriptors) {
885886
if (compatible.contains(descriptor)) {

0 commit comments

Comments
 (0)