Re: Partitioned index can be not dumped
Zhihong Yu <zyu@yugabyte.com>
From: Zhihong Yu <zyu@yugabyte.com>
To: Álvaro Herrera <alvherre@alvh.no-ip.org>
Cc: Alexander Pyhalov <a.pyhalov@postgrespro.ru>,
Pgsql Hackers <pgsql-hackers@postgresql.org>
Date: 2021-06-30T21:56:17Z
Lists: pgsql-hackers
On Wed, Jun 30, 2021 at 2:32 PM Álvaro Herrera <alvherre@alvh.no-ip.org>
wrote:
> On 2021-Jun-30, Zhihong Yu wrote:
>
> > Hi,
> > nit:
> > - if (hasindex)
> > + if (nindexes > 0)
> >
> > It seems hasindex is no longer needed since nindexes is checked.
>
> It's still used to call vac_update_relstats(). We want nindexes to be 0
> for partitioned tables, but still pass true when there are indexes.
>
Hi,
In that case, I wonder whether nindexes can be negated following the call
to vac_open_indexes().
vac_open_indexes(onerel, AccessShareLock, &nindexes, &Irel);
+ nindexes = -nindexes;
That way, hasindex can be dropped.
vac_update_relstats() call would become:
vac_update_relstats(onerel, -1, totalrows,
- 0, false, InvalidTransactionId,
+ 0, nindexes != 0, InvalidTransactionId,
My thinking is that without hasindex, the code is easier to maintain.
Thanks
> Please don't forget to trim the text of the email you're replying to.
>
> --
> Álvaro Herrera Valdivia, Chile
> https://www.EnterpriseDB.com/
>
Commits
-
Don't reset relhasindex for partitioned tables on ANALYZE
- d700518d744e 15.0 landed
- be280cdad298 14.0 landed
-
Set pg_class.reltuples for partitioned tables
- 0e69f705cc1a 14.0 cited
-
autovacuum: handle analyze for partitioned tables
- 0827e8af70f4 14.0 cited