X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=database.sql;h=e363dd57dda033318ca30c9137033f58f5d438bf;hb=6557efd786d2ab1f7be1a9884fb5dd2438fba0de;hp=6b8d7df2ffad17e28eaf9f21cbe3e7d2e6fd60d5;hpb=a5d679ea959a4317be76efd8cad99bf00ba6e3d0;p=friendica.git diff --git a/database.sql b/database.sql index 6b8d7df2ff..e363dd57dd 100644 --- a/database.sql +++ b/database.sql @@ -1,6 +1,6 @@ -- ------------------------------------------ -- Friendica 2022.09-dev (Giant Rhubarb) --- DB_UPDATE_VERSION 1474 +-- DB_UPDATE_VERSION 1481 -- ------------------------------------------ @@ -141,12 +141,14 @@ CREATE TABLE IF NOT EXISTS `contact` ( `poll` varchar(255) COMMENT '', `subscribe` varchar(255) COMMENT '', `last-update` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT 'Date of the last try to update the contact info', + `next-update` datetime COMMENT 'Next connection request', `success_update` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT 'Date of the last successful contact update', `failure_update` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT 'Date of the last failed update', `failed` boolean COMMENT 'Connection failed', `term-date` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '', `last-item` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT 'date of the last post', `last-discovery` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT 'date of the last follower discovery', + `local-data` boolean COMMENT 'Is true when there are posts with this contact on the system', `blocked` boolean NOT NULL DEFAULT '1' COMMENT 'Node-wide block status', `block_reason` text COMMENT 'Node-wide block reason', `readonly` boolean NOT NULL DEFAULT '0' COMMENT 'posts of the contact are readonly', @@ -213,12 +215,14 @@ CREATE TABLE IF NOT EXISTS `contact` ( INDEX `attag_uid` (`attag`(96),`uid`), INDEX `network_uid_lastupdate` (`network`,`uid`,`last-update`), INDEX `uid_network_self_lastupdate` (`uid`,`network`,`self`,`last-update`), + INDEX `next-update` (`next-update`), + INDEX `local-data-next-update` (`local-data`,`next-update`), INDEX `uid_lastitem` (`uid`,`last-item`), INDEX `baseurl` (`baseurl`(64)), INDEX `uid_contact-type` (`uid`,`contact-type`), INDEX `uid_self_contact-type` (`uid`,`self`,`contact-type`), INDEX `self_network_uid` (`self`,`network`,`uid`), - INDEX `gsid` (`gsid`), + INDEX `gsid_uid_failed` (`gsid`,`uid`,`failed`), INDEX `uri-id` (`uri-id`), FOREIGN KEY (`uid`) REFERENCES `user` (`uid`) ON UPDATE RESTRICT ON DELETE CASCADE, FOREIGN KEY (`uri-id`) REFERENCES `item-uri` (`id`) ON UPDATE RESTRICT ON DELETE CASCADE, @@ -338,6 +342,7 @@ CREATE TABLE IF NOT EXISTS `apcontact` ( `featured-tags` varchar(255) COMMENT 'Address for the collection of featured tags', `manually-approve` boolean COMMENT '', `discoverable` boolean COMMENT 'Mastodon extension: true if profile is published in their directory', + `suspended` boolean COMMENT 'Mastodon extension: true if profile is suspended', `nick` varchar(255) NOT NULL DEFAULT '' COMMENT '', `name` varchar(255) COMMENT '', `about` text COMMENT '', @@ -503,23 +508,6 @@ CREATE TABLE IF NOT EXISTS `conv` ( FOREIGN KEY (`uid`) REFERENCES `user` (`uid`) ON UPDATE RESTRICT ON DELETE CASCADE ) DEFAULT COLLATE utf8mb4_general_ci COMMENT='private messages'; --- --- TABLE conversation --- -CREATE TABLE IF NOT EXISTS `conversation` ( - `item-uri` varbinary(255) NOT NULL COMMENT 'Original URI of the item - unrelated to the table with the same name', - `reply-to-uri` varbinary(255) NOT NULL DEFAULT '' COMMENT 'URI to which this item is a reply', - `conversation-uri` varbinary(255) NOT NULL DEFAULT '' COMMENT 'GNU Social conversation URI', - `conversation-href` varbinary(255) NOT NULL DEFAULT '' COMMENT 'GNU Social conversation link', - `protocol` tinyint unsigned NOT NULL DEFAULT 255 COMMENT 'The protocol of the item', - `direction` tinyint unsigned NOT NULL DEFAULT 0 COMMENT 'How the message arrived here: 1=push, 2=pull', - `source` mediumtext COMMENT 'Original source', - `received` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT 'Receiving date', - PRIMARY KEY(`item-uri`), - INDEX `conversation-uri` (`conversation-uri`), - INDEX `received` (`received`) -) DEFAULT COLLATE utf8mb4_general_ci COMMENT='Raw data and structure information for messages'; - -- -- TABLE workerqueue -- @@ -648,6 +636,21 @@ CREATE TABLE IF NOT EXISTS `fcontact` ( FOREIGN KEY (`uri-id`) REFERENCES `item-uri` (`id`) ON UPDATE RESTRICT ON DELETE CASCADE ) DEFAULT COLLATE utf8mb4_general_ci COMMENT='Diaspora compatible contacts - used in the Diaspora implementation'; +-- +-- TABLE fetch-entry +-- +CREATE TABLE IF NOT EXISTS `fetch-entry` ( + `id` int unsigned NOT NULL auto_increment COMMENT 'sequential ID', + `url` varbinary(255) COMMENT 'url that awaiting to be fetched', + `created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT 'Creation date of the fetch request', + `wid` int unsigned COMMENT 'Workerqueue id', + PRIMARY KEY(`id`), + UNIQUE INDEX `url` (`url`), + INDEX `created` (`created`), + INDEX `wid` (`wid`), + FOREIGN KEY (`wid`) REFERENCES `workerqueue` (`id`) ON UPDATE RESTRICT ON DELETE CASCADE +) DEFAULT COLLATE utf8mb4_general_ci COMMENT=''; + -- -- TABLE fsuggest -- @@ -917,6 +920,7 @@ CREATE TABLE IF NOT EXISTS `notification` ( INDEX `target-uri-id` (`target-uri-id`), INDEX `parent-uri-id` (`parent-uri-id`), INDEX `seen_uid` (`seen`,`uid`), + INDEX `uid_type_parent-uri-id_actor-id` (`uid`,`type`,`parent-uri-id`,`actor-id`), FOREIGN KEY (`uid`) REFERENCES `user` (`uid`) ON UPDATE RESTRICT ON DELETE CASCADE, FOREIGN KEY (`vid`) REFERENCES `verb` (`id`) ON UPDATE RESTRICT ON DELETE RESTRICT, FOREIGN KEY (`actor-id`) REFERENCES `contact` (`id`) ON UPDATE RESTRICT ON DELETE CASCADE, @@ -1117,6 +1121,17 @@ CREATE TABLE IF NOT EXISTS `post` ( FOREIGN KEY (`vid`) REFERENCES `verb` (`id`) ON UPDATE RESTRICT ON DELETE RESTRICT ) DEFAULT COLLATE utf8mb4_general_ci COMMENT='Structure for all posts'; +-- +-- TABLE post-activity +-- +CREATE TABLE IF NOT EXISTS `post-activity` ( + `uri-id` int unsigned NOT NULL COMMENT 'Id of the item-uri table entry that contains the item uri', + `activity` mediumtext COMMENT 'Original activity', + `received` datetime COMMENT '', + PRIMARY KEY(`uri-id`), + FOREIGN KEY (`uri-id`) REFERENCES `item-uri` (`id`) ON UPDATE RESTRICT ON DELETE CASCADE +) DEFAULT COLLATE utf8mb4_general_ci COMMENT='Original remote activity'; + -- -- TABLE post-category -- @@ -1139,9 +1154,12 @@ CREATE TABLE IF NOT EXISTS `post-category` ( CREATE TABLE IF NOT EXISTS `post-collection` ( `uri-id` int unsigned NOT NULL COMMENT 'Id of the item-uri table entry that contains the item uri', `type` tinyint unsigned NOT NULL DEFAULT 0 COMMENT '0 - Featured', + `author-id` int unsigned COMMENT 'Author of the featured post', PRIMARY KEY(`uri-id`,`type`), INDEX `type` (`type`), - FOREIGN KEY (`uri-id`) REFERENCES `item-uri` (`id`) ON UPDATE RESTRICT ON DELETE CASCADE + INDEX `author-id` (`author-id`), + FOREIGN KEY (`uri-id`) REFERENCES `item-uri` (`id`) ON UPDATE RESTRICT ON DELETE CASCADE, + FOREIGN KEY (`author-id`) REFERENCES `contact` (`id`) ON UPDATE RESTRICT ON DELETE CASCADE ) DEFAULT COLLATE utf8mb4_general_ci COMMENT='Collection of posts'; -- @@ -1398,6 +1416,7 @@ CREATE TABLE IF NOT EXISTS `post-user` ( INDEX `author-id_uid` (`author-id`,`uid`), INDEX `author-id_received` (`author-id`,`received`), INDEX `parent-uri-id_uid` (`parent-uri-id`,`uid`), + INDEX `uid_wall_received` (`uid`,`wall`,`received`), INDEX `uid_contactid` (`uid`,`contact-id`), INDEX `uid_unseen_contactid` (`uid`,`unseen`,`contact-id`), INDEX `uid_unseen` (`uid`,`unseen`), @@ -1706,6 +1725,24 @@ CREATE TABLE IF NOT EXISTS `user-contact` ( FOREIGN KEY (`uri-id`) REFERENCES `item-uri` (`id`) ON UPDATE RESTRICT ON DELETE CASCADE ) DEFAULT COLLATE utf8mb4_general_ci COMMENT='User specific public contact data'; +-- +-- TABLE arrived-activity +-- +CREATE TABLE IF NOT EXISTS `arrived-activity` ( + `object-id` varbinary(255) NOT NULL COMMENT 'object id of the incoming activity', + `received` datetime COMMENT 'Receiving date', + PRIMARY KEY(`object-id`) +) ENGINE=MEMORY DEFAULT COLLATE utf8mb4_general_ci COMMENT='Id of arrived activities'; + +-- +-- TABLE fetched-activity +-- +CREATE TABLE IF NOT EXISTS `fetched-activity` ( + `object-id` varbinary(255) NOT NULL COMMENT 'object id of fetched activity', + `received` datetime COMMENT 'Receiving date', + PRIMARY KEY(`object-id`) +) ENGINE=MEMORY DEFAULT COLLATE utf8mb4_general_ci COMMENT='Id of fetched activities'; + -- -- TABLE worker-ipc -- @@ -1779,6 +1816,7 @@ CREATE VIEW `post-user-view` AS SELECT `post-user`.`global` AS `global`, EXISTS(SELECT `type` FROM `post-collection` WHERE `type` = 0 AND `uri-id` = `post-user`.`uri-id`) AS `featured`, `post-user`.`network` AS `network`, + `post-user`.`protocol` AS `protocol`, `post-user`.`vid` AS `vid`, `post-user`.`psid` AS `psid`, IF (`post-user`.`vid` IS NULL, '', `verb`.`name`) AS `verb`, @@ -2390,7 +2428,7 @@ DROP VIEW IF EXISTS `collection-view`; CREATE VIEW `collection-view` AS SELECT `post-collection`.`uri-id` AS `uri-id`, `post-collection`.`type` AS `type`, - `post`.`author-id` AS `cid`, + `post-collection`.`author-id` AS `cid`, `post`.`received` AS `received`, `post`.`created` AS `created`, `post-thread`.`commented` AS `commented`, @@ -2398,7 +2436,7 @@ CREATE VIEW `collection-view` AS SELECT `post`.`visible` AS `visible`, `post`.`deleted` AS `deleted`, `post`.`thr-parent-id` AS `thr-parent-id`, - `post`.`author-id` AS `author-id`, + `post-collection`.`author-id` AS `author-id`, `post`.`gravity` AS `gravity` FROM `post-collection` INNER JOIN `post` ON `post-collection`.`uri-id` = `post`.`uri-id`