ascii-chat
Binary v0.15.83-53-gb711d8720
Library lib/v0.3.2-701-gb711d8720
Video chat in your terminal
Loading...
Searching...
No Matches
queries_generated.h
Go to the documentation of this file.
1/* Generated by mmmbed; do not edit. */
2/* clang-format off */
3#pragma once
4#include <stddef.h>
5
8typedef enum database_query_id {
75struct database_query { const char *name; const char *sql; enum database_access access; enum database_rows rows; };
76static const struct database_query database_queries[] = {
77 {"AddSessionKey", "INSERT OR IGNORE INTO session_identity_keys (\n"
78 " session_string,\n"
79 " key_type,\n"
80 " identity_pubkey,\n"
81 " key_version,\n"
82 " added_at\n"
83 ")\n"
84 "VALUES\n"
85 " (\n"
86 " :session_string,\n"
87 " 'ed25519',\n"
88 " :identity_pubkey,\n"
89 " :key_version,\n"
90 " :added_at\n"
92 {"BackfillSessionIdentityKeys", "INSERT OR IGNORE INTO session_identity_keys\n"
93 "SELECT\n"
94 " s.session_string,\n"
95 " 'ed25519',\n"
96 " s.host_pubkey,\n"
97 " 0,\n"
98 " s.created_at,\n"
99 " 0\n"
100 "FROM sessions s\n"
101 "WHERE\n"
102 " typeof(s.host_pubkey) = 'blob'\n"
103 " AND length(s.host_pubkey) = 32\n"
104 " AND s.host_pubkey != zeroblob(32)\n"
105 " AND NOT EXISTS (\n"
106 " SELECT\n"
107 " 1\n"
108 " FROM session_key_policy p\n"
109 " WHERE\n"
110 " p.session_string = s.session_string\n"
112 {"BackfillSessionKeyPolicy", "INSERT OR IGNORE INTO session_key_policy\n"
113 "SELECT\n"
114 " session_string,\n"
115 " 0\n"
116 "FROM sessions;", DATABASE_WRITE, DATABASE_ZERO},
117 {"BeginHostTransportRefresh", "SAVEPOINT host_transport_refresh;", DATABASE_WRITE, DATABASE_ZERO},
118 {"BeginKeySet", "SAVEPOINT create_key_set", DATABASE_WRITE, DATABASE_ZERO},
119 {"BeginTransaction", "BEGIN IMMEDIATE;", DATABASE_WRITE, DATABASE_ZERO},
120 {"ClearHost", "UPDATE sessions\n"
121 "SET\n"
122 " host_established = 0,\n"
123 " host_participant_id = NULL,\n"
124 " host_address = NULL,\n"
125 " host_port = 0,\n"
126 " host_connection_type = 0\n"
127 "WHERE\n"
128 " session_id = :session_id", DATABASE_WRITE, DATABASE_ZERO},
129 {"CommitHostTransportRefresh", "RELEASE host_transport_refresh;", DATABASE_WRITE, DATABASE_ZERO},
130 {"CommitKeySet", "RELEASE create_key_set", DATABASE_WRITE, DATABASE_ZERO},
131 {"CommitTransaction", "COMMIT;", DATABASE_WRITE, DATABASE_ZERO},
132 {"CountRateEvents", "SELECT\n"
133 " COUNT(*)\n"
134 "FROM rate_events\n"
135 "WHERE\n"
136 " ip_address = :ip_address\n"
137 " AND event_type = :event_type\n"
138 " AND timestamp >= :window_start", DATABASE_READ, DATABASE_ONE},
139 {"CountSessions", "SELECT\n"
140 " COUNT(*)\n"
141 "FROM sessions\n"
142 "WHERE\n"
143 " expires_at > :now", DATABASE_READ, DATABASE_ONE},
144 {"CountUniqueClients", "SELECT\n"
145 " COUNT(DISTINCT participant_id)\n"
146 "FROM participants", DATABASE_READ, DATABASE_ONE},
147 {"CreateSession", "INSERT INTO sessions (\n"
148 " session_string,\n"
149 " session_id,\n"
150 " host_pubkey,\n"
151 " password_hash,\n"
152 " max_participants,\n"
153 " current_participants,\n"
154 " capabilities,\n"
155 " has_password,\n"
156 " expose_ip_publicly,\n"
157 " session_type,\n"
158 " server_address,\n"
159 " server_port,\n"
160 " created_at,\n"
161 " expires_at,\n"
162 " last_activity_at\n"
163 ")\n"
164 "VALUES\n"
165 " (\n"
166 " :session_string,\n"
167 " :session_id,\n"
168 " :host_pubkey,\n"
169 " :password_hash,\n"
170 " :max_participants,\n"
171 " 0,\n"
172 " :capabilities,\n"
173 " :has_password,\n"
174 " :expose_ip_publicly,\n"
175 " :session_type,\n"
176 " :server_address,\n"
177 " :server_port,\n"
178 " :created_at,\n"
179 " :expires_at,\n"
180 " :last_activity_at\n"
182 {"DecrementParticipants", "UPDATE sessions\n"
183 "SET\n"
184 " current_participants = current_participants - 1,\n"
185 " last_activity_at = :last_activity_at\n"
186 "WHERE\n"
187 " session_string = :session_string\n"
188 " AND current_participants > 0", DATABASE_WRITE, DATABASE_ZERO},
189 {"DeleteExpiredSessions", "DELETE FROM sessions\n"
190 "WHERE\n"
191 " last_activity_at < :cutoff_time", DATABASE_WRITE, DATABASE_ZERO},
192 {"DeleteParticipant", "DELETE FROM participants\n"
193 "WHERE\n"
194 " participant_id = :participant_id\n"
195 " AND session_string = :session_string", DATABASE_WRITE, DATABASE_ZERO},
196 {"DeleteRateEvents", "DELETE FROM rate_events\n"
197 "WHERE\n"
198 " timestamp < :cutoff_time", DATABASE_WRITE, DATABASE_ZERO},
199 {"DeleteSession", "DELETE FROM sessions\n"
200 "WHERE\n"
201 " session_string = :session_string", DATABASE_WRITE, DATABASE_ZERO},
202 {"EnableForeignKeys", "PRAGMA foreign_keys = ON;", DATABASE_WRITE, DATABASE_ZERO},
203 {"EnableWAL", "PRAGMA journal_mode = WAL;", DATABASE_WRITE, DATABASE_ONE},
204 {"FindExpiredSessions", "SELECT\n"
205 " session_string,\n"
206 " last_activity_at\n"
207 "FROM sessions\n"
208 "WHERE\n"
209 " last_activity_at < :cutoff_time", DATABASE_READ, DATABASE_MANY},
210 {"GetMigrationState", "SELECT\n"
211 " in_migration,\n"
212 " migration_start_ns\n"
213 "FROM sessions\n"
214 "WHERE\n"
215 " session_id = :session_id", DATABASE_READ, DATABASE_ZERO_OR_ONE},
216 {"GetParticipantCount", "SELECT\n"
217 " current_participants\n"
218 "FROM sessions\n"
219 "WHERE\n"
220 " session_string = :session_string", DATABASE_READ, DATABASE_ZERO_OR_ONE},
221 {"GetSessionById", "SELECT\n"
222 " session_string,\n"
223 " session_id,\n"
224 " host_pubkey,\n"
225 " password_hash,\n"
226 " max_participants,\n"
227 " current_participants,\n"
228 " capabilities,\n"
229 " has_password,\n"
230 " expose_ip_publicly,\n"
231 " session_type,\n"
232 " server_address,\n"
233 " server_port,\n"
234 " created_at,\n"
235 " expires_at,\n"
236 " last_activity_at,\n"
237 " initiator_id,\n"
238 " host_established,\n"
239 " host_participant_id,\n"
240 " host_address,\n"
241 " host_port,\n"
242 " host_connection_type,\n"
243 " in_migration,\n"
244 " migration_start_ns\n"
245 "FROM sessions\n"
246 "WHERE\n"
247 " session_id = :session_id", DATABASE_READ, DATABASE_ZERO_OR_ONE},
248 {"GetSessionByString", "SELECT\n"
249 " session_string,\n"
250 " session_id,\n"
251 " host_pubkey,\n"
252 " password_hash,\n"
253 " max_participants,\n"
254 " current_participants,\n"
255 " capabilities,\n"
256 " has_password,\n"
257 " expose_ip_publicly,\n"
258 " session_type,\n"
259 " server_address,\n"
260 " server_port,\n"
261 " created_at,\n"
262 " expires_at,\n"
263 " last_activity_at,\n"
264 " initiator_id,\n"
265 " host_established,\n"
266 " host_participant_id,\n"
267 " host_address,\n"
268 " host_port,\n"
269 " host_connection_type,\n"
270 " in_migration,\n"
271 " migration_start_ns\n"
272 "FROM sessions\n"
273 "WHERE\n"
274 " session_string = :session_string", DATABASE_READ, DATABASE_ZERO_OR_ONE},
275 {"GetSessionKeyPolicy", "SELECT\n"
276 " restricted\n"
277 "FROM session_key_policy\n"
278 "WHERE\n"
279 " session_string = :session_string", DATABASE_READ, DATABASE_ZERO_OR_ONE},
280 {"GetSessionKeys", "SELECT\n"
281 " identity_pubkey\n"
282 "FROM session_identity_keys\n"
283 "WHERE\n"
284 " session_string = :session_string\n"
285 " AND key_type = 'ed25519'\n"
286 " AND revoked = 0\n"
287 "ORDER BY\n"
288 " key_version ASC,\n"
289 " identity_pubkey ASC", DATABASE_READ, DATABASE_MANY},
290 {"GetSessionParticipants", "SELECT\n"
291 " participant_id,\n"
292 " identity_pubkey,\n"
293 " joined_at\n"
294 "FROM participants\n"
295 "WHERE\n"
296 " session_string = :session_string", DATABASE_READ, DATABASE_MANY},
297 {"GetSessionTransports", "SELECT\n"
298 " t.metadata\n"
299 "FROM session_transports t\n"
300 "JOIN sessions s\n"
301 " ON s.session_id = t.session_id\n"
302 "LEFT JOIN session_transport_hosts h\n"
303 " ON h.session_id = t.session_id\n"
304 "WHERE\n"
305 " t.session_id = :session_id\n"
306 " AND s.in_migration = 0\n"
307 " AND COALESCE(s.host_participant_id, s.initiator_id) IS COALESCE(h.host_id, s.initiator_id);", DATABASE_READ, DATABASE_ZERO_OR_ONE},
308 {"GetStatsSnapshot", "SELECT\n"
309 " session_string,\n"
310 " current_participants,\n"
311 " host_established,\n"
312 " in_migration\n"
313 "FROM sessions\n"
314 "WHERE\n"
315 " expires_at > :now\n"
316 "ORDER BY\n"
317 " session_string", DATABASE_READ, DATABASE_MANY},
318 {"HasLegacySessionKeys", "SELECT\n"
319 " 1\n"
320 "FROM sqlite_master\n"
321 "WHERE\n"
322 " type = 'table'\n"
323 " AND name = 'session_keys'", DATABASE_READ, DATABASE_ZERO_OR_ONE},
324 {"ImportLegacySessionKeys", "INSERT OR IGNORE INTO session_identity_keys\n"
325 "SELECT\n"
326 " k.session_string,\n"
327 " 'ed25519',\n"
328 " k.identity_pubkey,\n"
329 " k.key_version,\n"
330 " k.added_at,\n"
331 " CASE\n"
332 " WHEN k.revoked = 0 THEN 0\n"
333 " ELSE 1\n"
334 " END\n"
335 "FROM session_keys k\n"
336 "WHERE\n"
337 " typeof(k.identity_pubkey) = 'blob'\n"
338 " AND length(k.identity_pubkey) = 32\n"
339 " AND EXISTS (\n"
340 " SELECT\n"
341 " 1\n"
342 " FROM sessions s\n"
343 " WHERE\n"
344 " s.session_string = k.session_string\n"
345 " )\n"
346 " AND NOT EXISTS (\n"
347 " SELECT\n"
348 " 1\n"
349 " FROM session_key_policy p\n"
350 " WHERE\n"
351 " p.session_string = k.session_string\n"
353 {"IncrementParticipants", "UPDATE sessions\n"
354 "SET\n"
355 " current_participants = current_participants + 1,\n"
356 " last_activity_at = :last_activity_at\n"
357 "WHERE\n"
358 " session_string = :session_string", DATABASE_WRITE, DATABASE_ZERO},
359 {"InsertParticipant", "INSERT INTO participants (participant_id, session_string, identity_pubkey, joined_at)\n"
360 "VALUES\n"
361 " (:participant_id, :session_string, :identity_pubkey, :joined_at)", DATABASE_WRITE, DATABASE_ZERO},
362 {"InsertRateEvent", "INSERT INTO rate_events (ip_address, event_type, timestamp)\n"
363 "VALUES\n"
364 " (:ip_address, :event_type, :timestamp)", DATABASE_WRITE, DATABASE_ZERO},
365 {"InsertSessionKeyPolicy", "INSERT INTO session_key_policy\n"
366 "VALUES\n"
367 " (:session_string, :restricted)", DATABASE_WRITE, DATABASE_ZERO},
368 {"LookupSession", "SELECT\n"
369 " session_string,\n"
370 " session_id,\n"
371 " host_pubkey,\n"
372 " password_hash,\n"
373 " max_participants,\n"
374 " current_participants,\n"
375 " capabilities,\n"
376 " has_password,\n"
377 " expose_ip_publicly,\n"
378 " session_type,\n"
379 " server_address,\n"
380 " server_port,\n"
381 " created_at,\n"
382 " expires_at,\n"
383 " last_activity_at\n"
384 "FROM sessions\n"
385 "WHERE\n"
386 " session_string = :session_string", DATABASE_READ, DATABASE_ZERO_OR_ONE},
387 {"LookupSessionString", "SELECT\n"
388 " session_string\n"
389 "FROM sessions\n"
390 "WHERE\n"
391 " session_id = :session_id", DATABASE_READ, DATABASE_ZERO_OR_ONE},
392 {"RevokeSessionKey", "UPDATE session_identity_keys\n"
393 "SET\n"
394 " revoked = 1\n"
395 "WHERE\n"
396 " session_string = :session_string\n"
397 " AND key_type = 'ed25519'\n"
398 " AND identity_pubkey = :identity_pubkey", DATABASE_WRITE, DATABASE_ZERO},
399 {"RollbackHostTransportRefresh", "ROLLBACK TO host_transport_refresh;", DATABASE_WRITE, DATABASE_ZERO},
400 {"RollbackToKeySet", "ROLLBACK TO create_key_set;", DATABASE_WRITE, DATABASE_ZERO},
401 {"RollbackTransaction", "ROLLBACK;", DATABASE_WRITE, DATABASE_ZERO},
402 {"SchemaClearTransportsTrigger", "CREATE TRIGGER IF NOT EXISTS clear_session_transports_after_host_clear AFTER UPDATE OF host_established ON sessions WHEN OLD.host_established = 1 AND NEW.host_established = 0 BEGIN DELETE\n"
403 "FROM session_transports\n"
404 "WHERE\n"
405 " session_id = NEW.session_id;\n"
407 {"SchemaIdentityKeys", "CREATE TABLE IF NOT EXISTS session_identity_keys (\n"
408 " session_string TEXT NOT NULL REFERENCES sessions(session_string) ON DELETE CASCADE, key_type TEXT NOT NULL CHECK(key_type = 'ed25519'), identity_pubkey BLOB NOT NULL CHECK(\n"
409 " typeof(identity_pubkey) = 'blob' AND length(identity_pubkey) = 32\n"
410 " ), key_version INTEGER NOT NULL, added_at INTEGER NOT NULL, revoked INTEGER NOT NULL DEFAULT 0 CHECK(revoked IN (0, 1)), PRIMARY KEY(session_string, key_type, identity_pubkey)\n"
412 {"SchemaIdxParticipantsSession", "CREATE INDEX IF NOT EXISTS idx_participants_session ON participants(session_string);", DATABASE_WRITE, DATABASE_ZERO},
413 {"SchemaIdxRateEvents", "CREATE INDEX IF NOT EXISTS idx_rate_events ON rate_events(ip_address, event_type, timestamp);", DATABASE_WRITE, DATABASE_ZERO},
414 {"SchemaIdxSessionsActivity", "CREATE INDEX IF NOT EXISTS idx_sessions_activity ON sessions(last_activity_at);", DATABASE_WRITE, DATABASE_ZERO},
415 {"SchemaIdxSessionsId", "CREATE INDEX IF NOT EXISTS idx_sessions_id ON sessions(session_id);", DATABASE_WRITE, DATABASE_ZERO},
416 {"SchemaKeyPolicy", "CREATE TABLE IF NOT EXISTS session_key_policy (\n"
417 " session_string TEXT PRIMARY KEY REFERENCES sessions(session_string) ON DELETE CASCADE, restricted INTEGER NOT NULL CHECK(restricted IN (0, 1))\n"
419 {"SchemaParticipants", "CREATE TABLE IF NOT EXISTS participants (\n"
420 " participant_id BLOB PRIMARY KEY,\n"
421 " session_string TEXT NOT NULL,\n"
422 " identity_pubkey BLOB NOT NULL,\n"
423 " joined_at INTEGER NOT NULL,\n"
424 " FOREIGN KEY (session_string) REFERENCES sessions(session_string) ON DELETE CASCADE\n"
426 {"SchemaRateEvents", "CREATE TABLE IF NOT EXISTS rate_events (\n"
427 " id INTEGER PRIMARY KEY AUTOINCREMENT,\n"
428 " ip_address TEXT NOT NULL,\n"
429 " event_type TEXT NOT NULL,\n"
430 " timestamp INTEGER NOT NULL\n"
432 {"SchemaSessionTransportHosts", "CREATE TABLE IF NOT EXISTS session_transport_hosts (\n"
433 " session_id BLOB PRIMARY KEY REFERENCES session_transports(session_id) ON DELETE CASCADE, host_id BLOB NOT NULL CHECK(length(host_id) = 16)\n"
435 {"SchemaSessionTransports", "CREATE TABLE IF NOT EXISTS session_transports (\n"
436 " session_id BLOB PRIMARY KEY REFERENCES sessions(session_id) ON DELETE CASCADE, metadata BLOB NOT NULL\n"
438 {"SchemaSessions", "CREATE TABLE IF NOT EXISTS sessions (\n"
439 " session_string TEXT PRIMARY KEY,\n"
440 " session_id BLOB UNIQUE NOT NULL,\n"
441 " host_pubkey BLOB NOT NULL,\n"
442 " password_hash TEXT,\n"
443 " max_participants INTEGER DEFAULT 4,\n"
444 " current_participants INTEGER DEFAULT 0,\n"
445 " capabilities INTEGER DEFAULT 3,\n"
446 " has_password INTEGER DEFAULT 0,\n"
447 " expose_ip_publicly INTEGER DEFAULT 0,\n"
448 " session_type INTEGER DEFAULT 0,\n"
449 " server_address TEXT,\n"
450 " server_port INTEGER DEFAULT 0,\n"
451 " created_at INTEGER NOT NULL,\n"
452 " expires_at INTEGER NOT NULL,\n"
453 " last_activity_at INTEGER NOT NULL,\n"
454 " initiator_id BLOB,\n"
455 " host_established INTEGER DEFAULT 0,\n"
456 " host_participant_id BLOB,\n"
457 " host_address TEXT,\n"
458 " host_port INTEGER DEFAULT 0,\n"
459 " host_connection_type INTEGER DEFAULT 0,\n"
460 " in_migration INTEGER DEFAULT 0,\n"
461 " migration_start_ns INTEGER DEFAULT 0\n"
463 {"SetSessionInitiator", "UPDATE sessions\n"
464 "SET\n"
465 " initiator_id = :initiator_id\n"
466 "WHERE\n"
467 " session_string = :session_string", DATABASE_WRITE, DATABASE_ZERO},
468 {"SetSessionTransportHost", "INSERT OR REPLACE INTO session_transport_hosts(session_id, host_id)\n"
469 "VALUES\n"
470 " (:session_id, :host_id);", DATABASE_WRITE, DATABASE_ZERO},
471 {"SetSessionTransports", "INSERT OR REPLACE INTO session_transports(session_id, metadata)\n"
472 "VALUES\n"
473 " (:session_id, :metadata);", DATABASE_WRITE, DATABASE_ZERO},
474 {"StartMigration", "UPDATE sessions\n"
475 "SET\n"
476 " in_migration = 1,\n"
477 " migration_start_ns = :migration_start_ns\n"
478 "WHERE\n"
479 " session_id = :session_id", DATABASE_WRITE, DATABASE_ZERO},
480 {"UpdateHost", "UPDATE sessions\n"
481 "SET\n"
482 " host_established = 1,\n"
483 " in_migration = 0,\n"
484 " migration_start_ns = 0,\n"
485 " host_participant_id = :host_participant_id,\n"
486 " host_address = :host_address,\n"
487 " host_port = :host_port,\n"
488 " host_connection_type = :host_connection_type,\n"
489 " last_activity_at = :last_activity_at\n"
490 "WHERE\n"
491 " session_id = :session_id", DATABASE_WRITE, DATABASE_ZERO},
492 {"VerifySessionKey", "SELECT\n"
493 " 1\n"
494 "FROM session_identity_keys\n"
495 "WHERE\n"
496 " session_string = :session_string\n"
497 " AND key_type = 'ed25519'\n"
498 " AND identity_pubkey = :identity_pubkey\n"
499 " AND revoked = 0", DATABASE_READ, DATABASE_ZERO_OR_ONE},
500};
501/* clang-format on */
database_query_id
@ DATABASE_QUERY_RollbackTransaction
@ DATABASE_QUERY_GetSessionByString
@ DATABASE_QUERY_RollbackToKeySet
@ DATABASE_QUERY_EnableForeignKeys
@ DATABASE_QUERY_CommitHostTransportRefresh
@ DATABASE_QUERY_SetSessionInitiator
@ DATABASE_QUERY_GetSessionKeys
@ DATABASE_QUERY_SchemaSessionTransports
@ DATABASE_QUERY_CountUniqueClients
@ DATABASE_QUERY_IncrementParticipants
@ DATABASE_QUERY_GetStatsSnapshot
@ DATABASE_QUERY_ImportLegacySessionKeys
@ DATABASE_QUERY_AddSessionKey
@ DATABASE_QUERY_CreateSession
@ DATABASE_QUERY_CommitKeySet
@ DATABASE_QUERY_DeleteExpiredSessions
@ DATABASE_QUERY_EnableWAL
@ DATABASE_QUERY_DeleteRateEvents
@ DATABASE_QUERY_SchemaParticipants
@ DATABASE_QUERY_SchemaIdxRateEvents
@ DATABASE_QUERY_InsertRateEvent
@ DATABASE_QUERY_SchemaIdentityKeys
@ DATABASE_QUERY_GetSessionById
@ DATABASE_QUERY_RevokeSessionKey
@ DATABASE_QUERY_BeginKeySet
@ DATABASE_QUERY_InsertParticipant
@ DATABASE_QUERY_SchemaIdxParticipantsSession
@ DATABASE_QUERY_BackfillSessionKeyPolicy
@ DATABASE_QUERY_ClearHost
@ DATABASE_QUERY_RollbackHostTransportRefresh
@ DATABASE_QUERY_GetParticipantCount
@ DATABASE_QUERY_SchemaClearTransportsTrigger
@ DATABASE_QUERY_COUNT
@ DATABASE_QUERY_UpdateHost
@ DATABASE_QUERY_LookupSessionString
@ DATABASE_QUERY_SchemaSessions
@ DATABASE_QUERY_SchemaSessionTransportHosts
@ DATABASE_QUERY_SchemaIdxSessionsId
@ DATABASE_QUERY_SetSessionTransportHost
@ DATABASE_QUERY_BackfillSessionIdentityKeys
@ DATABASE_QUERY_VerifySessionKey
@ DATABASE_QUERY_CountRateEvents
@ DATABASE_QUERY_GetSessionKeyPolicy
@ DATABASE_QUERY_SchemaIdxSessionsActivity
@ DATABASE_QUERY_SetSessionTransports
@ DATABASE_QUERY_HasLegacySessionKeys
@ DATABASE_QUERY_LookupSession
@ DATABASE_QUERY_DeleteParticipant
@ DATABASE_QUERY_DecrementParticipants
@ DATABASE_QUERY_CommitTransaction
@ DATABASE_QUERY_StartMigration
@ DATABASE_QUERY_InsertSessionKeyPolicy
@ DATABASE_QUERY_DeleteSession
@ DATABASE_QUERY_GetMigrationState
@ DATABASE_QUERY_SchemaRateEvents
@ DATABASE_QUERY_GetSessionParticipants
@ DATABASE_QUERY_SchemaKeyPolicy
@ DATABASE_QUERY_GetSessionTransports
@ DATABASE_QUERY_BeginHostTransportRefresh
@ DATABASE_QUERY_CountSessions
@ DATABASE_QUERY_FindExpiredSessions
@ DATABASE_QUERY_BeginTransaction
database_rows
@ DATABASE_MANY
@ DATABASE_ONE
@ DATABASE_ZERO_OR_ONE
@ DATABASE_ZERO
database_access
@ DATABASE_READ
@ DATABASE_WRITE
enum database_query_id database_query_id_t
This is the handoff point for database query. Callers fill name, sql, access, rows before passing it ...
enum database_access access
enum database_rows rows
const char * name