summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--opplysning-endre.c20
-rw-r--r--opplysning-vis.c13
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), "