Re: Why is my function inlined only when STABLE?
Philip Semanchuk <philip@americanefficient.com>
From: Philip Semanchuk <philip@americanefficient.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: PostgreSQL General <pgsql-general@lists.postgresql.org>
Date: 2022-03-29T18:43:27Z
Lists: pgsql-general
> On Mar 29, 2022, at 2:24 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote: > > Philip Semanchuk <philip@americanefficient.com> writes: >> I have a function that isn't being inlined, and I would appreciate help to understand why that's the case. > > I think the test methodology you used is faulty, because it does not > distinguish between "inline-able" and "foldable to a constant". > Given an immutable function applied to constant(s), the planner prefers > to fold to a constant by just executing the function. The inline-ing > transformation is considered only when that case doesn't apply. Excellent point, thank you. Now I understand. I was trying to write an inlining demo for my colleagues, and I simplified my example one step too far by using a constant. I really appreciate the help! Cheers Philip