diff options
| -rw-r--r-- | opplysning-endre.c | 20 | ||||
| -rw-r--r-- | opplysning-vis.c | 13 |
2 files changed, 26 insertions, 7 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); diff --git a/opplysning-vis.c b/opplysning-vis.c index 564de5d..9954630 100644 --- a/opplysning-vis.c +++ b/opplysning-vis.c @@ -56,10 +56,21 @@ struct calendar { void load_events(struct calendar *cal) { - sqlite3 *db; + sqlite3 *db = NULL; + char *errmsg = NULL; + if (sqlite3_open(cal->database, &db)) errx(1, "sqlite3_open: %s", sqlite3_errmsg(db)); + 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); + const char *sql = "SELECT " "unixepoch(start), " "unixepoch(end), " |
