Обсуждение: operator class

Поиск
Список
Период
Сортировка

operator class

От
"miquel_ibanez"
Дата:

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

 

Re: operator class

От
Tom Lane
Дата:
"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