diff options
| author | Martin Stensgård <mastensg@mastensg.net> | 2026-05-16 22:12:46 +0200 |
|---|---|---|
| committer | Martin Stensgård <mastensg@mastensg.net> | 2026-05-16 22:12:46 +0200 |
| commit | a4a15001601ba9a1a32b64dec3ad079114d1be2f (patch) | |
| tree | 40ec76d56d4a0e82c54a38bb90f38cacc4a1c287 /opplysning-endre.c | |
| parent | b60defef95ebad4d78a8cf98bf8c74694fbc7163 (diff) | |
sqlite for servers
Diffstat (limited to 'opplysning-endre.c')
| -rw-r--r-- | opplysning-endre.c | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/opplysning-endre.c b/opplysning-endre.c index b55c679..34d0cf2 100644 --- a/opplysning-endre.c +++ b/opplysning-endre.c @@ -7,10 +7,10 @@ #include "sqlite/sqlite3.h" static char *SCHEMA = "CREATE TABLE event (" - " start TIMESTAMP," - " end TIMESTAMP," + " start TEXT," + " end TEXT," " summary TEXT" - ")"; + ") STRICT"; static char * read_stream(char *s, size_t size, void *d) @@ -38,7 +38,7 @@ component(sqlite3 *db, icalcomponent *c) "datetime(?, 'unixepoch')" ", ?)"; if (sqlite3_prepare_v2(db, sql, -1, &stmt, NULL)) - errx(1, "sqlite3_prepare_v2"); + errx(1, "sqlite3_prepare_v2: %s", sqlite3_errmsg(db)); if (sqlite3_bind_int64(stmt, 1, start)) errx(1, "sqlite3_bind_int64"); @@ -62,11 +62,19 @@ main(int argc, const char *argv[static argc]) assert(stream); icalparser_set_gen_data(parser, stream); - sqlite3 *db; + sqlite3 *db = NULL; char *errmsg = NULL; if (sqlite3_open(argv[1], &db)) errx(1, "sqlite3_open: %s", errmsg); - if (sqlite3_exec(db, "BEGIN", NULL, NULL, &errmsg)) + if (sqlite3_exec(db, + "PRAGMA journal_mode = WAL;" + "PRAGMA synchronous = NORMAL;" + "PRAGMA foreign_keys = true;" + "PRAGMA busy_timeout = 5000;" + "", + NULL, NULL, &errmsg)) + errx(1, "sqlite3_exec: %s", errmsg); + if (sqlite3_exec(db, "BEGIN IMMEDIATE", NULL, NULL, &errmsg)) errx(1, "sqlite3_exec: %s", errmsg); if (sqlite3_exec(db, "DROP TABLE IF EXISTS event", NULL, NULL, &errmsg)) errx(1, "sqlite3_exec: %s", errmsg); |
