Re: [GENERAL] Not able to create collation on Windows

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Murtuza Zabuawala <murtuza.zabuawala@enterprisedb.com>
Cc: Peter Eisentraut <peter.eisentraut@2ndquadrant.com>, PostgreSQL mailing lists <pgsql-general@postgresql.org>, pgsql-hackers@postgresql.org
Date: 2017-08-01T16:58:50Z
Lists: pgsql-hackers

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Revert test case added by commit 1e165d05fe06a9072867607886f818bc255507db.

  2. Second try at getting useful errors out of newlocale/_create_locale.

  3. Try to deliver a sane message for _create_locale() failure on Windows.

  4. Allow creation of C/POSIX collations without depending on libc behavior.

Murtuza Zabuawala <murtuza.zabuawala@enterprisedb.com> writes:
> Yes, I was able to create collation using "C" instead of "POSIX" on windows,
> CREATE COLLATION public.test from pg_catalog."C";

Yeah, I thought that might happen.  So the point basically is that in
almost all of the collations code, the "C" and "POSIX" names are handled
by dedicated code paths that don't care what the system's locale support
thinks.  But we missed that for CREATE COLLATION.  Aside from the case
you ran into, this means you can't do CREATE COLLATION ... FROM "C"
at all on platforms that lack HAVE_LOCALE_T.  There's no good reason
for that IMO; not if we're one line of code away from allowing it.

			regards, tom lane