Status of Cardinality Estimation
| Operator | Without histogram | With histogram |
| select | See below | See below |
| project | YES | YES |
| rename | YES | YES |
| duplicate elim | YES | YES |
| sort | YES | YES |
| one row only | YES | YES |
| group by (1 grouping attr) | YES | YES |
| group by (>1 grouping attrs) | YES | YES |
| scalar group by (0 grouping attrs) | YES | YES |
| table scan | NO If no stats needs rowcount, or guess rowcount | YES |
| exchange | YES | YES |
| product | YES | YES |
| Inner Theta Join | See below | See below |
| Semi Join | See below | See below |
| Anti Semi Join | NO | NO |
| Full Outer Join | NO | NO |
| Left Outer Join | NO | NO |
| Right Outer Join | NO | NO |
| Apply | YES | YES |
| Union | YES | YES |
| Intersection | YES | YES |
| Difference | YES | YES |
Supported select predicates
| Operator | Without histogram | With histogram |
| AND | YES | YES |
| OR | YES | YES |
| NOT | YES | YES |
| IS NULL | YES | YES |
| LIKE | YES heuristic guess | YES heuristic guess |
| IN | YES | YES |
| ATTR = CONST | YES | YES |
| ATTR < CONST | YES | YES |
| ATTR > CONST | YES | YES |
| ATTR != CONST | YES | YES |
| ATTR <= CONST | YES | YES |
| ATTR >= CONST | YES | YES |
| ATTR = ATTR | NO | YES |
| ATTR < ATTR | NO | YES |
| ATTR > ATTR | NO | YES |
| ATTR != ATTR | NO | YES |
| ATTR <= ATTR | NO | YES |
| ATTR >= ATTR | NO | YES |
| CONST = CONST | NO | YES |
| CONST < CONST | NO | YES |
| CONST > CONST | NO | YES |
| CONST != CONST | NO | YES |
| CONST <= CONST | NO | YES |
| CONST >= CONST | NO | YES |
| FUNC = CONST | NO | YES |
| FUNC < CONST | NO | YES |
| FUNC > CONST | NO | YES |
| FUNC != CONST | NO | YES |
| FUNC <= CONST | NO | YES |
| FUNC >= CONST | NO | YES |
| FUNC = ATTR | NO | NO |
| FUNC < ATTR | NO | NO |
| FUNC > ATTR | NO | NO |
| FUNC != ATTR | NO | NO |
| FUNC <= ATTR | NO | NO |
| FUNC >= ATTR | NO | NO |
| FUNC = FUNC | NO | NO |
| FUNC < FUNC | NO | NO |
| FUNC > FUNC | NO | NO |
| FUNC != FUNC | NO | NO |
| FUNC <= FUNC | NO | NO |
| FUNC >= FUNC | NO | NO |
Supported inner theta join predicates
| Operator | Without histogram | With histogram |
| AND | NO | NO |
| OR | NO | NO |
| NOT | NO | NO |
| IS NULL | NO | NO |
| LIKE | NO | NO |
| IN | NO | NO |
| ATTR = CONST | N/A | N/A |
| ATTR < CONST | N/A | N/A |
| ATTR > CONST | N/A | N/A |
| ATTR != CONST | N/A | N/A |
| ATTR <= CONST | N/A | N/A |
| ATTR >= CONST | N/A | N/A |
| ATTR = ATTR | NO | YES |
| ATTR < ATTR | NO | NO |
| ATTR > ATTR | NO | NO |
| ATTR != ATTR | NO | NO |
| ATTR <= ATTR | NO | NO |
| ATTR >= ATTR | NO | NO |
| CONST = CONST | N/A | N/A |
| CONST < CONST | N/A | N/A |
| CONST > CONST | N/A | N/A |
| CONST != CONST | N/A | N/A |
| CONST <= CONST | N/A | N/A |
| CONST >= CONST | N/A | N/A |
| FUNC = CONST | N/A | N/A |
| FUNC < CONST | N/A | N/A |
| FUNC > CONST | N/A | N/A |
| FUNC != CONST | N/A | N/A |
| FUNC <= CONST | N/A | N/A |
| FUNC >= CONST | N/A | N/A |
| FUNC = ATTR | NO | NO |
| FUNC < ATTR | NO | NO |
| FUNC > ATTR | NO | NO |
| FUNC != ATTR | NO | NO |
| FUNC <= ATTR | NO | NO |
| FUNC >= ATTR | NO | NO |
| FUNC = FUNC | NO | NO |
| FUNC < FUNC | NO | NO |
| FUNC > FUNC | NO | NO |
| FUNC != FUNC | NO | NO |
| FUNC <= FUNC | NO | NO |
| FUNC >= FUNC | NO | NO |
Supported semi join predicates
| Operator | Without histogram | With histogram |
| AND | NO | NO |
| OR | NO | NO |
| NOT | NO | NO |
| IS NULL | NO | NO |
| LIKE | NO | NO |
| IN | NO | NO |
| ATTR = CONST | N/A | N/A |
| ATTR < CONST | N/A | N/A |
| ATTR > CONST | N/A | N/A |
| ATTR != CONST | N/A | N/A |
| ATTR <= CONST | N/A | N/A |
| ATTR >= CONST | N/A | N/A |
| ATTR = ATTR | NO | YES |
| ATTR < ATTR | NO | NO |
| ATTR > ATTR | NO | NO |
| ATTR != ATTR | NO | NO |
| ATTR <= ATTR | NO | NO |
| ATTR >= ATTR | NO | NO |
| CONST = CONST | N/A | N/A |
| CONST < CONST | N/A | N/A |
| CONST > CONST | N/A | N/A |
| CONST != CONST | N/A | N/A |
| CONST <= CONST | N/A | N/A |
| CONST >= CONST | N/A | N/A |
| FUNC = CONST | N/A | N/A |
| FUNC < CONST | N/A | N/A |
| FUNC > CONST | N/A | N/A |
| FUNC != CONST | N/A | N/A |
| FUNC <= CONST | N/A | N/A |
| FUNC >= CONST | N/A | N/A |
| FUNC = ATTR | NO | NO |
| FUNC < ATTR | NO | NO |
| FUNC > ATTR | NO | NO |
| FUNC != ATTR | NO | NO |
| FUNC <= ATTR | NO | NO |
| FUNC >= ATTR | NO | NO |
| FUNC = FUNC | NO | NO |
| FUNC < FUNC | NO | NO |
| FUNC > FUNC | NO | NO |
| FUNC != FUNC | NO | NO |
| FUNC <= FUNC | NO | NO |
| FUNC >= FUNC | NO | NO |
