major=1;\r
minor=13;\r
}\r
+ if(major==1 && minor==13)\r
+ {\r
+ ConvertDB0113To0114();\r
+ major=1;\r
+ minor=14;\r
+ }\r
}\r
else\r
{\r
- db->Execute("INSERT INTO tblDBVersion(Major,Minor) VALUES(1,13);");\r
+ db->Execute("INSERT INTO tblDBVersion(Major,Minor) VALUES(1,14);");\r
}\r
\r
- db->Execute("UPDATE tblDBVersion SET Major=1, Minor=13;");\r
+ db->Execute("UPDATE tblDBVersion SET Major=1, Minor=14;");\r
\r
db->Execute("CREATE TABLE IF NOT EXISTS tblFMSVersion(\\r
Major INTEGER,\\r
BoardDescription TEXT,\\r
DateAdded DATETIME,\\r
SaveReceivedMessages BOOL CHECK(SaveReceivedMessages IN('true','false')) DEFAULT 'true',\\r
- AddedMethod TEXT\\r
+ AddedMethod TEXT,\\r
+ Forum TEXT CHECK(Forum IN('true','false')) DEFAULT 'false'\\r
);");\r
\r
- db->Execute("INSERT INTO tblBoard(BoardName,BoardDescription,DateAdded,AddedMethod) VALUES('fms','Freenet Message System','2007-12-01 12:00:00','Initial Board');");\r
- db->Execute("INSERT INTO tblBoard(BoardName,BoardDescription,DateAdded,AddedMethod) VALUES('freenet','Discussion about Freenet','2007-12-01 12:00:00','Initial Board');");\r
- db->Execute("INSERT INTO tblBoard(BoardName,BoardDescription,DateAdded,AddedMethod) VALUES('public','Public discussion','2007-12-01 12:00:00','Initial Board');");\r
- db->Execute("INSERT INTO tblBoard(BoardName,BoardDescription,DateAdded,AddedMethod) VALUES('test','Test board','2007-12-01 12:00:00','Initial Board');");\r
+ db->Execute("INSERT INTO tblBoard(BoardName,BoardDescription,DateAdded,AddedMethod,Forum) VALUES('fms','Freenet Message System','2007-12-01 12:00:00','Initial Board','true');");\r
+ db->Execute("INSERT INTO tblBoard(BoardName,BoardDescription,DateAdded,AddedMethod,Forum) VALUES('freenet','Discussion about Freenet','2007-12-01 12:00:00','Initial Board','true');");\r
+ db->Execute("INSERT INTO tblBoard(BoardName,BoardDescription,DateAdded,AddedMethod,Forum) VALUES('public','Public discussion','2007-12-01 12:00:00','Initial Board','true');");\r
+ db->Execute("INSERT INTO tblBoard(BoardName,BoardDescription,DateAdded,AddedMethod,Forum) VALUES('test','Test board','2007-12-01 12:00:00','Initial Board','true');");\r
\r
db->Execute("CREATE TABLE IF NOT EXISTS tblMessage(\\r
MessageID INTEGER PRIMARY KEY,\\r
MessageUUID TEXT UNIQUE,\\r
ReplyBoardID INTEGER,\\r
Body TEXT,\\r
- MessageIndex INTEGER\\r
+ MessageIndex INTEGER,\\r
+ Read INTEGER CHECK(Read IN(0,1)) DEFAULT 0\\r
);");\r
\r
db->Execute("CREATE INDEX IF NOT EXISTS idxMessage_IdentityID ON tblMessage (IdentityID);");\r
);");\r
\r
db->Execute("CREATE INDEX IF NOT EXISTS idxMessageReplyTo_MessageID ON tblMessageReplyTo (MessageID);");\r
+ db->Execute("CREATE INDEX IF NOT EXISTS idxMessageReplyTo_ReplyToMessageUUID ON tblMessageReplyTo (ReplyToMessageUUID);");\r
\r
db->Execute("CREATE TABLE IF NOT EXISTS tblMessageBoard(\\r
MessageID INTEGER,\\r
Day DATE,\\r
RequestIndex INTEGER,\\r
Found BOOL CHECK(Found IN('true','false')) DEFAULT 'false'\\r
- );"); \r
+ );");\r
+\r
+ // begin thread db schema\r
+ db->Execute("CREATE TABLE IF NOT EXISTS tblThread(\\r
+ ThreadID INTEGER PRIMARY KEY,\\r
+ BoardID INTEGER,\\r
+ FirstMessageID INTEGER,\\r
+ LastMessageID INTEGER\\r
+ );");\r
+\r
+ db->Execute("CREATE INDEX IF NOT EXISTS idxThread_BoardID ON tblThread(BoardID);");\r
+ db->Execute("CREATE INDEX IF NOT EXISTS idxThread_FirstMessageID ON tblThread(FirstMessageID);");\r
+ db->Execute("CREATE INDEX IF NOT EXISTS idxThread_LastMessageID ON tblThread(LastMessageID);");\r
+\r
+ db->Execute("CREATE TABLE IF NOT EXISTS tblThreadPost(\\r
+ ThreadID INTEGER,\\r
+ MessageID INTEGER,\\r
+ PostOrder INTEGER\\r
+ );");\r
+\r
+ db->Execute("CREATE INDEX IF NOT EXISTS idxThreadPost_ThreadID ON tblThreadPost(ThreadID);");\r
+ db->Execute("CREATE INDEX IF NOT EXISTS idxThreadPost_MessageID ON tblThreadPost(MessageID);");\r
+\r
+ db->Execute("CREATE TRIGGER IF NOT EXISTS trgDeleteOnThread AFTER DELETE ON tblThread\\r
+ FOR EACH ROW\\r
+ BEGIN\\r
+ DELETE FROM tblThreadPost WHERE ThreadID=old.ThreadID;\\r
+ END;");\r
+ // end thread db schema\r
\r
// MessageInserter will insert a record into this temp table which the MessageListInserter will query for and insert a MessageList when needed\r
db->Execute("CREATE TEMPORARY TABLE IF NOT EXISTS tmpMessageListInsert(\\r