Proposal to suppress errors thrown by to_reg*()

From: Takuma Hoshiai <hoshiai(at)sraoss(dot)co(dot)jp>
To: pgsql-hackers(at)postgresql(dot)org
Subject: Proposal to suppress errors thrown by to_reg*()
Date: 2019-03-14 04:37:00
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

Hi, hackers,

According to the document, "to_reg* functions return null rather than
throwing an error if the name is not found", but this is not the case
if the arguments to those functions are schema qualified and the
caller does not have access permission of the schema even if the table
(or other object) does exist -- we get an error.

For example, to_regclass() throws an error if its argument is
'schema_name.table_name'' (i.e. contains schema name) and caller's
role doesn't have access permission of the schema. Same thing can be
said to Other functions,

I get complain from Pgpool-II users because it uses to_regclass()
internally to confirm table's existence but in the case above it's
not useful because the error aborts user's transaction.

To be more consistent with the doc and to make those functions more
useful, I propose to change current implementation so that they do not
throw an error if the name space cannot be accessible by the caller.

Attached patch implements this. Comments and suggestions are welcome.

Takuma Hoshiai <hoshiai(at)sraoss(dot)co(dot)jp>

Attachment Content-Type Size
fix_to_reg.patch application/octet-stream 7.6 KB


Browse pgsql-hackers by date

  From Date Subject
Next Message Michael Paquier 2019-03-14 04:39:36 Re: Offline enabling/disabling of data checksums
Previous Message Michael Paquier 2019-03-14 04:23:08 Re: BUG #15668: Server crash in transformPartitionRangeBounds