diff -U3 /home/japin/Codes/postgres/build/../src/test/regress/expected/collate.icu.utf8.out /home/japin/Codes/postgres/build/src/test/regress/results/collate.icu.utf8.out --- /home/japin/Codes/postgres/build/../src/test/regress/expected/collate.icu.utf8.out 2023-08-14 17:37:31.960448245 +0800 +++ /home/japin/Codes/postgres/build/src/test/regress/results/collate.icu.utf8.out 2023-08-14 21:30:44.335214886 +0800 @@ -1035,6 +1035,9 @@ quote_literal(current_setting('lc_ctype')) || ');'; END $$; +ERROR: collations with different collate and ctype values are not supported by ICU +CONTEXT: SQL statement "CREATE COLLATION test1 (provider = icu, lc_collate = 'C.UTF-8', lc_ctype = 'en_US.UTF-8');" +PL/pgSQL function inline_code_block line 3 at EXECUTE CREATE COLLATION test3 (provider = icu, lc_collate = 'en_US.utf8'); -- fail, need lc_ctype ERROR: parameter "lc_ctype" must be specified CREATE COLLATION testx (provider = icu, locale = 'nonsense'); /* never fails with ICU */ DROP COLLATION testx; @@ -1045,13 +1048,12 @@ collname ---------- test0 - test1 test5 -(3 rows) +(2 rows)
ALTER COLLATION test1 RENAME TO test11; +ERROR: collation "test1" for encoding "UTF8" does not exist ALTER COLLATION test0 RENAME TO test11; -- fail -ERROR: collation "test11" already exists in schema "collate_tests" ALTER COLLATION test1 RENAME TO test22; -- fail ERROR: collation "test1" for encoding "UTF8" does not exist ALTER COLLATION test11 OWNER TO regress_test_role; @@ -1059,18 +1061,19 @@ ERROR: role "nonsense" does not exist ALTER COLLATION test11 SET SCHEMA test_schema; COMMENT ON COLLATION test0 IS 'US English'; +ERROR: collation "test0" for encoding "UTF8" does not exist SELECT collname, nspname, obj_description(pg_collation.oid, 'pg_collation') FROM pg_collation JOIN pg_namespace ON (collnamespace = pg_namespace.oid) WHERE collname LIKE 'test%' ORDER BY 1; collname | nspname | obj_description ----------+---------------+----------------- - test0 | collate_tests | US English test11 | test_schema | test5 | collate_tests | -(3 rows) +(2 rows)
DROP COLLATION test0, test_schema.test11, test5; +ERROR: collation "test0" for encoding "UTF8" does not exist DROP COLLATION test0; -- fail ERROR: collation "test0" for encoding "UTF8" does not exist DROP COLLATION IF EXISTS test0; @@ -1078,10 +1081,17 @@ SELECT collname FROM pg_collation WHERE collname LIKE 'test%'; collname ---------- -(0 rows) + test11 + test5 +(2 rows)
DROP SCHEMA test_schema; +ERROR: cannot drop schema test_schema because other objects depend on it +DETAIL: collation test_schema.test11 depends on schema test_schema +HINT: Use DROP ... CASCADE to drop the dependent objects too. DROP ROLE regress_test_role; +ERROR: role "regress_test_role" cannot be dropped because some objects depend on it +DETAIL: owner of collation test_schema.test11 -- ALTER ALTER COLLATION "en-x-icu" REFRESH VERSION; NOTICE: version has not changed diff -U3 /home/japin/Codes/postgres/build/../src/test/regress/expected/foreign_data.out /home/japin/Codes/postgres/build/src/test/regress/results/foreign_data.out --- /home/japin/Codes/postgres/build/../src/test/regress/expected/foreign_data.out 2023-08-14 17:37:31.964448260 +0800 +++ /home/japin/Codes/postgres/build/src/test/regress/results/foreign_data.out 2023-08-14 21:30:55.571170376 +0800 @@ -5,10 +5,13 @@ -- Suppress NOTICE messages when roles don't exist SET client_min_messages TO 'warning'; DROP ROLE IF EXISTS regress_foreign_data_user, regress_test_role, regress_test_role2, regress_test_role_super, regress_test_indirect, regress_unprivileged_role; +ERROR: role "regress_test_role" cannot be dropped because some objects depend on it +DETAIL: owner of collation test_schema.test11 RESET client_min_messages; CREATE ROLE regress_foreign_data_user LOGIN SUPERUSER; SET SESSION AUTHORIZATION 'regress_foreign_data_user'; CREATE ROLE regress_test_role; +ERROR: role "regress_test_role" already exists CREATE ROLE regress_test_role2; CREATE ROLE regress_test_role_super SUPERUSER; CREATE ROLE regress_test_indirect;
The environment variables LANG, LC_ALL, LC_COLLATE, LC_CTYPE, LC_MESSAGES, LC_MONETARY, LC_NUMERIC, LC_TIME, (LC_*), and NLSPATH provide for the support of internationalised applications. The standard utilities make use of these environment variables as described in this section and the individual ENVIRONMENT VARIABLES sections for the utilities. If these variables specify locale categories that are not based upon the same underlying codeset, the results are unspecified.
The values of locale categories are determined by a precedence order; the first condition met below determines the value:
If the LC_ALL environment variable is defined and is not null, the value of LC_ALL is used.
If the LC_* environment variable ( LC_COLLATE, LC_CTYPE, LC_MESSAGES, LC_MONETARY, LC_NUMERIC, LC_TIME) is defined and is not null, the value of the environment variable is used to initialise the category that corresponds to the environment variable.
If the LANG environment variable is defined and is not null, the value of the LANG environment variable is used.
If the LANG environment variable is not set or is set to the empty string, the implementation-dependent default locale is used.