Fix: Refactor sql_select to reliably handle result counts and prevent return-type mismatch

This commit is contained in:
Scott Idem
2026-01-19 18:17:41 -05:00
parent 817bb80f87
commit 8a22ac324c

View File

@@ -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() ###