Re: MULTISET and additional functions for ARRAY

Поиск
Список
Период
Сортировка
От Darren Duncan
Тема Re: MULTISET and additional functions for ARRAY
Дата
Msg-id 4CDC339C.30909@darrenduncan.net
обсуждение исходный текст
Ответ на MULTISET and additional functions for ARRAY  (Itagaki Takahiro <itagaki.takahiro@gmail.com>)
Ответы Re: MULTISET and additional functions for ARRAY  ("David E. Wheeler" <david@kineticode.com>)
Список pgsql-hackers
I think that it would be best to implement MULTISET in the same way that a TABLE 
is implemented.  Logically and structurally they are the same thing, but that a 
MULTISET typically is used as a field value of a table row.  Aka, a table and a 
multiset are just different names for a relation, loosely speaking.

The association of a multiset-typed attribute of a table with said table is like 
the association of a child and parent table in a many-to-one.

So reuse your structure for tables to hold multisets.

-- Darren Duncan

Itagaki Takahiro wrote:
> Postgres supports ARRAY data types well, but there are some
> more array functions in the SQL standard. Also, the standard
> has MULTISET data type, that is an unordered array.
> 
> It looks easy to support additional array functions. There
> might be some confusion to treat multi-dimensional arrays
> with them, but we could treat all arrays as one-dimensional
> like as unnest().
> 
> MULTISET supports are more difficult. We have corresponding
> type IDs for each array, but we might not want to add additional
> IDs for multiset for each type. Any ideas for the issue?
> 
> If we reuse type IDs of arrays for multisets, the multisets would
> have some special typmod. For example, typmod = 0 means multiset,
> and positive value means array with max cardinality. Note that
> the SQL standard doesn't mention about multi-dimensional arrays.
> So, we can use typmod = -1 as a free-size and free-dimensional
> array for backward compatibility.
> 
> If we have troublesome issues to support multiset data types,
> I'm thinking to add multiset functions that receives ARRAY
> types instead at time first time, because an ARRAY is a
> MULTISET by definition. Some of functions for multisets
> seems to be useful for arrays, too.
> 
> Comments and suggestions welcome.


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

Предыдущее
От: Heikki Linnakangas
Дата:
Сообщение: Re: B-tree parent pointer and checkpoints
Следующее
От: Nicolas Barbier
Дата:
Сообщение: Re: MULTISET and additional functions for ARRAY