Multiple changes.

- Minor README updates.
- Create LICENSE and History files.
- Use 'func' instead of 'proc' where applicable.
- Add some destructor debug.
- Rename primary exceptions to 'X-error'.
- Bind to proper object types in prepared statement parameters.
- Retain the found 'type' in the KuzuValue object.

FossilOrigin-Name: db59c0b901b1715170e0d269fc2bf00477ac48af4d10a747eb5a749adbf6268e
This commit is contained in:
mahlon 2025-03-29 23:17:10 +00:00
parent 421cb87e57
commit db85c36d70
22 changed files with 284 additions and 162 deletions

View file

@ -0,0 +1,31 @@
# 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, created DATE, PRIMARY KEY(id) )" )
assert typeOf( q ) is KuzuQueryResult
var p = conn.prepare( "CREATE (d:Doop {created: $created})" )
assert typeOf( p ) is KuzuPreparedStatement
# Typecast binding failure
#
try:
discard p.execute( (created: "1111-1111") )
except KuzuQueryError as err:
assert err.msg.contains( re"""Expression \$created has data type STRING but expected DATE.""" )
# Invalid value for typecast
#
p = conn.prepare( "CREATE (d:Doop {created: DATE($created)})" )
try:
discard p.execute( (created: "1111-1111") )
except KuzuQueryError as err:
assert err.msg.contains( re"""Given: "1111-1111". Expected format: \(YYYY-MM-DD\)""" )