Skip to content

Commit 604d7df

Browse files
dark0davegcf-owl-bot[bot]Neenu1995
authored
feat(shortsAndBigDecimals): add shorts and big decimals (#1674)
* feat(shortsAndBigDecimals): add shorts and big decimals Signed-off-by: dark0dave <dark0dave@mykolab.com> * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Signed-off-by: dark0dave <dark0dave@mykolab.com> Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com> Co-authored-by: Neenu Shaji <Neenu1995@users.noreply.github.com>
1 parent 5159cf0 commit 604d7df

File tree

6 files changed

+188
-96
lines changed

6 files changed

+188
-96
lines changed

google-cloud-bigquerystorage/src/main/java/com/google/cloud/bigquery/storage/v1/JsonToProtoMessage.java

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -308,7 +308,7 @@ private static void fillField(
308308
BigDecimalByteStringEncoder.encodeToNumericByteString(
309309
new BigDecimal((String) val)));
310310
return;
311-
} else if (val instanceof Integer || val instanceof Long) {
311+
} else if (val instanceof Short || val instanceof Integer || val instanceof Long) {
312312
protoMsg.setField(
313313
fieldDescriptor,
314314
BigDecimalByteStringEncoder.encodeToNumericByteString(
@@ -320,6 +320,11 @@ private static void fillField(
320320
BigDecimalByteStringEncoder.encodeToNumericByteString(
321321
new BigDecimal(String.valueOf(val))));
322322
return;
323+
} else if (val instanceof BigDecimal) {
324+
protoMsg.setField(
325+
fieldDescriptor,
326+
BigDecimalByteStringEncoder.encodeToNumericByteString((BigDecimal) val));
327+
return;
323328
}
324329
} else if (fieldSchema.getType() == TableFieldSchema.Type.BIGNUMERIC) {
325330
if (val instanceof String) {
@@ -328,7 +333,7 @@ private static void fillField(
328333
BigDecimalByteStringEncoder.encodeToBigNumericByteString(
329334
new BigDecimal((String) val)));
330335
return;
331-
} else if (val instanceof Integer || val instanceof Long) {
336+
} else if (val instanceof Short || val instanceof Integer || val instanceof Long) {
332337
protoMsg.setField(
333338
fieldDescriptor,
334339
BigDecimalByteStringEncoder.encodeToBigNumericByteString(
@@ -340,6 +345,11 @@ private static void fillField(
340345
BigDecimalByteStringEncoder.encodeToBigNumericByteString(
341346
new BigDecimal(String.valueOf(val))));
342347
return;
348+
} else if (val instanceof BigDecimal) {
349+
protoMsg.setField(
350+
fieldDescriptor,
351+
BigDecimalByteStringEncoder.encodeToNumericByteString((BigDecimal) val));
352+
return;
343353
}
344354
}
345355
}
@@ -542,7 +552,7 @@ private static void fillRepeatedField(
542552
BigDecimalByteStringEncoder.encodeToNumericByteString(
543553
new BigDecimal((String) val)));
544554
added = true;
545-
} else if (val instanceof Integer || val instanceof Long) {
555+
} else if (val instanceof Short || val instanceof Integer || val instanceof Long) {
546556
protoMsg.addRepeatedField(
547557
fieldDescriptor,
548558
BigDecimalByteStringEncoder.encodeToNumericByteString(
@@ -554,6 +564,11 @@ private static void fillRepeatedField(
554564
BigDecimalByteStringEncoder.encodeToNumericByteString(
555565
new BigDecimal(String.valueOf(val))));
556566
added = true;
567+
} else if (val instanceof BigDecimal) {
568+
protoMsg.addRepeatedField(
569+
fieldDescriptor,
570+
BigDecimalByteStringEncoder.encodeToNumericByteString((BigDecimal) val));
571+
added = true;
557572
}
558573
} else if (fieldSchema != null
559574
&& fieldSchema.getType() == TableFieldSchema.Type.BIGNUMERIC) {
@@ -563,7 +578,7 @@ private static void fillRepeatedField(
563578
BigDecimalByteStringEncoder.encodeToBigNumericByteString(
564579
new BigDecimal((String) val)));
565580
added = true;
566-
} else if (val instanceof Integer || val instanceof Long) {
581+
} else if (val instanceof Short || val instanceof Integer || val instanceof Long) {
567582
protoMsg.addRepeatedField(
568583
fieldDescriptor,
569584
BigDecimalByteStringEncoder.encodeToBigNumericByteString(
@@ -575,6 +590,11 @@ private static void fillRepeatedField(
575590
BigDecimalByteStringEncoder.encodeToBigNumericByteString(
576591
new BigDecimal(String.valueOf(val))));
577592
added = true;
593+
} else if (val instanceof BigDecimal) {
594+
protoMsg.addRepeatedField(
595+
fieldDescriptor,
596+
BigDecimalByteStringEncoder.encodeToNumericByteString((BigDecimal) val));
597+
added = true;
578598
}
579599
}
580600
if (!added) {

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

Lines changed: 26 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,12 @@ public void testStructComplex() throws Exception {
233233
.setMode(TableFieldSchema.Mode.NULLABLE)
234234
.setName("test_numeric_str")
235235
.build();
236+
final TableFieldSchema TEST_NUMERIC_SHORT =
237+
TableFieldSchema.newBuilder()
238+
.setType(TableFieldSchema.Type.NUMERIC)
239+
.setMode(TableFieldSchema.Mode.NULLABLE)
240+
.setName("test_numeric_short")
241+
.build();
236242
final TableFieldSchema TEST_NUMERIC_INT =
237243
TableFieldSchema.newBuilder()
238244
.setType(TableFieldSchema.Type.NUMERIC)
@@ -269,6 +275,12 @@ public void testStructComplex() throws Exception {
269275
.setMode(TableFieldSchema.Mode.REPEATED)
270276
.setName("test_bignumeric_str")
271277
.build();
278+
final TableFieldSchema TEST_BIGNUMERIC_SHORT =
279+
TableFieldSchema.newBuilder()
280+
.setType(TableFieldSchema.Type.BIGNUMERIC)
281+
.setMode(TableFieldSchema.Mode.NULLABLE)
282+
.setName("test_bignumeric_short")
283+
.build();
272284
final TableFieldSchema TEST_BIGNUMERIC_INT =
273285
TableFieldSchema.newBuilder()
274286
.setType(TableFieldSchema.Type.BIGNUMERIC)
@@ -324,18 +336,20 @@ public void testStructComplex() throws Exception {
324336
.addFields(14, TEST_TIME_STR)
325337
.addFields(15, TEST_NUMERIC_REPEATED)
326338
.addFields(16, TEST_NUMERIC_STR)
327-
.addFields(17, TEST_NUMERIC_INT)
328-
.addFields(18, TEST_NUMERIC_LONG)
329-
.addFields(19, TEST_NUMERIC_FLOAT)
330-
.addFields(20, TEST_NUMERIC_DOUBLE)
331-
.addFields(21, TEST_BIGNUMERIC)
332-
.addFields(22, TEST_BIGNUMERIC_STR)
333-
.addFields(23, TEST_BIGNUMERIC_INT)
334-
.addFields(24, TEST_BIGNUMERIC_LONG)
335-
.addFields(25, TEST_BIGNUMERIC_FLOAT)
336-
.addFields(26, TEST_BIGNUMERIC_DOUBLE)
337-
.addFields(27, TEST_INTERVAL)
338-
.addFields(28, TEST_JSON)
339+
.addFields(17, TEST_NUMERIC_SHORT)
340+
.addFields(18, TEST_NUMERIC_INT)
341+
.addFields(19, TEST_NUMERIC_LONG)
342+
.addFields(20, TEST_NUMERIC_FLOAT)
343+
.addFields(21, TEST_NUMERIC_DOUBLE)
344+
.addFields(22, TEST_BIGNUMERIC)
345+
.addFields(23, TEST_BIGNUMERIC_STR)
346+
.addFields(24, TEST_BIGNUMERIC_SHORT)
347+
.addFields(25, TEST_BIGNUMERIC_INT)
348+
.addFields(26, TEST_BIGNUMERIC_LONG)
349+
.addFields(27, TEST_BIGNUMERIC_FLOAT)
350+
.addFields(28, TEST_BIGNUMERIC_DOUBLE)
351+
.addFields(29, TEST_INTERVAL)
352+
.addFields(30, TEST_JSON)
339353
.build();
340354
final Descriptor descriptor =
341355
BQTableSchemaToProtoDescriptor.convertBQTableSchemaToProtoDescriptor(tableSchema);

google-cloud-bigquerystorage/src/test/java/com/google/cloud/bigquery/storage/v1/JsonToProtoMessageTest.java

Lines changed: 48 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -410,6 +410,12 @@ public class JsonToProtoMessageTest {
410410
.setMode(TableFieldSchema.Mode.NULLABLE)
411411
.setName("test_numeric_str")
412412
.build();
413+
private final TableFieldSchema TEST_NUMERIC_SHORT =
414+
TableFieldSchema.newBuilder()
415+
.setType(TableFieldSchema.Type.NUMERIC)
416+
.setMode(TableFieldSchema.Mode.NULLABLE)
417+
.setName("test_numeric_short")
418+
.build();
413419
private final TableFieldSchema TEST_NUMERIC_INT =
414420
TableFieldSchema.newBuilder()
415421
.setType(TableFieldSchema.Type.NUMERIC)
@@ -446,6 +452,12 @@ public class JsonToProtoMessageTest {
446452
.setMode(TableFieldSchema.Mode.REPEATED)
447453
.setName("test_bignumeric_str")
448454
.build();
455+
private final TableFieldSchema TEST_BIGNUMERIC_SHORT =
456+
TableFieldSchema.newBuilder()
457+
.setType(TableFieldSchema.Type.BIGNUMERIC)
458+
.setMode(TableFieldSchema.Mode.NULLABLE)
459+
.setName("test_bignumeric_short")
460+
.build();
449461
private final TableFieldSchema TEST_BIGNUMERIC_INT =
450462
TableFieldSchema.newBuilder()
451463
.setType(TableFieldSchema.Type.BIGNUMERIC)
@@ -501,18 +513,20 @@ public class JsonToProtoMessageTest {
501513
.addFields(14, TEST_TIME_STR)
502514
.addFields(15, TEST_NUMERIC_REPEATED)
503515
.addFields(16, TEST_NUMERIC_STR)
504-
.addFields(17, TEST_NUMERIC_INT)
505-
.addFields(18, TEST_NUMERIC_LONG)
506-
.addFields(19, TEST_NUMERIC_FLOAT)
507-
.addFields(20, TEST_NUMERIC_DOUBLE)
508-
.addFields(21, TEST_BIGNUMERIC)
509-
.addFields(22, TEST_BIGNUMERIC_STR)
510-
.addFields(23, TEST_BIGNUMERIC_INT)
511-
.addFields(24, TEST_BIGNUMERIC_LONG)
512-
.addFields(25, TEST_BIGNUMERIC_FLOAT)
513-
.addFields(26, TEST_BIGNUMERIC_DOUBLE)
514-
.addFields(27, TEST_INTERVAL)
515-
.addFields(28, TEST_JSON)
516+
.addFields(17, TEST_NUMERIC_SHORT)
517+
.addFields(18, TEST_NUMERIC_INT)
518+
.addFields(19, TEST_NUMERIC_LONG)
519+
.addFields(20, TEST_NUMERIC_FLOAT)
520+
.addFields(21, TEST_NUMERIC_DOUBLE)
521+
.addFields(22, TEST_BIGNUMERIC)
522+
.addFields(23, TEST_BIGNUMERIC_STR)
523+
.addFields(24, TEST_BIGNUMERIC_SHORT)
524+
.addFields(25, TEST_BIGNUMERIC_INT)
525+
.addFields(26, TEST_BIGNUMERIC_LONG)
526+
.addFields(27, TEST_BIGNUMERIC_FLOAT)
527+
.addFields(28, TEST_BIGNUMERIC_DOUBLE)
528+
.addFields(29, TEST_INTERVAL)
529+
.addFields(30, TEST_JSON)
516530
.build();
517531

518532
@Test
@@ -903,27 +917,31 @@ public void testStructComplex() throws Exception {
903917
new BigDecimal("-99999999999999999999999999999.999999999")))
904918
.setTestNumericStr(
905919
BigDecimalByteStringEncoder.encodeToNumericByteString(new BigDecimal("12.4")))
906-
.setTestNumericInt(
920+
.setTestNumericShort(
907921
BigDecimalByteStringEncoder.encodeToNumericByteString(new BigDecimal(1)))
922+
.setTestNumericInt(
923+
BigDecimalByteStringEncoder.encodeToNumericByteString(new BigDecimal(2)))
908924
.setTestNumericLong(
909-
BigDecimalByteStringEncoder.encodeToNumericByteString(new BigDecimal(1L)))
925+
BigDecimalByteStringEncoder.encodeToNumericByteString(new BigDecimal(3L)))
910926
.setTestNumericFloat(
911-
BigDecimalByteStringEncoder.encodeToNumericByteString(new BigDecimal(1f)))
927+
BigDecimalByteStringEncoder.encodeToNumericByteString(new BigDecimal(4f)))
912928
.setTestNumericDouble(
913-
BigDecimalByteStringEncoder.encodeToNumericByteString(new BigDecimal(1D)))
929+
BigDecimalByteStringEncoder.encodeToNumericByteString(new BigDecimal(5D)))
914930
.setTestBignumeric(
915931
BigDecimalByteStringEncoder.encodeToBigNumericByteString(
916932
new BigDecimal("578960446186580977117854925043439539266.3")))
917933
.addTestBignumericStr(
918934
BigDecimalByteStringEncoder.encodeToBigNumericByteString(new BigDecimal("1.23")))
919-
.setTestBignumericInt(
935+
.setTestBignumericShort(
920936
BigDecimalByteStringEncoder.encodeToBigNumericByteString(new BigDecimal(1)))
937+
.setTestBignumericInt(
938+
BigDecimalByteStringEncoder.encodeToBigNumericByteString(new BigDecimal(2)))
921939
.setTestBignumericLong(
922-
BigDecimalByteStringEncoder.encodeToBigNumericByteString(new BigDecimal(1L)))
940+
BigDecimalByteStringEncoder.encodeToBigNumericByteString(new BigDecimal(3L)))
923941
.setTestBignumericFloat(
924-
BigDecimalByteStringEncoder.encodeToBigNumericByteString(new BigDecimal(1f)))
942+
BigDecimalByteStringEncoder.encodeToBigNumericByteString(new BigDecimal(4f)))
925943
.setTestBignumericDouble(
926-
BigDecimalByteStringEncoder.encodeToBigNumericByteString(new BigDecimal(1D)))
944+
BigDecimalByteStringEncoder.encodeToBigNumericByteString(new BigDecimal(5D)))
927945
.setTestInterval("0-0 0 0:0:0.000005")
928946
.addTestJson("{'a':'b'}")
929947
.build();
@@ -968,19 +986,21 @@ public void testStructComplex() throws Exception {
968986
json.put("test_time", CivilTimeEncoder.encodePacked64TimeMicros(LocalTime.of(1, 0, 1)));
969987
json.put("test_time_str", "20:51:10.1234");
970988
json.put("test_numeric_str", "12.4");
971-
json.put("test_numeric_int", 1);
972-
json.put("test_numeric_long", 1L);
973-
json.put("test_numeric_float", 1f);
974-
json.put("test_numeric_double", 1D);
989+
json.put("test_numeric_short", 1);
990+
json.put("test_numeric_int", 2);
991+
json.put("test_numeric_long", 3L);
992+
json.put("test_numeric_float", 4f);
993+
json.put("test_numeric_double", 5D);
975994
json.put(
976995
"test_bignumeric",
977996
BigDecimalByteStringEncoder.encodeToBigNumericByteString(
978997
new BigDecimal("578960446186580977117854925043439539266.3")));
979998
json.put("test_bignumeric_str", new JSONArray(new String[] {"1.23"}));
980-
json.put("test_bignumeric_int", 1);
981-
json.put("test_bignumeric_long", 1L);
982-
json.put("test_bignumeric_float", 1f);
983-
json.put("test_bignumeric_double", 1D);
999+
json.put("test_bignumeric_short", 1);
1000+
json.put("test_bignumeric_int", 2);
1001+
json.put("test_bignumeric_long", 3L);
1002+
json.put("test_bignumeric_float", 4f);
1003+
json.put("test_bignumeric_double", 5D);
9841004
json.put("test_interval", "0-0 0 0:0:0.000005");
9851005
json.put("test_json", new JSONArray(new String[] {"{'a':'b'}"}));
9861006
DynamicMessage protoMsg =

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

Lines changed: 27 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,12 @@ public void testStructComplex() throws Exception {
233233
.setMode(TableFieldSchema.Mode.NULLABLE)
234234
.setName("test_numeric_str")
235235
.build();
236+
final TableFieldSchema TEST_NUMERIC_SHORT =
237+
TableFieldSchema.newBuilder()
238+
.setType(TableFieldSchema.Type.NUMERIC)
239+
.setMode(TableFieldSchema.Mode.NULLABLE)
240+
.setName("test_numeric_short")
241+
.build();
236242
final TableFieldSchema TEST_NUMERIC_INT =
237243
TableFieldSchema.newBuilder()
238244
.setType(TableFieldSchema.Type.NUMERIC)
@@ -269,6 +275,13 @@ public void testStructComplex() throws Exception {
269275
.setMode(TableFieldSchema.Mode.REPEATED)
270276
.setName("test_bignumeric_str")
271277
.build();
278+
279+
final TableFieldSchema TEST_BIGNUMERIC_SHORT =
280+
TableFieldSchema.newBuilder()
281+
.setType(TableFieldSchema.Type.NUMERIC)
282+
.setMode(TableFieldSchema.Mode.NULLABLE)
283+
.setName("test_bignumeric_short")
284+
.build();
272285
final TableFieldSchema TEST_BIGNUMERIC_INT =
273286
TableFieldSchema.newBuilder()
274287
.setType(TableFieldSchema.Type.NUMERIC)
@@ -324,18 +337,20 @@ public void testStructComplex() throws Exception {
324337
.addFields(14, TEST_TIME_STR)
325338
.addFields(15, TEST_NUMERIC_REPEATED)
326339
.addFields(16, TEST_NUMERIC_STR)
327-
.addFields(17, TEST_NUMERIC_INT)
328-
.addFields(18, TEST_NUMERIC_LONG)
329-
.addFields(19, TEST_NUMERIC_FLOAT)
330-
.addFields(20, TEST_NUMERIC_DOUBLE)
331-
.addFields(21, TEST_BIGNUMERIC)
332-
.addFields(22, TEST_BIGNUMERIC_STR)
333-
.addFields(23, TEST_BIGNUMERIC_INT)
334-
.addFields(24, TEST_BIGNUMERIC_FLOAT)
335-
.addFields(25, TEST_BIGNUMERIC_DOUBLE)
336-
.addFields(26, TEST_BIGNUMERIC_LONG)
337-
.addFields(27, TEST_INTERVAL)
338-
.addFields(28, TEST_JSON)
340+
.addFields(17, TEST_NUMERIC_SHORT)
341+
.addFields(18, TEST_NUMERIC_INT)
342+
.addFields(19, TEST_NUMERIC_LONG)
343+
.addFields(20, TEST_NUMERIC_FLOAT)
344+
.addFields(21, TEST_NUMERIC_DOUBLE)
345+
.addFields(22, TEST_BIGNUMERIC)
346+
.addFields(23, TEST_BIGNUMERIC_STR)
347+
.addFields(24, TEST_BIGNUMERIC_SHORT)
348+
.addFields(25, TEST_BIGNUMERIC_INT)
349+
.addFields(26, TEST_BIGNUMERIC_FLOAT)
350+
.addFields(27, TEST_BIGNUMERIC_DOUBLE)
351+
.addFields(28, TEST_BIGNUMERIC_LONG)
352+
.addFields(29, TEST_INTERVAL)
353+
.addFields(30, TEST_JSON)
339354
.build();
340355
final Descriptor descriptor =
341356
BQTableSchemaToProtoDescriptor.convertBQTableSchemaToProtoDescriptor(tableSchema);

0 commit comments

Comments
 (0)