#ifndef __DBAPI_H
#define __DBAPI_H
+#ifndef DBAPI2_ADAPTER
#include "../config.h"
+#endif
#define DB_NULLIDENTIFIER 0
#define DB_CREATE 1
#define dbdetach(schema)
#define dbescapestring(buf, src, len) PQescapeString(buf, src, len)
#define dbloadtable(tablename, init, data, fini) pqloadtable(tablename, init, data, fini, NULL);
+#define dbloadtable_tag(tablename, init, data, fini, tag) pqloadtable(tablename, init, data, fini, tag);
#define dbasyncqueryf(id, handler, tag, flags, format, ...) pqasyncqueryf(id, handler, tag, flags, format , ##__VA_ARGS__)
+#define dbasyncqueryfv(id, handler, tag, flags, format, ap) pqasyncqueryfv(id, handler, tag, flags, format, ap)
#define dbquerysuccessful(x) pqquerysuccessful(x)
#define dbgetresult(conn) pqgetresult(conn)
#define dbnumfields(x) PQnfields(x->result)
#define dbdetach(schema) sqlitedetach(schema)
#define dbescapestring(buf, src, len) sqliteescapestring(buf, (char *)(src), len)
#define dbloadtable(tablename, init, data, fini) sqliteloadtable(tablename, init, data, fini, NULL);
+#define dbloadtable_tag(tablename, init, data, fini, tag) sqliteloadtable(tablename, init, data, fini, tag);
#define dbasyncqueryf(id, handler, tag, flags, format, ...) sqliteasyncqueryf(id, handler, tag, flags, format , ##__VA_ARGS__)
+#define dbasyncqueryfv(id, handler, tag, flags, format, ap) sqliteasyncqueryfv(id, handler, tag, flags, format, ap)
#define dbquerysuccessful(x) sqlitequerysuccessful(x)
#define dbgetresult(conn) sqlitegetresult(conn)
#define dbnumfields(x) sqlite3_column_count(x->r)
}
/* sorry Q9 */
-void pqasyncqueryf(int identifier, PQQueryHandler handler, void *tag, int flags, char *format, ...) {
+void pqasyncqueryfv(int identifier, PQQueryHandler handler, void *tag, int flags, char *format, va_list va) {
char querybuf[8192];
- va_list va;
int len;
pqasyncquery_s *qp;
if(!pqconnected())
return;
- va_start(va, format);
len = vsnprintf(querybuf, sizeof(querybuf), format, va);
- va_end(va);
/* PPA: no check here... */
qp = (pqasyncquery_s *)nsmalloc(POOL_PQSQL, sizeof(pqasyncquery_s));
}
}
+void pqasyncqueryf(int identifier, PQQueryHandler handler, void *tag, int flags, char *format, ...) {
+ va_list va;
+
+ va_start(va, format);
+ pqasyncqueryfv(identifier, handler, tag, flags, format, va);
+ va_end(va);
+}
+
void pqloadtable(char *tablename, PQQueryHandler init, PQQueryHandler data, PQQueryHandler fini, void *tag)
{
pqtableloaderinfo_s *tli;
void pqloadtable(char *tablename, PQQueryHandler init, PQQueryHandler data, PQQueryHandler fini, void *tag);
+void pqasyncqueryfv(int identifier, PQQueryHandler handler, void *tag, int flags, char *format, va_list va);
void pqasyncqueryf(PQModuleIdentifier identifier, PQQueryHandler handler, void *tag, int flags, char *format, ...) __attribute__ ((format (printf, 5, 6)));
#define pqasyncqueryi(identifier, handler, tag, format, ...) pqasyncqueryf(identifier, handler, tag, 0, format , ##__VA_ARGS__)
#define pqasyncquery(handler, tag, format, ...) pqasyncqueryf(DB_NULLIDENTIFIER, handler, tag, 0, format , ##__VA_ARGS__)
static void sqlitequeueprocessor(void *arg);
static void dbstatus(int hooknum, void *arg);
-void registersqliteprovider(void);
-void deregistersqliteprovider(void);
-
void _init(void) {
sstring *dbfile;
int rc;
sqliteasyncqueryf(0, NULL, NULL, 0, "PRAGMA synchronous=" SYNC_MODE ";");
registerhook(HOOK_CORE_STATSREQUEST, dbstatus);
-
- registersqliteprovider();
}
void _fini(void) {
sqlite3_close(conn);
- deregistersqliteprovider();
-
dbconnected = 0;
}