Mercurial > urweb
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);", |