]> git.ipfire.org Git - thirdparty/postgresql.git/commit
Make jsonpath .string() be immutable for datetimes.
authorTom Lane <tgl@sss.pgh.pa.us>
Thu, 12 Sep 2024 18:30:29 +0000 (14:30 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Thu, 12 Sep 2024 18:30:29 +0000 (14:30 -0400)
commitcc4fdfa411fa0cd6b27563c37c096bf76120659f
tree48948df434a68f548c7ef0f40e9a19a218e56287
parent2645f6d643d929007fa7d1ed6d2de5155e4d63d8
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
doc/src/sgml/func.sgml
src/backend/utils/adt/jsonpath_exec.c
src/test/regress/expected/horology.out
src/test/regress/expected/jsonb_jsonpath.out
src/test/regress/sql/horology.sql
src/test/regress/sql/jsonb_jsonpath.sql