X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fdbsetup.cpp;h=2eb5403a23e2a764a941b5b75ca309e374e017d6;hb=dabd19d7f764b8275c9c8370c7b89675b6a78243;hp=e6bdcf6e29542ecebe3f1b715cffd575a0c8e3de;hpb=07319f767b4c4f0e06e9957f217d5107b196617b;p=fms.git diff --git a/src/dbsetup.cpp b/src/dbsetup.cpp index e6bdcf6..2eb5403 100644 --- a/src/dbsetup.cpp +++ b/src/dbsetup.cpp @@ -16,6 +16,7 @@ void SetupDB() db->Open("fms.db3"); db->SetBusyTimeout(20000); // set timeout to 20 seconds + db->Execute("PRAGMA synchronous = FULL;"); db->Execute("CREATE TABLE IF NOT EXISTS tblDBVersion(\ Major INTEGER,\ @@ -97,13 +98,19 @@ void SetupDB() major=1; minor=12; } + if(major==1 && minor==12) + { + ConvertDB0112To0113(); + major=1; + minor=13; + } } else { - db->Execute("INSERT INTO tblDBVersion(Major,Minor) VALUES(1,12);"); + db->Execute("INSERT INTO tblDBVersion(Major,Minor) VALUES(1,13);"); } - db->Execute("UPDATE tblDBVersion SET Major=1, Minor=12;"); + db->Execute("UPDATE tblDBVersion SET Major=1, Minor=13;"); db->Execute("CREATE TABLE IF NOT EXISTS tblFMSVersion(\ Major INTEGER,\ @@ -181,6 +188,9 @@ void SetupDB() FoundSolution BOOL CHECK(FoundSolution IN('true','false')) DEFAULT 'false'\ );"); + /* + PurgeDate is not used yet + */ db->Execute("CREATE TABLE IF NOT EXISTS tblIdentity(\ IdentityID INTEGER PRIMARY KEY,\ PublicKey TEXT UNIQUE,\ @@ -319,12 +329,17 @@ void SetupDB() Found BOOL CHECK(Found IN('true','false')) DEFAULT 'false'\ );"); + /* + Key is for anonymous messages (future) + */ db->Execute("CREATE TABLE IF NOT EXISTS tblMessageRequests(\ IdentityID INTEGER,\ Day DATE,\ RequestIndex INTEGER,\ FromMessageList BOOL CHECK(FromMessageList IN('true','false')) DEFAULT 'false',\ - Found BOOL CHECK(Found IN('true','false')) DEFAULT 'false'\ + Found BOOL CHECK(Found IN('true','false')) DEFAULT 'false',\ + Tries INTEGER DEFAULT 0,\ + Key TEXT\ );"); db->Execute("CREATE UNIQUE INDEX IF NOT EXISTS idxMessageRequest ON tblMessageRequests(IdentityID,Day,RequestIndex);"); @@ -387,6 +402,12 @@ void SetupDB() LocalIdentityID INTEGER\ );"); + // Temporary table for form passwords + db->Execute("CREATE TEMPORARY TABLE IF NOT EXISTS tmpFormPassword(\ + Date DATETIME,\ + Password TEXT\ + );"); + // low / high / message count for each board db->Execute("CREATE VIEW IF NOT EXISTS vwBoardStats AS \ SELECT tblBoard.BoardID AS 'BoardID', IFNULL(MIN(MessageID),0) AS 'LowMessageID', IFNULL(MAX(MessageID),0) AS 'HighMessageID', COUNT(MessageID) AS 'MessageCount' \