1. A method for partitioning an object to enable partition pruning for a wider variety of statements that access the object, the method comprising the steps of: partitioning the object at a first level by applying a first partitioning criteria to the object to produce a first set of partitions; partitioning the object at a second level by applying a second partitioning criteria to each partition in said first set of partitions to produce a second set of partitions; and partitioning the object at a third level by applying a third partitioning criteria to each partition in said second set of partitions to produce a third set of partitions.