Re: BUG #16222: [[:print:]] doesn't correctly handle Emoji skin tone modifiers on MacOS

From: Mack Earnhardt <mack(at)agilereasoning(dot)com>
To: pgsql-bugs(at)lists(dot)postgresql(dot)org
Subject: Re: BUG #16222: [[:print:]] doesn't correctly handle Emoji skin tone modifiers on MacOS
Date: 2020-01-21 20:48:09
Message-ID: CEAD1A96-7A6F-4B52-AC96-C1C6C5266437@agilereasoning.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Hi Tom,

You’re correct. I thought the fact that Terminal and Vim both display correct-ish was enough to rule out the OS. It wasn’t.

The database LC_CTYPE is set to en_US.UTF-8, as is my bash terminal. When I put the two queries in a text file and use `egrep '^[[:print:]]+$’`, only the first line is recognized.

Thanks for helping me narrow this down!

-M

> On Jan 21, 2020, at 12:52 PM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
>
> PG Bug reporting form <noreply(at)postgresql(dot)org> writes:
>> On Linux heroku-18, these expressions both eval true:
>
>> select '✌'~'\A[[:print:]]*\Z';
>> select '✌🏻'~'\A[[:print:]]*\Z';
>
>> On MacOS Catalina, the 1st evals true but the 2nd evals false.
>
> This is entirely a function of what your operating system's
> locale support does. So it could be that you chose the wrong
> LC_CTYPE setting for the macOS database -- in C locale, for
> example, "false" is the right answer. However, we've observed
> that macOS's UTF8-based locales seem pretty brain-dead about
> handling of multibyte characters :-(. So it's likely that this
> boils down to being Apple's bug. I haven't detected any interest
> on their part in improving their POSIX locale support, unfortunately.
>
> regards, tom lane

In response to

Browse pgsql-bugs by date

  From Date Subject
Next Message Michael Paquier 2020-01-22 03:37:04 Re: REINDEX CONCURRENTLY unexpectedly fails
Previous Message Tom Lane 2020-01-21 17:52:29 Re: BUG #16222: [[:print:]] doesn't correctly handle Emoji skin tone modifiers on MacOS