Patent ID: 7447679

Claim:
A method for optimizing an execution of a database query, the method comprising: receiving the database query for querying data in a target partitioned database-object; wherein the database query includes a predicate which includes a partition-mapping function that is a partitioned table; wherein the partition-mapping function's input parameters includes: a second partitioned database-object which is separate from the target partitioned database-object, and a list of columns in the target partitioned database-object; determining whether the target partitioned database-object's partitioning schema is compatible with the partitioning schema of the second partitioned database-object, wherein said determining includes: determining whether the target partitioned database-object's partitioning technique is compatible with the second partitioned database-object's partitioning technique; and if the partitioning techniques are compatible, determining whether the list of columns is compatible with partitioning keys of the database-objects by checking whether the list of columns is a prefix of a partitioning key of the partitioned table and by checking whether data types of columns in the list of columns are compatible with data types of elements of a partitioning key of the partitioning keys of the database-objects; identifying a subset of partitions in the target partitioned database-object that satisfy the predicate if the list of columns is compatible with the partitioning keys; and performing the database query on the subset of partitions, thereby optimizing the execution of the database query by reducing a number of partitions that need to be accessed.