Re: VARIANT / ANYTYPE datatype

Поиск
Список
Период
Сортировка
От Alvaro Herrera
Тема Re: VARIANT / ANYTYPE datatype
Дата
Msg-id 1304711381-sup-8566@alvh.no-ip.org
обсуждение исходный текст
Ответ на Re: VARIANT / ANYTYPE datatype  (Darren Duncan <darren@darrenduncan.net>)
Ответы Re: VARIANT / ANYTYPE datatype
Re: VARIANT / ANYTYPE datatype
Список pgsql-hackers
Excerpts from Darren Duncan's message of mié may 04 15:33:33 -0300 2011:

> I see VARIANT/ANYTYPE as the most general case of supporting union types, which, 
> say, could have more specific examples of "allow any number or date here but 
> nothing else".  If VARIANT is supported, unions in general ought to be also.

Okay, so aside from the performance (storage reduction) gained, there's
this argument for having variant/union types.  It seems to me that this
is indeed possible to build.  Completely general VARIANT, though, is
rather complex.  A declared union, where you specify exactly which types
can be part of the union, can be catalogued, so that the system knows
exactly where to look when a type needs to be modified.  A general
VARIANT however looks complex to me to solve.

The problem is this: if an user attempts to drop a type, and this type
is used in a variant somewhere, we would lose the stored data.  So the
drop needs to be aborted.  Similarly, if we alter a type (easy example:
a composite type) used in a variant, we need to cascade to modify all
rows using that composite.

If the unions that use a certain type are catalogued, we at least know
what tables to scan to cascade.

In a general variant, the system catalogs do not have the information of
what type each variant masquerades as.  We would need to examine the
variant's masqueraded types on each insert; if the current type is not
found, add it.  This seems a bit expensive.

-- 
Álvaro Herrera <alvherre@commandprompt.com>
The PostgreSQL Company - Command Prompt, Inc.
PostgreSQL Replication, Consulting, Custom Development, 24x7 support


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Andrew Dunstan
Дата:
Сообщение: Re: Why not install pgstattuple by default?
Следующее
От: Tom Lane
Дата:
Сообщение: Re: pg_upgrade's bindir options could be optional