Make jsonpath .string() be immutable for datetimes.
Tom Lane <tgl@sss.pgh.pa.us>
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
Files
| Path | Change | +/− |
|---|---|---|
| doc/src/sgml/func.sgml | modified | +11 −8 |
| src/backend/utils/adt/jsonpath_exec.c | modified | +8 −26 |
| src/test/regress/expected/horology.out | modified | +7 −2 |
| src/test/regress/expected/jsonb_jsonpath.out | modified | +71 −9 |
| src/test/regress/sql/horology.sql | modified | +2 −2 |
| src/test/regress/sql/jsonb_jsonpath.sql | modified | +18 −2 |
Documentation touched
Discussion
- Document DateStyle effect on jsonpath string() 29 messages · 2024-07-02 → 2024-09-16