Re: Multicolumn order by

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: theo@flame.co.za
Cc: pgsql-performance@postgresql.org
Date: 2006-04-18T23:08:33Z
Lists: pgsql-performance
Theo Kramer <theo@flame.co.za> writes:
> select * from mytable where
>   (c1 = 'c1v' and c2 = 'c2v' and c3 >= 'c3v') or
>   (c1 = 'c1v' and c2 > 'c2v') or
>   (c1 > 'c1v')
>   order by c1, c2, c3;

Yeah ... what you really want is the SQL-spec row comparison operator

select ... where (c1,c2,c3) >= ('c1v','c2v','c3v') order by c1,c2,c3;

This does not work properly in any current PG release :-( but it does
work and is optimized well in CVS HEAD.  See eg this thread
http://archives.postgresql.org/pgsql-hackers/2006-02/msg00209.php

			regards, tom lane