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