Re: WIP: Faster Expression Processing v4
Andres Freund <andres@anarazel.de>
From: Andres Freund <andres@anarazel.de>
To: Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
Cc: pgsql-hackers@postgresql.org, Heikki Linnakangas <hlinnaka@iki.fi>, Doug Doole <ddoole@salesforce.com>
Date: 2017-03-10T19:24:33Z
Lists: pgsql-hackers
On 2017-03-10 08:51:25 -0500, Peter Eisentraut wrote: > On 3/7/17 19:14, Andres Freund wrote: > >> Why shouldn't the function itself also depend on the components of its > >> return type? > > Because that'd make it impossible to change the return type components - > > if the return type is baked into the view that's necessary, but for a > > "freestanding function" it's not. If you e.g. have a function that just > > returns a table's rows, it'd certainly be annoying if that'd prevent you > > from dropping columns. > > I think functions breaking when the return type is fiddled with is > actually a not-uncommon problem in practice. It would be nice if that > could be addressed. What problem are you thinking of exactly, and what'd be the solution? I'd guess that people wouldn't like being unable to change columns in a table if some function returned the type. One rather extreme way would be to have functions return a "different" type, that's initially identical to the table/composite type. If the ocmposite type then changes, we'd transparently map between the actual return type, and the one callers expect. But that'd a fair bit of effort, and presumably also quite confusing for users that might e.g. expect a new column to show up. > Not necessarily in this patch, but I would like to keep the options > open. Yea, seems worth thinking about. I don't think the patch closes down options? Greetings, Andres Freund
Commits
-
Improve performance of ExecEvalWholeRowVar.
- 2f0903ea1965 10.0 landed
-
Remove unreachable code in expression evaluation.
- ad46a2aa79f9 10.0 landed
-
Faster expression evaluation and targetlist projection.
- b8d7f053c5c2 10.0 landed
-
Avoid syntax error on platforms that have neither LOCALE_T nor ICU.
- 457a44487328 10.0 cited
-
Add configure test to see if the C compiler has gcc-style computed gotos.
- bc18126a6bcb 10.0 landed
-
Improve regression test coverage for TID scanning.
- be6c3d19fd45 10.0 landed
-
Improve expression evaluation test coverage.
- ce38949ba23a 10.0 landed
-
Fix two errors with nested CASE/WHEN constructs.
- f0c7b789ab12 9.6.0 cited