Re: [PATCH] Generic type subscription

Dmitry Dolgov <9erthalion6@gmail.com>

From: Dmitry Dolgov <9erthalion6@gmail.com>
To: Victor Wagner <vitus@wagner.pp.ru>
Cc: PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2016-10-01T09:52:34Z
Lists: pgsql-hackers

Attachments

> I've tried to compile this patch with current state of master (commit
> 51c3e9fade76c12)  and found out that, when configured with
--enable-cassert,
> it doesn't pass make check.

Thanks for the feedback. Yes, unexpectedly for me, `ExecEvalExpr` can return
expanded `jbvArray` and `jbvObject` instead `jbvBinary` in both cases. It's
interesting, that this doesn't break anything, but obviously violates
the `pushJsonbValueScalar` semantics. I don't think `ExecEvalExpr` should be
changed for jsonb, we can handle this situation in `pushJsonbValue`
instead. I've
attached a new version of patch with this modification.

On 27 September 2016 at 19:08, Victor Wagner <vitus@wagner.pp.ru> wrote:

> On Fri, 9 Sep 2016 18:29:23 +0700
> Dmitry Dolgov <9erthalion6@gmail.com> wrote:
>
> > Hi,
> >
> > Regarding to the previous conversations [1], [2], here is a patch
> > (with some improvements from Nikita Glukhov) for the generic type
> > subscription. It allows
> > to define type-specific subscription logic for any data type and has
> > implementations for the array and jsonb types. There are following
> > changes in this
> > patch:
>
> I've tried to compile this patch with current state of master (commit
> 51c3e9fade76c12)  and found out that, when configured with
> --enable-cassert, it doesn't pass make check.
>
> LOG:  server process (PID 4643) was terminated by signal 6: Aborted
> DETAIL:  Failed process was running:
> update test_jsonb_subscript set test_json['a'] = '{"b":
> 1}'::jsonb;
>
>
>
> --
>  Victor
>
>
> --
> Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-hackers
>

Commits

  1. Throw error when assigning jsonb scalar instead of a composite object

  2. Filling array gaps during jsonb subscripting

  3. Implementation of subscripting for jsonb

  4. Support subscripting of arbitrary types, not only arrays.

  5. Remove obsoleted code relating to targetlist SRF evaluation.

  6. Include <sys/select.h> where needed