>>> 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