Hi, On 2018-02-26 17:20:05 +0530, Ashutosh Bapat wrote: > In a multi-level partitioned table, a parent whole-row reference gets > translated into nested ConvertRowtypeExpr with child whole-row > reference as the leaf. During the execution, the child whole-row > reference gets translated into all all intermediate parents' whole-row > references, ultimately represented as parent's whole-row reference. > AFAIU, the intermediate translations are unnecessary. The leaf child > whole-row can be directly translated into top parent's whole-row > reference. Here's a WIP patch which does that by eliminating > intermediate ConvertRowtypeExprs during ExecInitExprRec().
Why is this done appropriately at ExecInitExpr() time, rather than at plan time? Seems like eval_const_expressions() would be a bit more appropriate (being badly named aside...)? - Andres