Do not rely on the OS recognizing a particular locale; find the right
locale by querying the "en_US" collation.
Author: Alexander Lakhin
Reported-by: Alexander Lakhin
Discussion: https://postgr.es/m/
ae73f6f5-8221-c112-4640-
5cda812a69de@gmail.com
drop type textrange_en_us;
-- nondeterministic collations
-- (not supported with libc provider)
-CREATE COLLATION ctest_det (locale = 'en_US', deterministic = true);
+do $$
+BEGIN
+ EXECUTE 'CREATE COLLATION ctest_det (locale = ' ||
+ quote_literal((SELECT collcollate FROM pg_collation WHERE
+ collname = 'en_US')) || ', deterministic = true);';
+ END
+$$;
CREATE COLLATION ctest_nondet (locale = 'en_US', deterministic = false);
ERROR: nondeterministic collations not supported with this provider
-- cleanup
-- nondeterministic collations
-- (not supported with libc provider)
-
-CREATE COLLATION ctest_det (locale = 'en_US', deterministic = true);
+do $$
+BEGIN
+ EXECUTE 'CREATE COLLATION ctest_det (locale = ' ||
+ quote_literal((SELECT collcollate FROM pg_collation WHERE
+ collname = 'en_US')) || ', deterministic = true);';
+ END
+$$;
CREATE COLLATION ctest_nondet (locale = 'en_US', deterministic = false);