Attached test case demonstrates an issue with nbtree's mark/restore code. All supported versions are affected.
My suspicion is that bugfix commit 70bc5833 missed some subtlety around what we need to do to make sure that the array keys stay "in sync" with the scan. I'll have time to debug the problem some more tomorrow. My ScalarArrayOp project [1] seems unaffected by the bug, so I don't expect it'll take long to get to the bottom of this. This is probably due to its general design, and not any specific detail. The patch makes the relationship between the current scan position and the current array keys a great deal looser. [1] https://commitfest.postgresql.org/44/4455/ -- Peter Geoghegan
nbtree_array_mark_restore_bug.sql
Description: Binary data