21 #ifndef APR_DBD_INTERNAL_H
22 #define APR_DBD_INTERNAL_H
32 #define TXN_IGNORE_ERRORS(t) \
33 ((t) && ((t)->mode & APR_DBD_TRANSACTION_IGNORE_ERRORS))
34 #define TXN_NOTICE_ERRORS(t) \
35 ((t) && !((t)->mode & APR_DBD_TRANSACTION_IGNORE_ERRORS))
37 #define TXN_DO_COMMIT(t) (!((t)->mode & APR_DBD_TRANSACTION_ROLLBACK))
38 #define TXN_DO_ROLLBACK(t) ((t)->mode & APR_DBD_TRANSACTION_ROLLBACK)
40 #define TXN_MODE_BITS \
41 (APR_DBD_TRANSACTION_ROLLBACK|APR_DBD_TRANSACTION_IGNORE_ERRORS)
50 void (*
init)(apr_pool_t *pool);
57 void *(*native_handle)(apr_dbd_t *handle);
69 apr_dbd_t *(*open)(apr_pool_t *pool,
const char *params,
78 apr_status_t (*
check_conn)(apr_pool_t *pool, apr_dbd_t *handle);
85 apr_status_t (*
close)(apr_dbd_t *handle);
104 apr_dbd_transaction_t **trans);
122 int (*
query)(apr_dbd_t *handle,
int *nrows,
const char *statement);
135 int (*
select)(apr_pool_t *pool, apr_dbd_t *handle, apr_dbd_results_t **res,
136 const char *statement,
int random);
162 int (*
get_row)(apr_pool_t *pool, apr_dbd_results_t *res,
163 apr_dbd_row_t **row,
int rownum);
172 const char* (*get_entry)(
const apr_dbd_row_t *row,
int col);
181 const char *(*error)(apr_dbd_t *handle,
int errnum);
190 const char *(*escape)(apr_pool_t *pool,
const char *string,
208 const char *label,
int nargs,
int nvals,
220 int (*
pvquery)(apr_pool_t *pool, apr_dbd_t *handle,
int *nrows,
221 apr_dbd_prepared_t *statement, va_list args);
233 int (*
pvselect)(apr_pool_t *pool, apr_dbd_t *handle,
234 apr_dbd_results_t **res,
235 apr_dbd_prepared_t *statement,
int random, va_list args);
246 int (*
pquery)(apr_pool_t *pool, apr_dbd_t *handle,
int *nrows,
247 apr_dbd_prepared_t *statement,
const char **args);
259 int (*
pselect)(apr_pool_t *pool, apr_dbd_t *handle,
260 apr_dbd_results_t **res, apr_dbd_prepared_t *statement,
261 int random,
const char **args);
270 const char* (*get_name)(
const apr_dbd_results_t *res,
int col);
299 int (*
pvbquery)(apr_pool_t *pool, apr_dbd_t *handle,
int *nrows,
300 apr_dbd_prepared_t *statement, va_list args);
313 apr_dbd_results_t **res,
314 apr_dbd_prepared_t *statement,
int random, va_list args);
325 int (*
pbquery)(apr_pool_t *pool, apr_dbd_t *handle,
int *nrows,
326 apr_dbd_prepared_t *statement,
const void **args);
338 int (*
pbselect)(apr_pool_t *pool, apr_dbd_t *handle,
339 apr_dbd_results_t **res, apr_dbd_prepared_t *statement,
340 int random,
const void **args);
350 apr_status_t (*
datum_get)(
const apr_dbd_row_t *row,
int col,
358 APU_DECLARE(apr_status_t) apr_dbd_mutex_lock(
void);
359 APU_DECLARE(apr_status_t) apr_dbd_mutex_unlock(
void);