]> git.ipfire.org Git - thirdparty/postgresql.git/commit
Lookup the correct ordering for parallel GIN builds
authorTomas Vondra <tomas.vondra@postgresql.org>
Mon, 26 Jan 2026 17:52:16 +0000 (18:52 +0100)
committerTomas Vondra <tomas.vondra@postgresql.org>
Mon, 26 Jan 2026 19:05:17 +0000 (20:05 +0100)
commitdb14dcdec69d560013b326ca3dea45b83a07ccd6
tree1bbcd3eacb990e4641773112d2929df34d9eb706
parent4cbaf4dcd23846f5122356f88305a64329554d21
Lookup the correct ordering for parallel GIN builds

When building a tuplesort during parallel GIN builds, the function
incorrectly looked up the default B-Tree operator, not the function
associated with the GIN opclass (through GIN_COMPARE_PROC).

Fixed by using the same logic as initGinState(), and the other place
in parallel GIN builds.

This could cause two types of issues. First, a data type might not have
a B-Tree opclass, in which case the PrepareSortSupportFromOrderingOp()
fails with an ERROR. Second, a data type might have both B-Tree and GIN
opclasses, defining order/equality in different ways. This could lead to
logical corruption in the index.

Backpatch to 18, where parallel GIN builds were introduced.

Discussion: https://postgr.es/m/73a28b94-43d5-4f77-b26e-0d642f6de777@iki.fi
Reported-by: Heikki Linnakangas <hlinnaka@iki.fi>
Backpatch-through: 18
src/backend/utils/sort/tuplesortvariants.c