Access planning for column partitions is driven by the single-table predicates and the projection list on a column-partitioned database object. The Optimizer groups the single-table predicates and the projection list for a table or join index by the column partitions that contain the referenced columns.
This process includes creating a list of conditions that can be evaluated on the same column partition or set of column partitions.
When there are both single-table predicates and projection columns, predicate ordering takes precedence over projection analysis because evaluating predicates eliminates rows that would project the required columns. When there are insufficient available column partition contexts for both, the Optimizer employs various heuristics to determine whether to apply the predicates and merge the projection columns into a column partition merge spool or only to apply the predicates and output row IDs of the qualified rows to the column partition merge spool.