62typedef struct csilk_db_pool_s {
255void csilk_db_mysql_init(
void);
265void csilk_db_postgres_init(
void);
285void csilk_db_redis_init(
void);
High-performance C web framework — main public API header.
uint64_t duration_us_total
Definition db.h:28
uv_mutex_t mutex
Definition db.h:67
char ** column_names
Definition db.h:91
uint64_t queries_total
Definition db.h:25
int row_count
Definition db.h:93
csilk_db_driver_t * driver
Definition db.h:63
void * connection
Definition db.h:65
csilk_db_driver_t * csilk_db_get_driver(const char *name)
Look up a registered driver by name.
Definition db.c:374
void csilk_db_get_stats(csilk_db_stats_t *stats)
Get current database statistics.
Definition db.c:53
csilk_db_row_t ** rows
Definition db.h:90
cJSON * csilk_db_query_param_json(csilk_db_pool_t *pool, const char *sql, const char **params)
Execute a parameterised SELECT query with ? placeholders.
Definition db.c:261
int column_count
Definition db.h:94
uint64_t errors_total
Definition db.h:27
csilk_db_pool_t * csilk_db_pool_new(const char *driver_name, const char *dsn)
Create a new database pool and connect using the named driver.
Definition db.c:142
void csilk_db_pool_free(csilk_db_pool_t *pool)
Destroy a database pool and disconnect.
Definition db.c:180
int csilk_db_register_driver(const char *name, csilk_db_driver_t *driver)
Register a database driver implementation.
Definition db.c:356
void csilk_db_init(void)
Internal: Register the built-in MySQL driver.
Definition db.c:335
cJSON * csilk_db_query_json(csilk_db_pool_t *pool, const char *sql)
Execute a SELECT query and return the rows as a JSON array.
Definition db.c:194
char ** values
Definition db.h:78
uint64_t execs_total
Definition db.h:26
void csilk_db_sqlite_init(void)
Internal: Register the built-in SQLite3 driver.
Definition sqlite.c:301
int csilk_db_exec(csilk_db_pool_t *pool, const char *sql)
Execute a statement that produces no result rows.
Definition db.c:219
int count
Definition db.h:80
A (currently single-connection) database pool.
Definition db.h:62
A complete query result set.
Definition db.h:89
A single row of a query result.
Definition db.h:77
Database statistics.
Definition db.h:24
void csilk_db_mongodb_init(void)
Definition mongodb.c:315
Virtual function table implemented by each database driver.
Definition db.h:103
int(* connect)(csilk_db_pool_t *pool, const char *dsn)
Open a connection to the database.
Definition db.h:111
int(* transaction_commit)(csilk_db_pool_t *pool)
Commit the current transaction.
Definition db.h:141
int(* disconnect)(csilk_db_pool_t *pool)
Close the database connection.
Definition db.h:116
int(* query)(csilk_db_pool_t *pool, const char *sql, csilk_db_result_t *result)
Execute a SELECT query and produce a result set.
Definition db.h:125
int(* exec)(csilk_db_pool_t *pool, const char *sql)
Execute a statement that returns no result rows.
Definition db.h:131
int(* transaction_rollback)(csilk_db_pool_t *pool)
Roll back the current transaction.
Definition db.h:146
const char * name
Definition db.h:104
int(* transaction_begin)(csilk_db_pool_t *pool)
Begin a database transaction.
Definition db.h:136
void(* free_result)(csilk_db_result_t *result)
Free a result set and all associated memory.
Definition db.h:150