On Mon, Aug 9, 2010 at 2:02 PM, David Fetter <david@fetter.org> wrote:
>> I am working on Grouping Sets support. The first issue is "cube"
>> keyword. Contrib module "cube" define a few functions "cube". So if we
>> want to continue in support this function, then "cube" have to be a
>> unreserved keyword.
>
> The "cube" contrib module was only ever meant to be replaced by the
> real feature, which you're working on, so +1 for dropping everything
> in it that you are not replacing with the one which complies with the
> SQL standard.
That's not right. The cube contrib module is a kind of vector data
type. It's not related in any way to the SQL CUBE or ROLLUP syntax.
Personally I think cube is uncommonly used and CUBE an important
enough SQL feature that we should just bite the bullet and kill/rename
the contrib module. Partly that's because I find the name quite
strange and non-intuitive anyways. Something like "vector" or "ntuple"
would be far clearer.
Doing nasty hacks to make CUBE a non-reserved word doesn't seem
justified by the contrib module. Now conceivably it's a word users
might be using in their schema and that might be a good enough reason
to hack up the grammar -- but it's not like it's a new keyword in SQL
so it shouldn't come as a surprise to users when they get an error. I
think more people are surprised when we *don't* support CUBE than will
be when we start doing so.
--
greg