On 31.08.2022 23:39, Nikita Glukhov wrote:
And here is a quick POC patch with an example for COPY and float4
I decided to go further and use new API in SQL/JSON functions
(even if it does not make real sense now).
I have added function for checking expressions trees, special
executor steps for handling errors in FuncExpr, CoerceViaIO,
CoerceToDomain which are passed through ExprState.edata.
Of course, there is still a lot of work: 1. JIT for new expression steps 2. Removal of subsidary ExprStates (needs another solution for ErrorData passing)
3. Checking of domain constraint expressions 4. Error handling in coercion to bytea 5. Error handling in json_populate_type() 6. Error handling in jsonb::type casts 7. ...
Also I have added lazy creation of JSON_VALUE coercions, which was
not present in previous patches. It really greatly speeds up JIT
and reduces memory consumption. But it requires using of subsidary
ExprStates.
jsonb_sqljson test now fails because of points 4, 5, 6.
--
Nikita Glukhov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company