Skip to content

Support SELECT * EXCEPT(col1, col2, ...) for BigQueryDialect #687

Closed
@unvalley

Description

@unvalley

I’d like to parse SELECT [* | column.*] EXCEPT(col1, col2, ...) FROM table using BigQueryDialect.

BigQuery Reference: https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax#select_except

The query SELECT * EXCEPT (col1, col2) FROM table causes ParserError as I described below.

use sqlparser::dialect::BigQueryDialect;
use sqlparser::parser::*;

fn main() {
    let sql = "SELECT * EXCEPT (col1, col2) FROM table";
    let dialect = BigQueryDialect {};
    let ast = Parser::parse_sql(&dialect, sql).unwrap();
    println!("AST: {:?}", ast);
}

// output: 
// thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: ParserError("Expected SELECT, VALUES, or a subquery in the query body, found: col1")', examples/parse_select.rs:21:48...

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions