Skip to content

Commit

Permalink
pg: hande C calls, move to .c.v files (#19739)
Browse files Browse the repository at this point in the history
  • Loading branch information
JalonSolov committed Nov 3, 2023
1 parent be89cbf commit 24befa0
Show file tree
Hide file tree
Showing 13 changed files with 18 additions and 17 deletions.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
16 changes: 0 additions & 16 deletions vlib/db/pg/orm.v
Original file line number Diff line number Diff line change
Expand Up @@ -73,22 +73,6 @@ pub fn (db DB) drop(table string) ! {

// utils

fn pg_stmt_worker(db DB, query string, data orm.QueryData, where orm.QueryData) ![]Row {
mut param_types := []u32{}
mut param_vals := []&char{}
mut param_lens := []int{}
mut param_formats := []int{}

pg_stmt_binder(mut param_types, mut param_vals, mut param_lens, mut param_formats,
data)
pg_stmt_binder(mut param_types, mut param_vals, mut param_lens, mut param_formats,
where)

res := C.PQexecParams(db.conn, &char(query.str), param_vals.len, param_types.data,
param_vals.data, param_lens.data, param_formats.data, 0) // here, the last 0 means require text results, 1 - binary results
return db.handle_error_or_result(res, 'orm_stmt_worker')
}

fn pg_stmt_binder(mut types []u32, mut vals []&char, mut lens []int, mut formats []int, d orm.QueryData) {
for data in d.data {
pg_stmt_match(mut types, mut vals, mut lens, mut formats, data)
Expand Down
17 changes: 17 additions & 0 deletions vlib/db/pg/pg.v → vlib/db/pg/pg.c.v
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
module pg

import io
import orm

$if $pkgconfig('libpq') {
#pkgconfig --cflags --libs libpq
Expand Down Expand Up @@ -363,3 +364,19 @@ pub fn (db DB) copy_expert(query string, mut file io.ReaderWriter) !int {

return 0
}

fn pg_stmt_worker(db DB, query string, data orm.QueryData, where orm.QueryData) ![]Row {
mut param_types := []u32{}
mut param_vals := []&char{}
mut param_lens := []int{}
mut param_formats := []int{}

pg_stmt_binder(mut param_types, mut param_vals, mut param_lens, mut param_formats,
data)
pg_stmt_binder(mut param_types, mut param_vals, mut param_lens, mut param_formats,
where)

res := C.PQexecParams(db.conn, &char(query.str), param_vals.len, param_types.data,
param_vals.data, param_lens.data, param_formats.data, 0) // here, the last 0 means require text results, 1 - binary results
return db.handle_error_or_result(res, 'orm_stmt_worker')
}
File renamed without changes.
2 changes: 1 addition & 1 deletion vlib/db/sqlite/sqlite_vfs_lowlevel_test.v
Original file line number Diff line number Diff line change
Expand Up @@ -214,7 +214,7 @@ fn example_vfsfile_read(file &sqlite.Sqlite3_file, output voidptr, amount int, o
vfsfile.vfs_state.log << 'read file=${vfsfile.name}'

unsafe {
C.memset(output, 0, amount)
vmemset(output, 0, amount)
}

return sqlite.sqlite_ioerr_short_read
Expand Down
File renamed without changes.
File renamed without changes.

0 comments on commit 24befa0

Please sign in to comment.