Обсуждение: operator class
Hello
I have just started with postgreSQL.
I have a file with the following commands :
CREATE TYPE t_cod_t_activ AS (
cod_t_activ CHAR(10)
);
CREATE TABLE tip_activ (
id_tip_activ t_cod_t_activ,
des_t_activ t_des_t_activ
);
CREATE INDEX i_tip_activ ON tip_activ (id_tip_activ bpchar_pattern_ops);
When the CREATE INDEX is executed, this error shows:
ERROR: operator class "bpchar_pattern_ops" does not accept data type t_cod_t_activ
Does it mean that I cannot create an index on a field wich is of a type defined by the user?
I need that id_tip_activ be PRIMARY KEY.
Thanks and best regards
Miguel Ibáñez
"miquel_ibanez" <miquel_ibanez@sumimail.com> writes:
> CREATE TYPE t_cod_t_activ AS (
> cod_t_activ CHAR(10)
> );
If you just want an alias for char(10), a domain would probably work
better. CREATE TYPE AS is meant for creating multi-field row types.
> Does it mean that I cannot create an index on a field wich is of a type
> defined by the user?
Sure, if you are also willing to define operators and operator classes
on your type.
regards, tom lane