John Parton
John Parton
Turns out that psycopg3 is really good at sending the correct type information for server side binding when using the `json_array` function, and really bad when using the `jsonb_build_array`. In...
Marked ready for review. It still has the error with Postgres 16+ and server-side bindings, but that's not specific to the code here.
Rebased, force-pushed. All checks are passing now (perhaps some issue with `main` or `CI` before.)
Rebase / force-pushed. I believe this is ready for review. We _might_ want to review https://github.com/django/django/pull/18622 first. It might inform the general approach or "vibes" of this pull request.
I reworked the flow-control/logic of the new JsonArray class to match the recent changes to JsonObject (for consistency.) In particular: * Inner expressions are explicitly cast to their outputfield on...
Yes, I actually confirmed that explicitly passing an expression which was already wrapped in a Cast would result in a double Cast. I added logic skip wrapping terms in Cast...
@sarahboyce Could we get someone to look at this? It's starting to get pretty good, I think.
Just updated docs to include a note about SQL `NULL` values mapping to json scalar `null`. This is not the default behavior on many backends, so worth noting for those...
Great, thanks. Done.
I had accidentally used `ruff` as the linter instead of `black`. Re-ran with `black`, rebased, force-pushed.