Described herein are approaches for generating execution plans for
database commands that include an in-list predicate. The approaches can
be used to generate execution plans that exploit the power of in-list
iterators in ways and under circumstances not previously supported by
conventional DBMSs. An in-list iterator may be used with execution
subplans for processing multi-column in-list queries. An in-list iterator
is used with execution subplans that scan function-based indexes. The
execution plans for a multi-column in-list query limit table scans to
only table partitions that contain data that satisfy the query.