@@ -569,11 +569,13 @@ def _parse_alter_table_alter(self: Parser) -> t.Optional[exp.Expr]:
569569 return alter_column
570570
571571
572- # Session parameter names in ALTER SESSION SET / UNSET (e.g. Snowflake's TIMEZONE or QUERY_TAG)
573- # are keywords, not identifiers, so engines reject them when quoted: ALTER SESSION SET "TIMEZONE"
574- # = 'UTC' is a syntax error in Snowflake. sqlglot parses them as identifiers, which means they get
575- # normalized and quoted along with the rest of the statement, so we turn them into vars instead.
576- def _parse_alter_session (self : Parser ) -> exp .AlterSession :
572+ # Snowflake session parameter names in ALTER SESSION SET / UNSET (e.g. TIMEZONE or QUERY_TAG) are
573+ # keywords, not identifiers, so Snowflake rejects them when quoted: ALTER SESSION SET "TIMEZONE" = 'UTC'
574+ # is a syntax error. sqlglot parses them as identifiers, which means they get normalized and quoted
575+ # along with the rest of the statement, so we turn them into vars instead. Vars are also left out of
576+ # case normalization, so a parameter written as query_tag stays lowercase; Snowflake treats parameter
577+ # names case-insensitively, so this is intentional.
578+ def _parse_alter_session (self : Snowflake .Parser ) -> exp .AlterSession :
577579 alter_session = self .__parse_alter_session () # type: ignore
578580
579581 for item in alter_session .expressions :
@@ -1447,7 +1449,7 @@ def extend_sqlglot() -> None:
14471449 _override (Parser , _parse_interval_span )
14481450 _override (Parser , _warn_unsupported )
14491451 _override (Snowflake .Parser , _parse_table_parts )
1450- _override (Parser , _parse_alter_session )
1452+ _override (Snowflake . Parser , _parse_alter_session )
14511453 _override (TSQL .Parser , _parse_alter_table_alter )
14521454 _override (TSQL .Generator , altercolumn_sql )
14531455
0 commit comments