- JSON path keys on Postgres are rendered inline (
data->>'key','{"a","b"}'::text[]) instead of as bound parameters, soGROUP BYandORDER BYon a JSON lookup work under psycopg3, which binds each as a distinct parameter. Cast()etc over a python value no longer break result row processing.- A write query with a
RETURNINGclause now runs again on every explicitexecute()call (like a write query without one). Iterating the query still reads the result of the last execution. Previously, repeatedexecute()calls returned the cached result without running the query. - Fix regression in model select
.exists(), #3086.
