< operator for user-defined types

Поиск
Список
Период
Сортировка
От Teodor Sigaev
Тема < operator for user-defined types
Дата
Msg-id 4062F057.6020705@sigaev.ru
обсуждение исходный текст
Ответы Re: < operator for user-defined types  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
I got several suggestions to include ordering operator for tsvector to aim 
grouping, union and except etc.

I wrote silly comparing function (byte to byte with some optimizations), but I 
wondered that for using operator < in order clause its need to declate B-tree 
opclass for type:

regression=# select  a from test_tsvector order by a;
ERROR:  could not identify an ordering operator for type tsvector
HINT:  Use an explicit ordering operator or modify the query.

I see in
backend/utils/cache/typcache.c near line 169:
        if ((flags & TYPECACHE_LT_OPR) && typentry->lt_opr == InvalidOid)        {                if
(typentry->btree_opc!= InvalidOid)                        typentry->lt_opr = 
 
get_opclass_member(typentry->btree_opc,InvalidOid, BTLessStrategyNumber);        }

So, I must declare b-tree opclass for tsvector. Why?
My supposition is to guarantee that operator < is really 'less-than' one. Is it?




-- 
Teodor Sigaev                                  E-mail: teodor@sigaev.ru


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Alvaro Herrera
Дата:
Сообщение: Re: subversion vs cvs (Was: Re: linked list rewrite)
Следующее
От: Robert Treat
Дата:
Сообщение: Re: Log rotation