A logical plan is composed of multiple query blocks. Each logical node must belong to one query block. A query block instance provides lots of information. So, it is essential information in many rewrite rules and optimizer implementations.
However, so far, individual rewrite rule or optimizer implementation have dealt with query block directly. It may be error-prone and cause duplicated codes. This patch refactors each visitor method of LogicalPlanVisitor to take a query block as a parameter.
I'm expecting that this change will provide more convenience for rewrite rules and optimization development.