Normalization phase is for predicate logical plan rewriting and is independent of cost module. The rules in normalization phase do not need to repeatedly applied to different logical plan which is different to volcano optimization phase. And the benefit of normalization phase is to reduce the running time of volcano planner.
ReduceExpressionsRule can apply various simplifying transformations on RexNode trees. Currently, there are two transformations:
1) Constant reduction, which evaluates constant subtrees, replacing them with a corresponding RexLiteral
2) Removal of redundant casts, which occurs when the argument into the cast is the same as the type of the resulting cast expression
the above transformations do not depend on the cost module, so we can move the rules in ReduceExpressionsRule from DATASET_OPT_RULES/DATASTREAM_OPT_RULES to DataSet/DataStream Normalization Rules.