sqlglot.optimizer.normalize_identifiers
1from sqlglot._typing import E 2from sqlglot.dialects.dialect import Dialect, DialectType 3 4 5def normalize_identifiers(expression: E, dialect: DialectType = None) -> E: 6 """ 7 Normalize all unquoted identifiers to either lower or upper case, depending 8 on the dialect. This essentially makes those identifiers case-insensitive. 9 10 Note: 11 Some dialects (e.g. BigQuery) treat identifiers as case-insensitive even 12 when they're quoted, so in these cases all identifiers are normalized. 13 14 Example: 15 >>> import sqlglot 16 >>> expression = sqlglot.parse_one('SELECT Bar.A AS A FROM "Foo".Bar') 17 >>> normalize_identifiers(expression).sql() 18 'SELECT bar.a AS a FROM "Foo".bar' 19 20 Args: 21 expression: The expression to transform. 22 dialect: The dialect to use in order to decide how to normalize identifiers. 23 24 Returns: 25 The transformed expression. 26 """ 27 return expression.transform(Dialect.get_or_raise(dialect).normalize_identifier, copy=False)
def
normalize_identifiers( expression: ~E, dialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None) -> ~E:
6def normalize_identifiers(expression: E, dialect: DialectType = None) -> E: 7 """ 8 Normalize all unquoted identifiers to either lower or upper case, depending 9 on the dialect. This essentially makes those identifiers case-insensitive. 10 11 Note: 12 Some dialects (e.g. BigQuery) treat identifiers as case-insensitive even 13 when they're quoted, so in these cases all identifiers are normalized. 14 15 Example: 16 >>> import sqlglot 17 >>> expression = sqlglot.parse_one('SELECT Bar.A AS A FROM "Foo".Bar') 18 >>> normalize_identifiers(expression).sql() 19 'SELECT bar.a AS a FROM "Foo".bar' 20 21 Args: 22 expression: The expression to transform. 23 dialect: The dialect to use in order to decide how to normalize identifiers. 24 25 Returns: 26 The transformed expression. 27 """ 28 return expression.transform(Dialect.get_or_raise(dialect).normalize_identifier, copy=False)
Normalize all unquoted identifiers to either lower or upper case, depending on the dialect. This essentially makes those identifiers case-insensitive.
Note:
Some dialects (e.g. BigQuery) treat identifiers as case-insensitive even when they're quoted, so in these cases all identifiers are normalized.
Example:
>>> import sqlglot >>> expression = sqlglot.parse_one('SELECT Bar.A AS A FROM "Foo".Bar') >>> normalize_identifiers(expression).sql() 'SELECT bar.a AS a FROM "Foo".bar'
Arguments:
- expression: The expression to transform.
- dialect: The dialect to use in order to decide how to normalize identifiers.
Returns:
The transformed expression.