nim-ladybug/tests/values/t_raise_error_on_invalid_conversion.nim
mahlon b0cdb4cfa2 Use a template for type conversion checks.
FossilOrigin-Name: 2ea0a91c86c6e756460ba4c2345b9f56de03ff6ddd2c5a111a0b51a7d3739786
2025-04-26 21:12:45 +00:00

33 lines
717 B
Nim

# vim: set et sta sw=4 ts=4 :
import
std/re
import kuzu
let db = newKuzuDatabase()
let conn = db.connect
var q = conn.query( "CREATE NODE TABLE Doop ( id SERIAL, thing STRING, PRIMARY KEY(id) )" )
q = conn.query( "CREATE (d:Doop {thing: 'okay!'})" )
q = conn.query( "MATCH (d:Doop) RETURN d" )
var tup = q.getNext
var val = tup[0]
assert val.kind == KUZU_NODE
try:
discard val.toInt32
except KuzuTypeError as err:
assert err.msg.contains( re"""Mismatched types: KUZU_NODE != {KUZU_INT32}""" )
q = conn.query( "RETURN 1" )
val = q.getNext[0]
try:
discard val.toStruct
except KuzuTypeError as err:
assert err.msg.contains( re"""Mismatched types: KUZU_INT.* != {KUZU_NODE, KUZU_REL,.*}""" )