I wrote: > We will probably *also* want to pass these details explicitly to the > index AM, but that doesn't solve the problem that some catalog somewhere > has to say what it is that the opclass can do.
... although having said that, the obvious question is why that catalog has to be pg_amop. Maybe we should leave pg_amop alone (so that it represents only search operators) and invent a new catalog pg_amorderop. I envision it having the same columns as pg_amop, plus an ordering opclass OID (and maybe we might as well stick in asc/desc and nulls_first). The reason to do this instead of just adding those columns to pg_amop is that then we can have a different set of unique indexes. I'm thinking about (amopfamily, amoplefttype, amoprighttype, amopstrategy), which would be the same as in pg_amop, plus (amopopr, amopfamily, amopstrategy). This would allow a single operator to be registered under multiple strategy numbers, which presumably would carry different payload sort-order-specification columns. This still seems like overkill to me, because I don't actually believe that it's practical for an index to support multiple sort orders. But if anyone would like to make an argument why that's not pie in the sky, this might be the way to represent it. regards, tom lane -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers