pgsql: Make jsonpath .string() be immutable for datetimes.

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Make jsonpath .string() be immutable for datetimes.
Date: 2024-09-12 18:30:32
Message-ID: E1sooaO-000mhT-HH@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Make jsonpath .string() be immutable for datetimes.

Discussion of commit ed055d249 revealed that we don't actually
want jsonpath's .string() method to depend on DateStyle, nor
TimeZone either, because the non-"_tz" jsonpath functions are
supposed to be immutable. Potentially we could allow a TimeZone
dependency in the "_tz" variants, but it seems better to just
uniformly define this method as returning the same string that
jsonb text output would do. That's easier to implement too,
saving a couple dozen lines.

Patch by me, per complaint from Peter Eisentraut. Back-patch
to v17 where this feature came in (in 66ea94e8e). Also
back-patch ed055d249 to provide test cases.

Discussion: https://postgr.es/m/5e8879d0-a3c8-4be2-950f-d83aa2af953a@eisentraut.org

Branch
------
REL_17_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/cc4fdfa411fa0cd6b27563c37c096bf76120659f

Modified Files
--------------
doc/src/sgml/func.sgml | 19 ++++---
src/backend/utils/adt/jsonpath_exec.c | 34 +++---------
src/test/regress/expected/horology.out | 9 +++-
src/test/regress/expected/jsonb_jsonpath.out | 80 ++++++++++++++++++++++++----
src/test/regress/sql/horology.sql | 4 +-
src/test/regress/sql/jsonb_jsonpath.sql | 20 ++++++-
6 files changed, 117 insertions(+), 49 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Jeff Davis 2024-09-12 21:03:54 pgsql: Simplify checks for deterministic collations.
Previous Message Fujii Masao 2024-09-12 12:55:37 pgsql: Add has_largeobject_privilege function.