検証結果
- enable_case_sensitive_identifier が true で、DDLやクエリでダブルクオートで囲むと大文字小文字を区別する。
- enable_case_sensitive_identifier が false だと大文字小文字を区別しない(デフォルトは false)。
- ダブルクオートで囲まないと小文字として扱われる。
検証ログ
$ psql -a "host=redshift-cluster-poc-central.********.ap-northeast-1.redshift.amazonaws.com user=awsuser dbname=dev port=5439" psql (13.7, server 8.0.2) SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off) Type"help"for help. dev=# \i case_sensitive_test.sql -- enable_case_sensitive_identifier = false show enable_case_sensitive_identifier; enable_case_sensitive_identifier ---------------------------------- off (1row) createtable"TEST_UC" ("ID"INT); CREATETABLEcreatetable"test_lc" ("id"int); CREATETABLEselect id from test_uc; id ---- (0rows) select ID from TEST_UC; id ---- (0rows) select"ID"from"TEST_UC"; id ---- (0rows) select id from test_lc; id ---- (0rows) select ID from TEST_LC; id ---- (0rows) select"ID"from"TEST_LC"; id ---- (0rows) droptable test_uc; DROPTABLEdroptable test_lc; DROPTABLE-- enable_case_sensitive_identifier = trueset enable_case_sensitive_identifier totrue; SET show enable_case_sensitive_identifier; enable_case_sensitive_identifier ----------------------------------on (1row) createtable"TEST_UC" ("ID"INT); CREATETABLEcreatetable"test_lc" ("id"int); CREATETABLEselect id from test_uc; psql:case_sensitive_test.sql:25: ERROR: relation "test_uc" does not exist select ID from TEST_UC; psql:case_sensitive_test.sql:26: ERROR: relation "test_uc" does not exist select"ID"from"TEST_UC"; ID ---- (0rows) select id from test_lc; id ---- (0rows) select ID from TEST_LC; id ---- (0rows) select"ID"from"TEST_LC"; psql:case_sensitive_test.sql:31: ERROR: relation "TEST_LC" does not exist droptable"TEST_UC"; DROPTABLEdroptable"test_lc"; DROPTABLE dev=#