Sorting composite types
Is there any way to define a natural sorting order for composite types? For
example, let's say you have a type like:
CREATE TYPE contrived AS (
i1 integer,
i2 integer
);
The semantics of this contrived type are that the natural order is
ascending NULLS first for i1 and descending NULLS last for i2. I know I can
do an ORDER BY per query and specify each part separately, but if my
contrived example has a perceived natural sort order, is there any way to
set that in a global way so that I can simply and universally ORDER BY
my_contrived_column?
Miles Elam wrote:
Is there any way to define a natural sorting order for composite types? For example, let's say you have a type like:
CREATE TYPE contrived AS (
i1 integer,
i2 integer
);The semantics of this contrived type are that the natural order is ascending NULLS first for i1 and descending NULLS last for i2.
I know I can do an ORDER BY per query and specify each part separately, but if my contrived example has a perceived
natural sort order, is there any way to set that in a global way so that I can simply and universally ORDER BY my_contrived_column?
You'd have to define a default b-tree operator class for the type with
operators that implement your desired sort order.
Yours,
Laurenz Albe
--
Cybertec | https://www.cybertec-postgresql.com