In some applications, aliased constant values can be used in WHERE, GROUP BY, HAVING, ORDER BY clauses. For those cases, current planner evaluates constant value in target list of projectable nodes.
This approach works well so far, but there are rooms for significant improvement.
The main problem is that constant target requires many workaround code in NamedExprManager, and TargetListManager. As a result, it makes code complexity higher. The second problem is that many constant values evaluated in each row consume unnecessary I/O and network bandwidth for storing and transmitting.
The solution seems to be simple. In logical planning phase, we should rewrite column references which actually indicates constant values.