reapack

Package manager for REAPER
Log | Files | Refs | Submodules | README | LICENSE

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:
Msrc/database.cpp | 2++
Mtest/database.cpp | 21+++++++++++++++++++++
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 &) {} +}