INDEX on a composite type
Hi all.
When trying to create an index on a composite type, I need to enclose
the columns in paranthesis. Is this normal?
I don't think so as there's no mention in the friendly manual.
An example:
create type atype as (
atext text,
anint int
);
create table atable (
info text,
compo atype
);
create index i_atable_compo on atable(
((compo).atext),((compo).anint)
);
With single parenthesis, as suggested by the friendly manual, I get a
syntax error close to the "."
test=# create index i_atable_compo on atable(
(compo).atext,(compo).anint
);
ERROR: syntax error at or near "."
LINE 2: (compo).atext,(compo).anint
^
--
Vincenzo Romano
Maybe Computers will never become as intelligent as Humans.
Surely they won't ever become so stupid. [VR-1989]
On Wed, Dec 19, 2007 at 10:07:32PM +0100, GMail wrote:
Hi all.
When trying to create an index on a composite type, I need to enclose
the columns in paranthesis. Is this normal?
I don't think so as there's no mention in the friendly manual.
I beleive it says somewhere that anything except straight column names
need parenthesis. What you have is an expression and thus it needs
them.
Have a nice day,
--
Martijn van Oosterhout <kleptog@svana.org> http://svana.org/kleptog/
Show quoted text
Those who make peaceful revolution impossible will make violent revolution inevitable.
-- John F Kennedy
GMail wrote:
When trying to create an index on a composite type, I need to enclose
the columns in paranthesis. Is this normal?
I don't think so as there's no mention in the friendly manual.
I think your problem is similar to one that has been discussed here
previously.
http://www.mail-archive.com/pgsql-general@postgresql.org/msg75862.html
Colin
Il Wednesday 19 December 2007 22:29:25 Colin Wetherbee ha scritto:
GMail wrote:
When trying to create an index on a composite type, I need to enclose
the columns in paranthesis. Is this normal?
I don't think so as there's no mention in the friendly manual.I think your problem is similar to one that has been discussed here
previously.http://www.mail-archive.com/pgsql-general@postgresql.org/msg75862.html
Colin
By the way, why not allowing the declaration of an index over a composite
type as a whole? (As opposed to a composite type as the list of single
component types).
--
Vincenzo Romano
Maybe Computers will never become as intelligent as Humans.
Surely they won't ever become so stupid. [VR-1989]
On Wed, Dec 19, 2007 at 10:41:36PM +0100, GMail wrote:
By the way, why not allowing the declaration of an index over a composite
type as a whole? (As opposed to a composite type as the list of single
component types).
It would probably work if there was an operator class defined for your
type, but there's no magic for that.
Have a nice day,
--
Martijn van Oosterhout <kleptog@svana.org> http://svana.org/kleptog/
Show quoted text
Those who make peaceful revolution impossible will make violent revolution inevitable.
-- John F Kennedy