pg.ddx.io pgsql-committers@postgresql.org mailing list archivehelp / color / mirror / Atom feed
pgsql: SQL/JSON: Rethink c2d93c3802b 2+ messages / 1 participants [nested] [flat]
* pgsql: SQL/JSON: Rethink c2d93c3802b @ 2024-07-17 08:46 Amit Langote <amitlan@postgresql.org> 0 siblings, 0 replies; 2+ messages in thread From: Amit Langote @ 2024-07-17 08:46 UTC (permalink / raw) To: pgsql-committers@lists.postgresql.org SQL/JSON: Rethink c2d93c3802b This essentially reverts c2d93c3802b except tests. The problem with c2d93c3802b 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 -- which c2d93c3802b 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 Branch ------ REL_17_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/2177306a64137f50158d0d1ce7c4196ff8f05350 Modified Files -------------- src/backend/parser/parse_expr.c | 34 ++++++++++------------------------ 1 file changed, 10 insertions(+), 24 deletions(-) ^ permalink raw reply [nested|flat] 2+ messages in thread
* pgsql: SQL/JSON: Rethink c2d93c3802b @ 2024-07-17 08:47 Amit Langote <amitlan@postgresql.org> 0 siblings, 0 replies; 2+ messages in thread From: Amit Langote @ 2024-07-17 08:47 UTC (permalink / raw) To: pgsql-committers@lists.postgresql.org SQL/JSON: Rethink c2d93c3802b This essentially reverts c2d93c3802b except tests. The problem with c2d93c3802b 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 -- which c2d93c3802b 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 Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/86d33987e8b0364b468c9b40c5f2a0a1aed87ef1 Modified Files -------------- src/backend/parser/parse_expr.c | 34 ++++++++++------------------------ 1 file changed, 10 insertions(+), 24 deletions(-) ^ permalink raw reply [nested|flat] 2+ messages in thread
end of thread, other threads:[~2024-07-17 08:47 UTC | newest] Thread overview: 2+ messages (download: mbox mbox.gz follow: Atom feed) -- links below jump to the message on this page -- 2024-07-17 08:46 pgsql: SQL/JSON: Rethink c2d93c3802b Amit Langote <amitlan@postgresql.org> 2024-07-17 08:47 pgsql: SQL/JSON: Rethink c2d93c3802b Amit Langote <amitlan@postgresql.org>
This inbox is served by DDX for PostgreSQL; see mirroring instructions for how to clone and mirror all data and code used for this inbox