Re: SQL/JSON features for v15

Amit Langote <amitlangote09@gmail.com>

From: Amit Langote <amitlangote09@gmail.com>
To: Alvaro Herrera <alvherre@alvh.no-ip.org>
Cc: Nikita Glukhov <n.gluhov@postgrespro.ru>, Andrew Dunstan <andrew@dunslane.net>, "Jonathan S. Katz" <jkatz@postgresql.org>, Tom Lane <tgl@sss.pgh.pa.us>, Robert Haas <robertmhaas@gmail.com>, Andres Freund <andres@anarazel.de>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>, Michael Paquier <michael@paquier.xyz>, John Naylor <john.naylor@enterprisedb.com>
Date: 2022-08-30T10:29:26Z
Lists: pgsql-hackers
On Tue, Aug 30, 2022 at 6:19 PM Alvaro Herrera <alvherre@alvh.no-ip.org> wrote:
> On 2022-Aug-30, Amit Langote wrote:
>
> > Patches 0001-0006:
> >
> > Yeah, these add the overhead of an extra function call (typin() ->
> > typin_opt_error()) in possibly very common paths.  Other than
> > refactoring *all* places that call typin() to use the new API, the
> > only other option seems to be to leave the typin() functions alone and
> > duplicate their code in typin_opt_error() versions for all the types
> > that this patch cares about.  Though maybe, that's not necessarily a
> > better compromise than accepting the extra function call overhead.
>
> I think another possibility is to create a static inline function in the
> corresponding .c module (say boolin_impl() in bool.c), which is called
> by both the opt_error variant as well as the regular one.  This would
> avoid the duplicate code as well as the added function-call overhead.

+1

-- 
Thanks, Amit Langote
EDB: http://www.enterprisedb.com



Commits

  1. JSON_TABLE: Add support for NESTED paths and columns

  2. Add basic JSON_TABLE() functionality

  3. Add SQL/JSON query functions

  4. Add soft error handling to some expression nodes

  5. Adjust populate_record_field() to handle errors softly

  6. Refactor code used by jsonpath executor to fetch variables

  7. Add more SQL/JSON constructor functions

  8. SQL/JSON: support the IS JSON predicate

  9. SQL/JSON: add standard JSON constructor functions

  10. Revert SQL/JSON features

  11. Numeric error suppression in jsonpath