# Logical Transformation Rules
+ Column pruning
+ Partition pruning
+ Eliminate `Max/Min`
+ Eliminate outer join
+ Predicates push-down
+ Subquery rewrite
+ De-correlation of correlated subquery
+ Derive `TopN` from window functions
------------------------------------------------------------------------------
The goal of Logical Transformation is to optimize the execution of statements based on the characteristics of the `SELECT` list, `WHERE` clauses, and other predicates in SQL queries. It creates a logical execution plan to annotate and rewrite the query, which is then passed on to the `Cost-Based Optimization` stage. The optimization rules encompass column pruning, partition pruning, eliminating `Max/Min`, eliminating outer joins, join reordering, predicate push-downs, subquery rewriting, deriving `TopN` from window functions, and de-correlating correlated subqueries.

Since this step is fully automated by the query optimizer, it typically doesn't require manual adjustments. Therefore, we will explain a few common rules here. 

For more details on Logical Transformation, visit: [https://docs.pingcap.com/tidb/stable/sql-logical-optimization](https://docs.pingcap.com/tidb/stable/sql-logical-optimization).