Re: [HACKERS] [PATCH] Generic type subscripting
Dmitry Dolgov <9erthalion6@gmail.com>
Attachments
- 0005-Subscripting-documentation-v8.patch (text/x-patch) patch v8-0005
- 0004-Subscripting-for-jsonb-v8.patch (text/x-patch) patch v8-0004
- 0003-Subscripting-for-array-v8.patch (text/x-patch) patch v8-0003
- 0002-Base-implementation-of-subscripting-mechanism-v8.patch (text/x-patch) patch v8-0002
- 0001-Renaming-for-new-subscripting-mechanism-v8.patch (text/x-patch) patch v8-0001
> On 30 January 2018 at 16:47, Dmitry Dolgov <9erthalion6@gmail.com> wrote:
> > On 29 January 2018 at 14:41, Arthur Zakirov <a.zakirov@postgrespro.ru>
wrote:
> >
> > I have a few comments.
>
> Thanks for suggestions, I've incorporated all of them in a new version of
the
> patch.
Few more updates. I've attached a new version with some minor changes,
mostly
about moving a subscripting depth check to type related logic. Also I've
made
some performance tests for arrays using pgbench:
pgbench -c 10 -j 2 -T 600 -f test.sql -r
with queries like:
select (ARRAY[1, 2, 3])[0];
select (ARRAY[1, 2, 3, ..., 98, 99, 100])[0];
select (ARRAY[[[[[[1]]]]]])[1][1][1][1][1][1];
select (ARRAY[[[[[[1, 2, 3]]]]]])[1][1][1][1][1:2];
and the difference in average latency was about 2%:
* with the patch
number of transactions actually processed: 349211
latency average = 1.718 ms
tps = 5820.048783 (including connections establishing)
tps = 5820.264433 (excluding connections establishing)
* without the patch
number of transactions actually processed: 356024
latency average = 1.685 ms
tps = 5933.538195 (including connections establishing)
tps = 5934.124599 (excluding connections establishing)
Commits
-
Throw error when assigning jsonb scalar instead of a composite object
- aa6e46daf530 14.0 landed
-
Filling array gaps during jsonb subscripting
- 81fcc72e6622 14.0 landed
-
Implementation of subscripting for jsonb
- 676887a3b0b8 14.0 landed
-
Allow ALTER TYPE to update an existing type's typsubscript value.
- 8c15a297452e 14.0 landed
-
Allow subscripting of hstore values.
- 0ec5f7e78231 14.0 landed
-
Support subscripting of arbitrary types, not only arrays.
- c7aba7c14efd 14.0 landed
-
jit: Reference function pointer types via llvmjit_types.c.
- df99ddc70b97 14.0 landed
-
Teach contain_leaked_vars that assignment SubscriptingRefs are leaky.
- c0549cee07ea 13.2 landed
- 62ee70331336 14.0 landed
- 3470caa21bf8 10.16 landed
- 2f1997b1551a 12.6 landed
- 1f229f4fdcf8 11.11 landed
- 17c77c8c90f7 9.6.21 landed
-
jit: Correct parameter type for generated expression evaluation functions.
- 5da871bfa1ba 14.0 landed
- 1e16ad101459 11.11 landed
- 27b57f806dc2 12.6 landed
- 01c6370a32e5 13.2 landed
-
Renaming for new subscripting mechanism
- 558d77f20e4e 12.0 landed
-
Fix assertion failure for SSL connections.
- ab69ea9feeb9 12.0 cited
-
Teach eval_const_expressions() to handle some more cases.
- 3decd150a2d5 11.0 cited