| From: | Chao Li <li(dot)evan(dot)chao(at)gmail(dot)com> |
|---|---|
| To: | Matheus Alcantara <matheusssilv97(at)gmail(dot)com> |
| Cc: | Rohit Prasad <rohit(dot)prasad(at)arm(dot)com>, pgsql-hackers(at)lists(dot)postgresql(dot)org, mbanck(at)gmx(dot)net |
| Subject: | Re: Include extension path on pg_available_extensions |
| Date: | 2025-11-13 09:11:44 |
| Message-ID: | 96F4EB92-C8C3-4E60-A253-E6D789ED79B3@gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
Hi Matheus,
I just reviewed and tested the patch again, got a few more comments:
> On Nov 11, 2025, at 20:47, Matheus Alcantara <matheusssilv97(at)gmail(dot)com> wrote:
>
>
> On this new v5 version I also swap the order of "comment" and "location"
> columns as it was suggested by Michael.
>
> --
> Matheus Alcantara
> EDB: http://www.enterprisedb.com
>
> <v5-0001-Add-path-of-extension-on-pg_available_extensions.patch>
1 - commit comment
```
User-defined locations are only visible for users that has the
pg_read_extension_paths role, otherwise <insufficient privilege> is
returned as a column value, the same behaviour that we already have on
pg_stat_activity.
```
First, there is a typo: "for users that has” should be “have”.
Then, Is this still true? The code change shows:
```
+ /* We only want to show extension paths for superusers. */
+ if (superuser_arg(GetUserId()))
+ {
```
And the code change says:
```
+ GUC. Only superusers can see the contents of this column.
```
But the TAP test contains a case for normal user:
```
+# Create an user to test permissions to read extension locations.
+my $user = "user01";
+$node->safe_psql('postgres', "CREATE USER $user");
+
my $ecp = $node->safe_psql('postgres', 'show extension_control_path;');
is($ecp, "\$system$sep$ext_dir$sep$ext_dir2",
@@ -46,28 +54,46 @@ $node->safe_psql('postgres', "CREATE EXTENSION $ext_name2");
my $ret = $node->safe_psql('postgres',
"select * from pg_available_extensions where name = '$ext_name'");
is( $ret,
- "test_custom_ext_paths|1.0|1.0|Test extension_control_path",
+ "test_custom_ext_paths|1.0|1.0|$ext_dir_canonicalized/extension|Test extension_control_path",
"extension is installed correctly on pg_available_extensions”);
```
And I tried to run the TAP test, it passed.
So I’m really confused here.
2
```
+ else
+ return "<insufficient privilege>";
+}
```
Why do we just show nothing (empty string)? Every row showing a long string of <insufficient privilege> just looks not good, that’s a lot of duplications.
```
evantest=> select * from pg_available_extension_versions;
name | version | installed | superuser | trusted | relocatable | schema | requires | location | comment
--------------------+---------+-----------+-----------+---------+-------------+------------+---------------------+--------------------------+------------------------------------------------------------------------
refint | 1.0 | f | t | f | t | | | <insufficient privilege> | functions for implementing referential integrity (obsolete)
unaccent | 1.1 | f | t | t | t | | | <insufficient privilege> | text search dictionary that removes accents
```
Best regards,
--
Chao Li (Evan)
HighGo Software Co., Ltd.
https://www.highgo.com/
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Yugo Nagata | 2025-11-13 09:16:04 | Re: Suggestion to add --continue-client-on-abort option to pgbench |
| Previous Message | shveta malik | 2025-11-13 09:09:02 | Re: Proposal: Conflict log history table for Logical Replication |