comparison src/sqlite.sml @ 1115:150465f2895c

Database quotas
author Adam Chlipala <adamc@hcoop.net>
date Sun, 03 Jan 2010 17:13:45 -0500
parents db52c32dbe42
children 134da5110bf7
comparison
equal deleted inserted replaced
1114:01b6c7144a44 1115:150465f2895c
258 258
259 string "static void uw_db_init(uw_context ctx) {", 259 string "static void uw_db_init(uw_context ctx) {",
260 newline, 260 newline,
261 string "sqlite3 *sqlite;", 261 string "sqlite3 *sqlite;",
262 newline, 262 newline,
263 string "sqlite3_stmt *stmt;",
264 newline,
263 string "uw_conn *conn;", 265 string "uw_conn *conn;",
264 newline, 266 newline,
265 newline, 267 newline,
266 string "if (sqlite3_open(\"", 268 string "if (sqlite3_open(\"",
267 string (!db), 269 string (!db),
268 string "\", &sqlite) != SQLITE_OK) uw_error(ctx, FATAL, ", 270 string "\", &sqlite) != SQLITE_OK) uw_error(ctx, FATAL, ",
269 string "\"Can't open SQLite database.\");", 271 string "\"Can't open SQLite database.\");",
270 newline, 272 newline,
271 newline, 273 newline,
274 string "if (uw_database_max < SIZE_MAX) {",
275 newline,
276 box [string "char buf[100];",
277 newline,
278 newline,
279
280 string "sprintf(buf, \"PRAGMA max_page_count = %llu\", (unsigned long long)(uw_database_max / 1024));",
281 newline,
282 newline,
283
284 string "if (sqlite3_prepare_v2(sqlite, buf, -1, &stmt, NULL) != SQLITE_OK) {",
285 newline,
286 box [string "sqlite3_close(sqlite);",
287 newline,
288 string "uw_error(ctx, FATAL, \"Can't prepare max_page_count query for SQLite database\");",
289 newline],
290 string "}",
291 newline,
292 newline,
293
294 string "if (sqlite3_step(stmt) != SQLITE_ROW) {",
295 newline,
296 box [string "sqlite3_finalize(stmt);",
297 newline,
298 string "sqlite3_close(sqlite);",
299 newline,
300 string "uw_error(ctx, FATAL, \"Can't set max_page_count parameter for SQLite database\");",
301 newline],
302 string "}",
303 newline,
304 newline,
305
306 string "sqlite3_finalize(stmt);",
307 newline],
308 string "}",
309 newline,
310 newline,
311
272 string "conn = calloc(1, sizeof(uw_conn));", 312 string "conn = calloc(1, sizeof(uw_conn));",
273 newline, 313 newline,
274 string "conn->conn = sqlite;", 314 string "conn->conn = sqlite;",
275 newline, 315 newline,
276 string "uw_set_db(ctx, conn);", 316 string "uw_set_db(ctx, conn);",