Re: vacuumdb: permission denied for schema "pg_temp_7"

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

From: Fujii Masao <masao.fujii@oss.nttdata.com>
To: Tom Lane <tgl@sss.pgh.pa.us>, Noah Misch <noah@leadboat.com>
Cc: Nathan Bossart <nathandbossart@gmail.com>, vaibhave postgres <postgresvaibhave@gmail.com>, pgsql-bugs@lists.postgresql.org, vsekar@microsoft.com
Date: 2024-09-21T05:59:51Z
Lists: pgsql-bugs

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. vacuumdb: Schema-qualify operator in catalog query's WHERE clause.

  2. reindexdb: Skip reindexing temporary tables and indexes.

  3. vacuumdb: Skip temporary tables in query to build list of relations

  4. Use catalog query to discover tables to process in vacuumdb


On 2024/09/21 8:07, Tom Lane wrote:
> Noah Misch <noah@leadboat.com> writes:
>>>>> That helps, but we'd probably want to do something more general about vacuumdb
>>>>> and schema USAGE permission.
> 
> I agree a more general fix is needed, but I think excluding temp
> tables as suggested is a good idea for performance, independently of
> permissions concerns.  vacuum_rel() will ignore requests to vacuum
> such tables, which is why we've not heard complaints before, but
> nonetheless we're wasting server round trips by issuing those
> requests.

+1

It looks like reindexdb has the same issue. It would be good to
update reindexdb to skip temp tables as well to fix this.

+	appendPQExpBufferStr(&catalog_query, " AND c.relpersistence <> 't'");

For the proposed patch, it seems better to use CppAsString2(RELPERSISTENCE_TEMP)
instead of 't'.

Regards,

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