X-Git-Url: https://git.pterodactylus.net/?p=fms.git;a=blobdiff_plain;f=src%2Fdbsetup.cpp;h=1add253df1812a03a3af4dee395a820906f6330e;hp=e7634692eb95f49cfb0052833a5da3ba1a26edf9;hb=HEAD;hpb=59a5414ec47a2932a7802fcd1d98c4d80166564f diff --git a/src/dbsetup.cpp b/src/dbsetup.cpp index e763469..1add253 100644 --- a/src/dbsetup.cpp +++ b/src/dbsetup.cpp @@ -111,13 +111,25 @@ void SetupDB(SQLite3DB::DB *db) major=1; minor=15; } + if(major==1 && minor==15) + { + ConvertDB0115To0116(db); + major=1; + minor=16; + } + if(major==1 && minor==16) + { + ConvertDB0116To0117(db); + major=1; + minor=17; + } } else { - db->Execute("INSERT INTO tblDBVersion(Major,Minor) VALUES(1,15);"); + db->Execute("INSERT INTO tblDBVersion(Major,Minor) VALUES(1,17);"); } - db->Execute("UPDATE tblDBVersion SET Major=1, Minor=15;"); + db->Execute("UPDATE tblDBVersion SET Major=1, Minor=17;"); db->Execute("CREATE TABLE IF NOT EXISTS tblFMSVersion(\ Major INTEGER,\ @@ -218,7 +230,8 @@ void SetupDB(SQLite3DB::DB *db) PeerTrustListTrust INTEGER CHECK(PeerTrustListTrust BETWEEN 0 AND 100) DEFAULT NULL,\ AddedMethod TEXT,\ Hidden BOOL CHECK(Hidden IN('true','false')) DEFAULT 'false',\ - PurgeDate DATETIME\ + PurgeDate DATETIME,\ + FailureCount INTEGER CHECK(FailureCount>=0) DEFAULT 0\ );"); db->Execute("CREATE TABLE IF NOT EXISTS tblIdentityRequests(\ @@ -313,6 +326,7 @@ void SetupDB(SQLite3DB::DB *db) MessageUUID TEXT UNIQUE,\ ReplyBoardID INTEGER,\ Body TEXT,\ + InsertDate DATE,\ MessageIndex INTEGER,\ Read INTEGER CHECK(Read IN(0,1)) DEFAULT 0\ );"); @@ -353,7 +367,8 @@ void SetupDB(SQLite3DB::DB *db) FromMessageList BOOL CHECK(FromMessageList IN('true','false')) DEFAULT 'false',\ Found BOOL CHECK(Found IN('true','false')) DEFAULT 'false',\ Tries INTEGER DEFAULT 0,\ - Key TEXT\ + Key TEXT,\ + FromIdentityID INTEGER\ );"); db->Execute("CREATE UNIQUE INDEX IF NOT EXISTS idxMessageRequest ON tblMessageRequests(IdentityID,Day,RequestIndex);"); @@ -405,6 +420,20 @@ void SetupDB(SQLite3DB::DB *db) Found BOOL CHECK(Found IN('true','false')) DEFAULT 'false'\ );"); +#ifdef FROST_SUPPORT + + db->Execute("CREATE TABLE IF NOT EXISTS tblFrostMessageRequests(\ + BoardID INTEGER,\ + Day DATE,\ + RequestIndex INTEGER,\ + Found BOOL CHECK(Found IN('true','false')) DEFAULT 'false',\ + Tries INTEGER DEFAULT 0\ + );"); + + db->Execute("CREATE UNIQUE INDEX IF NOT EXISTS idxFrostMessageRequest ON tblFrostMessageRequests(BoardID,Day,RequestIndex);"); + +#endif + // begin thread db schema db->Execute("CREATE TABLE IF NOT EXISTS tblThread(\ ThreadID INTEGER PRIMARY KEY,\ @@ -423,7 +452,7 @@ void SetupDB(SQLite3DB::DB *db) PostOrder INTEGER\ );"); - db->Execute("CREATE INDEX IF NOT EXISTS idxThreadPost_ThreadID ON tblThreadPost(ThreadID);"); + db->Execute("CREATE UNIQUE INDEX IF NOT EXISTS idxThreadPost_ThreadMessage ON tblThreadPost(ThreadID,MessageID);"); db->Execute("CREATE INDEX IF NOT EXISTS idxThreadPost_MessageID ON tblThreadPost(MessageID);"); db->Execute("CREATE TRIGGER IF NOT EXISTS trgDeleteOnThread AFTER DELETE ON tblThread\