Re: Index with new opclass not used for sorting

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Ancoron Luciferis <ancoron(dot)luciferis(at)googlemail(dot)com>
Cc: pgsql-general(at)lists(dot)postgresql(dot)org
Subject: Re: Index with new opclass not used for sorting
Date: 2019-06-21 13:36:32
Message-ID: 28343.1561124192@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Ancoron Luciferis <ancoron(dot)luciferis(at)googlemail(dot)com> writes:
> I am creating a new operator class for version 1 UUID's with an
> extension and thought I was almost done by implementing everything
> including SortSupport and creating a new opclass as follows:

> CREATE OPERATOR CLASS uuid_timestamp_ops FOR TYPE uuid
> USING btree AS
> OPERATOR 1 <*,
> ...

> ...but when sorting on an (unique) index column, I still get a separate
> sort, not using the index, e.g.:

You did not show your test query, but I imagine it just asked for the
type's ordinary sort order, which is not what this opclass is claiming
to provide. To rely on the index's sort order you'd need something like

select id from uuid_v1_ext
where id <* '2b55fb04-33d8-11e9-9cfa-e03f494ffcf7'
order by id using <* ;

If you want this opclass to become the default sort order for uuid
you'd have to remove the opcdefault marking from uuid_ops and attach
it to this opclass instead. No, I'm not sure that that wouldn't have
unpleasant side-effects.

regards, tom lane

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Ray O'Donnell 2019-06-21 13:38:43 Re: Why does the pg_dumpall command have a database option?
Previous Message Espresso Beanies 2019-06-21 13:32:19 Re: Why does the pg_dumpall command have a database option?