Skip to content

Databricks SET VAR / SET VARIABLE syntax is not parsed correctly #7358

@baruchoxman

Description

@baruchoxman
>>> query1 = "SET VAR a = 5"
>>> query2 = "SET VARIABLE a = 5"
>>> sqlglot.parse_one(query1, "databricks")
'SET VAR a = 5' contains unsupported syntax. Falling back to parsing as a 'Command'.
Command(this=SET, expression=VAR a = 5)
>>> sqlglot.parse_one(query2, "databricks")
'SET VARIABLE a = 5' contains unsupported syntax. Falling back to parsing as a 'Command'.
Command(this=SET, expression=VARIABLE a = 5)
>>> sqlglot.parse_one(query2, "duckdb")
Set(
  expressions=[
    SetItem(
      this=EQ(
        this=Column(
          this=Identifier(this=a, quoted=False)),
        expression=Literal(this=5, is_string=False)),
      kind=VARIABLE)],
  unset=False,
  tag=False)

For comparison, DuckDB already supports similar parsing (see example above).
Documentation: https://docs.databricks.com/aws/en/sql/language-manual/sql-ref-syntax-aux-set-variable

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions