Table 7.1: Rules Used for Results in this Section
|
Rule
|
Description
|
|
1. AGGREGATE_THRU_EQJOIN
|
Aggregation push-down rule 1
|
|
2. AGGREGATE2_THRU_EQJOIN
|
Aggregation push-down rule 2
|
|
3. PROJECT_THRU_EQJOIN
|
Push Project through an EQJOIN
|
|
4. PROJECT_THRU_AGG_LIST
|
Push Project through an AGG_LIST
|
|
5. PROJECT_THRU_FUNC_OP
|
Push Project through a FUNC_OP
|
|
6. PROJECT_THRU_SELECT
|
Push Project through a SELECT
|
|
7. EQJOIN Commutativity
|
A | | B
B | | A
|
|
8. LTOR EQJOIN Associativity
|
(A | | B) | | C
A | | (B | | C)
|
|
9. EQJOIN Commutativity
|
A | | B
B | | A
(Left Deep Only)
|
|
10. EQJOIN Exchange
|
(A | | B) | | C
(A | | C) | | B
(Left Deep Only)
w/ or w/o NOCART (No Cartesian Products Option)
|
|
12. SORT_RULE
|
Sort Enforcement Rule
|
|
13. GET_TO_FILE_SCAN
|
FILE_SCAN implements GET
|
|
14. RM_TO_HASH_DUPLICATES
|
HASH_DUPLICATES implements REMOVE_DUPLICATES
|
|
15. AGGLIST_TO_HGROUP_LIST
|
HGROUP_LIST implements AGG_LIST
|
|
16. PROJECT_TO_PHYSICAL_PROJECT
|
PHYSICAL_PROJECT implements PROJECT
|
|
17. FUNC_OP_TO_PHYSICAL_FUNC_OP
|
PHYSICAL_FUNC_OP implements FUNC_OP
|
|
18. ORDER_BY_TO_QSORT
|
QSORT implements ORDER_BY
|
|
19. SELECT_TO_FILTER
|
FILTER implements SELECT
|
|
20. SELECT_TO_INDEXED_FILTER
|
INDEXED_FILTER implements SELECT
|
|
21. EQJOIN_TO_HASH_JOIN
|
HASH_JOIN implements EQJOIN
|
|
22. EQJOIN_TO_BIT_SEMIJOIN
|
BIT_SEMIJOIN implements EQJOIN, SELECT, PROJECT
|
|
23. EQJOIN_TO_LOOPS_INDEX_JOIN
|
LOOPS_INDEX_JOIN implements EQJOIN
|
|
24. EQJOIN_TO_MERGE_JOIN
|
MERGE_JOIN implements EQJOIN
|
|
25. EQJOIN_TO_LOOPS_JOIN
|
LOOPS_JOIN implements EQJOIN
|