“…Rule-based Query Optimization Unlike a cardinality estimation-based optimizer, a rule-based optimizer relies on a set of predefined rules to prune the optimization search space and decide on an optimal plan for query execution. Most rule-based optimizers [6,23,37,4,3,2,26,33,39,34] develop specialized rule languages and execution environments to avoid unwanted compatibility issues and accelerate the enumeration process and query execution. Held et al [6] introduce the first rule-based optimizer in Ingres, where the original query is decomposed into single-valued subqueries and executed separately in a greedy cardinality-based fashion.…”