Patent ID: 8429150

Claim:
A computer implemented method of evaluating a query including one or more query operations, the method comprising: obtaining a compiled query including a join operation against a first table, the first table having a first set of partitions, the first set including an X number of partitions, the query including a partitioning scheme for intermediate tables that includes an N number of partitions; obtaining a second set of partitions of a second table, the second set including a Y number of partitions; performing using a query engine the join operation of one or more partitions of the first set against one or more of the partitions of the second set to create a plurality of combination results, wherein if the join operation is a pairwise join, each of the partitions of the first set are joined against corresponding ones of the partitions of the second set such that each join creates a combination result, the number of combination results in the plurality of combination results for the pairwise join being the same as X and Y, wherein if the join operation is a crosswise join, each of the partitions of the first set is joined against each of the partitions of the second set such that each join creates a combination result, the number of combination results in the plurality of combination results for the crosswise join is X*Y; partitioning each of the plurality of combination results to produce a result set of result partitions for each of the plurality of combination results, each result set including N partitions; and reducing corresponding ones of the result partitions across the result sets to an intermediate table to produce a set of N intermediate tables, each intermediate table including data from a result partition from each of the result sets.