Re: [PATCH] Generic type subscripting
Dmitry Dolgov <9erthalion6@gmail.com>
> On 19 September 2017 at 10:21, Arthur Zakirov <a.zakirov@postgrespro.ru> wrote: > On Mon, Sep 18, 2017 at 12:25:04PM +0200, Dmitry Dolgov wrote: >> > I think it would be good to add new catalog table. It may be named as >> pg_type_sbs or pg_subscripting (second is better I think). >> > This table may have the fields: >> > - oid >> > - sbstype >> > - sbsinit >> > - sbsfetch >> > - sbsassign >> >> What is `sbstype`? > >'sbstype' is oid of type from pg_type for which subscripting is created. I.e. pg_type may not have the 'typsubsparse' field. I'm confused, why do we need it? I mean, isn't it enough to have a subscripting oid in a pg_type record? > On 18 September 2017 at 12:25, Dmitry Dolgov <9erthalion6@gmail.com> wrote: > > Overall I have only one concern about this suggestion - basically it changes > nothing from the perspective of functionality or implementation quality. Few more thoughts about this point. Basically if we're going this way (i.e. having `pg_subscripting`) there will be one possible change of functionality - in this case since we store oids of all the required functions, we can pass them to a `parse` function (so that a custom extension does not need to resolve them every time). At the same time there are consequences of storing `pg_subscripting`, e.g.: * I assume the performance would be worse because we have to do more actions to actually call a proper function. * The implementation itself will be little bit more complex I think. * Should we think about other functionality besides `CREATE` and `DROP`, for example `ALTER` (as far as I see aggregations support that). and maybe something else that I don't see now.
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