pg.ddx.io  pgsql-committers@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Amit Langote <amitlan@postgresql.org>
To: pgsql-committers@lists.postgresql.org
Subject: pgsql: SQL/JSON: Rethink c2d93c3802b
Date: Wed, 17 Jul 2024 08:47:12 +0000
Message-ID: <E1sU0Jc-0020xH-MS@gemulon.postgresql.org> (raw)

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(-)



view thread (2+ messages)

Message-ID: <E1sU0Jc-0020xH-MS@gemulon.postgresql.org>
Permalink:  ../E1sU0Jc-0020xH-MS@gemulon.postgresql.org/
Also on:    postgresql.org/message-id/E1sU0Jc-0020xH-MS@gemulon.postgresql.org

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-committers@postgresql.org
  Cc: amitlan@postgresql.org, pgsql-committers@lists.postgresql.org
  Subject: Re: pgsql: SQL/JSON: Rethink c2d93c3802b
  In-Reply-To: <E1sU0Jc-0020xH-MS@gemulon.postgresql.org>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

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