commit c829a0eb3417081bef55f88c8d9ac7ff42d8e210
parent 5138c52672c37803b8c1961cf08b67a9f3b33d57
Author: cfillion <cfillion@users.noreply.github.com>
Date: Mon, 18 Jan 2016 19:29:19 -0500
enable sqlite foreign key checks
Diffstat:
2 files changed, 23 insertions(+), 0 deletions(-)
diff --git a/src/database.cpp b/src/database.cpp
@@ -36,6 +36,8 @@ Database::Database(const string &filename)
throw error;
}
+
+ exec("PRAGMA foreign_keys = 1");
}
Database::~Database()
diff --git a/test/database.cpp b/test/database.cpp
@@ -102,3 +102,24 @@ TEST_CASE("version", M) {
db.exec("PRAGMA user_version = 1");
REQUIRE(db.version() == 1);
}
+
+TEST_CASE("foreign keys", M) {
+ Database db;
+ db.exec(
+ "CREATE TABLE a (id INTEGER PRIMARY KEY);"
+
+ "CREATE TABLE b ("
+ " two INTEGER NOT NULL,"
+ " FOREIGN KEY(two) REFERENCES a(id)"
+ ");"
+
+ "INSERT INTO a VALUES(NULL);"
+ "INSERT INTO b VALUES(1);"
+ );
+
+ try {
+ db.exec("DELETE FROM a");
+ FAIL("foreign keys checks are disabled");
+ }
+ catch(const reapack_error &) {}
+}