sqlite: confusing error message when select doesn't return for single row queries
alaviss opened this issue · comments
alaviss commented
Given an empty table created with this schema:
create table user(
id integer primary key,
username text unique
)
This query
let (id, username) =
query:
select user(id, username)
where id == 1
limit 1
Returns a confusing error:
queries.nim(890) test
ormin_sqlite.nim(20) dbError
Error: unhandled exception: not an error [DbError]
huaxk commented
If the query result set might be empty, you should try tryQuery:
let (id, username) =
tryQuery:
select user(id, username)
where id == 1
limit 1
The result:
id = 0
name = ""
alaviss commented
The result:
id = 0 name = ""
It'd be a bit more useful to signify if any result has been returned.
huaxk commented
Maybe returning Option(tuple[id: int, name: stirng]) is more reasonable.