Re: pgsql: Remove unreachable code in expressionevaluation.
| От | Andres Freund |
|---|---|
| Тема | Re: pgsql: Remove unreachable code in expressionevaluation. |
| Дата | |
| Msg-id | 20170326042527.mdxsoht5a4actlzz@alap3.anarazel.de обсуждение исходный текст |
| Ответ на | Re: pgsql: Remove unreachable code in expression evaluation. (Tom Lane <tgl@sss.pgh.pa.us>) |
| Список | pgsql-committers |
On 2017-03-26 00:14:30 -0400, Tom Lane wrote: > Andres Freund <andres@anarazel.de> writes: > > Remove unreachable code in expression evaluation. > > The previous code still contained expression evaluation time support > > for CaseExprs without a defresult. But transformCaseExpr() creates a > > default expression if necessary. > > BTW, now that I think about it, I wonder if a better answer wouldn't > be to leave the execExpr code as it stood, and remove the code in > transformCaseExpr that pre-creates a default expression. You'd end > up with identical code at runtime, and eliminate some parse/rewrite/plan > overhead for dealing with that subexpression. > > It's possible there's some code somewhere else that expects defresult > to always be non-null, but I can't think what, or why that would be > a good thing to assume. There's some relationship with the type inferrence code in transformCaseExpr(). I don't think it'd be hard to change, however - just move resultexprs = lcons(newc->defresult, resultexprs); into the else branch of if defresult == NULL. - Andres
В списке pgsql-committers по дате отправления: