Araq / ormin

Ormin -- An ORM for Nim.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

sqlite: confusing error message when select doesn't return for single row queries

alaviss opened this issue · comments

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]
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 = ""

The result:

id = 0
name = ""

It'd be a bit more useful to signify if any result has been returned.

commented

Maybe returning Option(tuple[id: int, name: stirng]) is more reasonable.