]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Assert index_attnos[0] == 1 in ri_FastPathFlushArray()
authorAmit Langote <amitlan@postgresql.org>
Fri, 10 Apr 2026 06:24:38 +0000 (15:24 +0900)
committerAmit Langote <amitlan@postgresql.org>
Fri, 10 Apr 2026 06:24:38 +0000 (15:24 +0900)
ri_FastPathFlushArray() handles single-column FKs only, so
index_attnos[0] is always 1.  Add an Assert to make this invariant
explicit, as a followup to 980c1a85d819.

Suggested-by: Junwang Zhao <zhjwpku@gmail.com> (offlist)
Discussion: https://www.postgresql.org/message-id/CADfhSr-pCkbDxmiOVYSAGE5QGjsQ48KKH_W424SPk%2BpwzKZFaQ%40mail.gmail.com

src/backend/utils/adt/ri_triggers.c

index 09a5ab24e5666fcd951ea45ead8791f8d747d23c..e060280fcd445f47b631a7435e48a446ba66ea2d 100644 (file)
@@ -3097,10 +3097,10 @@ ri_FastPathFlushArray(RI_FastPathEntry *fpentry, TupleTableSlot *fk_slot,
         *
         * PK indexes are always btree, which supports SK_SEARCHARRAY.
         *
-        * Reference index_attnos[0] for attribute number and collation since this
-        * is a single-column fast path.
+        * This path handles single-column FKs only, so index_attnos[0] == 1.
         */
        Assert(idx_rel->rd_indam->amsearcharray);
+       Assert(fpmeta->index_attnos[0] == 1);
        ScanKeyEntryInitialize(&skey[0],
                                                   SK_SEARCHARRAY,
                                                   fpmeta->index_attnos[0],