< operator for user-defined types
От | Teodor Sigaev |
---|---|
Тема | < operator for user-defined types |
Дата | |
Msg-id | 4062F057.6020705@sigaev.ru обсуждение исходный текст |
Ответы |
Re: < operator for user-defined types
|
Список | 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 по дате отправления: