diff --git a/CHANGELOG.md b/CHANGELOG.md
index 68fe818513..3b1e95582c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,17 @@
# Changelog
+## [2.34.0](https://github.com/googleapis/java-bigquerystorage/compare/v2.33.1...v2.34.0) (2023-03-10)
+
+
+### Features
+
+* Add routing header for multiplexed connection ([#2035](https://github.com/googleapis/java-bigquerystorage/issues/2035)) ([1f2752f](https://github.com/googleapis/java-bigquerystorage/commit/1f2752f3988ac87dca50813d69d0d519a2356a30))
+
+
+### Bug Fixes
+
+* **bigdecimal:** Convert BigDecimal to BigNumeric instead of Numeric ([#2031](https://github.com/googleapis/java-bigquerystorage/issues/2031)) ([e0f7e34](https://github.com/googleapis/java-bigquerystorage/commit/e0f7e34ca7f7c60279985afec46f780e0acc9a9e)), closes [#2013](https://github.com/googleapis/java-bigquerystorage/issues/2013)
+
## [2.33.1](https://github.com/googleapis/java-bigquerystorage/compare/v2.33.0...v2.33.1) (2023-03-02)
diff --git a/README.md b/README.md
index 56af710a3e..e373392f39 100644
--- a/README.md
+++ b/README.md
@@ -49,20 +49,20 @@ If you are using Maven without BOM, add this to your dependencies:
If you are using Gradle 5.x or later, add this to your dependencies:
```Groovy
-implementation platform('com.google.cloud:libraries-bom:26.9.0')
+implementation platform('com.google.cloud:libraries-bom:26.10.0')
implementation 'com.google.cloud:google-cloud-bigquerystorage'
```
If you are using Gradle without BOM, add this to your dependencies:
```Groovy
-implementation 'com.google.cloud:google-cloud-bigquerystorage:2.33.0'
+implementation 'com.google.cloud:google-cloud-bigquerystorage:2.33.1'
```
If you are using SBT, add this to your dependencies:
```Scala
-libraryDependencies += "com.google.cloud" % "google-cloud-bigquerystorage" % "2.33.0"
+libraryDependencies += "com.google.cloud" % "google-cloud-bigquerystorage" % "2.33.1"
```
## Authentication
diff --git a/google-cloud-bigquerystorage-bom/pom.xml b/google-cloud-bigquerystorage-bom/pom.xml
index 0c2ba75cdd..bfd1195281 100644
--- a/google-cloud-bigquerystorage-bom/pom.xml
+++ b/google-cloud-bigquerystorage-bom/pom.xml
@@ -3,7 +3,7 @@
4.0.0
com.google.cloud
google-cloud-bigquerystorage-bom
- 2.33.1
+ 2.34.0
pom
com.google.cloud
@@ -52,37 +52,37 @@
com.google.cloud
google-cloud-bigquerystorage
- 2.33.1
+ 2.34.0
com.google.api.grpc
grpc-google-cloud-bigquerystorage-v1beta1
- 0.157.1
+ 0.158.0
com.google.api.grpc
grpc-google-cloud-bigquerystorage-v1beta2
- 0.157.1
+ 0.158.0
com.google.api.grpc
grpc-google-cloud-bigquerystorage-v1
- 2.33.1
+ 2.34.0
com.google.api.grpc
proto-google-cloud-bigquerystorage-v1beta1
- 0.157.1
+ 0.158.0
com.google.api.grpc
proto-google-cloud-bigquerystorage-v1beta2
- 0.157.1
+ 0.158.0
com.google.api.grpc
proto-google-cloud-bigquerystorage-v1
- 2.33.1
+ 2.34.0
diff --git a/google-cloud-bigquerystorage/pom.xml b/google-cloud-bigquerystorage/pom.xml
index e15f6316e9..4c82eafb15 100644
--- a/google-cloud-bigquerystorage/pom.xml
+++ b/google-cloud-bigquerystorage/pom.xml
@@ -3,7 +3,7 @@
4.0.0
com.google.cloud
google-cloud-bigquerystorage
- 2.33.1
+ 2.34.0
jar
BigQuery Storage
https://github.com/googleapis/java-bigquerystorage
@@ -11,7 +11,7 @@
com.google.cloud
google-cloud-bigquerystorage-parent
- 2.33.1
+ 2.34.0
google-cloud-bigquerystorage
diff --git a/google-cloud-bigquerystorage/src/main/java/com/google/cloud/bigquery/storage/v1/ConnectionWorker.java b/google-cloud-bigquerystorage/src/main/java/com/google/cloud/bigquery/storage/v1/ConnectionWorker.java
index 6da6950d3a..3d713fd914 100644
--- a/google-cloud-bigquerystorage/src/main/java/com/google/cloud/bigquery/storage/v1/ConnectionWorker.java
+++ b/google-cloud-bigquerystorage/src/main/java/com/google/cloud/bigquery/storage/v1/ConnectionWorker.java
@@ -51,6 +51,8 @@
import java.util.concurrent.locks.ReentrantLock;
import java.util.logging.Level;
import java.util.logging.Logger;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
import javax.annotation.concurrent.GuardedBy;
/**
@@ -219,11 +221,29 @@ class ConnectionWorker implements AutoCloseable {
private RuntimeException testOnlyRunTimeExceptionInAppendLoop = null;
private long testOnlyAppendLoopSleepTime = 0;
+ private static String projectMatching = "projects/[^/]+/";
+ private static Pattern streamPatternProject = Pattern.compile(projectMatching);
+
/** The maximum size of one request. Defined by the API. */
public static long getApiMaxRequestBytes() {
return 10L * 1000L * 1000L; // 10 megabytes (https://en.wikipedia.org/wiki/Megabyte)
}
+ static String extractProjectName(String streamName) {
+ Matcher streamMatcher = streamPatternProject.matcher(streamName);
+ if (streamMatcher.find()) {
+ return streamMatcher.group();
+ } else {
+ throw new IllegalStateException(
+ String.format("The passed in stream name does not match standard format %s", streamName));
+ }
+ }
+
+ static String getRoutingHeader(String streamName, String location) {
+ String project = extractProjectName(streamName);
+ return project + "locations/" + location;
+ }
+
public ConnectionWorker(
String streamName,
String location,
@@ -259,6 +279,10 @@ public ConnectionWorker(
newHeaders.putAll(clientSettings.toBuilder().getHeaderProvider().getHeaders());
if (this.location == null) {
newHeaders.put("x-goog-request-params", "write_stream=" + this.streamName);
+ } else {
+ newHeaders.put(
+ "x-goog-request-params",
+ "write_location=" + getRoutingHeader(this.streamName, this.location));
}
BigQueryWriteSettings stubSettings =
clientSettings
diff --git a/google-cloud-bigquerystorage/src/main/java/com/google/cloud/bigquery/storage/v1/JsonToProtoMessage.java b/google-cloud-bigquerystorage/src/main/java/com/google/cloud/bigquery/storage/v1/JsonToProtoMessage.java
index 27cd9ef41a..c402d66f54 100644
--- a/google-cloud-bigquerystorage/src/main/java/com/google/cloud/bigquery/storage/v1/JsonToProtoMessage.java
+++ b/google-cloud-bigquerystorage/src/main/java/com/google/cloud/bigquery/storage/v1/JsonToProtoMessage.java
@@ -355,7 +355,7 @@ private static void fillField(
} else if (val instanceof BigDecimal) {
protoMsg.setField(
fieldDescriptor,
- BigDecimalByteStringEncoder.encodeToNumericByteString((BigDecimal) val));
+ BigDecimalByteStringEncoder.encodeToBigNumericByteString((BigDecimal) val));
return;
}
}
@@ -603,7 +603,7 @@ private static void fillRepeatedField(
} else if (val instanceof BigDecimal) {
protoMsg.addRepeatedField(
fieldDescriptor,
- BigDecimalByteStringEncoder.encodeToNumericByteString((BigDecimal) val));
+ BigDecimalByteStringEncoder.encodeToBigNumericByteString((BigDecimal) val));
added = true;
}
}
diff --git a/google-cloud-bigquerystorage/src/test/java/com/google/cloud/bigquery/storage/v1/ConnectionWorkerTest.java b/google-cloud-bigquerystorage/src/test/java/com/google/cloud/bigquery/storage/v1/ConnectionWorkerTest.java
index cb4e05ab20..049e884aee 100644
--- a/google-cloud-bigquerystorage/src/test/java/com/google/cloud/bigquery/storage/v1/ConnectionWorkerTest.java
+++ b/google-cloud-bigquerystorage/src/test/java/com/google/cloud/bigquery/storage/v1/ConnectionWorkerTest.java
@@ -710,4 +710,10 @@ public void testLongTimeIdleWontFail() throws Exception {
assertEquals(i, futures.get(i).get().getAppendResult().getOffset().getValue());
}
}
+
+ @Test
+ public void testLocationName() throws Exception {
+ assertEquals(
+ "projects/p1/locations/us", ConnectionWorker.getRoutingHeader(TEST_STREAM_1, "us"));
+ }
}
diff --git a/google-cloud-bigquerystorage/src/test/java/com/google/cloud/bigquery/storage/v1/JsonToProtoMessageTest.java b/google-cloud-bigquerystorage/src/test/java/com/google/cloud/bigquery/storage/v1/JsonToProtoMessageTest.java
index 62daf66950..91785ce0ec 100644
--- a/google-cloud-bigquerystorage/src/test/java/com/google/cloud/bigquery/storage/v1/JsonToProtoMessageTest.java
+++ b/google-cloud-bigquerystorage/src/test/java/com/google/cloud/bigquery/storage/v1/JsonToProtoMessageTest.java
@@ -984,7 +984,7 @@ public void testStructComplex() throws Exception {
BigDecimalByteStringEncoder.encodeToNumericByteString(new BigDecimal(5D)))
.setTestBignumeric(
BigDecimalByteStringEncoder.encodeToBigNumericByteString(
- new BigDecimal("578960446186580977117854925043439539266.3")))
+ new BigDecimal("578960446186580977117854925043439539266.3222222222")))
.addTestBignumericStr(
BigDecimalByteStringEncoder.encodeToBigNumericByteString(new BigDecimal("1.23")))
.setTestBignumericShort(
@@ -1047,9 +1047,7 @@ public void testStructComplex() throws Exception {
json.put("test_numeric_float", 4f);
json.put("test_numeric_double", 5D);
json.put(
- "test_bignumeric",
- BigDecimalByteStringEncoder.encodeToBigNumericByteString(
- new BigDecimal("578960446186580977117854925043439539266.3")));
+ "test_bignumeric", new BigDecimal("578960446186580977117854925043439539266.3222222222"));
json.put("test_bignumeric_str", new JSONArray(new String[] {"1.23"}));
json.put("test_bignumeric_short", 1);
json.put("test_bignumeric_int", 2);
@@ -1415,6 +1413,31 @@ public void testDoubleAndFloatToNumericConversion() {
assertEquals(expectedProto, protoMsg);
}
+ @Test
+ public void testBigDecimalToBigNumericConversion() {
+ TableSchema ts =
+ TableSchema.newBuilder()
+ .addFields(
+ 0,
+ TableFieldSchema.newBuilder()
+ .setName("bignumeric")
+ .setType(TableFieldSchema.Type.BIGNUMERIC)
+ .setMode(TableFieldSchema.Mode.REPEATED)
+ .build())
+ .build();
+ TestBignumeric expectedProto =
+ TestBignumeric.newBuilder()
+ .addBignumeric(
+ BigDecimalByteStringEncoder.encodeToBigNumericByteString(
+ new BigDecimal("24.6789012345")))
+ .build();
+ JSONObject json = new JSONObject();
+ json.put("bignumeric", Collections.singletonList(new BigDecimal("24.6789012345")));
+ DynamicMessage protoMsg =
+ JsonToProtoMessage.convertJsonToProtoMessage(TestBignumeric.getDescriptor(), ts, json);
+ assertEquals(expectedProto, protoMsg);
+ }
+
@Test
public void testDoubleAndFloatToRepeatedBigNumericConversion() {
TableSchema ts =
diff --git a/grpc-google-cloud-bigquerystorage-v1/pom.xml b/grpc-google-cloud-bigquerystorage-v1/pom.xml
index d58d8855d3..3abe5fae42 100644
--- a/grpc-google-cloud-bigquerystorage-v1/pom.xml
+++ b/grpc-google-cloud-bigquerystorage-v1/pom.xml
@@ -4,13 +4,13 @@
4.0.0
com.google.api.grpc
grpc-google-cloud-bigquerystorage-v1
- 2.33.1
+ 2.34.0
grpc-google-cloud-bigquerystorage-v1
GRPC library for grpc-google-cloud-bigquerystorage-v1
com.google.cloud
google-cloud-bigquerystorage-parent
- 2.33.1
+ 2.34.0
diff --git a/grpc-google-cloud-bigquerystorage-v1beta1/pom.xml b/grpc-google-cloud-bigquerystorage-v1beta1/pom.xml
index 11bf193c04..0481abf0a4 100644
--- a/grpc-google-cloud-bigquerystorage-v1beta1/pom.xml
+++ b/grpc-google-cloud-bigquerystorage-v1beta1/pom.xml
@@ -4,13 +4,13 @@
4.0.0
com.google.api.grpc
grpc-google-cloud-bigquerystorage-v1beta1
- 0.157.1
+ 0.158.0
grpc-google-cloud-bigquerystorage-v1beta1
GRPC library for grpc-google-cloud-bigquerystorage-v1beta1
com.google.cloud
google-cloud-bigquerystorage-parent
- 2.33.1
+ 2.34.0
diff --git a/grpc-google-cloud-bigquerystorage-v1beta2/pom.xml b/grpc-google-cloud-bigquerystorage-v1beta2/pom.xml
index 4fe6f2af2f..9a825b6b6a 100644
--- a/grpc-google-cloud-bigquerystorage-v1beta2/pom.xml
+++ b/grpc-google-cloud-bigquerystorage-v1beta2/pom.xml
@@ -4,13 +4,13 @@
4.0.0
com.google.api.grpc
grpc-google-cloud-bigquerystorage-v1beta2
- 0.157.1
+ 0.158.0
grpc-google-cloud-bigquerystorage-v1beta2
GRPC library for grpc-google-cloud-bigquerystorage-v1beta2
com.google.cloud
google-cloud-bigquerystorage-parent
- 2.33.1
+ 2.34.0
diff --git a/pom.xml b/pom.xml
index c4a7299c8a..1f80e69774 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
com.google.cloud
google-cloud-bigquerystorage-parent
pom
- 2.33.1
+ 2.34.0
BigQuery Storage Parent
https://github.com/googleapis/java-bigquerystorage
@@ -83,37 +83,37 @@
com.google.api.grpc
proto-google-cloud-bigquerystorage-v1beta1
- 0.157.1
+ 0.158.0
com.google.api.grpc
proto-google-cloud-bigquerystorage-v1beta2
- 0.157.1
+ 0.158.0
com.google.api.grpc
proto-google-cloud-bigquerystorage-v1
- 2.33.1
+ 2.34.0
com.google.api.grpc
grpc-google-cloud-bigquerystorage-v1beta1
- 0.157.1
+ 0.158.0
com.google.api.grpc
grpc-google-cloud-bigquerystorage-v1beta2
- 0.157.1
+ 0.158.0
com.google.api.grpc
grpc-google-cloud-bigquerystorage-v1
- 2.33.1
+ 2.34.0
com.google.cloud
google-cloud-bigquerystorage
- 2.33.1
+ 2.34.0
org.json
diff --git a/proto-google-cloud-bigquerystorage-v1/pom.xml b/proto-google-cloud-bigquerystorage-v1/pom.xml
index ab167e3e43..b84e3bc7fa 100644
--- a/proto-google-cloud-bigquerystorage-v1/pom.xml
+++ b/proto-google-cloud-bigquerystorage-v1/pom.xml
@@ -4,13 +4,13 @@
4.0.0
com.google.api.grpc
proto-google-cloud-bigquerystorage-v1
- 2.33.1
+ 2.34.0
proto-google-cloud-bigquerystorage-v1
PROTO library for proto-google-cloud-bigquerystorage-v1
com.google.cloud
google-cloud-bigquerystorage-parent
- 2.33.1
+ 2.34.0
diff --git a/proto-google-cloud-bigquerystorage-v1beta1/pom.xml b/proto-google-cloud-bigquerystorage-v1beta1/pom.xml
index 620c8fc9d3..8aebeb3f9c 100644
--- a/proto-google-cloud-bigquerystorage-v1beta1/pom.xml
+++ b/proto-google-cloud-bigquerystorage-v1beta1/pom.xml
@@ -4,13 +4,13 @@
4.0.0
com.google.api.grpc
proto-google-cloud-bigquerystorage-v1beta1
- 0.157.1
+ 0.158.0
proto-google-cloud-bigquerystorage-v1beta1
PROTO library for proto-google-cloud-bigquerystorage-v1beta1
com.google.cloud
google-cloud-bigquerystorage-parent
- 2.33.1
+ 2.34.0
diff --git a/proto-google-cloud-bigquerystorage-v1beta2/pom.xml b/proto-google-cloud-bigquerystorage-v1beta2/pom.xml
index 21233134f0..4db97c9aa7 100644
--- a/proto-google-cloud-bigquerystorage-v1beta2/pom.xml
+++ b/proto-google-cloud-bigquerystorage-v1beta2/pom.xml
@@ -4,13 +4,13 @@
4.0.0
com.google.api.grpc
proto-google-cloud-bigquerystorage-v1beta2
- 0.157.1
+ 0.158.0
proto-google-cloud-bigquerystorage-v1beta2
PROTO library for proto-google-cloud-bigquerystorage-v1beta2
com.google.cloud
google-cloud-bigquerystorage-parent
- 2.33.1
+ 2.34.0
diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml
index f77fcff5d2..9c405f0cf4 100644
--- a/samples/snapshot/pom.xml
+++ b/samples/snapshot/pom.xml
@@ -29,7 +29,7 @@
com.google.cloud
google-cloud-bigquerystorage
- 2.33.1
+ 2.34.0
diff --git a/versions.txt b/versions.txt
index de19bb0d55..37259216b6 100644
--- a/versions.txt
+++ b/versions.txt
@@ -1,10 +1,10 @@
# Format:
# module:released-version:current-version
-google-cloud-bigquerystorage:2.33.1:2.33.1
-grpc-google-cloud-bigquerystorage-v1beta1:0.157.1:0.157.1
-grpc-google-cloud-bigquerystorage-v1beta2:0.157.1:0.157.1
-grpc-google-cloud-bigquerystorage-v1:2.33.1:2.33.1
-proto-google-cloud-bigquerystorage-v1beta1:0.157.1:0.157.1
-proto-google-cloud-bigquerystorage-v1beta2:0.157.1:0.157.1
-proto-google-cloud-bigquerystorage-v1:2.33.1:2.33.1
+google-cloud-bigquerystorage:2.34.0:2.34.0
+grpc-google-cloud-bigquerystorage-v1beta1:0.158.0:0.158.0
+grpc-google-cloud-bigquerystorage-v1beta2:0.158.0:0.158.0
+grpc-google-cloud-bigquerystorage-v1:2.34.0:2.34.0
+proto-google-cloud-bigquerystorage-v1beta1:0.158.0:0.158.0
+proto-google-cloud-bigquerystorage-v1beta2:0.158.0:0.158.0
+proto-google-cloud-bigquerystorage-v1:2.34.0:2.34.0