pgsql: Accept fractional seconds in jsonpath's datetime() method.

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Accept fractional seconds in jsonpath's datetime() method.
Date: 2023-06-12 14:54:54
Message-ID: E1q8iwX-001QGe-Fz@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Accept fractional seconds in jsonpath's datetime() method.

Commit 927d9abb6 purported to make datetime() accept any string
that could be output for a datetime value by to_jsonb(). But it
overlooked the possibility of fractional seconds being present,
so that cases as simple as to_jsonb(now()) would defeat it.

Fix by adding formats that include ".US" to the list in
executeDateTimeMethod(). (Note that while this is nominally
microseconds, it'll do the right thing for fractions with
fewer than six digits.)

In passing, re-order the list to restore the datatype ordering
specified in its comment. The violation accidentally did not
break anything; but the next edit might be less lucky, so add
more comments.

Per report from Tim Field. Back-patch to v13 where datetime()
was added, like the previous patch.

Discussion: https://postgr.es/m/014A028B-5CE6-4FDF-AC24-426CA6FC9CEE@mohiohio.com

Branch
------
REL_13_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/6f23b5f74f5fd86d7bbadc89359b8f2175665400

Modified Files
--------------
src/backend/utils/adt/jsonpath_exec.c | 17 +++++++++++++----
src/test/regress/expected/jsonb_jsonpath.out | 15 +++++++++++++++
src/test/regress/sql/jsonb_jsonpath.sql | 3 +++
3 files changed, 31 insertions(+), 4 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Noah Misch 2023-06-12 17:05:10 Re: pgsql: Fix search_path to a safe value during maintenance operations.
Previous Message Noah Misch 2023-06-12 14:44:23 pgsql: src/tools/msvc/clean.bat: Reconcile with PostgreSQL 16 work.