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