mirror of
https://github.com/vlang/v.git
synced 2025-08-03 17:57:59 -04:00
47 lines
750 B
V
47 lines
750 B
V
// vtest retry: 3
|
|
import db.sqlite
|
|
|
|
struct Member {
|
|
id int @[primary]
|
|
children ?[]Child @[fkey: parent_id]
|
|
}
|
|
|
|
struct Child {
|
|
id int @[primary]
|
|
parent_id int
|
|
}
|
|
|
|
fn test_main() {
|
|
mut db := sqlite.connect(':memory:') or { panic(err) }
|
|
defer {
|
|
db.close() or { panic(err) }
|
|
}
|
|
sql db {
|
|
create table Member
|
|
} or { println(err) }
|
|
sql db {
|
|
create table Child
|
|
} or { println(err) }
|
|
new_member := Member{
|
|
id: 1
|
|
children: [Child{
|
|
id: 1
|
|
parent_id: 1
|
|
}, Child{
|
|
id: 2
|
|
parent_id: 1
|
|
}]
|
|
}
|
|
sql db {
|
|
insert new_member into Member
|
|
}!
|
|
|
|
rows := sql db {
|
|
select from Member
|
|
}!
|
|
|
|
assert rows[0].children?.len == 2
|
|
assert rows[0].children?[0].id == 1
|
|
assert rows[0].children?[1].id == 2
|
|
}
|