複合インデックス使用時のDESCでインデックスが使われない

たとえば

create table customer(id integer, birthday date);
create index customer_idx on customer(id, birthday);
select * from customer order by id, birthday desc;

これだとインデックスが使われない.
そんな時は,こうしてインデックスを作ってみよう.

create or replace function datecmprev(date,date) returns integer as $$
        select date_cmp($2,$1);$$ language sql;

create operator class date_desc_ops for type date using btree as
        operator 1 >, operator 2 >=,operator 3 =, operator 4 <=, operator 5 <,
function 1 datecmprev(date,date);

create index customer_idx_rev on customer(id, birthday date_desc_ops);
select * from customer order by id, birthday desc;

これでインデックスが使われるようになるはず.
※今回はdate型だったが,他の型の場合はちょっと違うので注意.btint4cmpだったような・・・\df bt*ってやればわかる.