Rename the project to nim-ladybug, after kuzu's sudden October abandoning. Picked up by a new party under the new name, lets see where this goes!

No new functionality, just rename and docs updates.
This commit is contained in:
Mahlon E. Smith 2025-11-04 09:06:11 -08:00
parent ee0e8a72c0
commit 76718fa49f
Signed by: mahlon
SSH key fingerprint: SHA256:dP84sRGKZRpOOiPD/+GuOq+SHSxEw9qi5BWLQobaHm0
61 changed files with 3030 additions and 2998 deletions

View file

@ -1,8 +1,8 @@
# vim: set et sta sw=4 ts=4 :
import kuzu
import lbug
let db = newKuzuDatabase()
let db = newLbugDatabase()
let conn = db.connect
var q = conn.query """

View file

@ -4,19 +4,19 @@ discard """
output: "d.thing\nCamel\nLampshade\nDelicious Cake\n"
"""
import kuzu
import lbug
let db = newKuzuDatabase()
let db = newLbugDatabase()
let conn = db.connect
var q = conn.query( "CREATE NODE TABLE Doop ( id SERIAL, thing STRING, PRIMARY KEY(id) )" )
var p = conn.prepare( "CREATE (d:Doop {thing: $thing})" )
assert typeOf( p ) is KuzuPreparedStatement
assert typeOf( p ) is LbugPreparedStatement
for thing in @[ "Camel", "Lampshade", "Delicious Cake" ]:
q = p.execute( (thing: thing) )
assert typeOf( q ) is KuzuQueryResult
assert typeOf( q ) is LbugQueryResult
# Fixed post v0.8.2:
# https://github.com/kuzudb/kuzu/issues/5102

View file

@ -4,9 +4,9 @@ discard """
output: "0|-222222|128|True|Stuff!|3.344903|239.299923|a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11|2025-03-29"
"""
import kuzu
import lbug
let db = newKuzuDatabase()
let db = newLbugDatabase()
let conn = db.connect
var q = conn.query( """CREATE NODE TABLE Doop (
@ -21,7 +21,7 @@ var q = conn.query( """CREATE NODE TABLE Doop (
date DATE,
PRIMARY KEY(id)
)""" )
assert typeOf( q ) is KuzuQueryResult
assert typeOf( q ) is LbugQueryResult
var stmt = conn.prepare( """CREATE (d:Doop {
@ -34,7 +34,7 @@ var stmt = conn.prepare( """CREATE (d:Doop {
uuid: UUID($uuid),
date: DATE($date)
})""" )
assert typeOf( stmt ) is KuzuPreparedStatement
assert typeOf( stmt ) is LbugPreparedStatement
q = stmt.execute((
@ -47,7 +47,7 @@ q = stmt.execute((
uuid: "A0EEBC99-9C0B-4EF8-BB6D-6BB9BD380A11",
date: "2025-03-29"
))
assert typeOf( q ) is KuzuQueryResult
assert typeOf( q ) is LbugQueryResult
q = conn.query( "MATCH (d:Doop) RETURN d.*" )

View file

@ -4,14 +4,14 @@ discard """
output: "a\nb\nc\nd\ne\nf\n"
"""
import kuzu
import lbug
let db = newKuzuDatabase()
let db = newLbugDatabase()
let conn = db.connect
var q = conn.query( "RETURN 'hi'" )
assert typeOf( q ) is KuzuQueryResult
assert typeOf( q ) is LbugQueryResult
assert q.sets.len == 0
q = conn.query """
@ -23,7 +23,7 @@ q = conn.query """
RETURN "f";
"""
assert typeOf( q ) is KuzuQueryResult
assert typeOf( q ) is LbugQueryResult
assert q.sets.len == 5
echo q.getNext

View file

@ -1,16 +1,16 @@
# vim: set et sta sw=4 ts=4 :
import kuzu
import lbug
let db = newKuzuDatabase()
let db = newLbugDatabase()
let conn = db.connect
var q = conn.query( "CREATE NODE TABLE Doop ( id SERIAL, thing STRING, PRIMARY KEY(id) )" )
assert typeOf( q ) is KuzuQueryResult
assert typeOf( q ) is LbugQueryResult
for thing in @[ "Camel", "Lampshade", "Delicious Cake" ]:
q = conn.query( "CREATE (d:Doop {thing: '" & thing & "'})" )
assert typeOf( q ) is KuzuQueryResult
assert typeOf( q ) is LbugQueryResult
q = conn.query( "MATCH (d:Doop) RETURN d.thing" )
assert q.num_columns == 1

View file

@ -4,9 +4,9 @@ discard """
output: "Camel\nLampshade\nDelicious Cake\n"
"""
import kuzu
import lbug
let db = newKuzuDatabase()
let db = newLbugDatabase()
let conn = db.connect
var q = conn.query( "CREATE NODE TABLE Doop ( id SERIAL, thing STRING, PRIMARY KEY(id) )" )

View file

@ -4,9 +4,9 @@ discard """
output: "Camel\nLampshade\nCamel\nLampshade\n"
"""
import kuzu
import lbug
let db = newKuzuDatabase()
let db = newLbugDatabase()
let conn = db.connect
var q = conn.query( "CREATE NODE TABLE Doop ( id SERIAL, thing STRING, PRIMARY KEY(id) )" )

View file

@ -4,9 +4,9 @@ discard """
output: "d.thing\nokay!\n\n"
"""
import kuzu
import lbug
let db = newKuzuDatabase()
let db = newLbugDatabase()
let conn = db.connect
var q = conn.query( "CREATE NODE TABLE Doop ( id SERIAL, thing STRING, PRIMARY KEY(id) )" )

View file

@ -1,12 +1,12 @@
# vim: set et sta sw=4 ts=4 :
import kuzu
import lbug
let db = newKuzuDatabase()
let db = newLbugDatabase()
let conn = db.connect
var q = conn.query( "CREATE NODE TABLE Doop ( id SERIAL, thing STRING, PRIMARY KEY(id) )" )
assert typeOf( q ) is KuzuQueryResult
assert typeOf( q ) is LbugQueryResult
q = conn.query( "MATCH (d:Doop) RETURN d.thing" )
assert q.num_tuples == 0

View file

@ -1,12 +1,12 @@
# vim: set et sta sw=4 ts=4 :
import kuzu
import lbug
let db = newKuzuDatabase()
let db = newLbugDatabase()
let conn = db.connect
var q = conn.query( "CREATE NODE TABLE Doop ( id SERIAL, thing STRING, PRIMARY KEY(id) )" )
assert typeOf( q ) is KuzuQueryResult
assert typeOf( q ) is LbugQueryResult
q = conn.query( "CREATE (d:Doop {thing: 'okay!'})" )
q = conn.query( "MATCH (d:Doop) RETURN d.id AS IDENTIFIER, d.thing AS THING" )

View file

@ -1,17 +1,17 @@
# vim: set et sta sw=4 ts=4 :
import kuzu
import lbug
let db = newKuzuDatabase()
let db = newLbugDatabase()
let conn = db.connect
var q = conn.query( "CREATE NODE TABLE Doop ( id SERIAL, thing STRING, PRIMARY KEY(id) )" )
assert typeOf( q ) is KuzuQueryResult
assert typeOf( q ) is LbugQueryResult
q = conn.query( "CREATE (d:Doop {thing: 'okay!'})" )
q = conn.query( "MATCH (d:Doop) RETURN d.id AS IDENTIFIER, d.thing AS THING" )
assert q.column_types.len == 2
assert $q.column_types[0] == "KUZU_SERIAL"
assert $q.column_types[1] == "KUZU_STRING"
assert $q.column_types[0] == "LBUG_SERIAL"
assert $q.column_types[1] == "LBUG_STRING"

View file

@ -2,13 +2,13 @@
import
std/re
import kuzu
import lbug
let db = newKuzuDatabase()
let db = newLbugDatabase()
let conn = db.connect
try:
discard conn.query( "NOPE NOPE NOPE" )
except KuzuQueryError as err:
except LbugQueryError as err:
assert err.msg.contains( re"""Parser exception: extraneous input 'NOPE'""" )

View file

@ -2,30 +2,30 @@
import
std/re
import kuzu
import lbug
let db = newKuzuDatabase()
let db = newLbugDatabase()
let conn = db.connect
var q = conn.query( "CREATE NODE TABLE Doop ( id SERIAL, created DATE, PRIMARY KEY(id) )" )
assert typeOf( q ) is KuzuQueryResult
assert typeOf( q ) is LbugQueryResult
var p = conn.prepare( "CREATE (d:Doop {created: $created})" )
assert typeOf( p ) is KuzuPreparedStatement
assert typeOf( p ) is LbugPreparedStatement
# 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.""" )
except LbugQueryError as err:
assert err.msg.contains( re"""Conversion exception: Error occurred during parsing 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:
except LbugQueryError as err:
assert err.msg.contains( re"""Given: "1111-1111". Expected format: \(YYYY-MM-DD\)""" )

View file

@ -2,19 +2,19 @@
import
std/re
import kuzu
import ladybug
let db = newKuzuDatabase()
let db = newLbugDatabase()
let conn = db.connect
var q = conn.query( "CREATE NODE TABLE Doop ( id SERIAL, thing STRING, PRIMARY KEY(id) )" )
var p = conn.prepare( "CREATE (d:Doop {thing: $thing})" )
assert typeOf( p ) is KuzuPreparedStatement
assert typeOf( p ) is LbugPreparedStatement
try:
discard p.execute( (nope: "undefined var in statement!") )
except KuzuQueryError as err:
discard p.execute( (nope: "undefined var in statement!", thing: "yep") )
except LbugQueryError as err:
assert err.msg.contains( re"""Parameter nope not found.""" )

View file

@ -2,19 +2,19 @@
import
std/re
import kuzu
import lbug
let db = newKuzuDatabase()
let db = newLbugDatabase()
let conn = db.connect
var q = conn.query( "CREATE NODE TABLE Doop ( id SERIAL, thing STRING, PRIMARY KEY(id) )" )
var p = conn.prepare( "CREAET (d:Doop {thing: $thing})" )
assert typeOf( p ) is KuzuPreparedStatement
assert typeOf( p ) is LbugPreparedStatement
try:
discard p.execute
except KuzuQueryError as err:
except LbugQueryError as err:
assert err.msg.contains( re"""Parser exception: extraneous input 'CREAET'""" )