Hi,
On 26.08.2022 22:25, Andrew Dunstan wrote:
On 2022-08-24 We 20:05, Nikita Glukhov wrote:
v8 - is a highly WIP patch, which I failed to finish today.
Even some test cases fail now, and they simply show unfinished
things like casts to bytea (they can be simply removed) and missing
safe input functions.
Thanks for your work, please keep going.
I have completed in v9 all the things I previously planned:
- Added missing safe I/O and type conversion functions for datetime, float4, varchar, bpchar. This introduces a lot of boilerplate code for returning errors and also maybe adds some overhead.
- Added JSON_QUERY coercion to UTF8 bytea using pg_convert_to().
- Added immutability checks that were missed with elimination of coercion expressions. Coercions text::datetime, datetime1::datetime2 and even datetime::text for some datetime types are mutable. datetime::text can be made immutable by passing ISO date style into output functions (like in jsonpath).
- Disabled non-Const expressions in DEFAULT ON EMPTY in non ERROR ON ERROR case. Non-constant expressions are tried to evaluate into Const directly inside transformExpr(). Maybe it would be better to simply remove DEFAULT ON EMPTY.
It is possible to easily split this patch into several subpatches,
I will do it if needed.
--
Nikita Glukhov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company