From 91a2becf7a296b1fd33fe880f7a3b710eab4783c Mon Sep 17 00:00:00 2001 From: ledai Date: Wed, 3 Jan 2024 07:10:10 +0800 Subject: [PATCH] feat!: use table name create default write stream issue fix (#2119) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * no block table default stream name * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * change default stream name * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- .../bigquery/storage/v1/SchemaAwareStreamWriter.java | 6 +++++- .../cloud/bigquery/storage/v1/JsonStreamWriterTest.java | 8 ++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/google-cloud-bigquerystorage/src/main/java/com/google/cloud/bigquery/storage/v1/SchemaAwareStreamWriter.java b/google-cloud-bigquerystorage/src/main/java/com/google/cloud/bigquery/storage/v1/SchemaAwareStreamWriter.java index fced8ccd1e..c95ee72ae8 100644 --- a/google-cloud-bigquerystorage/src/main/java/com/google/cloud/bigquery/storage/v1/SchemaAwareStreamWriter.java +++ b/google-cloud-bigquerystorage/src/main/java/com/google/cloud/bigquery/storage/v1/SchemaAwareStreamWriter.java @@ -449,9 +449,11 @@ public static final class Builder { private static final String streamPatternString = "(projects/[^/]+/datasets/[^/]+/tables/[^/]+)/streams/[^/]+"; private static final String tablePatternString = "(projects/[^/]+/datasets/[^/]+/tables/[^/]+)"; + private static final String defaultStreamPatternString = tablePatternString + "/_default"; private static final Pattern streamPattern = Pattern.compile(streamPatternString); private static final Pattern tablePattern = Pattern.compile(tablePatternString); + private static final Pattern defaultStreamPattern = Pattern.compile(defaultStreamPatternString); /** * Constructor for SchemaAwareStreamWriter's Builder @@ -471,7 +473,9 @@ private Builder( Matcher streamMatcher = streamPattern.matcher(streamOrTableName); if (!streamMatcher.matches()) { Matcher tableMatcher = tablePattern.matcher(streamOrTableName); - if (!tableMatcher.matches()) { + Matcher defaultStreamMatcher = defaultStreamPattern.matcher(streamOrTableName); + + if (!tableMatcher.matches() && !defaultStreamMatcher.matches()) { throw new IllegalArgumentException("Invalid name: " + streamOrTableName); } else { this.streamName = streamOrTableName + "/_default"; diff --git a/google-cloud-bigquerystorage/src/test/java/com/google/cloud/bigquery/storage/v1/JsonStreamWriterTest.java b/google-cloud-bigquerystorage/src/test/java/com/google/cloud/bigquery/storage/v1/JsonStreamWriterTest.java index 32e3c265e2..3662330bae 100644 --- a/google-cloud-bigquerystorage/src/test/java/com/google/cloud/bigquery/storage/v1/JsonStreamWriterTest.java +++ b/google-cloud-bigquerystorage/src/test/java/com/google/cloud/bigquery/storage/v1/JsonStreamWriterTest.java @@ -641,6 +641,14 @@ public void testCreateDefaultStream_withNoClientPassedIn() throws Exception { .build()) { assertEquals("projects/p/datasets/d/tables/t/_default", writer.getStreamName()); assertEquals("aa", writer.getLocation()); + + JsonStreamWriter recreate = + JsonStreamWriter.newBuilder(writer.getStreamName(), tableSchema) + .setChannelProvider(channelProvider) + .setCredentialsProvider(NoCredentialsProvider.create()) + .setExecutorProvider(InstantiatingExecutorProvider.newBuilder().build()) + .setEnableConnectionPool(true) + .build(); } }