downcase_delimited_identifier
Values (default in bold)
on, off
Description
This configuration is being retired. Instead use enable_case_sensitive_identifier
.
Enables the super parser to read JSON fields that are in uppercase or mixed case. Also enables federated query support to supported PostgreSQL databases with mixed-case names of database, schema, table, and column. To use case-sensitive identifiers, set this parameter to off.
Usage Notes
-
If you're using row-level security or dynamic data masking features, we recommend setting the
downcase_delimited_identifier
value in your cluster or workgroup's parameter group. This ensures thatdowncase_delimited_identifier
stays constant throughout creating and attaching a policy, and then querying a relation that has a policy applied. For information on row-level security, see Row-level security. For information on dynamic data masking, see Dynamic data masking. -
When you set
downcase_delimited_identifier
to off and create a table, you can set case sensitive column names. When you setdowncase_delimited_identifier
to on and query the table, the column names are downcased. This can produce query results different from whendowncase_delimited_identifier
is set to off. Consider the following example:SET downcase_delimited_identifier TO off; --Amazon Redshift preserves case for column names and other identifiers. --Create a table with two columns that are identical except for the case. CREATE TABLE t ("c" int, "C" int); INSERT INTO t VALUES (1, 2); SELECT * FROM t; c | C ---+--- 1 | 2 (1 row) SET enable_downcase_delimited_identifier TO on; --Amazon Redshift no longer preserves case for column names and other identifiers. SELECT * FROM t; c | c ---+--- 1 | 1 (1 row)
-
We recommend that regular users querying tables with dynamic data masking or row-level security policies attached have the default downcase_delimited_identifier setting. For more information, see For information on row-level security, see Row-level security. For information on dynamic data masking, see Dynamic data masking.