]> jfr.im git - irc/quakenet/newserv.git/blob - dbapi/dbapi.h
merge
[irc/quakenet/newserv.git] / dbapi / dbapi.h
1 #ifndef __DBAPI_H
2 #define __DBAPI_H
3
4 #ifndef DBAPI2_ADAPTER
5 #include "../config.h"
6 #endif
7
8 #define DB_NULLIDENTIFIER 0
9 #define DB_CREATE 1
10
11 #ifdef DBAPI_OVERRIDE
12 #undef USE_DBAPI_PGSQL
13 #undef USE_DBAPI_SQLITE
14 #endif
15
16 #ifndef BUILDING_DBAPI
17
18 #if defined(USE_DBAPI_PGSQL) || defined(DBAPI_OVERRIDE_PGSQL)
19
20 #include "../pqsql/pqsql.h"
21
22 typedef PQModuleIdentifier DBModuleIdentifier;
23 typedef PGconn DBConn;
24 typedef PQQueryHandler DBQueryHandler;
25 typedef PQResult DBResult;
26
27 #define dbconnected() pqconnected()
28 #define dbgetid() pqgetid()
29 #define dbfreeid(x) pqfreeid(x)
30
31 #define dbattach(schema) pqcreateschema(schema)
32 #define dbdetach(schema)
33 #define dbescapestring(buf, src, len) PQescapeString(buf, src, len)
34 #define dbloadtable(tablename, init, data, fini) pqloadtable(tablename, init, data, fini, NULL);
35 #define dbloadtable_tag(tablename, init, data, fini, tag) pqloadtable(tablename, init, data, fini, tag);
36
37 #define dbasyncqueryf(id, handler, tag, flags, format, ...) pqasyncqueryf(id, handler, tag, flags, format , ##__VA_ARGS__)
38 #define dbquerysuccessful(x) pqquerysuccessful(x)
39 #define dbgetresult(conn) pqgetresult(conn)
40 #define dbnumfields(x) PQnfields(x->result)
41
42 #define dbfetchrow(result) pqfetchrow(result)
43 #define dbgetvalue(result, column) pqgetvalue(result, column)
44
45 #define dbclear(result) pqclear(result)
46
47 #endif /* DBAPI_PGSQL */
48
49 #if defined(USE_DBAPI_SQLITE) || defined(DBAPI_OVERRIDE_SQLITE)
50
51 #include "../sqlite/sqlite.h"
52
53 typedef SQLiteModuleIdentifier DBModuleIdentifier;
54 typedef SQLiteConn DBConn;
55 typedef SQLiteQueryHandler DBQueryHandler;
56 typedef SQLiteResult DBResult;
57
58 #define dbconnected() sqliteconnected()
59 #define dbgetid() sqlitegetid()
60 #define dbfreeid(x) sqlitefreeid(x)
61
62 #define dbattach(schema) sqliteattach((schema))
63 #define dbdetach(schema) sqlitedetach((schema))
64 #define dbescapestring(buf, src, len) sqliteescapestring(buf, (char *)(src), len)
65 #define dbloadtable(tablename, init, data, fini) sqliteloadtable(tablename, init, data, fini, NULL);
66 #define dbloadtable_tag(tablename, init, data, fini, tag) sqliteloadtable(tablename, init, data, fini, tag);
67
68 #define dbasyncqueryf(id, handler, tag, flags, format, ...) sqliteasyncqueryf(id, handler, tag, flags, format , ##__VA_ARGS__)
69 #define dbquerysuccessful(x) sqlitequerysuccessful(x)
70 #define dbgetresult(conn) sqlitegetresult(conn)
71 #define dbnumfields(x) sqlite3_column_count(x->r)
72
73 #define dbfetchrow(result) sqlitefetchrow(result)
74 #define dbgetvalue(result, column) sqlitegetvalue(result, column)
75
76 #define dbclear(result) sqliteclear(result)
77
78 #endif /* DBAPI_SQLITE */
79
80 #endif /* BUILDING_DBAPI */
81
82 #define dbasyncqueryi(identifier, handler, tag, format, ...) dbasyncqueryf(identifier, handler, tag, 0, format , ##__VA_ARGS__)
83 #define dbasyncquery(handler, tag, format, ...) dbasyncqueryf(DB_NULLIDENTIFIER, handler, tag, 0, format , ##__VA_ARGS__)
84 #define dbcreatequery(format, ...) dbasyncqueryf(DB_NULLIDENTIFIER, NULL, NULL, DB_CREATE, format , ##__VA_ARGS__)
85 #define dbquery(format, ...) dbasyncqueryf(DB_NULLIDENTIFIER, NULL, NULL, 0, format , ##__VA_ARGS__)
86
87 #endif /* __DBAPI_H */