-- ------------------------------------------
--- Friendica 2023.09-rc (Giant Rhubarb)
--- DB_UPDATE_VERSION 1538
+-- Friendica 2024.03-dev (Yellow Archangel)
+-- DB_UPDATE_VERSION 1544
-- ------------------------------------------
FOREIGN KEY (`tid`) REFERENCES `tag` (`id`) ON UPDATE RESTRICT ON DELETE RESTRICT
) DEFAULT COLLATE utf8mb4_general_ci COMMENT='post relation to categories';
+--
+-- TABLE post-counts
+--
+CREATE TABLE IF NOT EXISTS `post-counts` (
+ `uri-id` int unsigned NOT NULL COMMENT 'Id of the item-uri table entry that contains the item uri',
+ `vid` smallint unsigned NOT NULL COMMENT 'Id of the verb table entry that contains the activity verbs',
+ `reaction` varchar(1) NOT NULL COMMENT 'Emoji Reaction',
+ `parent-uri-id` int unsigned COMMENT 'Id of the item-uri table that contains the parent uri',
+ `count` int unsigned DEFAULT 0 COMMENT 'Number of activities',
+ PRIMARY KEY(`uri-id`,`vid`,`reaction`),
+ INDEX `vid` (`vid`),
+ INDEX `parent-uri-id` (`parent-uri-id`),
+ FOREIGN KEY (`uri-id`) REFERENCES `item-uri` (`id`) ON UPDATE RESTRICT ON DELETE CASCADE,
+ FOREIGN KEY (`vid`) REFERENCES `verb` (`id`) ON UPDATE RESTRICT ON DELETE RESTRICT,
+ FOREIGN KEY (`parent-uri-id`) REFERENCES `item-uri` (`id`) ON UPDATE RESTRICT ON DELETE CASCADE
+) DEFAULT COLLATE utf8mb4_general_ci COMMENT='Original remote activity';
+
--
-- TABLE post-collection
--
INDEX `event-id` (`event-id`),
INDEX `psid` (`psid`),
INDEX `author-id_uid` (`author-id`,`uid`),
- INDEX `author-id_received` (`author-id`,`received`),
+ INDEX `author-id_created` (`author-id`,`created`),
+ INDEX `owner-id_created` (`owner-id`,`created`),
INDEX `parent-uri-id_uid` (`parent-uri-id`,`uid`),
INDEX `uid_wall_received` (`uid`,`wall`,`received`),
INDEX `uid_contactid` (`uid`,`contact-id`),
INDEX `post-user-id` (`post-user-id`),
INDEX `commented` (`commented`),
INDEX `received` (`received`),
+ INDEX `author-id_created` (`author-id`,`created`),
+ INDEX `owner-id_created` (`owner-id`,`created`),
INDEX `uid_received` (`uid`,`received`),
INDEX `uid_wall_received` (`uid`,`wall`,`received`),
INDEX `uid_commented` (`uid`,`commented`),
+ INDEX `uid_created` (`uid`,`created`),
INDEX `uid_starred` (`uid`,`starred`),
INDEX `uid_mention` (`uid`,`mention`),
+ INDEX `contact-id_commented` (`contact-id`,`commented`),
+ INDEX `contact-id_received` (`contact-id`,`received`),
+ INDEX `contact-id_created` (`contact-id`,`created`),
FOREIGN KEY (`uri-id`) REFERENCES `item-uri` (`id`) ON UPDATE RESTRICT ON DELETE CASCADE,
FOREIGN KEY (`conversation-id`) REFERENCES `item-uri` (`id`) ON UPDATE RESTRICT ON DELETE CASCADE,
FOREIGN KEY (`owner-id`) REFERENCES `contact` (`id`) ON UPDATE RESTRICT ON DELETE RESTRICT,
FOREIGN KEY (`uid`) REFERENCES `user` (`uid`) ON UPDATE RESTRICT ON DELETE CASCADE
) DEFAULT COLLATE utf8mb4_general_ci COMMENT='Push Subscription for the API';
+--
+-- TABLE check-full-text-search
+--
+CREATE TABLE IF NOT EXISTS `check-full-text-search` (
+ `pid` int unsigned NOT NULL COMMENT 'The ID of the process',
+ `searchtext` mediumtext COMMENT 'Simplified text for the full text search',
+ PRIMARY KEY(`pid`),
+ FULLTEXT INDEX `searchtext` (`searchtext`)
+) DEFAULT COLLATE utf8mb4_general_ci COMMENT='Check for a full text search match in user defined channels before storing the message in the system';
+
--
-- TABLE userd
--
INNER JOIN `contact` ON `group_member`.`contact-id` = `contact`.`id`
INNER JOIN `group` ON `group_member`.`gid` = `group`.`id`;
+--
+-- VIEW post-counts-view
+--
+DROP VIEW IF EXISTS `post-counts-view`;
+CREATE VIEW `post-counts-view` AS SELECT
+ `post-counts`.`uri-id` AS `uri-id`,
+ `post-counts`.`vid` AS `vid`,
+ `verb`.`name` AS `verb`,
+ `post-counts`.`reaction` AS `reaction`,
+ `post-counts`.`parent-uri-id` AS `parent-uri-id`,
+ `post-counts`.`count` AS `count`
+ FROM `post-counts`
+ INNER JOIN `verb` ON `verb`.`id` = `post-counts`.`vid`;
+
--
-- VIEW post-timeline-view
--