pgsql: Support for ISO 8601 in the jsonpath .datetime() method

From: Alexander Korotkov <akorotkov(at)postgresql(dot)org>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Support for ISO 8601 in the jsonpath .datetime() method
Date: 2020-09-29 09:01:15
Message-ID: E1kNBVb-0001qM-Vc@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Support for ISO 8601 in the jsonpath .datetime() method

The SQL standard doesn't require jsonpath .datetime() method to support the
ISO 8601 format. But our to_json[b]() functions convert timestamps to text in
the ISO 8601 format in the sake of compatibility with javascript. So, we add
support of the ISO 8601 to the jsonpath .datetime() in the sake compatibility
with to_json[b]().

The standard mode of datetime parsing currently supports just template patterns
and separators in the format string. In order to implement ISO 8601, we have to
add support of the format string double quotes to the standard parsing mode.

Discussion: https://postgr.es/m/94321be0-cc96-1a81-b6df-796f437f7c66%40postgrespro.ru
Author: Nikita Glukhov, revised by me
Backpatch-through: 13

Branch
------
REL_13_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/651bdbc811652638e1205440c3181a18feb8f967

Modified Files
--------------
src/backend/utils/adt/formatting.c | 20 +++++++++++++++++---
src/backend/utils/adt/jsonpath_exec.c | 8 +++++++-
src/test/regress/expected/jsonb_jsonpath.out | 19 +++++++++++++++++++
src/test/regress/sql/jsonb_jsonpath.sql | 6 ++++++
4 files changed, 49 insertions(+), 4 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2020-09-29 13:29:18 Re: __pg_log_level in anonynous enum should be initialized? (Was: pgsql: Change SHA2 implementation based on OpenSSL to use EVP digest ro)
Previous Message Alexander Korotkov 2020-09-29 09:01:08 pgsql: Support for ISO 8601 in the jsonpath .datetime() method