The existing where clause implementation is single-threaded and sub-optimal in a sense it is row-by-row. We would like the new where to take advantage of data co-location and also multi-core capability. The goal is to bring best-in-class execution speed before the need to create and maintain specialized structures (indexes).
Expected outcome
We expect raw performance figures of un-indexed where clause to be in-line with the current non-keyed aggregation, e.g.
select sum(double) from tab
The following predicates should be supported:
entire set of double arithmetic
entire set of integer arithmetic
all boolean operations, e.g. >, >=, <, <=, = and !=
column to constant operators, e.g. where a > 10
column to column operator, e.g. where a > b and b < c / 25
splicing of boolean operators. e.g. where a > b and a < 10 or c > b
Summary
The existing
where
clause implementation is single-threaded and sub-optimal in a sense it is row-by-row. We would like the newwhere
to take advantage of data co-location and also multi-core capability. The goal is to bring best-in-class execution speed before the need to create and maintain specialized structures (indexes).Expected outcome
We expect raw performance figures of un-indexed
where
clause to be in-line with the current non-keyed aggregation, e.g.The following predicates should be supported:
boolean
operations, e.g.>
,>=
,<
,<=
,=
and!=
where a > 10
where a > b and b < c / 25
boolean
operators. e.g.where a > b and a < 10 or c > b