From 2897b83d1848f1a9b191b125a6c614de9bba7efb Mon Sep 17 00:00:00 2001 From: Yasuhiro Matsumoto Date: Wed, 29 Jul 2026 11:10:45 +0900 Subject: [PATCH] Clamp fractional row estimates to at least 1 --- sqlite3_opt_vtable.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sqlite3_opt_vtable.go b/sqlite3_opt_vtable.go index 33de0dc..aded1b4 100644 --- a/sqlite3_opt_vtable.go +++ b/sqlite3_opt_vtable.go @@ -493,8 +493,9 @@ func goVBestIndex(pVTab unsafe.Pointer, icp unsafe.Pointer) *C.char { var rows int64 if res.EstimatedRows >= float64(math.MaxInt64) { rows = math.MaxInt64 - } else { - rows = int64(res.EstimatedRows) + } else if rows = int64(res.EstimatedRows); rows < 1 { + // A positive fractional estimate must not truncate to 0. + rows = 1 } info.estimatedRows = C.sqlite3_int64(rows) }