@@ -31,20 +31,20 @@ pub fn (db DB) select(config orm.SelectConfig, data orm.QueryData, where orm.Que
31
31
// sql stmt
32
32
33
33
// insert is used internally by V's ORM for processing `INSERT ` queries
34
- pub fn (db DB) insert (table string , data orm.QueryData) ! {
34
+ pub fn (db DB) insert (table orm.Table , data orm.QueryData) ! {
35
35
query , converted_data := orm.orm_stmt_gen (.default , table, '"' , .insert, true , '$' ,
36
36
1 , data, orm.QueryData{})
37
37
pg_stmt_worker (db, query, converted_data, orm.QueryData{})!
38
38
}
39
39
40
40
// update is used internally by V's ORM for processing `UPDATE ` queries
41
- pub fn (db DB) update (table string , data orm.QueryData, where orm.QueryData) ! {
41
+ pub fn (db DB) update (table orm.Table , data orm.QueryData, where orm.QueryData) ! {
42
42
query , _ := orm.orm_stmt_gen (.default , table, '"' , .update, true , '$' , 1 , data, where)
43
43
pg_stmt_worker (db, query, data, where)!
44
44
}
45
45
46
46
// delete is used internally by V's ORM for processing `DELETE ` queries
47
- pub fn (db DB) delete (table string , where orm.QueryData) ! {
47
+ pub fn (db DB) delete (table orm.Table , where orm.QueryData) ! {
48
48
query , _ := orm.orm_stmt_gen (.default , table, '"' , .delete, true , '$' , 1 , orm.QueryData{},
49
49
where)
50
50
pg_stmt_worker (db, query, orm.QueryData{}, where)!
@@ -60,14 +60,21 @@ pub fn (db DB) last_id() int {
60
60
// DDL (table creation/destroying etc)
61
61
62
62
// create is used internally by V's ORM for processing table creation queries (DDL)
63
- pub fn (db DB) create (table string , fields []orm.TableField) ! {
64
- query := orm.orm_table_gen (table, '"' , true , 0 , fields, pg_type_from_v, false ) or { return err }
65
- pg_stmt_worker (db, query, orm.QueryData{}, orm.QueryData{})!
63
+ pub fn (db DB) create (table orm.Table, fields []orm.TableField) ! {
64
+ query := orm.orm_table_gen (.pg, table, '"' , true , 0 , fields, pg_type_from_v, false ) or {
65
+ return err
66
+ }
67
+ stmts := query.split (';' )
68
+ for stmt in stmts {
69
+ if stmt != '' {
70
+ pg_stmt_worker (db, stmt + ';' , orm.QueryData{}, orm.QueryData{})!
71
+ }
72
+ }
66
73
}
67
74
68
75
// drop is used internally by V's ORM for processing table destroying queries (DDL)
69
- pub fn (db DB) drop (table string ) ! {
70
- query := 'DROP TABLE "${table} ";'
76
+ pub fn (db DB) drop (table orm.Table ) ! {
77
+ query := 'DROP TABLE "${table.name } ";'
71
78
pg_stmt_worker (db, query, orm.QueryData{}, orm.QueryData{})!
72
79
}
73
80
0 commit comments