API: (hopefully) improves speed of the public timeline

This commit is contained in:
Michael 2021-06-12 15:19:56 +00:00
parent cd8ce7eada
commit 24cc82f396
6 changed files with 124 additions and 11 deletions

View file

@ -55,7 +55,7 @@
use Friendica\Database\DBA;
if (!defined('DB_UPDATE_VERSION')) {
define('DB_UPDATE_VERSION', 1421);
define('DB_UPDATE_VERSION', 1422);
}
return [

View file

@ -356,6 +356,8 @@
"parent-author-link" => ["parent-post-author", "url"],
"parent-author-name" => ["parent-post-author", "name"],
"parent-author-network" => ["parent-post-author", "network"],
"parent-author-blocked" => ["parent-post-author", "blocked"],
"parent-author-hidden" => ["parent-post-author", "hidden"],
],
"query" => "FROM `post-thread-user`
INNER JOIN `post-user` ON `post-user`.`id` = `post-thread-user`.`post-user-id`
@ -417,6 +419,31 @@
"target-type" => ["post-content", "target-type"],
"target" => ["post-content", "target"],
"resource-id" => ["post-content", "resource-id"],
"contact-id" => ["post", "author-id"],
"contact-link" => ["author", "url"],
"contact-addr" => ["author", "addr"],
"contact-name" => ["author", "name"],
"contact-nick" => ["author", "nick"],
"contact-avatar" => ["author", "thumb"],
"contact-network" => ["author", "network"],
"contact-blocked" => ["author", "blocked"],
"contact-hidden" => ["author", "hidden"],
"contact-readonly" => ["author", "readonly"],
"contact-archive" => ["author", "archive"],
"contact-pending" => ["author", "pending"],
"contact-rel" => ["author", "rel"],
"contact-uid" => ["author", "uid"],
"contact-contact-type" => ["author", "contact-type"],
"writable" => "IF (`post`.`network` IN ('apub', 'dfrn', 'dspr', 'stat'), true, `author`.`writable`)",
"self" => "false",
"cid" => ["author", "id"],
"alias" => ["author", "alias"],
"photo" => ["author", "photo"],
"name-date" => ["author", "name-date"],
"uri-date" => ["author", "uri-date"],
"avatar-date" => ["author", "avatar-date"],
"thumb" => ["author", "thumb"],
"dfrn-id" => ["author", "dfrn-id"],
"author-id" => ["post", "author-id"],
"author-link" => ["author", "url"],
"author-addr" => ["author", "addr"],
@ -453,6 +480,8 @@
"parent-author-link" => ["parent-post-author", "url"],
"parent-author-name" => ["parent-post-author", "name"],
"parent-author-network" => ["parent-post-author", "network"],
"parent-author-blocked" => ["parent-post-author", "blocked"],
"parent-author-hidden" => ["parent-post-author", "hidden"],
],
"query" => "FROM `post`
STRAIGHT_JOIN `post-thread` ON `post-thread`.`uri-id` = `post`.`parent-uri-id`
@ -510,6 +539,31 @@
"target-type" => ["post-content", "target-type"],
"target" => ["post-content", "target"],
"resource-id" => ["post-content", "resource-id"],
"contact-id" => ["post-thread", "author-id"],
"contact-link" => ["author", "url"],
"contact-addr" => ["author", "addr"],
"contact-name" => ["author", "name"],
"contact-nick" => ["author", "nick"],
"contact-avatar" => ["author", "thumb"],
"contact-network" => ["author", "network"],
"contact-blocked" => ["author", "blocked"],
"contact-hidden" => ["author", "hidden"],
"contact-readonly" => ["author", "readonly"],
"contact-archive" => ["author", "archive"],
"contact-pending" => ["author", "pending"],
"contact-rel" => ["author", "rel"],
"contact-uid" => ["author", "uid"],
"contact-contact-type" => ["author", "contact-type"],
"writable" => "IF (`post`.`network` IN ('apub', 'dfrn', 'dspr', 'stat'), true, `author`.`writable`)",
"self" => "false",
"cid" => ["author", "id"],
"alias" => ["author", "alias"],
"photo" => ["author", "photo"],
"name-date" => ["author", "name-date"],
"uri-date" => ["author", "uri-date"],
"avatar-date" => ["author", "avatar-date"],
"thumb" => ["author", "thumb"],
"dfrn-id" => ["author", "dfrn-id"],
"author-id" => ["post-thread", "author-id"],
"author-link" => ["author", "url"],
"author-addr" => ["author", "addr"],
@ -546,6 +600,8 @@
"parent-author-link" => ["parent-post-author", "url"],
"parent-author-name" => ["parent-post-author", "name"],
"parent-author-network" => ["parent-post-author", "network"],
"parent-author-blocked" => ["parent-post-author", "blocked"],
"parent-author-hidden" => ["parent-post-author", "hidden"],
],
"query" => "FROM `post-thread`
INNER JOIN `post` ON `post`.`uri-id` = `post-thread`.`uri-id`