Mercurial > dovecot > core-2.2
diff src/lib-sql/sql-api-private.h @ 3736:3dd0ab18d8da HEAD
Added support for transactions and synchronous SQL queries.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Sat, 10 Dec 2005 20:57:11 +0200 |
parents | c624ffa9e6f0 |
children | b967ffb7e3a6 |
line wrap: on
line diff
--- a/src/lib-sql/sql-api-private.h Sat Dec 10 20:56:02 2005 +0200 +++ b/src/lib-sql/sql-api-private.h Sat Dec 10 20:57:11 2005 +0200 @@ -4,6 +4,8 @@ #include "sql-api.h" struct sql_db { + const char *name; + struct sql_db *(*init)(const char *connect_string); void (*deinit)(struct sql_db *db); @@ -13,11 +15,23 @@ void (*exec)(struct sql_db *db, const char *query); void (*query)(struct sql_db *db, const char *query, sql_query_callback_t *callback, void *context); + struct sql_result *(*query_s)(struct sql_db *db, const char *query); + + struct sql_transaction_context *(*transaction_begin)(struct sql_db *db); + void (*transaction_commit)(struct sql_transaction_context *ctx, + sql_commit_callback_t *callback, + void *context); + int (*transaction_commit_s)(struct sql_transaction_context *ctx, + const char **error_r); + void (*transaction_rollback)(struct sql_transaction_context *ctx); + + void (*update)(struct sql_transaction_context *ctx, const char *query); }; struct sql_result { struct sql_db *db; + void (*free)(struct sql_result *result); int (*next_row)(struct sql_result *result); unsigned int (*get_fields_count)(struct sql_result *result); @@ -32,6 +46,12 @@ const char *const *(*get_values)(struct sql_result *result); const char *(*get_error)(struct sql_result *result); + + unsigned int callback:1; +}; + +struct sql_transaction_context { + struct sql_db *db; }; extern struct sql_db driver_mysql_db;