Re: [Proposal] vacuumdb --schema only

Gilles Darold <gilles@migops.com>

From: Gilles Darold <gilles@migops.com>
To: Nathan Bossart <nathandbossart@gmail.com>
Cc: Justin Pryzby <pryzby@telsasoft.com>, Robert Treat <rob@xzilla.net>, pgsql-hackers@postgresql.org
Date: 2022-04-14T20:27:46Z
Lists: pgsql-hackers

Attachments

Le 11/04/2022 à 20:37, Nathan Bossart a écrit :
> On Fri, Apr 08, 2022 at 05:16:06PM +0200, Gilles Darold wrote:
>> Attached v7 of the patch that should pass cfbot.
> Thanks for the new patch!  Unfortunately, it looks like some recent changes
> have broken it again.
>
>> +enum trivalue schema_is_exclude = TRI_DEFAULT;
>> +
>> +/*
>> + * The kind of object filter to use. '0': none, 'n': schema, 't': table
>> + * these values correspond to the -n | -N and -t command line options.
>> + */
>> +char objfilter = '0';
> I think these should be combined into a single enum for simplicity and
> readability (e.g., OBJFILTER_NONE, OBJFILTER_INCLUDE_SCHEMA,
> OBJFILTER_EXCLUDE_SCHEMA, OBJFILTER_TABLE).
>
>>  	 * Instead, let the server decide whether a given relation can be
>>  	 * processed in which case the user will know about it.
>>  	 */
>> -	if (!tables_listed)
>> +	if (!objects_listed || objfilter == 'n')
>>  	{
>>  		appendPQExpBufferStr(&catalog_query, " WHERE c.relkind OPERATOR(pg_catalog.=) ANY (array["
>>  							 CppAsString2(RELKIND_RELATION) ", "
> I think this deserveѕ a comment.
>

Attached v8 of the patch that tries to address the remarks above, fixes
patch apply failure to master and replace calls to pg_log_error+exit
with pg_fatal.


.Thanks.

-- 
Gilles Darold

Commits

  1. Add --schema and --exclude-schema options to vacuumdb.