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>
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-06-11T04:33:07Z
Lists: pgsql-hackers
On 2025/06/11 11:49, Yugo Nagata wrote:
> While looking at the thread [1], I've remembered this thread.
> The patches in this thread are partially v18-related, but include
> enhancement or fixes for existing feature, so should they be postponed
> to v19, or should be separated properly to v18 part and other?
>
> [1] https://www.postgresql.org/message-id/70372bdd-4399-4d5b-ab4f-6d4487a4911a%40oss.nttdata.com
I see these patches more as enhancements to psql tab-completion,
rather than fixes for clear oversights in the original commit.
For example, if tab-completion for ALTER DEFAULT PRIVILEGES had
completely missed LARGE OBJECTS, that would be an obvious oversight.
But these patches go beyond that kind of issue.
That said, if others think it's appropriate to include them in v18
for consistency or completeness, I'm fine with that.
Regarding the 0002 patch:
- else if (Matches("GRANT", MatchAnyN, "ON", MatchAny, MatchAny))
- COMPLETE_WITH("TO");
- else if (Matches("REVOKE", MatchAnyN, "ON", MatchAny, MatchAny))
- COMPLETE_WITH("FROM");
+ else if (Matches("GRANT/REVOKE", MatchAnyN, "ON", MatchAny, MatchAny))
+ {
+ if (TailMatches("FOREIGN", "SERVER"))
+ COMPLETE_WITH_QUERY(Query_for_list_of_servers);
+ else if (!TailMatches("LARGE", "OBJECT"))
+ {
+ if (Matches("GRANT", MatchAnyN, "ON", MatchAny, MatchAny))
+ COMPLETE_WITH("TO");
+ else
+ COMPLETE_WITH("FROM");
+ }
+ }
Wouldn't this change break the case where "GRANT ... ON TABLE ... <TAB>"
is supposed to complete with "TO"?
Regards,
--
Fujii Masao
NTT DATA Japan Corporation
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
psql: Fix tab-completion after GRANT/REVOKE on LARGE OBJECT and FOREIGN SERVER.
- ff0bcb248e6e 19 (unreleased) landed
-
psql: Improve psql tab completion for GRANT/REVOKE on large objects.
- 86c539c5af14 19 (unreleased) landed
-
Extend ALTER DEFAULT PRIVILEGES to define default privileges for large objects.
- 0d6c4776647f 18.0 landed
-
Convert tab-complete's long else-if chain to a switch statement.
- f391d9dc93a2 18.0 cited