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

Commit 20ff9e1

Browse files
Changing from BigNumeric to Numeric
1 parent f90e636 commit 20ff9e1

File tree

2 files changed

+18
-24
lines changed

2 files changed

+18
-24
lines changed

google-cloud-bigquerystorage/src/main/java/com/google/cloud/bigquery/storage/v1beta2/BigDecimalByteStringEncoder.java

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -27,25 +27,23 @@
2727
import java.math.BigInteger;
2828

2929
public class BigDecimalByteStringEncoder {
30-
private static int BigDecimalScale = 38;
31-
private static final BigDecimal MAX_BIGNUMERIC_VALUE =
32-
new BigDecimal(
33-
"578960446186580977117854925043439539266.34992332820282019728792003956564819967");
34-
private static final BigDecimal MIN_BIGNUMERIC_VALUE =
35-
new BigDecimal(
36-
"-578960446186580977117854925043439539266.34992332820282019728792003956564819968");
30+
private static int NumericScale = 9;
31+
private static final BigDecimal MAX_NUMERIC_VALUE =
32+
new BigDecimal("99999999999999999999999999999.999999999");
33+
private static final BigDecimal MIN_NUMERIC_VALUE =
34+
new BigDecimal("-99999999999999999999999999999.999999999");
3735

3836
public static ByteString encodeToNumericByteString(BigDecimal bigDecimal) {
3937
ByteString byteString =
4038
serializeBigDecimal(
41-
bigDecimal, BigDecimalScale, MAX_BIGNUMERIC_VALUE, MIN_BIGNUMERIC_VALUE, "ByteString");
39+
bigDecimal, NumericScale, MAX_NUMERIC_VALUE, MIN_NUMERIC_VALUE, "ByteString");
4240
return byteString;
4341
}
4442

45-
public static BigDecimal decodeToBigDecimal(ByteString byteString) {
43+
public static BigDecimal decodeNumericByteString(ByteString byteString) {
4644
BigDecimal bigDecimal =
4745
deserializeBigDecimal(
48-
byteString, BigDecimalScale, MAX_BIGNUMERIC_VALUE, MIN_BIGNUMERIC_VALUE, "BigDecimal");
46+
byteString, NumericScale, MAX_NUMERIC_VALUE, MIN_NUMERIC_VALUE, "BigDecimal");
4947
return bigDecimal;
5048
}
5149
// Make these private and make public wrapper that internalizes these min/max/scale/type

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

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -27,39 +27,35 @@
2727
public class BigDecimalByteStringEncoderTest {
2828
@Test
2929
public void testEncodeBigDecimalandEncodeByteString() {
30-
BigDecimal testBD = BigDecimal.valueOf(0); // expected result bd
30+
BigDecimal testBD = new BigDecimal("0"); // expected result bd
3131
ByteString testBS =
3232
BigDecimalByteStringEncoder.encodeToNumericByteString(testBD); // convert expected to bs
3333
BigDecimal resultBD =
34-
BigDecimalByteStringEncoder.decodeToBigDecimal(testBS); // convert bs to bd
34+
BigDecimalByteStringEncoder.decodeNumericByteString(testBS); // convert bs to bd
3535
Assert.assertEquals(
3636
0, resultBD.compareTo(testBD)); // ensure converted bd is equal to expected bd
3737

38-
testBD = BigDecimal.valueOf(1.2);
38+
testBD = new BigDecimal("1.2");
3939
testBS = BigDecimalByteStringEncoder.encodeToNumericByteString(testBD);
40-
resultBD = BigDecimalByteStringEncoder.decodeToBigDecimal(testBS);
40+
resultBD = BigDecimalByteStringEncoder.decodeNumericByteString(testBS);
4141
Assert.assertEquals(
4242
0, resultBD.compareTo(testBD)); // ensure converted bd is equal to expected bd
4343

44-
testBD = BigDecimal.valueOf(-1.2);
44+
testBD = new BigDecimal("-1.2");
4545
testBS = BigDecimalByteStringEncoder.encodeToNumericByteString(testBD);
46-
resultBD = BigDecimalByteStringEncoder.decodeToBigDecimal(testBS);
46+
resultBD = BigDecimalByteStringEncoder.decodeNumericByteString(testBS);
4747
Assert.assertEquals(
4848
0, resultBD.compareTo(testBD)); // ensure converted bd is equal to expected bd
4949

50-
testBD =
51-
BigDecimal.valueOf(
52-
578960446186580977117854925043439539266.34992332820282019728792003956564819967);
50+
testBD = new BigDecimal("99999999999999999999999999999.999999999");
5351
testBS = BigDecimalByteStringEncoder.encodeToNumericByteString(testBD);
54-
resultBD = BigDecimalByteStringEncoder.decodeToBigDecimal(testBS);
52+
resultBD = BigDecimalByteStringEncoder.decodeNumericByteString(testBS);
5553
Assert.assertEquals(
5654
0, resultBD.compareTo(testBD)); // ensure converted bd is equal to expected bd
5755

58-
testBD =
59-
BigDecimal.valueOf(
60-
-578960446186580977117854925043439539266.34992332820282019728792003956564819967);
56+
testBD = new BigDecimal("-99999999999999999999999999999.999999999");
6157
testBS = BigDecimalByteStringEncoder.encodeToNumericByteString(testBD);
62-
resultBD = BigDecimalByteStringEncoder.decodeToBigDecimal(testBS);
58+
resultBD = BigDecimalByteStringEncoder.decodeNumericByteString(testBS);
6359
Assert.assertEquals(
6460
0, resultBD.compareTo(testBD)); // ensure converted bd is equal to expected bd
6561
}

0 commit comments

Comments
 (0)