Tomas,
> (a) find out what statistics do we need to collect and how to use it
> (b) implement a really stupid inefficient solution
> (c) optimize in iterations, i.e. making it faster, consuming less
> space etc.
I'll suggest again how to decide *which* columns to cross: whichever
columns are combined in composite indexes. In version 2, allow the DBA
to specify combinations.
In the unlikely event that correlation could be reduced to a single
float number, it would be conceivable for each column to have an array
of correlation stats for every other column where correlation was
non-random; on most tables (i.e. ones with less than 100 columns) we're
not talking about that much storage space.
The main cost would be the time spent collecting that info ...
-- -- Josh Berkus PostgreSQL Experts Inc.
http://www.pgexperts.com