Re: Getting rid of SQLValueFunction

Michael Paquier <michael@paquier.xyz>

From: Michael Paquier <michael@paquier.xyz>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Corey Huinker <corey.huinker@gmail.com>, Postgres hackers <pgsql-hackers@lists.postgresql.org>
Date: 2022-10-21T05:27:07Z
Lists: pgsql-hackers

Attachments

On Fri, Oct 21, 2022 at 12:34:23PM +0900, Michael Paquier wrote:
> A sticky point is that this would need the creation of a pg_proc entry
> for "user" which is a generic word, or a shortcut around
> FigureColnameInternal().  The code gain overall still looks appealing
> in the executor, even if we do all that and the resulting backend code
> gets kind of nicer and easier to maintain long-term IMO.

I have looked at that, and the attribute mapping remains compatible
with past versions once the appropriate pg_proc entries are added.
The updated patch set attached does that (with a user() function as
well to keep the code a maximum simple), with more tests to cover the
attribute case mentioned upthread.
--
Michael

Commits

  1. Fix precision handling for some COERCE_SQL_SYNTAX functions

  2. Replace SQLValueFunction by COERCE_SQL_SYNTAX

  3. Switch SQLValueFunction on "name" to use COERCE_SQL_SYNTAX

  4. Improve coverage of ruleutils.c for SQLValueFunctions