On Tue, Nov 15, 2005 at 08:41:06PM -0500, Bruce Momjian wrote: > Jim C. Nasby wrote: > > Well, currently you can only cluster on a single index per table, and I > > really doubt that will change. In any case, if someone's going to work > > on clustered indexes I think it would be much more worthwhile to make > > them self-maintaining (or at least more self-maintaining). > > Wow, imagine if we could cluster by partial indexes, and then imagine we > could allow multiple clustering per table if the partial indexes did not > overlap --- that is a massive project. Particularly the bit about proving they didn't overlap. Only a full table scan will prove one way or the other in the general case. ISTM that the only use for clustering on a partial index is as an indication of the actual order. So, if you have the index: CREATE INDEX myindex ON mytable (col1,col2) WHERE col3 = true; Then clustering on it would be equivalent to: CREATE INDEX dummyindex ON mytable (col1,col2,col3=true); CLUSTER mytable ON dummyindex; DROP INDEX dummyindex; Although you'd probably use a more efficient SELECT INTO construct. Additionally, clustering by multiple indexes would be simply be an indication of the order, concatinate the fields. All that is needed is a cluster method that doesn't use an INDEX, the rest is just sugercoating. Have a nice day, -- Martijn van Oosterhout <kleptog@xxxxxxxxx> http://svana.org/kleptog/ > Patent. n. Genius is 5% inspiration and 95% perspiration. A patent is a > tool for doing 5% of the work and then sitting around waiting for someone > else to do the other 95% so you can sue them.
Attachment:
pgp9r821ovQB6.pgp
Description: PGP signature