ormin
ormin copied to clipboard
sqlite: confusing error message when select doesn't return for single row queries
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]
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 = ""
The result:
id = 0 name = ""
It'd be a bit more useful to signify if any result has been returned.
Maybe returning Option(tuple[id: int, name: stirng]) is more reasonable.