You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beam.apache.org by lo...@apache.org on 2024/08/26 15:15:38 UTC

(beam) branch release-2.59.0 updated: Cherry Pick #32178: Loose BigQuery GCP project ID regex restrictions (#32314)

This is an automated email from the ASF dual-hosted git repository.

lostluck pushed a commit to branch release-2.59.0
in repository https://gitbox.apache.org/repos/asf/beam.git


The following commit(s) were added to refs/heads/release-2.59.0 by this push:
     new 37d41fdb70d Cherry Pick #32178: Loose BigQuery GCP project ID regex restrictions (#32314)
37d41fdb70d is described below

commit 37d41fdb70de9789c82897c0d214e82ee88536b6
Author: Kirill Berezin <12...@users.noreply.github.com>
AuthorDate: Mon Aug 26 08:15:31 2024 -0700

    Cherry Pick #32178: Loose BigQuery GCP project ID regex restrictions (#32314)
---
 .../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");
   }