Re: MULTISET and additional functions for ARRAY

From: Darren Duncan <darren(at)darrenduncan(dot)net>
To: PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: MULTISET and additional functions for ARRAY
Date: 2010-11-11 21:06:32
Message-ID: 4CDC5AD8.6090105@darrenduncan.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Merlin Moncure wrote:
> On Thu, Nov 11, 2010 at 3:42 PM, David E. Wheeler <david(at)kineticode(dot)com> wrote:
>> On Nov 11, 2010, at 12:08 PM, Alvaro Herrera wrote:
>>
>>>> That sounds like a composite type to me.
>>> No, it's "perpendicular" in the sense that while a composite type allows
>>> you to have different columns, this multiset thing lets you have "rows"
>>> (I initially thought about them as sets of scalars, but AFAIU they could
>>> in turn be rows)
>> How is that different from an array of RECORDs?

I could ask the same question about a TABLE, the ordering issue aside.

This is one place that SQL made things more complicated than they needed to be.
Multisets have generally the same structure *and* operators (union, etc) as
tables, but they use different syntax for each. A better design would be to
make tables and multisets interchangeable. Its an unnecessary distinction.

> not a whole lot outside of syntax details...there is a decent summary
> here: http://waelchatila.com/2005/05/18/1116485743467.html
>
> I like this part: "Alternatively the SQL standard also permits the
> same construct with the bracket trigraphs ??( and ??)" :-D

As I recall, the concept of using stuff like ?( or ?) etc was so that SQL could
be written in EBCDIC which natively lacks some of the bracketing characters that
ASCII has. Hence, such is an alternative way to spell either { } or [ ] (I
forget which).

-- Darren Duncan

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Andrew Dunstan 2010-11-11 21:12:02 Re: improved parallel make support
Previous Message Merlin Moncure 2010-11-11 20:46:42 Re: MULTISET and additional functions for ARRAY