From f1e4d308987758635cb9955640e65bb6b6565a13 Mon Sep 17 00:00:00 2001 From: Michael Date: Sat, 10 Jul 2021 21:55:03 +0000 Subject: [PATCH 1/2] New view chat combines all contact tables --- database.sql | 184 +++++++++++++++++++++++++++++++++- static/dbstructure.config.php | 2 +- static/dbview.config.php | 178 ++++++++++++++++++++++++++++++++ 3 files changed, 362 insertions(+), 2 deletions(-) diff --git a/database.sql b/database.sql index 8f9fc8f0d..b9c3b3257 100644 --- a/database.sql +++ b/database.sql @@ -1,6 +1,6 @@ -- ------------------------------------------ -- Friendica 2021.09-dev (Siberian Iris) --- DB_UPDATE_VERSION 1427 +-- DB_UPDATE_VERSION 1428 -- ------------------------------------------ @@ -2395,6 +2395,188 @@ CREATE VIEW `owner-view` AS SELECT INNER JOIN `contact` ON `contact`.`uid` = `user`.`uid` AND `contact`.`self` INNER JOIN `profile` ON `profile`.`uid` = `user`.`uid`; +-- +-- VIEW account-view +-- +DROP VIEW IF EXISTS `account-view`; +CREATE VIEW `account-view` AS SELECT + `contact`.`id` AS `id`, + `contact`.`url` AS `url`, + `contact`.`nurl` AS `nurl`, + `contact`.`uri-id` AS `uri-id`, + `contact`.`addr` AS `addr`, + `contact`.`alias` AS `alias`, + `contact`.`name` AS `name`, + `contact`.`nick` AS `nick`, + `contact`.`about` AS `about`, + `contact`.`keywords` AS `keywords`, + `contact`.`xmpp` AS `xmpp`, + `contact`.`avatar` AS `avatar`, + `contact`.`photo` AS `photo`, + `contact`.`thumb` AS `thumb`, + `contact`.`micro` AS `micro`, + `contact`.`header` AS `header`, + `contact`.`created` AS `created`, + `contact`.`updated` AS `updated`, + `contact`.`network` AS `network`, + `contact`.`protocol` AS `protocol`, + `contact`.`location` AS `location`, + `contact`.`attag` AS `attag`, + `contact`.`pubkey` AS `pubkey`, + `contact`.`prvkey` AS `prvkey`, + `contact`.`subscribe` AS `subscribe`, + `contact`.`last-update` AS `last-update`, + `contact`.`success_update` AS `success_update`, + `contact`.`failure_update` AS `failure_update`, + `contact`.`failed` AS `failed`, + `contact`.`last-item` AS `last-item`, + `contact`.`last-discovery` AS `last-discovery`, + `contact`.`contact-type` AS `contact-type`, + `contact`.`manually-approve` AS `manually-approve`, + `contact`.`unsearchable` AS `unsearchable`, + `contact`.`sensitive` AS `sensitive`, + `contact`.`baseurl` AS `baseurl`, + `contact`.`gsid` AS `gsid`, + `contact`.`info` AS `info`, + `contact`.`bdyear` AS `bdyear`, + `contact`.`bd` AS `bd`, + `contact`.`poco` AS `poco`, + `contact`.`name-date` AS `name-date`, + `contact`.`uri-date` AS `uri-date`, + `contact`.`avatar-date` AS `avatar-date`, + `contact`.`term-date` AS `term-date`, + `contact`.`hidden` AS `global-ignored`, + `contact`.`blocked` AS `global-blocked`, + `contact`.`hidden` AS `hidden`, + `contact`.`archive` AS `archive`, + `contact`.`deleted` AS `deleted`, + `contact`.`blocked` AS `blocked`, + `contact`.`request` AS `dfrn-request`, + `contact`.`notify` AS `dfrn-notify`, + `contact`.`poll` AS `dfrn-poll`, + `contact`.`confirm` AS `dfrn-confirm`, + `fcontact`.`guid` AS `diaspora-guid`, + `fcontact`.`batch` AS `diaspora-batch`, + `fcontact`.`notify` AS `diaspora-notify`, + `fcontact`.`poll` AS `diaspora-poll`, + `fcontact`.`alias` AS `diaspora-alias`, + `apcontact`.`uuid` AS `ap-uuid`, + `apcontact`.`type` AS `ap-type`, + `apcontact`.`following` AS `ap-following`, + `apcontact`.`followers` AS `ap-followers`, + `apcontact`.`inbox` AS `ap-inbox`, + `apcontact`.`outbox` AS `ap-outbox`, + `apcontact`.`sharedinbox` AS `ap-sharedinbox`, + `apcontact`.`generator` AS `ap-generator`, + `apcontact`.`following_count` AS `ap-following_count`, + `apcontact`.`followers_count` AS `ap-followers_count`, + `apcontact`.`statuses_count` AS `ap-statuses_count` + FROM `contact` + LEFT JOIN `apcontact` ON `apcontact`.`uri-id` = `contact`.`uri-id` + LEFT JOIN `fcontact` ON `fcontact`.`uri-id` = contact.`uri-id` + WHERE `contact`.`uid` = 0; + +-- +-- VIEW account-user-view +-- +DROP VIEW IF EXISTS `account-user-view`; +CREATE VIEW `account-user-view` AS SELECT + `ucontact`.`id` AS `id`, + `ucontact`.`uid` AS `uid`, + `contact`.`url` AS `url`, + `contact`.`nurl` AS `nurl`, + `contact`.`uri-id` AS `uri-id`, + `contact`.`addr` AS `addr`, + `contact`.`alias` AS `alias`, + `contact`.`name` AS `name`, + `contact`.`nick` AS `nick`, + `contact`.`about` AS `about`, + `contact`.`keywords` AS `keywords`, + `contact`.`xmpp` AS `xmpp`, + `contact`.`avatar` AS `avatar`, + `contact`.`photo` AS `photo`, + `contact`.`thumb` AS `thumb`, + `contact`.`micro` AS `micro`, + `contact`.`header` AS `header`, + `contact`.`created` AS `created`, + `contact`.`updated` AS `updated`, + `ucontact`.`self` AS `self`, + `ucontact`.`remote_self` AS `remote_self`, + `ucontact`.`rel` AS `rel`, + `contact`.`network` AS `network`, + `ucontact`.`protocol` AS `protocol`, + `contact`.`location` AS `location`, + `contact`.`attag` AS `attag`, + `contact`.`pubkey` AS `pubkey`, + `contact`.`prvkey` AS `prvkey`, + `contact`.`subscribe` AS `subscribe`, + `contact`.`last-update` AS `last-update`, + `contact`.`success_update` AS `success_update`, + `contact`.`failure_update` AS `failure_update`, + `contact`.`failed` AS `failed`, + `contact`.`last-item` AS `last-item`, + `contact`.`last-discovery` AS `last-discovery`, + `contact`.`contact-type` AS `contact-type`, + `contact`.`manually-approve` AS `manually-approve`, + `contact`.`unsearchable` AS `unsearchable`, + `contact`.`sensitive` AS `sensitive`, + `contact`.`baseurl` AS `baseurl`, + `contact`.`gsid` AS `gsid`, + `contact`.`info` AS `info`, + `contact`.`bdyear` AS `bdyear`, + `contact`.`bd` AS `bd`, + `contact`.`poco` AS `poco`, + `contact`.`name-date` AS `name-date`, + `contact`.`uri-date` AS `uri-date`, + `contact`.`avatar-date` AS `avatar-date`, + `contact`.`term-date` AS `term-date`, + `contact`.`hidden` AS `global-ignored`, + `contact`.`blocked` AS `global-blocked`, + `ucontact`.`hidden` AS `hidden`, + `ucontact`.`archive` AS `archive`, + `ucontact`.`pending` AS `pending`, + `ucontact`.`deleted` AS `deleted`, + `ucontact`.`notify_new_posts` AS `notify_new_posts`, + `ucontact`.`fetch_further_information` AS `fetch_further_information`, + `ucontact`.`ffi_keyword_denylist` AS `ffi_keyword_denylist`, + `ucontact`.`rating` AS `rating`, + `ucontact`.`readonly` AS `readonly`, + `ucontact`.`blocked` AS `blocked`, + `ucontact`.`block_reason` AS `block_reason`, + `ucontact`.`subhub` AS `subhub`, + `ucontact`.`hub-verify` AS `hub-verify`, + `ucontact`.`reason` AS `reason`, + `ucontact`.`duplex` AS `dfrn-duplex`, + `ucontact`.`ret-aes` AS `dfrn-ret-aes`, + `ucontact`.`site-pubkey` AS `dfrn-site-pubkey`, + `ucontact`.`issued-id` AS `dfrn-issued-id`, + `ucontact`.`dfrn-id` AS `dfrn-id`, + `ucontact`.`aes_allow` AS `dfrn-aes_allow`, + `contact`.`request` AS `dfrn-request`, + `contact`.`notify` AS `dfrn-notify`, + `contact`.`poll` AS `dfrn-poll`, + `contact`.`confirm` AS `dfrn-confirm`, + `fcontact`.`guid` AS `diaspora-guid`, + `fcontact`.`batch` AS `diaspora-batch`, + `fcontact`.`notify` AS `diaspora-notify`, + `fcontact`.`poll` AS `diaspora-poll`, + `fcontact`.`alias` AS `diaspora-alias`, + `apcontact`.`uuid` AS `ap-uuid`, + `apcontact`.`type` AS `ap-type`, + `apcontact`.`following` AS `ap-following`, + `apcontact`.`followers` AS `ap-followers`, + `apcontact`.`inbox` AS `ap-inbox`, + `apcontact`.`outbox` AS `ap-outbox`, + `apcontact`.`sharedinbox` AS `ap-sharedinbox`, + `apcontact`.`generator` AS `ap-generator`, + `apcontact`.`following_count` AS `ap-following_count`, + `apcontact`.`followers_count` AS `ap-followers_count`, + `apcontact`.`statuses_count` AS `ap-statuses_count` + FROM `contact` AS `ucontact` + INNER JOIN `contact` ON `contact`.`uri-id` = `ucontact`.`uri-id` AND `contact`.`uid` = 0 + LEFT JOIN `apcontact` ON `apcontact`.`uri-id` = `ucontact`.`uri-id` + LEFT JOIN `fcontact` ON `fcontact`.`uri-id` = `ucontact`.`uri-id` AND `fcontact`.`network` = 'dspr'; + -- -- VIEW pending-view -- diff --git a/static/dbstructure.config.php b/static/dbstructure.config.php index 7eec39a98..66bed073d 100644 --- a/static/dbstructure.config.php +++ b/static/dbstructure.config.php @@ -55,7 +55,7 @@ use Friendica\Database\DBA; if (!defined('DB_UPDATE_VERSION')) { - define('DB_UPDATE_VERSION', 1427); + define('DB_UPDATE_VERSION', 1428); } return [ diff --git a/static/dbview.config.php b/static/dbview.config.php index f4ff02a26..18cdc16e8 100644 --- a/static/dbview.config.php +++ b/static/dbview.config.php @@ -834,6 +834,184 @@ INNER JOIN `contact` ON `contact`.`uid` = `user`.`uid` AND `contact`.`self` INNER JOIN `profile` ON `profile`.`uid` = `user`.`uid`" ], + "account-view" => [ + "fields" => [ + "id" => ["contact", "id"], + "url" => ["contact", "url"], + "nurl" => ["contact", "nurl"], + "uri-id" => ["contact", "uri-id"], + "addr" => ["contact", "addr"], + "alias" => ["contact", "alias"], + "name" => ["contact", "name"], + "nick" => ["contact", "nick"], + "about" => ["contact", "about"], + "keywords" => ["contact", "keywords"], + "xmpp" => ["contact", "xmpp"], + "avatar" => ["contact", "avatar"], + "photo" => ["contact", "photo"], + "thumb" => ["contact", "thumb"], + "micro" => ["contact", "micro"], + "header" => ["contact", "header"], + "created" => ["contact", "created"], + "updated" => ["contact", "updated"], + "network" => ["contact", "network"], + "protocol" => ["contact", "protocol"], + "location" => ["contact", "location"], + "attag" => ["contact", "attag"], + "pubkey" => ["contact", "pubkey"], + "prvkey" => ["contact", "prvkey"], + "subscribe" => ["contact", "subscribe"], + "last-update" => ["contact", "last-update"], + "success_update" => ["contact", "success_update"], + "failure_update" => ["contact", "failure_update"], + "failed" => ["contact", "failed"], + "last-item" => ["contact", "last-item"], + "last-discovery" => ["contact", "last-discovery"], + "contact-type" => ["contact", "contact-type"], + "manually-approve" => ["contact", "manually-approve"], + "unsearchable" => ["contact", "unsearchable"], + "sensitive" => ["contact", "sensitive"], + "baseurl" => ["contact", "baseurl"], + "gsid" => ["contact", "gsid"], + "info" => ["contact", "info"], + "bdyear" => ["contact", "bdyear"], + "bd" => ["contact", "bd"], + "poco" => ["contact", "poco"], + "name-date" => ["contact", "name-date"], + "uri-date" => ["contact", "uri-date"], + "avatar-date" => ["contact", "avatar-date"], + "term-date" => ["contact", "term-date"], + "global-ignored" => ["contact", "hidden"], + "global-blocked" => ["contact", "blocked"], + "hidden" => ["contact", "hidden"], + "archive" => ["contact", "archive"], + "deleted" => ["contact", "deleted"], + "blocked" => ["contact", "blocked"], + "dfrn-request" => ["contact", "request"], + "dfrn-notify" => ["contact", "notify"], + "dfrn-poll" => ["contact", "poll"], + "dfrn-confirm" => ["contact", "confirm"], + "diaspora-guid" => ["fcontact", "guid"], + "diaspora-batch" => ["fcontact", "batch"], + "diaspora-notify" => ["fcontact", "notify"], + "diaspora-poll" => ["fcontact", "poll"], + "diaspora-alias" => ["fcontact", "alias"], + "ap-uuid" => ["apcontact", "uuid"], + "ap-type" => ["apcontact", "type"], + "ap-following" => ["apcontact", "following"], + "ap-followers" => ["apcontact", "followers"], + "ap-inbox" => ["apcontact", "inbox"], + "ap-outbox" => ["apcontact", "outbox"], + "ap-sharedinbox" => ["apcontact", "sharedinbox"], + "ap-generator" => ["apcontact", "generator"], + "ap-following_count" => ["apcontact", "following_count"], + "ap-followers_count" => ["apcontact", "followers_count"], + "ap-statuses_count" => ["apcontact", "statuses_count"], + ], + "query" => "FROM `contact` + LEFT JOIN `apcontact` ON `apcontact`.`uri-id` = `contact`.`uri-id` + LEFT JOIN `fcontact` ON `fcontact`.`uri-id` = contact.`uri-id` + WHERE `contact`.`uid` = 0" + ], + "account-user-view" => [ + "fields" => [ + "id" => ["ucontact", "id"], + "uid" => ["ucontact", "uid"], + "url" => ["contact", "url"], + "nurl" => ["contact", "nurl"], + "uri-id" => ["contact", "uri-id"], + "addr" => ["contact", "addr"], + "alias" => ["contact", "alias"], + "name" => ["contact", "name"], + "nick" => ["contact", "nick"], + "about" => ["contact", "about"], + "keywords" => ["contact", "keywords"], + "xmpp" => ["contact", "xmpp"], + "avatar" => ["contact", "avatar"], + "photo" => ["contact", "photo"], + "thumb" => ["contact", "thumb"], + "micro" => ["contact", "micro"], + "header" => ["contact", "header"], + "created" => ["contact", "created"], + "updated" => ["contact", "updated"], + "self" => ["ucontact", "self"], + "remote_self" => ["ucontact", "remote_self"], + "rel" => ["ucontact", "rel"], + "network" => ["contact", "network"], + "protocol" => ["ucontact", "protocol"], + "location" => ["contact", "location"], + "attag" => ["contact", "attag"], + "pubkey" => ["contact", "pubkey"], + "prvkey" => ["contact", "prvkey"], + "subscribe" => ["contact", "subscribe"], + "last-update" => ["contact", "last-update"], + "success_update" => ["contact", "success_update"], + "failure_update" => ["contact", "failure_update"], + "failed" => ["contact", "failed"], + "last-item" => ["contact", "last-item"], + "last-discovery" => ["contact", "last-discovery"], + "contact-type" => ["contact", "contact-type"], + "manually-approve" => ["contact", "manually-approve"], + "unsearchable" => ["contact", "unsearchable"], + "sensitive" => ["contact", "sensitive"], + "baseurl" => ["contact", "baseurl"], + "gsid" => ["contact", "gsid"], + "info" => ["contact", "info"], + "bdyear" => ["contact", "bdyear"], + "bd" => ["contact", "bd"], + "poco" => ["contact", "poco"], + "name-date" => ["contact", "name-date"], + "uri-date" => ["contact", "uri-date"], + "avatar-date" => ["contact", "avatar-date"], + "term-date" => ["contact", "term-date"], + "global-ignored" => ["contact", "hidden"], + "global-blocked" => ["contact", "blocked"], + "hidden" => ["ucontact", "hidden"], + "archive" => ["ucontact", "archive"], + "pending" => ["ucontact", "pending"], + "deleted" => ["ucontact", "deleted"], + "notify_new_posts" => ["ucontact", "notify_new_posts"], + "fetch_further_information" => ["ucontact", "fetch_further_information"], + "ffi_keyword_denylist" => ["ucontact", "ffi_keyword_denylist"], + "rating" => ["ucontact", "rating"], + "readonly" => ["ucontact", "readonly"], + "blocked" => ["ucontact", "blocked"], + "block_reason" => ["ucontact", "block_reason"], + "subhub" => ["ucontact", "subhub"], + "hub-verify" => ["ucontact", "hub-verify"], + "reason" => ["ucontact", "reason"], + "dfrn-duplex" => ["ucontact", "duplex"], + "dfrn-ret-aes" => ["ucontact", "ret-aes"], + "dfrn-site-pubkey" => ["ucontact", "site-pubkey"], + "dfrn-issued-id" => ["ucontact", "issued-id"], + "dfrn-id" => ["ucontact", "dfrn-id"], + "dfrn-aes_allow" => ["ucontact", "aes_allow"], + "dfrn-request" => ["contact", "request"], + "dfrn-notify" => ["contact", "notify"], + "dfrn-poll" => ["contact", "poll"], + "dfrn-confirm" => ["contact", "confirm"], + "diaspora-guid" => ["fcontact", "guid"], + "diaspora-batch" => ["fcontact", "batch"], + "diaspora-notify" => ["fcontact", "notify"], + "diaspora-poll" => ["fcontact", "poll"], + "diaspora-alias" => ["fcontact", "alias"], + "ap-uuid" => ["apcontact", "uuid"], + "ap-type" => ["apcontact", "type"], + "ap-following" => ["apcontact", "following"], + "ap-followers" => ["apcontact", "followers"], + "ap-inbox" => ["apcontact", "inbox"], + "ap-outbox" => ["apcontact", "outbox"], + "ap-sharedinbox" => ["apcontact", "sharedinbox"], + "ap-generator" => ["apcontact", "generator"], + "ap-following_count" => ["apcontact", "following_count"], + "ap-followers_count" => ["apcontact", "followers_count"], + "ap-statuses_count" => ["apcontact", "statuses_count"], + ], + "query" => "FROM `contact` AS `ucontact` + INNER JOIN `contact` ON `contact`.`uri-id` = `ucontact`.`uri-id` AND `contact`.`uid` = 0 + LEFT JOIN `apcontact` ON `apcontact`.`uri-id` = `ucontact`.`uri-id` + LEFT JOIN `fcontact` ON `fcontact`.`uri-id` = `ucontact`.`uri-id` AND `fcontact`.`network` = 'dspr'" + ], "pending-view" => [ "fields" => [ "id" => ["register", "id"], From 58b84ca01dc03a95377e0f8b495b31f313702675 Mon Sep 17 00:00:00 2001 From: Michael Date: Sun, 11 Jul 2021 03:06:46 +0000 Subject: [PATCH 2/2] Public id added --- database.sql | 1 + static/dbview.config.php | 1 + 2 files changed, 2 insertions(+) diff --git a/database.sql b/database.sql index b9c3b3257..0b1a34f21 100644 --- a/database.sql +++ b/database.sql @@ -2482,6 +2482,7 @@ CREATE VIEW `account-view` AS SELECT DROP VIEW IF EXISTS `account-user-view`; CREATE VIEW `account-user-view` AS SELECT `ucontact`.`id` AS `id`, + `contact`.`id` AS `pid`, `ucontact`.`uid` AS `uid`, `contact`.`url` AS `url`, `contact`.`nurl` AS `nurl`, diff --git a/static/dbview.config.php b/static/dbview.config.php index 18cdc16e8..bb2cd0f17 100644 --- a/static/dbview.config.php +++ b/static/dbview.config.php @@ -916,6 +916,7 @@ "account-user-view" => [ "fields" => [ "id" => ["ucontact", "id"], + "pid" => ["contact", "id"], "uid" => ["ucontact", "uid"], "url" => ["contact", "url"], "nurl" => ["contact", "nurl"],