Re: SYSTEM_USER reserved word implementation
Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
From: "Drouvot, Bertrand" <bertranddrouvot.pg@gmail.com>
To: Michael Paquier <michael@paquier.xyz>,
Jacob Champion <jchampion@timescale.com>
Cc: Alvaro Herrera <alvherre@alvh.no-ip.org>, Tom Lane <tgl@sss.pgh.pa.us>,
Joe Conway <mail@joeconway.com>,
PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2022-09-26T13:29:39Z
Lists: pgsql-hackers
Attachments
- v4-0001-system_user-implementation.patch (text/plain) patch v4-0001
Hi, On 9/8/22 3:17 AM, Michael Paquier wrote: > On Wed, Sep 07, 2022 at 08:48:43AM -0700, Jacob Champion wrote: > >> We could pass the bare auth_method index, or update the documentation >> for auth_method to state that it's guaranteed to be zero if authn_id is >> NULL (and then enforce that). >> >>> case SVFOP_CURRENT_USER: >>> case SVFOP_USER: >>> case SVFOP_SESSION_USER: >>> + case SVFOP_SYSTEM_USER: >>> case SVFOP_CURRENT_CATALOG: >>> case SVFOP_CURRENT_SCHEMA: >>> svf->type = NAMEOID; >> >> Should this be moved to use TEXTOID instead? > > Yeah, it should. There is actually a second and much deeper issue > here, in the shape of a collation problem. See the assertion failure > in exprSetCollation(), because we expect SQLValueFunction nodes to > return a name or a non-collatable type. However, for this case, we'd > require a text to get rid of the 63-character limit, and that's > a collatable type. This reminds me of the recent thread to work on > getting rid of this limit for the name type.. Please find attached V4 taking care of Jacob's previous comments. As far the assertion failure mentioned by Michael when moving the SVFOP_SYSTEM_USER from NAMEOID to TEXTOID: V4 is assuming that it is safe to force the collation to C_COLLATION_OID for SQLValueFunction having a TEXT type, but I would be happy to also hear your thoughts about it. Regards, -- Bertrand Drouvot PostgreSQL Contributors Team RDS Open Source Databases Amazon Web Services: https://aws.amazon.com
Commits
-
Introduce SYSTEM_USER
- 0823d061b0b7 16.0 landed
-
Add some information about authenticated identity via log_connections
- 9afffcb833d3 14.0 cited