21#include "apu_config.h"
28#elif defined(HAVE_POSTGRESQL_LIBPQ_FE_H)
29#include <postgresql/libpq-fe.h>
72#define dbd_pgsql_is_success(x) (((x) == PGRES_EMPTY_QUERY) \
73 || ((x) == PGRES_COMMAND_OK) \
74 || ((x) == PGRES_TUPLES_OK))
88 if (
sql->trans &&
sql->trans->errnum ) {
89 return sql->trans->errnum;
119 "ROLLBACK TO SAVEPOINT APR_DBD_TXN_SP");
137 "RELEASE SAVEPOINT APR_DBD_TXN_SP");
153 (*results)->res =
res;
156 (*results)->random =
seek;
157 (*results)->pool =
pool;
178 "ROLLBACK TO SAVEPOINT APR_DBD_TXN_SP");
190 sql->trans->errnum = 1;
196 "RELEASE SAVEPOINT APR_DBD_TXN_SP");
209 if (*results ==
NULL) {
212 (*results)->random =
seek;
213 (*results)->handle =
sql->conn;
214 (*results)->pool =
pool;
266 if ((
row->n >= 0) && (
size_t)
row->n >=
res->ntuples) {
274 if ((
row->n >= 0) && (
size_t)
row->n >=
res->ntuples) {
283 while (
res->ntuples == 0) {
374 row->res->pool,
b->bucket_alloc);
397 if (
sql->trans &&
sql->trans->errnum) {
398 return sql->trans->errnum;
432 "ROLLBACK TO SAVEPOINT APR_DBD_TXN_SP");
450 "RELEASE SAVEPOINT APR_DBD_TXN_SP");
494 (*statement)->nargs =
nargs;
495 (*statement)->nvals =
nvals;
496 (*statement)->types =
types;
509 args[
i] =
"smallint";
525 args[
i] =
"double precision";
538 args[
i] =
"timestamp";
541 args[
i] =
"timestamp with time zone";
559 (*statement)->prepared = 0;
603 (*statement)->prepared = 1;
611 const int *
len,
const int *
fmt)
653 "ROLLBACK TO SAVEPOINT APR_DBD_TXN_SP");
671 "RELEASE SAVEPOINT APR_DBD_TXN_SP");
727 if (
sql->trans &&
sql->trans->errnum) {
728 return sql->trans->errnum;
748 if (
sql->trans &&
sql->trans->errnum) {
749 return sql->trans->errnum;
765 const int *
len,
const int *
fmt)
809 "ROLLBACK TO SAVEPOINT APR_DBD_TXN_SP");
828 "RELEASE SAVEPOINT APR_DBD_TXN_SP");
845 (*results)->res =
res;
848 (*results)->random =
seek;
849 (*results)->pool =
pool;
879 "ROLLBACK TO SAVEPOINT APR_DBD_TXN_SP");
892 sql->trans->errnum = 1;
898 "RELEASE SAVEPOINT APR_DBD_TXN_SP");
915 (*results)->random =
seek;
916 (*results)->handle =
sql->conn;
917 (*results)->pool =
pool;
931 if (
sql->trans &&
sql->trans->errnum) {
932 return sql->trans->errnum;
953 if (
sql->trans &&
sql->trans->errnum) {
954 return sql->trans->errnum;
1050 if (
sql->trans &&
sql->trans->errnum) {
1051 return sql->trans->errnum;
1071 if (
sql->trans &&
sql->trans->errnum) {
1072 return sql->trans->errnum;
1092 if (
sql->trans &&
sql->trans->errnum) {
1093 return sql->trans->errnum;
1114 if (
sql->trans &&
sql->trans->errnum) {
1115 return sql->trans->errnum;
1145 (*trans)->handle =
handle;
1275 return res->ntuples;
const char apr_size_t len
APR-UTIL Buckets/Bucket Brigades.
#define TXN_NOTICE_ERRORS(t)
#define TXN_IGNORE_ERRORS(t)
#define TXN_DO_ROLLBACK(t)
#define APR_BRIGADE_INSERT_TAIL(b, e)
apr_pool_t apr_dbd_t const char * query
apr_pool_t const char apr_dbd_t const char ** error
struct apr_dbd_prepared_t apr_dbd_prepared_t
apr_pool_t apr_dbd_t const char const char * label
apr_pool_t apr_dbd_t apr_dbd_results_t ** res
struct apr_dbd_t apr_dbd_t
apr_dbd_t int const char * statement
apr_dbd_transaction_t int mode
struct apr_dbd_results_t apr_dbd_results_t
apr_pool_t const char apr_dbd_t ** handle
apr_pool_t apr_dbd_results_t apr_dbd_row_t int rownum
apr_pool_t apr_dbd_t int apr_dbd_prepared_t int nargs
struct apr_dbd_transaction_t apr_dbd_transaction_t
apr_pool_t apr_dbd_results_t apr_dbd_row_t ** row
apr_pool_t const char * params
struct apr_dbd_row_t apr_dbd_row_t
#define APR_DBD_TRANSACTION_COMMIT
@ APR_DBD_TYPE_ZTIMESTAMP
const char apr_hash_t ** values
const char int apr_pool_t * pool
apr_vformatter_buff_t const char * fmt
#define apr_pcalloc(p, size)
const char const char *const * args
static const char *const types[]
static const char *const trans[040]