From 8a22ac324ccae0347a354973217a275644edde5f Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Mon, 19 Jan 2026 18:17:41 -0500 Subject: [PATCH] Fix: Refactor sql_select to reliably handle result counts and prevent return-type mismatch --- app/lib_sql_crud.py | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/app/lib_sql_crud.py b/app/lib_sql_crud.py index 19ddb2c..578a2ec 100644 --- a/app/lib_sql_crud.py +++ b/app/lib_sql_crud.py @@ -290,14 +290,20 @@ def sql_select( if not result: return [] if as_list else None - if result.rowcount == 1: - record = dict(result.first()) if as_dict else result.first() - return [record] if as_list else record - elif result.rowcount > 1: - records = [dict(r) for r in result.fetchall()] if as_dict else result.fetchall() - return records - else: + # Fetch all rows first to determine actual count reliably + rows = result.all() + count = len(rows) + + if count == 0: return [] if as_list else None + + if count == 1: + record = dict(rows[0]) if as_dict else rows[0] + return [record] if as_list else record + + # count > 1 + records = [dict(r) for r in rows] if as_dict else rows + return records # ### END ### Core Help CRUD ### sql_select() ###