Re: Extend ALTER DEFAULT PRIVILEGES for large objects

Fujii Masao <masao.fujii@oss.nttdata.com>

From: Fujii Masao <masao.fujii@oss.nttdata.com>
To: Yugo NAGATA <nagata@sraoss.co.jp>, Laurenz Albe <laurenz.albe@cybertec.at>
Cc: Nathan Bossart <nathandbossart@gmail.com>, Tom Lane <tgl@sss.pgh.pa.us>, pgsql-hackers@postgresql.org
Date: 2025-04-01T17:35:35Z
Lists: pgsql-hackers

On 2025/01/23 19:22, Yugo NAGATA wrote:
> On Wed, 22 Jan 2025 13:30:17 +0100
> Laurenz Albe <laurenz.albe@cybertec.at> wrote:
> 
>> On Fri, 2024-09-13 at 16:18 +0900, Yugo Nagata wrote:
>>> I've attached a updated patch. The test is rewritten using has_largeobject_privilege()
>>> function instead of calling loread & lowrite, which makes the test a bit simpler.
>>> Thare are no other changes.
>>
>> When I tried to apply this patch, I found that it doesn't apply any
>> more since commit f391d9dc93 renamed tab-complete.c to tab-complete.in.c.
>>
>> Attached is a rebased patch.
> 
> Thank you for updating the patch!
> 
>> I agree that large objects are a feature that should fade out (alas,
>> the JDBC driver still uses it for BLOBs).  But this patch is not big
>> or complicated and is unlikely to create a big maintenance burden.
>>
>> So I am somewhat for committing it.  It works as advertised.
>> If you are fine with my rebased patch, I can mark it as "ready for
>> committer".  If it actually gets committed depends on whether there
>> is a committer who thinks it worth the effort or not.
> 
> I confirmed the patch and I am fine with it.

I've started reviewing this patch since it's marked as "ready for committer".

I know of several systems that use large objects, and I believe
this feature would be beneficial for them. Overall, I like the idea.


The latest patch looks good to me. I just have one minor comment:

>   only the privileges for schemas, tables (including views and foreign
>   tables), sequences, functions, and types (including domains) can be
>   altered.

In alter_default_privileges.sgml, this part should also mention large objects?

Regards,

-- 
Fujii Masao
Advanced Computing Technology Center
Research and Development Headquarters
NTT DATA CORPORATION




Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. psql: Fix tab-completion after GRANT/REVOKE on LARGE OBJECT and FOREIGN SERVER.

  2. psql: Improve psql tab completion for GRANT/REVOKE on large objects.

  3. Extend ALTER DEFAULT PRIVILEGES to define default privileges for large objects.

  4. Convert tab-complete's long else-if chain to a switch statement.