Hello, On 2026-Jan-28, Mihail Nikalayeu wrote:
> > Actually, about this fragment ... if we track these ancestors for all > > indexes, not just the ones that we consider as arbiters, don't we risk > > doing something stupid when a completely unrelated index is being > > reindexed? Namely, also consider that unrelated index as arbiter. > > Yes, such a thing may happen. It will not cause any error, because such an > index will be used as artiber only if another compatible index in that same > relation is present. And additional_arbiters will be incremented. > Probably you think linitial() is "root", but it is an immediate parent. Okay, this sounds good. Yes, I was thinking the linitial() was the root, but a quick visit to get_partition_ancestors() clearly shows that I was wrong. > I am not sure I understood you correctly, but I added a comment about it. > And about the opposite race + assert (not sure we need to keep it). Interesting. Actually, I think you're wrong on this, because an OID wraparound could happen such that the old index has a high-numbered OID, and the reindexed one has a lower one. (This is not so preposterous as it sounds, because the old index could have been created months ago, and the counter recently wrapped around.) I don't know if we can find a way to order the index list to prevent this problem. -- Álvaro Herrera 48°01'N 7°57'E — https://www.EnterpriseDB.com/ "Cómo ponemos nuestros dedos en la arcilla del otro. Eso es la amistad; jugar al alfarero y ver qué formas se pueden sacar del otro" (C. Halloway en La Feria de las Tinieblas, R. Bradbury)
