DefaultRules returns the default set of all built-in optimization rules.
()
| 23 | |
| 24 | // DefaultRules returns the default set of all built-in optimization rules. |
| 25 | func DefaultRules() []Rule { |
| 26 | return []Rule{ |
| 27 | // OPT-001 through OPT-008: original rules |
| 28 | &SelectStarRule{}, |
| 29 | &MissingWhereRule{}, |
| 30 | &CartesianProductRule{}, |
| 31 | &DistinctOveruseRule{}, |
| 32 | &SubqueryInWhereRule{}, |
| 33 | &OrInWhereRule{}, |
| 34 | &LeadingWildcardLikeRule{}, |
| 35 | &FunctionOnColumnRule{}, |
| 36 | // OPT-009 through OPT-020: advanced rules |
| 37 | &CorrelatedSubqueryInSelectRule{}, |
| 38 | &HavingWithoutGroupByRule{}, |
| 39 | &RedundantOrderByInCTERule{}, |
| 40 | &ImplicitTypeConversionRule{}, |
| 41 | &OrToInConversionRule{}, |
| 42 | &NotInSubqueryNullRule{}, |
| 43 | &MissingLimitRule{}, |
| 44 | &UnusedAliasRule{}, |
| 45 | &UnionDeduplicationRule{}, |
| 46 | &CountStarRule{}, |
| 47 | &DeepSubqueryNestingRule{}, |
| 48 | &ExplicitCrossJoinRule{}, |
| 49 | } |
| 50 | } |
| 51 | |
| 52 | // --------------------------------------------------------------------------- |
| 53 | // OPT-001: SELECT * Detection |
no outgoing calls