You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beam.apache.org by yh...@apache.org on 2024/08/23 15:46:21 UTC
(beam) branch master updated: Loose BigQuery GCP project ID regex restrictions (#32178)
This is an automated email from the ASF dual-hosted git repository.
yhu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/beam.git
The following commit(s) were added to refs/heads/master by this push:
new b2ed1c56402 Loose BigQuery GCP project ID regex restrictions (#32178)
b2ed1c56402 is described below
commit b2ed1c56402238e5b78dfca7fc86189639603db9
Author: Kirill Berezin <12...@users.noreply.github.com>
AuthorDate: Fri Aug 23 08:46:15 2024 -0700
Loose BigQuery GCP project ID regex restrictions (#32178)
---
.../java/org/apache/beam/sdk/io/gcp/bigquery/BigQueryIO.java | 9 +++++----
.../org/apache/beam/sdk/io/gcp/bigquery/BigQueryHelpersTest.java | 1 +
2 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/bigquery/BigQueryIO.java b/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/bigquery/BigQueryIO.java
index aa094ace756..71302339af1 100644
--- a/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/bigquery/BigQueryIO.java
+++ b/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/bigquery/BigQueryIO.java
@@ -574,11 +574,12 @@ public class BigQueryIO {
static final JsonFactory JSON_FACTORY = Transport.getJsonFactory();
/**
- * Project IDs must contain 6-63 lowercase letters, digits, or dashes. IDs must start with a
- * letter and may not end with a dash. This regex isn't exact - this allows for patterns that
- * would be rejected by the service, but this is sufficient for basic parsing of table references.
+ * Formally, project IDs must contain 6-63 lowercase letters, digits, or dashes, must start with a
+ * letter and may not end with a dash. This regex is used for basic parsing of table references
+ * rather than validation purpose, e.g. it allows looser restriction for testing on mock
+ * resources. It may allow for patterns that would be rejected by the service
*/
- private static final String PROJECT_ID_REGEXP = "[a-z][-a-z0-9:.]{4,61}[a-z0-9]";
+ private static final String PROJECT_ID_REGEXP = "[a-z][-a-z0-9:.]{0,61}[a-z0-9]";
/** Regular expression that matches Dataset IDs. */
private static final String DATASET_REGEXP = "[-\\w.]{1,1024}";
diff --git a/sdks/java/io/google-cloud-platform/src/test/java/org/apache/beam/sdk/io/gcp/bigquery/BigQueryHelpersTest.java b/sdks/java/io/google-cloud-platform/src/test/java/org/apache/beam/sdk/io/gcp/bigquery/BigQueryHelpersTest.java
index 6779920702d..df96f3bc4c7 100644
--- a/sdks/java/io/google-cloud-platform/src/test/java/org/apache/beam/sdk/io/gcp/bigquery/BigQueryHelpersTest.java
+++ b/sdks/java/io/google-cloud-platform/src/test/java/org/apache/beam/sdk/io/gcp/bigquery/BigQueryHelpersTest.java
@@ -88,6 +88,7 @@ public class BigQueryHelpersTest {
public void testTableParsing_validPatterns() {
BigQueryHelpers.parseTableSpec("a123-456:foo_bar.d");
BigQueryHelpers.parseTableSpec("a12345:b.c");
+ BigQueryHelpers.parseTableSpec("a1:b.c");
BigQueryHelpers.parseTableSpec("b12345.c");
}