Re: pgsql: Handle Unicode surrogate pairs correctly when processing JSON.

From: Bruce Momjian <bruce(at)momjian(dot)us>
To: Andrew Dunstan <andrew(at)dunslane(dot)net>
Cc: pgsql-committers(at)postgresql(dot)org
Subject: Re: pgsql: Handle Unicode surrogate pairs correctly when processing JSON.
Date: 2013-06-24 15:50:38
Message-ID: 20130624155038.GB4723@momjian.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

On Sat, Jun 8, 2013 at 01:21:20PM +0000, Andrew Dunstan wrote:
> Handle Unicode surrogate pairs correctly when processing JSON.
>
> In 9.2, Unicode escape sequences are not analysed at all other than
> to make sure that they are in the form \uXXXX. But in 9.3 many of the
> new operators and functions try to turn JSON text values into text in
> the server encoding, and this includes de-escaping Unicode escape
> sequences. This processing had not taken into account the possibility
> that this might contain a surrogate pair to designate a character
> outside the BMP. That is now handled correctly.
>
> This also enforces correct use of surrogate pairs, something that is not
> done by the type's input routines. This fact is noted in the docs.
>
> Branch
> ------
> master
>
> Details
> -------
> http://git.postgresql.org/pg/commitdiff/94e3311b97448324d67ba9a527854271373329d9
>
> Modified Files
> --------------
> doc/src/sgml/func.sgml | 9 +++++++
> src/backend/utils/adt/json.c | 52 ++++++++++++++++++++++++++++++++++++
> src/test/regress/expected/json.out | 23 ++++++++++++++++
> src/test/regress/sql/json.sql | 8 ++++++
> 4 files changed, 92 insertions(+)

Does this affect any data already stored in PG 9.3 beta? Is it
something that should require a catalog bump?

--
Bruce Momjian <bruce(at)momjian(dot)us> http://momjian.us
EnterpriseDB http://enterprisedb.com

+ It's impossible for everything to be true. +

In response to

Responses

Browse pgsql-committers by date

  From Date Subject
Next Message Andrew Dunstan 2013-06-24 17:58:12 Re: pgsql: Handle Unicode surrogate pairs correctly when processing JSON.
Previous Message Tom Lane 2013-06-23 18:43:18 pgsql: Add a comment warning against use of pg_usleep() for long sleeps