mirror of
https://github.com/vlang/v.git
synced 2025-09-08 14:51:53 -04:00
This commit is contained in:
parent
4c14e8e8de
commit
dd063faf65
@ -1,8 +1,14 @@
|
|||||||
import db.sqlite
|
import db.sqlite
|
||||||
|
|
||||||
|
struct Child {
|
||||||
|
id int @[primary; serial]
|
||||||
|
parent_id int
|
||||||
|
}
|
||||||
|
|
||||||
struct PlainNoArg {
|
struct PlainNoArg {
|
||||||
id int @[primary; serial; sql: 'custom_id']
|
id int @[primary; serial; sql: 'custom_id']
|
||||||
name string
|
name string
|
||||||
|
children []Child @[fkey: 'parent_id']
|
||||||
}
|
}
|
||||||
|
|
||||||
fn test_plain_no_arg() {
|
fn test_plain_no_arg() {
|
||||||
@ -33,6 +39,26 @@ fn test_plain_no_arg() {
|
|||||||
assert rows[0].name == 'second'
|
assert rows[0].name == 'second'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn test_plain_no_arg_with_children() {
|
||||||
|
mut db := sqlite.connect(':memory:')!
|
||||||
|
|
||||||
|
parent := PlainNoArg{
|
||||||
|
children: [Child{}, Child{}]
|
||||||
|
}
|
||||||
|
|
||||||
|
sql db {
|
||||||
|
create table Child
|
||||||
|
create table PlainNoArg
|
||||||
|
insert parent into PlainNoArg
|
||||||
|
}!
|
||||||
|
|
||||||
|
parents := sql db {
|
||||||
|
select from PlainNoArg limit 1
|
||||||
|
}!
|
||||||
|
|
||||||
|
assert parent.children.len == parents[0].children.len
|
||||||
|
}
|
||||||
|
|
||||||
struct SqlSerial {
|
struct SqlSerial {
|
||||||
id int @[primary; sql: serial]
|
id int @[primary; sql: serial]
|
||||||
name string
|
name string
|
||||||
|
@ -331,8 +331,8 @@ fn (mut g Gen) write_orm_insert_with_last_ids(node ast.SqlStmtLine, connection_v
|
|||||||
|
|
||||||
primary_field := g.get_orm_struct_primary_field(fields) or { ast.StructField{} }
|
primary_field := g.get_orm_struct_primary_field(fields) or { ast.StructField{} }
|
||||||
|
|
||||||
is_serial := primary_field.attrs.contains_arg('sql', 'serial')
|
is_serial := (primary_field.attrs.contains_arg('sql', 'serial')
|
||||||
&& primary_field.typ == ast.int_type
|
|| primary_field.attrs.contains('serial')) && primary_field.typ == ast.int_type
|
||||||
|
|
||||||
mut inserting_object_type := ast.void_type
|
mut inserting_object_type := ast.void_type
|
||||||
mut member_access_type := '.'
|
mut member_access_type := '.'
|
||||||
|
Loading…
x
Reference in New Issue
Block a user