On 2021-Oct-08, Matthias van de Meent wrote:
> That's a good point, but if we're extending this syntax to allow the
> ability of including other types, then I'd instead extend the syntax
> that of below, so that the type of the dictionary entries is required
> in the syntax:
>
> CREATE TYPE name AS DICTIONARY OF jsonb [ ( ...entries ) ] [ WITH (
> ...options ) ];
I don't think this gives you any guarantees of the sort you seem to
expect. See CREATE AGGREGATE as a precedent where there are some
options in the parenthesized options list you cannot omit.
> > The pg_type entry would have to provide some support procedure that
> > makes use of the dictionary in some way. This seems better than tying
> > the SQL object to a specific type.
>
> Agreed, but this might mean that much more effort would be required to
> get such a useful quality-of-life feature committed.
I don't understand what you mean by that. I'm not saying that the patch
has to provide support for any additional datatypes. Its only
obligation would be to provide a new column in pg_type which is zero for
all rows except jsonb, and in that row it is the OID of a
jsonb_dictionary() function that's called from all the right places and
receives all the right arguments.
--
Álvaro Herrera Valdivia, Chile — https://www.EnterpriseDB.com/
"No tengo por qué estar de acuerdo con lo que pienso"
(Carlos Caszeli)