]> jfr.im git - irc/quakenet/newserv.git/blobdiff - dbapi/dbapi.h
CHANSERV: authtracker now keeps 240 days history
[irc/quakenet/newserv.git] / dbapi / dbapi.h
index 84a026aa7489cf5ffcc1ae017cc977f575d78639..990c43c8c8f21ac9127b6560039889139484fa01 100644 (file)
@@ -7,6 +7,7 @@
 
 #define DB_NULLIDENTIFIER 0
 #define DB_CREATE 1
+#define DB_CALL 2
 
 #ifdef DBAPI_OVERRIDE
 #undef USE_DBAPI_PGSQL
@@ -35,15 +36,16 @@ typedef PQResult DBResult;
 #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 dbnumaffected(c, x) strtoul(PQcmdTuples(x->result), NULL, 10)
 
 #define dbfetchrow(result) pqfetchrow(result)
 #define dbgetvalue(result, column) pqgetvalue(result, column)
 
 #define dbclear(result) pqclear(result)
+#define dbcall(id, handler, tag, function, ...) pqasyncqueryf(id, handler, tag, (handler) == NULL ? DB_CALL : 0, "SELECT %s(%s)", function , ##__VA_ARGS__)
 
 #endif /* DBAPI_PGSQL */
 
@@ -67,16 +69,18 @@ typedef SQLiteResult DBResult;
 #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)
+#define dbnumaffected(c, x) sqlite3_changes(sqlitegetconn())
 
 #define dbfetchrow(result) sqlitefetchrow(result)
 #define dbgetvalue(result, column) sqlitegetvalue(result, column)
 
 #define dbclear(result) sqliteclear(result)
 
+#define dbcall(...) abort() /* HA */
+
 #endif /* DBAPI_SQLITE */
 
 #endif /* BUILDING_DBAPI */