mirror of https://github.com/postgres/postgres
SQL/JSON: Rethink c2d93c3802
This essentially revertspull/167/headc2d93c3802
except tests. The problem withc2d93c3802
was that it only changed the casting behavior for types with typmod, and had coding issues noted in the post-commit review. This commit changes coerceJsonFuncExpr() to use assignment-level casts instead of explicit casts to coerce the result of JSON constructor functions to the specified or the default RETURNING type. Using assignment-level casts fixes the problem that using explicit casts was leading to the wrong typmod / length coercion behavior -- truncating results longer than the specified length instead of erroring out -- whichc2d93c3802
aimed to solve. That restricts the set of allowed target types to string types, the same set that's currently allowed. Discussion: https://postgr.es/m/202406291824.reofujy7xdj3@alvherre.pgsql
parent
ec678692f6
commit
86d33987e8
Loading…
Reference in new issue