postgres-github.git / summary / log / commit / refs

commit    298bdd379552148f6043b4595374a7a6fbdd13c3
Author:   Alexander Korotkov <akorotkov@postgresql.org>
Date:     Wed Jun 03 08:33:35 2026 +0000

    pg_dump: scope indAttNames per index in getIndexes()
    
    getIndexes() declared indAttNames and nindAttNames in the outer
    per-table loop, so the names collected for an index on expressions
    were carried over to the next plain index in the same table.
    
    This is an internal inconsistency rather than a user-facing bug.
    dumpRelationStats_dumper() only walks indexes that have pg_statistic
    rows, and ANALYZE only creates those for indexes with expressions,
    so the second index in the affected pair is not visited and the stale
    array is never consulted.
    
    Fix by moving the two variables into the inner per-index loop so each
    iteration starts with a clean slate.
    
    Author: Maksim Melnikov <m.melnikov@postgrespro.ru>
    Reviewed-by: Alexander Korotkov <aekorotkov@gmail.com>
    Discussion: https://postgr.es/m/be5fc489-587e-421f-bbb8-adb43cfd50f4@postgrespro.ru
    Backpatch-through: 17