From 662d78b9a5bebdb98dc178ebd1f8e3384793c104 Mon Sep 17 00:00:00 2001 From: Jari Vetoniemi Date: Sun, 17 Mar 2019 15:30:43 +0200 Subject: Initial commit --- src/db.h | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 src/db.h (limited to 'src/db.h') diff --git a/src/db.h b/src/db.h new file mode 100644 index 0000000..7f01cbf --- /dev/null +++ b/src/db.h @@ -0,0 +1,49 @@ +#pragma once + +#include +#include + +struct db_query { + void *handle; +}; + +struct db { + void *handle; + struct db_query single; +}; + +struct db_query_arg { + union { + int32_t i32; + double f64; + struct { const void *data; int sz; } blob; // used for text as well + } u; + enum { + DB_ARG_NULL, + DB_ARG_I32, + DB_ARG_F64, + DB_ARG_BLOB, + DB_ARG_UTF8, + } type; +}; + +void +db_init(struct db *db, const char *target); + +struct db_query +db_query_begin(struct db *db, const char *sql, const struct db_query_arg args[], const int num_args); + +int +db_query_fetch(struct db_query *query, struct db_query_arg columns[], const int num_columns); + +void +db_query_end(struct db_query *query); + +int +db_query_single(struct db *db, const char *sql, const struct db_query_arg args[], const int num_args, struct db_query_arg columns[], const int num_columns); + +void +db_gc(struct db *db); + +void +db_release(struct db *db); -- cgit v1.2.3