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-000mhS-GX@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
------
master

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

Modified Files
--------------
doc/src/sgml/func.sgml | 7 ++-
src/backend/utils/adt/jsonpath_exec.c | 34 +++----------
src/test/regress/expected/jsonb_jsonpath.out | 73 +++++++++-------------------
src/test/regress/sql/jsonb_jsonpath.sql | 12 ++---
4 files changed, 39 insertions(+), 87 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.