1. A method comprising: prior to receiving a query with at least one predicate that has work to be performed on a first table, performing the steps of: dividing data from the first table into a plurality of chunks; populating, into a volatile memory of at least one host node, the plurality of chunks; compressing each given chunk of the plurality of chunks into a given plurality of column-major units; in response to receiving the query with the at least one predicate, generating from the at least one predicate a condition to evaluate against a particular column-major unit; during an in-memory scan of at least a portion of the first table, comparing data from the particular column-major unit with the condition; and based on the comparison, filtering data items from the particular column-major unit to produce a first set of intermediate results for the query; wherein the method is performed by one or more nodes.