Thread: Reverse Index ... how to ...
I'm still searching through Google and whatnot, but not finding anything off the bat ... is there some way of creating a 'REVERSE INDEX' on a column in a table? For instance, when I do a 'CLUSTER' to sort a table based on an INDEX, I'd like to sort it in reverse order, so would need the INDEX to go from 'GREATEST to LOWEST', vs 'LOWEST to GREATEST' ... Thx ---- Marc G. Fournier Hub.Org Networking Services (http://www.hub.org) Email: scrappy@hub.org Yahoo!: yscrappy ICQ: 7615664
On Wed, 5 Apr 2006, Marc G. Fournier wrote: > > I'm still searching through Google and whatnot, but not finding anything off > the bat ... is there some way of creating a 'REVERSE INDEX' on a column in a > table? > > For instance, when I do a 'CLUSTER' to sort a table based on an INDEX, I'd > like to sort it in reverse order, so would need the INDEX to go from > 'GREATEST to LOWEST', vs 'LOWEST to GREATEST' ... use something like select * into new_table from old_table order by some_key desc; > > Thx > > ---- > Marc G. Fournier Hub.Org Networking Services (http://www.hub.org) > Email: scrappy@hub.org Yahoo!: yscrappy ICQ: 7615664 > > ---------------------------(end of broadcast)--------------------------- > TIP 5: don't forget to increase your free space map settings > Regards, Oleg _____________________________________________________________ Oleg Bartunov, Research Scientist, Head of AstroNet (www.astronet.ru), Sternberg Astronomical Institute, Moscow University, Russia Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/ phone: +007(495)939-16-83, +007(495)939-23-83
"Marc G. Fournier" <scrappy@postgresql.org> writes: > I'm still searching through Google and whatnot, but not finding anything > off the bat ... is there some way of creating a 'REVERSE INDEX' on a > column in a table? > For instance, when I do a 'CLUSTER' to sort a table based on an INDEX, I'd > like to sort it in reverse order, so would need the INDEX to go from > 'GREATEST to LOWEST', vs 'LOWEST to GREATEST' ... You shouldn't need to worry about that during CLUSTER, as the system is perfectly capable of scanning an index in either forward or backward order at runtime. For example, regression=# explain select * from tenk1 order by unique1; QUERY PLAN ------------------------------------------------------------------------------------Index Scan using tenk1_unique1 on tenk1 (cost=0.00..1572.00 rows=10000 width=244) (1 row) regression=# explain select * from tenk1 order by unique1 desc; QUERY PLAN ---------------------------------------------------------------------------------------------Index Scan Backward using tenk1_unique1on tenk1 (cost=0.00..1572.00 rows=10000 width=244) (1 row) regards, tom lane
On Wed, 5 Apr 2006, Tom Lane wrote: > "Marc G. Fournier" <scrappy@postgresql.org> writes: >> I'm still searching through Google and whatnot, but not finding anything >> off the bat ... is there some way of creating a 'REVERSE INDEX' on a >> column in a table? > >> For instance, when I do a 'CLUSTER' to sort a table based on an INDEX, I'd >> like to sort it in reverse order, so would need the INDEX to go from >> 'GREATEST to LOWEST', vs 'LOWEST to GREATEST' ... > > You shouldn't need to worry about that during CLUSTER, as the system is > perfectly capable of scanning an index in either forward or backward > order at runtime. For example, > > regression=# explain select * from tenk1 order by unique1; > QUERY PLAN > ------------------------------------------------------------------------------------ > Index Scan using tenk1_unique1 on tenk1 (cost=0.00..1572.00 rows=10000 width=244) > (1 row) > > regression=# explain select * from tenk1 order by unique1 desc; > QUERY PLAN > --------------------------------------------------------------------------------------------- > Index Scan Backward using tenk1_unique1 on tenk1 (cost=0.00..1572.00 rows=10000 width=244) > (1 row) Perfect, that was what I was looking for, thx ... ---- Marc G. Fournier Hub.Org Networking Services (http://www.hub.org) Email: scrappy@hub.org Yahoo!: yscrappy ICQ: 7615664