Re: Avoid overhead open-close indexes (catalog updates)

Ranier Vilela <ranier.vf@gmail.com>

From: Ranier Vilela <ranier.vf@gmail.com>
To: Michael Paquier <michael@paquier.xyz>
Cc: Kyotaro Horiguchi <horikyota.ntt@gmail.com>, pgsql-hackers@postgresql.org
Date: 2022-11-16T11:33:58Z
Lists: pgsql-hackers
Em qua., 16 de nov. de 2022 às 04:23, Michael Paquier <michael@paquier.xyz>
escreveu:

> On Wed, Nov 16, 2022 at 06:58:01AM +0900, Michael Paquier wrote:
> > This one has been left out on purpose.  I was tempting to use
> > WithInfo() with a CatalogIndexState opened optionally but I got the
> > impression that it makes the code a bit harder to follow and
> > AddRoleMems() is already complex on its own.  Most DDL patterns
> > working on role would involve one role.  More roles could be added of
> > course in one shot, but the extra logic complexity did not look that
> > appealing to me especially as some role updates are skipped.
>
> I have worked more on that today, and applied all that after splitting
> the whole in three commits in total as different areas were touched.
> It looks like we are good for this thread, then.
>
Thanks Michael.


>
> I have spotted more optimizations possible, particularly for operator
> classes, but that could happen later.
>
Good to know.

regards,
Ranier Vilela

Commits

  1. Use multi-inserts for pg_ts_config_map

  2. Use multi-inserts for pg_enum

  3. Avoid some overhead with open and close of catalog indexes

  4. Preserve index data in pg_statistic across REINDEX CONCURRENTLY