Patent ID: 8856103

Claim:
A method of query processing over database tables laid out in column major order, comprising: accumulating table record attributes during application of query plan operators on a table; determining selectivity of the query during execution of the query plan operators; compacting attributes and associated attribute values when said attribute values are to be consumed for an operation in the query plan during the execution of the query plan, wherein compacting of an attribute comprises forming an array of values for that attribute that contains only entries for those rows that satisfy a specific set of query predicates and performing compaction on the array of values using a fixed list of processor instructions without using branch or conditional instructions; and accumulating vectors of attribute values for table records gradually during execution of a query plan as query plan operators are applied, wherein compaction is performed on attributes as needed independent of branch flow, and the vectors of attribute values are compacted on demand; when an attribute value is used at multiple places in a query, for a next and subsequent uses of that attribute, reusing the vector of values computed during the first usage of that attribute by re-compacting it according to a new list of predicates applied; and materializing table column record values late in query plan execution.