Fix: Refactor sql_select to reliably handle result counts and prevent return-type mismatch
This commit is contained in:
@@ -290,14 +290,20 @@ def sql_select(
|
|||||||
if not result:
|
if not result:
|
||||||
return [] if as_list else None
|
return [] if as_list else None
|
||||||
|
|
||||||
if result.rowcount == 1:
|
# Fetch all rows first to determine actual count reliably
|
||||||
record = dict(result.first()) if as_dict else result.first()
|
rows = result.all()
|
||||||
return [record] if as_list else record
|
count = len(rows)
|
||||||
elif result.rowcount > 1:
|
|
||||||
records = [dict(r) for r in result.fetchall()] if as_dict else result.fetchall()
|
if count == 0:
|
||||||
return records
|
|
||||||
else:
|
|
||||||
return [] if as_list else None
|
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() ###
|
# ### END ### Core Help CRUD ### sql_select() ###
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user