Merge pull request #10483 from annando/account
New view that combines all contact tables
This commit is contained in:
commit
780d9f1793
3 changed files with 364 additions and 2 deletions
185
database.sql
185
database.sql
|
@ -1,6 +1,6 @@
|
|||
-- ------------------------------------------
|
||||
-- Friendica 2021.09-dev (Siberian Iris)
|
||||
-- DB_UPDATE_VERSION 1427
|
||||
-- DB_UPDATE_VERSION 1428
|
||||
-- ------------------------------------------
|
||||
|
||||
|
||||
|
@ -2395,6 +2395,189 @@ 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`,
|
||||
`contact`.`id` AS `pid`,
|
||||
`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
|
||||
--
|
||||
|
|
|
@ -55,7 +55,7 @@
|
|||
use Friendica\Database\DBA;
|
||||
|
||||
if (!defined('DB_UPDATE_VERSION')) {
|
||||
define('DB_UPDATE_VERSION', 1427);
|
||||
define('DB_UPDATE_VERSION', 1428);
|
||||
}
|
||||
|
||||
return [
|
||||
|
|
|
@ -834,6 +834,185 @@
|
|||
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"],
|
||||
"pid" => ["contact", "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"],
|
||||
|
|
Loading…
Reference in a new issue