Skip to content
Snippets Groups Projects
Commit 50be8ccc authored by Mariusz Trela's avatar Mariusz Trela
Browse files

An execution of `hive_accounts_info_view` view is faster

parent 07844132
No related branches found
No related tags found
5 merge requests!456Release candidate v1 24,!230Setup monitoring with pghero,!138Small typos fixed,!135Enable postgres monitoring on CI server,!110Teh call `get_profile` works
...@@ -567,62 +567,61 @@ def setup(db): ...@@ -567,62 +567,61 @@ def setup(db):
CREATE OR REPLACE VIEW public.hive_accounts_info_view CREATE OR REPLACE VIEW public.hive_accounts_info_view
AS AS
SELECT id, SELECT
name, id,
display_name, name,
about, display_name,
reputation, about,
created_at, reputation,
profile_image, created_at,
location, profile_image,
website, location,
cover_image, website,
rank, cover_image,
following, rank,
followers, following,
followers,
(
CASE
WHEN COALESCE( post_info.post_active_at, '1970-01-01 00:00:00.0' ) > COALESCE( vote_info.vote_active_at, '1970-01-01 00:00:00.0' ) THEN
( (
CASE CASE
WHEN post_info.post_active_at > vote_info.vote_active_at THEN WHEN COALESCE( post_info.post_active_at, '1970-01-01 00:00:00.0' ) > created_at THEN
( COALESCE( post_info.post_active_at, '1970-01-01 00:00:00.0' )
CASE ELSE
WHEN post_info.post_active_at > created_at THEN created_at
post_info.post_active_at END
ELSE )
created_at ELSE
END (
) CASE
ELSE WHEN COALESCE( vote_info.vote_active_at, '1970-01-01 00:00:00.0' ) > created_at THEN
( COALESCE( vote_info.vote_active_at, '1970-01-01 00:00:00.0' )
CASE ELSE
WHEN vote_info.vote_active_at > created_at THEN created_at
vote_info.vote_active_at END
ELSE )
created_at END
END ) active_at,
) proxy,
END proxy_weight,
) active_at, lastread_at,
proxy, cached_at,
proxy_weight, raw_json,
lastread_at, COALESCE( post_info.post_count, 0 ) post_count
cached_at, from hive_accounts ha
raw_json, LEFT JOIN
post_info.post_count post_count (
FROM hive_accounts ha select count(*) post_count, max(created_at) post_active_at, author_id
INNER JOIN from hive_posts
( GROUP BY author_id
select COALESCE( count(*), 0 ) post_count, COALESCE( max(hp.created_at), '1970-01-01 00:00:00.0' ) post_active_at, ha.id id_internal ) post_info ON ha.id=post_info.author_id
from hive_posts hp LEFT JOIN
RIGHT JOIN hive_accounts ha ON hp.author_id = ha.id (
GROUP BY ha.id select max(last_update) vote_active_at, voter_id
) post_info ON ha.id = post_info.id_internal from hive_votes
INNER JOIN GROUP BY voter_id
( )vote_info ON ha.id=vote_info.voter_id
select COALESCE( max(hv.last_update), '1970-01-01 00:00:00.0' ) vote_active_at, ha.id id_internal
from hive_votes hv
RIGHT JOIN hive_accounts ha ON hv.voter_id = ha.id
GROUP BY ha.id
) vote_info ON ha.id = vote_info.id_internal
""" """
db.query_no_return(sql) db.query_no_return(sql)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment