Re: Extend ALTER DEFAULT PRIVILEGES for large objects

Yugo Nagata <nagata@sraoss.co.jp>

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

Attachments

On Wed, 2 Apr 2025 02:35:35 +0900
Fujii Masao <masao.fujii@oss.nttdata.com> wrote:

> 
> 
> 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".

Thank you for your reviewing this patch!

> 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?

Agreed. I attached a updated patch.

Regards,
Yugo Nagata

-- 
Yugo NAGATA <nagata@sraoss.co.jp>

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.