From 702387a3a835ae28bb4dc895323843bad08badeb Mon Sep 17 00:00:00 2001
From: Peter Geoghegan <pg@bowt.ie>
Date: Wed, 30 Apr 2025 15:52:01 -0400
Subject: [PATCH v1 1/2] Avoid treating nonrequired nbtree keys as required.

Oversight in commit 8a510275.

Author: Peter Geoghegan <pg@bowt.ie>
Reported-By: Mark Dilger <mark.dilger@enterprisedb.com>
Discussion: https://postgr.es/m/CAHgHdKsn2W=gPBmj7p6MjQFvxB+zZDBkwTSg0o3f5Hh8rkRrsA@mail.gmail.com
---
 src/backend/access/nbtree/nbtutils.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/src/backend/access/nbtree/nbtutils.c b/src/backend/access/nbtree/nbtutils.c
index cb6b74912..2fbbbc31f 100644
--- a/src/backend/access/nbtree/nbtutils.c
+++ b/src/backend/access/nbtree/nbtutils.c
@@ -1826,7 +1826,7 @@ _bt_advance_array_keys(IndexScanDesc scan, BTReadPageState *pstate,
 
 		/* Recheck _bt_check_compare on behalf of caller */
 		if (_bt_check_compare(scan, dir, tuple, tupnatts, tupdesc, false,
-							  false, &continuescan,
+							  !sktrig_required, &continuescan,
 							  &nsktrig) &&
 			!so->scanBehind)
 		{
@@ -2802,8 +2802,6 @@ _bt_check_compare(IndexScanDesc scan, ScanDirection dir,
 {
 	BTScanOpaque so = (BTScanOpaque) scan->opaque;
 
-	Assert(!forcenonrequired || advancenonrequired);
-
 	*continuescan = true;		/* default assumption */
 
 	for (; *ikey < so->numberOfKeys; (*ikey)++)
-- 
2.49.0

