Thread: 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
);
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 lastfor 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