<div dir='auto'>I don't recall any problems with the wrapper functions and inlining when I set the costs for the first batch of functions. I can take another look this week and measure some more functions.<div dir="auto"><br></div><div dir="auto">Do we have a list of what functions still need accurate costs?</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sep 10, 2018 10:58 AM, Paul Ramsey <pramsey@cleverelephant.ca> wrote:<br type="attribution" /><blockquote class="quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">I’m running parallel tests against v11 today, and finding things mostly unchanged from v10 with the exception of proper handling of target lists now. In general the low costing on PostGIS functions means that mostly parallelism doesn’t kick in even when we probably want it. Even our low cost C functions are still probably costed 10x too small.<div><br /></div><div>In order to safely cost our functions, we have to first get a patch into PgSQL so that our inlining behaviour doesn’t get screwed up.  See the “What, Still Broken?” section of [1] for information on that.</div><div><br /></div><div>However, in anticipation of that Wondrous Day and to aid in easier testing for folks who do patch their PostGIS, I’d like to bring costing into postgis.sql.in with some new macros, to replace the current inline costing. We can then set the macros to suitably low values to avoid having failures of our inlined functions.</div><div><br /></div><div>The change would look like this one being used at Carto [2]</div><div><br /></div><div>Thoughts?</div><div><br /></div><div>P</div><div><br /></div><div><br /></div><div>[1] <a href="https://carto.com/blog/inside/postgres-parallel/">https://carto.com/blog/inside/postgres-parallel/</a></div><div>[2] <a href="https://github.com/CartoDB/postgis/pull/7/commits/c0b23850d0b2b1447310e3459a814b0eea380f60">https://github.com/CartoDB/postgis/pull/7/commits/c0b23850d0b2b1447310e3459a814b0eea380f60</a></div><div><br /></div><div><br /></div></div></blockquote></div><br></div>