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

github-merge-queue[bot] pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/datafusion-sqlparser-rs.git


The following commit(s) were added to refs/heads/main by this push:
     new 7076b798 BigQuery: enable FROM-first SELECT (#2439)
7076b798 is described below

commit 7076b7989ed6f5fc6fc048b8babb8b02b1733e5c
Author: Mosha Pasumansky <[email protected]>
AuthorDate: Thu Aug 20 13:25:54 2026 +0000

    BigQuery: enable FROM-first SELECT (#2439)
    
    Co-authored-by: Claude Opus 4.8 <[email protected]>
    Co-authored-by: Ifeanyi Ubah <[email protected]>
---
 src/dialect/bigquery.rs     | 8 ++++++++
 tests/sqlparser_bigquery.rs | 7 +++++++
 2 files changed, 15 insertions(+)

diff --git a/src/dialect/bigquery.rs b/src/dialect/bigquery.rs
index 544be23e..d34be9a4 100644
--- a/src/dialect/bigquery.rs
+++ b/src/dialect/bigquery.rs
@@ -136,6 +136,14 @@ impl Dialect for BigQueryDialect {
         true
     }
 
+    /// BigQuery allows a query to start with `FROM` (e.g. `FROM t`, and the
+    /// entry form for pipe syntax, `FROM t |> ...`).
+    ///
+    /// See 
<https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax#from_queries>
+    fn supports_from_first_select(&self) -> bool {
+        true
+    }
+
     /// See 
<https://cloud.google.com/bigquery/docs/reference/standard-sql/procedural-language#execute_immediate>
     fn supports_execute_immediate(&self) -> bool {
         true
diff --git a/tests/sqlparser_bigquery.rs b/tests/sqlparser_bigquery.rs
index f6d4483c..97f71cfe 100644
--- a/tests/sqlparser_bigquery.rs
+++ b/tests/sqlparser_bigquery.rs
@@ -2950,3 +2950,10 @@ fn test_create_snapshot_table() {
         "CREATE SNAPSHOT TABLE IF NOT EXISTS dataset_id.table1 CLONE 
dataset_id.table2 FOR SYSTEM_TIME AS OF TIMESTAMP_SUB(CURRENT_TIMESTAMP(), 
INTERVAL 1 HOUR) OPTIONS(expiration_timestamp = TIMESTAMP '2025-01-01 00:00:00 
UTC')",
     );
 }
+
+#[test]
+fn parse_from_first_select() {
+    bigquery().verified_stmt("FROM t");
+    bigquery().verified_stmt("FROM t SELECT a, b");
+    bigquery().verified_stmt("FROM t |> WHERE a > 1 |> SELECT a");
+}


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to