]> jfr.im git - irc/quakenet/newserv.git/blame - dbapi/dbapi.h
A4STATS: remove E style escapes and switch to createtable for indices
[irc/quakenet/newserv.git] / dbapi / dbapi.h
CommitLineData
ee8cd7d0
CP
1#ifndef __DBAPI_H
2#define __DBAPI_H
3
e7ae9c9f 4#ifndef DBAPI2_ADAPTER
ee8cd7d0 5#include "../config.h"
e7ae9c9f 6#endif
ee8cd7d0
CP
7
8#define DB_NULLIDENTIFIER 0
9#define DB_CREATE 1
4d47ff97 10#define DB_CALL 2
ee8cd7d0 11
827cbcd7
CP
12#ifdef DBAPI_OVERRIDE
13#undef USE_DBAPI_PGSQL
fb630983 14#undef USE_DBAPI_SQLITE
827cbcd7
CP
15#endif
16
17#ifndef BUILDING_DBAPI
18
19#if defined(USE_DBAPI_PGSQL) || defined(DBAPI_OVERRIDE_PGSQL)
ee8cd7d0
CP
20
21#include "../pqsql/pqsql.h"
22
23typedef PQModuleIdentifier DBModuleIdentifier;
24typedef PGconn DBConn;
25typedef PQQueryHandler DBQueryHandler;
26typedef PQResult DBResult;
27
28#define dbconnected() pqconnected()
edd64394 29#define dbgetid() pqgetid()
ee8cd7d0
CP
30#define dbfreeid(x) pqfreeid(x)
31
aa944539
CP
32#define dbattach(schema) pqcreateschema(schema)
33#define dbdetach(schema)
ee8cd7d0 34#define dbescapestring(buf, src, len) PQescapeString(buf, src, len)
91ad51f6 35#define dbloadtable(tablename, init, data, fini) pqloadtable(tablename, init, data, fini, NULL);
e7ae9c9f 36#define dbloadtable_tag(tablename, init, data, fini, tag) pqloadtable(tablename, init, data, fini, tag);
ee8cd7d0
CP
37
38#define dbasyncqueryf(id, handler, tag, flags, format, ...) pqasyncqueryf(id, handler, tag, flags, format , ##__VA_ARGS__)
39#define dbquerysuccessful(x) pqquerysuccessful(x)
40#define dbgetresult(conn) pqgetresult(conn)
41#define dbnumfields(x) PQnfields(x->result)
77150bb4 42#define dbnumaffected(c, x) strtoul(PQcmdTuples(x->result), NULL, 10)
ee8cd7d0
CP
43
44#define dbfetchrow(result) pqfetchrow(result)
45#define dbgetvalue(result, column) pqgetvalue(result, column)
46
47#define dbclear(result) pqclear(result)
4d47ff97 48#define dbcall(id, handler, tag, function, ...) pqasyncqueryf(id, handler, tag, (handler) == NULL ? DB_CALL : 0, "SELECT %s(%s)", function , ##__VA_ARGS__)
ee8cd7d0 49
827cbcd7
CP
50#endif /* DBAPI_PGSQL */
51
fb630983 52#if defined(USE_DBAPI_SQLITE) || defined(DBAPI_OVERRIDE_SQLITE)
ee8cd7d0
CP
53
54#include "../sqlite/sqlite.h"
55
56typedef SQLiteModuleIdentifier DBModuleIdentifier;
57typedef SQLiteConn DBConn;
58typedef SQLiteQueryHandler DBQueryHandler;
59typedef SQLiteResult DBResult;
60
61#define dbconnected() sqliteconnected()
008e57e5
CP
62#define dbgetid() sqlitegetid()
63#define dbfreeid(x) sqlitefreeid(x)
ee8cd7d0 64
4a532778
CP
65#define dbattach(schema) sqliteattach((schema))
66#define dbdetach(schema) sqlitedetach((schema))
df196dd2 67#define dbescapestring(buf, src, len) sqliteescapestring(buf, (char *)(src), len)
91ad51f6 68#define dbloadtable(tablename, init, data, fini) sqliteloadtable(tablename, init, data, fini, NULL);
e7ae9c9f 69#define dbloadtable_tag(tablename, init, data, fini, tag) sqliteloadtable(tablename, init, data, fini, tag);
ee8cd7d0
CP
70
71#define dbasyncqueryf(id, handler, tag, flags, format, ...) sqliteasyncqueryf(id, handler, tag, flags, format , ##__VA_ARGS__)
72#define dbquerysuccessful(x) sqlitequerysuccessful(x)
73#define dbgetresult(conn) sqlitegetresult(conn)
74#define dbnumfields(x) sqlite3_column_count(x->r)
1bc49a08 75#define dbnumaffected(c, x) sqlite3_changes(sqlitegetconn())
ee8cd7d0
CP
76
77#define dbfetchrow(result) sqlitefetchrow(result)
78#define dbgetvalue(result, column) sqlitegetvalue(result, column)
79
80#define dbclear(result) sqliteclear(result)
81
4d47ff97
CP
82#define dbcall(...) abort() /* HA */
83
fb630983 84#endif /* DBAPI_SQLITE */
827cbcd7
CP
85
86#endif /* BUILDING_DBAPI */
ee8cd7d0
CP
87
88#define dbasyncqueryi(identifier, handler, tag, format, ...) dbasyncqueryf(identifier, handler, tag, 0, format , ##__VA_ARGS__)
89#define dbasyncquery(handler, tag, format, ...) dbasyncqueryf(DB_NULLIDENTIFIER, handler, tag, 0, format , ##__VA_ARGS__)
90#define dbcreatequery(format, ...) dbasyncqueryf(DB_NULLIDENTIFIER, NULL, NULL, DB_CREATE, format , ##__VA_ARGS__)
91#define dbquery(format, ...) dbasyncqueryf(DB_NULLIDENTIFIER, NULL, NULL, 0, format , ##__VA_ARGS__)
92
827cbcd7 93#endif /* __DBAPI_H */