Skip to content
Snippets Groups Projects
Commit 13cf6073 authored by Jason Salyers's avatar Jason Salyers
Browse files

[JES] Add the new muting to the rest of the get_ranked_post functions

parent dd7a06fb
No related branches found
No related tags found
2 merge requests!456Release candidate v1 24,!370Jsalyers muting at sql level
...@@ -56,7 +56,7 @@ BEGIN ...@@ -56,7 +56,7 @@ BEGIN
LIMIT _limit LIMIT _limit
) as created ) as created
JOIN hive_posts_view hp ON hp.id = created.id JOIN hive_posts_view hp ON hp.id = created.id
WHERE (CASE WHEN _observer <> '' THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE True END) WHERE (CASE WHEN _observer IS NOT NULL THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE True END)
ORDER BY created.id DESC ORDER BY created.id DESC
LIMIT _limit; LIMIT _limit;
END END
...@@ -64,7 +64,7 @@ $function$ ...@@ -64,7 +64,7 @@ $function$
language plpgsql STABLE; language plpgsql STABLE;
DROP FUNCTION IF EXISTS bridge_get_ranked_post_by_hot; DROP FUNCTION IF EXISTS bridge_get_ranked_post_by_hot;
CREATE FUNCTION bridge_get_ranked_post_by_hot( in _author VARCHAR, in _permlink VARCHAR, in _limit SMALLINT ) CREATE FUNCTION bridge_get_ranked_post_by_hot( in _author VARCHAR, in _permlink VARCHAR, in _limit SMALLINT, in _observer VARCHAR )
RETURNS SETOF bridge_api_post RETURNS SETOF bridge_api_post
AS AS
$function$ $function$
...@@ -127,6 +127,7 @@ BEGIN ...@@ -127,6 +127,7 @@ BEGIN
LIMIT _limit LIMIT _limit
) as hot ) as hot
JOIN hive_posts_view hp ON hp.id = hot.id JOIN hive_posts_view hp ON hp.id = hot.id
WHERE (CASE WHEN _observer IS NOT NULL THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE True END)
ORDER BY hot.hot DESC, hot.id DESC ORDER BY hot.hot DESC, hot.id DESC
LIMIT _limit; LIMIT _limit;
END END
...@@ -134,7 +135,7 @@ $function$ ...@@ -134,7 +135,7 @@ $function$
language plpgsql STABLE; language plpgsql STABLE;
DROP FUNCTION IF EXISTS bridge_get_ranked_post_by_muted; DROP FUNCTION IF EXISTS bridge_get_ranked_post_by_muted;
CREATE FUNCTION bridge_get_ranked_post_by_muted( in _author VARCHAR, in _permlink VARCHAR, in _limit SMALLINT ) CREATE FUNCTION bridge_get_ranked_post_by_muted( in _author VARCHAR, in _permlink VARCHAR, in _limit SMALLINT, in _observer VARCHAR )
RETURNS SETOF bridge_api_post RETURNS SETOF bridge_api_post
AS AS
$function$ $function$
...@@ -198,6 +199,7 @@ BEGIN ...@@ -198,6 +199,7 @@ BEGIN
LIMIT _limit LIMIT _limit
) as payout ) as payout
JOIN hive_posts_view hp ON hp.id = payout.id JOIN hive_posts_view hp ON hp.id = payout.id
WHERE (CASE WHEN _observer IS NOT NULL THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE True END)
ORDER BY payout.all_payout DESC, payout.id DESC ORDER BY payout.all_payout DESC, payout.id DESC
LIMIT _limit; LIMIT _limit;
END END
...@@ -205,7 +207,7 @@ $function$ ...@@ -205,7 +207,7 @@ $function$
language plpgsql STABLE; language plpgsql STABLE;
DROP FUNCTION IF EXISTS bridge_get_ranked_post_by_payout_comments; DROP FUNCTION IF EXISTS bridge_get_ranked_post_by_payout_comments;
CREATE FUNCTION bridge_get_ranked_post_by_payout_comments( in _author VARCHAR, in _permlink VARCHAR, in _limit SMALLINT ) CREATE FUNCTION bridge_get_ranked_post_by_payout_comments( in _author VARCHAR, in _permlink VARCHAR, in _limit SMALLINT, in _observer VARCHAR )
RETURNS SETOF bridge_api_post RETURNS SETOF bridge_api_post
AS AS
$function$ $function$
...@@ -268,6 +270,7 @@ BEGIN ...@@ -268,6 +270,7 @@ BEGIN
LIMIT _limit LIMIT _limit
) as payout ) as payout
JOIN hive_posts_view hp ON hp.id = payout.id JOIN hive_posts_view hp ON hp.id = payout.id
WHERE (CASE WHEN _observer IS NOT NULL THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE True END)
ORDER BY payout.all_payout DESC, payout.id DESC ORDER BY payout.all_payout DESC, payout.id DESC
LIMIT _limit; LIMIT _limit;
END END
...@@ -275,7 +278,7 @@ $function$ ...@@ -275,7 +278,7 @@ $function$
language plpgsql STABLE; language plpgsql STABLE;
DROP FUNCTION IF EXISTS bridge_get_ranked_post_by_payout; DROP FUNCTION IF EXISTS bridge_get_ranked_post_by_payout;
CREATE FUNCTION bridge_get_ranked_post_by_payout( in _author VARCHAR, in _permlink VARCHAR, in _limit SMALLINT, in _bridge_api BOOLEAN ) CREATE FUNCTION bridge_get_ranked_post_by_payout( in _author VARCHAR, in _permlink VARCHAR, in _limit SMALLINT, in _bridge_api BOOLEAN, in _observer VARCHAR )
RETURNS SETOF bridge_api_post RETURNS SETOF bridge_api_post
AS AS
$function$ $function$
...@@ -341,6 +344,7 @@ BEGIN ...@@ -341,6 +344,7 @@ BEGIN
LIMIT _limit LIMIT _limit
) as payout ) as payout
JOIN hive_posts_view hp ON hp.id = payout.id JOIN hive_posts_view hp ON hp.id = payout.id
WHERE (CASE WHEN _observer IS NOT NULL THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE True END)
ORDER BY payout.all_payout DESC, payout.id DESC ORDER BY payout.all_payout DESC, payout.id DESC
LIMIT _limit; LIMIT _limit;
END END
...@@ -348,7 +352,7 @@ $function$ ...@@ -348,7 +352,7 @@ $function$
language plpgsql STABLE; language plpgsql STABLE;
DROP FUNCTION IF EXISTS bridge_get_ranked_post_by_promoted; DROP FUNCTION IF EXISTS bridge_get_ranked_post_by_promoted;
CREATE FUNCTION bridge_get_ranked_post_by_promoted( in _author VARCHAR, in _permlink VARCHAR, in _limit SMALLINT ) CREATE FUNCTION bridge_get_ranked_post_by_promoted( in _author VARCHAR, in _permlink VARCHAR, in _limit SMALLINT, in _observer VARCHAR )
RETURNS SETOF bridge_api_post RETURNS SETOF bridge_api_post
AS AS
$function$ $function$
...@@ -411,6 +415,7 @@ BEGIN ...@@ -411,6 +415,7 @@ BEGIN
LIMIT _limit LIMIT _limit
) as promoted ) as promoted
JOIN hive_posts_view hp ON hp.id = promoted.id JOIN hive_posts_view hp ON hp.id = promoted.id
WHERE (CASE WHEN _observer IS NOT NULL THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE True END)
ORDER BY promoted.promoted DESC, promoted.id DESC ORDER BY promoted.promoted DESC, promoted.id DESC
LIMIT _limit; LIMIT _limit;
END END
...@@ -418,7 +423,7 @@ $function$ ...@@ -418,7 +423,7 @@ $function$
language plpgsql STABLE; language plpgsql STABLE;
DROP FUNCTION IF EXISTS bridge_get_ranked_post_by_trends; DROP FUNCTION IF EXISTS bridge_get_ranked_post_by_trends;
CREATE FUNCTION bridge_get_ranked_post_by_trends( in _author VARCHAR, in _permlink VARCHAR, in _limit SMALLINT ) CREATE FUNCTION bridge_get_ranked_post_by_trends( in _author VARCHAR, in _permlink VARCHAR, in _limit SMALLINT, in _observer VARCHAR )
RETURNS SETOF bridge_api_post RETURNS SETOF bridge_api_post
AS AS
$function$ $function$
...@@ -481,6 +486,7 @@ BEGIN ...@@ -481,6 +486,7 @@ BEGIN
LIMIT _limit LIMIT _limit
) as trends ) as trends
JOIN hive_posts_view hp ON hp.id = trends.id JOIN hive_posts_view hp ON hp.id = trends.id
WHERE (CASE WHEN _observer IS NOT NULL THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE True END)
ORDER BY trends.trend DESC, trends.id DESC ORDER BY trends.trend DESC, trends.id DESC
LIMIT _limit; LIMIT _limit;
END END
......
...@@ -45,6 +45,7 @@ $function$ ...@@ -45,6 +45,7 @@ $function$
hive_posts_view hp hive_posts_view hp
JOIN hive_communities hc ON hc.id = hp.community_id JOIN hive_communities hc ON hc.id = hp.community_id
WHERE hc.name = _community AND hp.is_pinned WHERE hc.name = _community AND hp.is_pinned
AND (CASE WHEN _observer IS NOT NULL THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE true END)
ORDER BY hp.id DESC ORDER BY hp.id DESC
LIMIT _limit; LIMIT _limit;
$function$ $function$
...@@ -116,6 +117,7 @@ BEGIN ...@@ -116,6 +117,7 @@ BEGIN
LIMIT _limit LIMIT _limit
) as trends ) as trends
JOIN hive_posts_view hp ON hp.id = trends.id JOIN hive_posts_view hp ON hp.id = trends.id
WHERE (CASE WHEN _observer IS NOT NULL THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE true END)
ORDER BY trends.trend DESC, trends.id DESC ORDER BY trends.trend DESC, trends.id DESC
LIMIT _limit; LIMIT _limit;
END END
...@@ -187,6 +189,7 @@ BEGIN ...@@ -187,6 +189,7 @@ BEGIN
LIMIT _limit LIMIT _limit
) as promoted ) as promoted
JOIN hive_posts_view hp ON hp.id = promoted.id JOIN hive_posts_view hp ON hp.id = promoted.id
WHERE (CASE WHEN _observer IS NOT NULL THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE true END)
ORDER BY promoted.promoted DESC, promoted.id DESC ORDER BY promoted.promoted DESC, promoted.id DESC
LIMIT _limit; LIMIT _limit;
END END
...@@ -260,6 +263,7 @@ BEGIN ...@@ -260,6 +263,7 @@ BEGIN
LIMIT _limit LIMIT _limit
) as payout ) as payout
JOIN hive_posts_view hp ON hp.id = payout.id JOIN hive_posts_view hp ON hp.id = payout.id
WHERE (CASE WHEN _observer IS NOT NULL THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE true END)
ORDER BY payout.all_payout DESC, payout.id DESC ORDER BY payout.all_payout DESC, payout.id DESC
LIMIT _limit; LIMIT _limit;
END END
...@@ -331,6 +335,7 @@ BEGIN ...@@ -331,6 +335,7 @@ BEGIN
LIMIT _limit LIMIT _limit
) as payout ) as payout
JOIN hive_posts_view hp ON hp.id = payout.id JOIN hive_posts_view hp ON hp.id = payout.id
WHERE (CASE WHEN _observer IS NOT NULL THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE true END)
ORDER BY payout.all_payout DESC, payout.id DESC ORDER BY payout.all_payout DESC, payout.id DESC
LIMIT _limit; LIMIT _limit;
END END
...@@ -403,6 +408,7 @@ BEGIN ...@@ -403,6 +408,7 @@ BEGIN
LIMIT _limit LIMIT _limit
) as payout ) as payout
JOIN hive_posts_view hp ON hp.id = payout.id JOIN hive_posts_view hp ON hp.id = payout.id
WHERE (CASE WHEN _observer IS NOT NULL THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE true END)
ORDER BY payout.all_payout DESC, payout.id DESC ORDER BY payout.all_payout DESC, payout.id DESC
LIMIT _limit; LIMIT _limit;
END END
...@@ -474,6 +480,7 @@ BEGIN ...@@ -474,6 +480,7 @@ BEGIN
LIMIT _limit LIMIT _limit
) as hot ) as hot
JOIN hive_posts_view hp ON hp.id = hot.id JOIN hive_posts_view hp ON hp.id = hot.id
WHERE (CASE WHEN _observer IS NOT NULL THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE true END)
ORDER BY hot.hot DESC, hot.id DESC ORDER BY hot.hot DESC, hot.id DESC
LIMIT _limit; LIMIT _limit;
END END
......
...@@ -52,7 +52,7 @@ BEGIN ...@@ -52,7 +52,7 @@ BEGIN
JOIN hive_subscriptions hs ON hp.community_id = hs.community_id JOIN hive_subscriptions hs ON hp.community_id = hs.community_id
JOIN hive_accounts_view ha ON ha.id = hp.author_id JOIN hive_accounts_view ha ON ha.id = hp.author_id
WHERE hs.account_id = __account_id AND hp.depth = 0 AND NOT ha.is_grayed AND ( __post_id = 0 OR hp.id < __post_id ) WHERE hs.account_id = __account_id AND hp.depth = 0 AND NOT ha.is_grayed AND ( __post_id = 0 OR hp.id < __post_id )
AND hp.author NOT IN (SELECT muted FROM muted_accounts_view WHERE observer = _observer) AND (CASE WHEN _observer IS NOT NULL THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE True END)
ORDER BY hp.id DESC ORDER BY hp.id DESC
LIMIT _limit; LIMIT _limit;
END END
...@@ -117,7 +117,7 @@ BEGIN ...@@ -117,7 +117,7 @@ BEGIN
JOIN hive_subscriptions hs ON hp.community_id = hs.community_id JOIN hive_subscriptions hs ON hp.community_id = hs.community_id
WHERE hs.account_id = __account_id AND NOT hp.is_paidout AND hp.depth = 0 WHERE hs.account_id = __account_id AND NOT hp.is_paidout AND hp.depth = 0
AND ( __post_id = 0 OR hp.sc_hot < __hot_limit OR ( hp.sc_hot = __hot_limit AND hp.id < __post_id ) ) AND ( __post_id = 0 OR hp.sc_hot < __hot_limit OR ( hp.sc_hot = __hot_limit AND hp.id < __post_id ) )
AND hp.author NOT IN (SELECT muted FROM muted_accounts_view WHERE observer = _observer) AND (CASE WHEN _observer IS NOT NULL THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE True END)
ORDER BY hp.sc_hot DESC, hp.id DESC ORDER BY hp.sc_hot DESC, hp.id DESC
LIMIT _limit; LIMIT _limit;
END END
...@@ -191,7 +191,7 @@ BEGIN ...@@ -191,7 +191,7 @@ BEGIN
LIMIT _limit LIMIT _limit
) as payout ) as payout
JOIN hive_posts_view hp ON hp.id = payout.id JOIN hive_posts_view hp ON hp.id = payout.id
WHERE hp.author NOT IN (SELECT muted FROM muted_accounts_view WHERE observer = _observer) WHERE (CASE WHEN _observer IS NOT NULL THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE True END)
ORDER BY payout.all_payout DESC, payout.id DESC ORDER BY payout.all_payout DESC, payout.id DESC
LIMIT _limit; LIMIT _limit;
END END
...@@ -258,7 +258,7 @@ BEGIN ...@@ -258,7 +258,7 @@ BEGIN
JOIN hive_subscriptions hs ON hp.community_id = hs.community_id JOIN hive_subscriptions hs ON hp.community_id = hs.community_id
WHERE hs.account_id = __account_id AND NOT hp.is_paidout AND hp.payout_at BETWEEN __head_block_time + interval '12 hours' AND __head_block_time + interval '36 hours' WHERE hs.account_id = __account_id AND NOT hp.is_paidout AND hp.payout_at BETWEEN __head_block_time + interval '12 hours' AND __head_block_time + interval '36 hours'
AND ( __post_id = 0 OR ( hp.payout + hp.pending_payout ) < __payout_limit OR ( ( hp.payout + hp.pending_payout ) = __payout_limit AND hp.id < __post_id ) ) AND ( __post_id = 0 OR ( hp.payout + hp.pending_payout ) < __payout_limit OR ( ( hp.payout + hp.pending_payout ) = __payout_limit AND hp.id < __post_id ) )
AND hp.author NOT IN (SELECT muted FROM muted_accounts_view WHERE observer = _observer) AND (CASE WHEN _observer IS NOT NULL THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE True END)
ORDER BY ( hp.payout + hp.pending_payout ) DESC, hp.id DESC ORDER BY ( hp.payout + hp.pending_payout ) DESC, hp.id DESC
LIMIT _limit; LIMIT _limit;
END END
...@@ -323,7 +323,7 @@ BEGIN ...@@ -323,7 +323,7 @@ BEGIN
JOIN hive_subscriptions hs ON hp.community_id = hs.community_id JOIN hive_subscriptions hs ON hp.community_id = hs.community_id
WHERE hs.account_id = __account_id AND NOT hp.is_paidout AND hp.promoted > 0 WHERE hs.account_id = __account_id AND NOT hp.is_paidout AND hp.promoted > 0
AND ( __post_id = 0 OR hp.promoted < __promoted_limit OR ( hp.promoted = __promoted_limit AND hp.id < __post_id ) ) AND ( __post_id = 0 OR hp.promoted < __promoted_limit OR ( hp.promoted = __promoted_limit AND hp.id < __post_id ) )
AND hp.author NOT IN (SELECT muted FROM muted_accounts_view WHERE observer = _observer) AND (CASE WHEN _observer IS NOT NULL THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE True END)
ORDER BY hp.promoted DESC, hp.id DESC ORDER BY hp.promoted DESC, hp.id DESC
LIMIT _limit; LIMIT _limit;
END END
...@@ -399,7 +399,7 @@ BEGIN ...@@ -399,7 +399,7 @@ BEGIN
LIMIT _limit LIMIT _limit
) trending ) trending
JOIN hive_posts_view hp ON trending.id = hp.id JOIN hive_posts_view hp ON trending.id = hp.id
WHERE hp.author NOT IN (SELECT muted FROM muted_accounts_view WHERE observer = _observer) WHERE (CASE WHEN _observer IS NOT NULL THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE True END)
ORDER BY trending.sc_trend DESC, trending.id DESC ORDER BY trending.sc_trend DESC, trending.id DESC
LIMIT _limit; LIMIT _limit;
END END
...@@ -465,7 +465,7 @@ BEGIN ...@@ -465,7 +465,7 @@ BEGIN
JOIN hive_accounts_view ha ON ha.id = hp.author_id JOIN hive_accounts_view ha ON ha.id = hp.author_id
WHERE hs.account_id = __account_id AND NOT hp.is_paidout AND ha.is_grayed AND ( hp.payout + hp.pending_payout ) > 0 WHERE hs.account_id = __account_id AND NOT hp.is_paidout AND ha.is_grayed AND ( hp.payout + hp.pending_payout ) > 0
AND ( __post_id = 0 OR ( hp.payout + hp.pending_payout ) < __payout_limit OR ( ( hp.payout + hp.pending_payout ) = __payout_limit AND hp.id < __post_id ) ) AND ( __post_id = 0 OR ( hp.payout + hp.pending_payout ) < __payout_limit OR ( ( hp.payout + hp.pending_payout ) = __payout_limit AND hp.id < __post_id ) )
AND hp.author NOT IN (SELECT muted FROM muted_accounts_view WHERE observer = _observer) AND (CASE WHEN _observer IS NOT NULL THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE True END)
ORDER BY ( hp.payout + hp.pending_payout ) DESC, hp.id DESC ORDER BY ( hp.payout + hp.pending_payout ) DESC, hp.id DESC
LIMIT _limit; LIMIT _limit;
END END
......
...@@ -56,12 +56,12 @@ BEGIN ...@@ -56,12 +56,12 @@ BEGIN
JOIN hive_posts hp1 ON hp1.id = hpt.post_id JOIN hive_posts hp1 ON hp1.id = hpt.post_id
JOIN hive_accounts_view ha ON hp1.author_id = ha.id JOIN hive_accounts_view ha ON hp1.author_id = ha.id
WHERE hpt.tag_id = __hive_tag AND hp1.counter_deleted = 0 AND hp1.depth = 0 AND NOT ha.is_grayed AND ( __post_id = 0 OR hp1.id < __post_id ) WHERE hpt.tag_id = __hive_tag AND hp1.counter_deleted = 0 AND hp1.depth = 0 AND NOT ha.is_grayed AND ( __post_id = 0 OR hp1.id < __post_id )
AND (CASE WHEN _observer <> '' THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE true END)
--ORDER BY hp1.id + 0 DESC -- this workaround helped the query to better choose indexes, but after some time it started to significally slow down --ORDER BY hp1.id + 0 DESC -- this workaround helped the query to better choose indexes, but after some time it started to significally slow down
ORDER BY hp1.id DESC ORDER BY hp1.id DESC
LIMIT _limit LIMIT _limit
) as created ) as created
JOIN hive_posts_view hp ON hp.id = created.id JOIN hive_posts_view hp ON hp.id = created.id
WHERE (CASE WHEN _observer IS NOT NULL THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE true END)
ORDER BY created.id DESC ORDER BY created.id DESC
LIMIT _limit; LIMIT _limit;
END END
...@@ -69,7 +69,7 @@ $function$ ...@@ -69,7 +69,7 @@ $function$
language plpgsql STABLE; language plpgsql STABLE;
DROP FUNCTION IF EXISTS bridge_get_ranked_post_by_hot_for_tag; DROP FUNCTION IF EXISTS bridge_get_ranked_post_by_hot_for_tag;
CREATE FUNCTION bridge_get_ranked_post_by_hot_for_tag( in _tag VARCHAR, in _author VARCHAR, in _permlink VARCHAR, in _limit SMALLINT ) CREATE FUNCTION bridge_get_ranked_post_by_hot_for_tag( in _tag VARCHAR, in _author VARCHAR, in _permlink VARCHAR, in _limit SMALLINT, in _observer VARCHAR )
RETURNS SETOF bridge_api_post RETURNS SETOF bridge_api_post
AS AS
$function$ $function$
...@@ -135,6 +135,7 @@ BEGIN ...@@ -135,6 +135,7 @@ BEGIN
LIMIT _limit LIMIT _limit
) as hot ) as hot
JOIN hive_posts_view hp ON hp.id = hot.id JOIN hive_posts_view hp ON hp.id = hot.id
WHERE (CASE WHEN _observer IS NOT NULL THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE true END)
ORDER BY hot.hot DESC, hot.id DESC ORDER BY hot.hot DESC, hot.id DESC
LIMIT _limit; LIMIT _limit;
END END
...@@ -142,7 +143,7 @@ $function$ ...@@ -142,7 +143,7 @@ $function$
language plpgsql STABLE; language plpgsql STABLE;
DROP FUNCTION IF EXISTS bridge_get_ranked_post_by_muted_for_tag; DROP FUNCTION IF EXISTS bridge_get_ranked_post_by_muted_for_tag;
CREATE FUNCTION bridge_get_ranked_post_by_muted_for_tag( in _tag VARCHAR, in _author VARCHAR, in _permlink VARCHAR, in _limit SMALLINT ) CREATE FUNCTION bridge_get_ranked_post_by_muted_for_tag( in _tag VARCHAR, in _author VARCHAR, in _permlink VARCHAR, in _limit SMALLINT, in _observer VARCHAR )
RETURNS SETOF bridge_api_post RETURNS SETOF bridge_api_post
AS AS
$function$ $function$
...@@ -209,6 +210,7 @@ BEGIN ...@@ -209,6 +210,7 @@ BEGIN
LIMIT _limit LIMIT _limit
) as payout ) as payout
JOIN hive_posts_view hp ON hp.id = payout.id JOIN hive_posts_view hp ON hp.id = payout.id
WHERE (CASE WHEN _observer IS NOT NULL THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE true END)
ORDER BY payout.all_payout DESC, payout.id DESC ORDER BY payout.all_payout DESC, payout.id DESC
LIMIT _limit; LIMIT _limit;
END END
...@@ -216,7 +218,7 @@ $function$ ...@@ -216,7 +218,7 @@ $function$
language plpgsql STABLE; language plpgsql STABLE;
DROP FUNCTION IF EXISTS bridge_get_ranked_post_by_payout_comments_for_category; DROP FUNCTION IF EXISTS bridge_get_ranked_post_by_payout_comments_for_category;
CREATE FUNCTION bridge_get_ranked_post_by_payout_comments_for_category( in _category VARCHAR, in _author VARCHAR, in _permlink VARCHAR, in _limit SMALLINT ) CREATE FUNCTION bridge_get_ranked_post_by_payout_comments_for_category( in _category VARCHAR, in _author VARCHAR, in _permlink VARCHAR, in _limit SMALLINT, in _observer VARCHAR )
RETURNS SETOF bridge_api_post RETURNS SETOF bridge_api_post
AS AS
$function$ $function$
...@@ -281,6 +283,7 @@ BEGIN ...@@ -281,6 +283,7 @@ BEGIN
LIMIT _limit LIMIT _limit
) as payout ) as payout
JOIN hive_posts_view hp ON hp.id = payout.id JOIN hive_posts_view hp ON hp.id = payout.id
WHERE (CASE WHEN _observer IS NOT NULL THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE true END)
ORDER BY payout.all_payout DESC, payout.id DESC ORDER BY payout.all_payout DESC, payout.id DESC
LIMIT _limit; LIMIT _limit;
END END
...@@ -288,7 +291,7 @@ $function$ ...@@ -288,7 +291,7 @@ $function$
language plpgsql STABLE; language plpgsql STABLE;
DROP FUNCTION IF EXISTS bridge_get_ranked_post_by_payout_for_category; DROP FUNCTION IF EXISTS bridge_get_ranked_post_by_payout_for_category;
CREATE FUNCTION bridge_get_ranked_post_by_payout_for_category( in _category VARCHAR, in _author VARCHAR, in _permlink VARCHAR, in _limit SMALLINT, in _bridge_api BOOLEAN ) CREATE FUNCTION bridge_get_ranked_post_by_payout_for_category( in _category VARCHAR, in _author VARCHAR, in _permlink VARCHAR, in _limit SMALLINT, in _bridge_api BOOLEAN, in _observer VARCHAR )
RETURNS SETOF bridge_api_post RETURNS SETOF bridge_api_post
AS AS
$function$ $function$
...@@ -356,6 +359,7 @@ BEGIN ...@@ -356,6 +359,7 @@ BEGIN
LIMIT _limit LIMIT _limit
) as payout ) as payout
JOIN hive_posts_view hp ON hp.id = payout.id JOIN hive_posts_view hp ON hp.id = payout.id
WHERE (CASE WHEN _observer IS NOT NULL THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE true END)
ORDER BY payout.all_payout DESC, payout.id DESC ORDER BY payout.all_payout DESC, payout.id DESC
LIMIT _limit; LIMIT _limit;
END END
...@@ -363,7 +367,7 @@ $function$ ...@@ -363,7 +367,7 @@ $function$
language plpgsql STABLE; language plpgsql STABLE;
DROP FUNCTION IF EXISTS bridge_get_ranked_post_by_promoted_for_tag; DROP FUNCTION IF EXISTS bridge_get_ranked_post_by_promoted_for_tag;
CREATE FUNCTION bridge_get_ranked_post_by_promoted_for_tag( in _tag VARCHAR, in _author VARCHAR, in _permlink VARCHAR, in _limit SMALLINT ) CREATE FUNCTION bridge_get_ranked_post_by_promoted_for_tag( in _tag VARCHAR, in _author VARCHAR, in _permlink VARCHAR, in _limit SMALLINT, in _observer VARCHAR )
RETURNS SETOF bridge_api_post RETURNS SETOF bridge_api_post
AS AS
$function$ $function$
...@@ -429,6 +433,7 @@ BEGIN ...@@ -429,6 +433,7 @@ BEGIN
LIMIT _limit LIMIT _limit
) as promoted ) as promoted
JOIN hive_posts_view hp ON hp.id = promoted.id JOIN hive_posts_view hp ON hp.id = promoted.id
WHERE (CASE WHEN _observer IS NOT NULL THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE true END)
ORDER BY promoted.promoted DESC, promoted.id DESC ORDER BY promoted.promoted DESC, promoted.id DESC
LIMIT _limit; LIMIT _limit;
END END
...@@ -436,7 +441,7 @@ $function$ ...@@ -436,7 +441,7 @@ $function$
language plpgsql STABLE; language plpgsql STABLE;
DROP FUNCTION IF EXISTS bridge_get_ranked_post_by_trends_for_tag; DROP FUNCTION IF EXISTS bridge_get_ranked_post_by_trends_for_tag;
CREATE FUNCTION bridge_get_ranked_post_by_trends_for_tag( in _tag VARCHAR, in _author VARCHAR, in _permlink VARCHAR, in _limit SMALLINT ) CREATE FUNCTION bridge_get_ranked_post_by_trends_for_tag( in _tag VARCHAR, in _author VARCHAR, in _permlink VARCHAR, in _limit SMALLINT, in _observer VARCHAR )
RETURNS SETOF bridge_api_post RETURNS SETOF bridge_api_post
AS AS
$function$ $function$
...@@ -502,6 +507,7 @@ BEGIN ...@@ -502,6 +507,7 @@ BEGIN
LIMIT _limit LIMIT _limit
) as trends ) as trends
JOIN hive_posts_view hp ON hp.id = trends.id JOIN hive_posts_view hp ON hp.id = trends.id
WHERE (CASE WHEN _observer IS NOT NULL THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE true END)
ORDER BY trends.trend DESC, trends.id DESC ORDER BY trends.trend DESC, trends.id DESC
LIMIT _limit; LIMIT _limit;
END END
......
...@@ -111,12 +111,12 @@ async def _get_ranked_posts_for_communities( db, sort:str, community, start_auth ...@@ -111,12 +111,12 @@ async def _get_ranked_posts_for_communities( db, sort:str, community, start_auth
# missing paging which results in inability to get all pinned posts # missing paging which results in inability to get all pinned posts
# and/or causes the same posts to be on each page (depending on limit and number of pinned) # and/or causes the same posts to be on each page (depending on limit and number of pinned)
if sort == 'hot': if sort == 'hot':
sql = "SELECT * FROM bridge_get_ranked_post_by_hot_for_community( (:community)::VARCHAR, (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT )" sql = "SELECT * FROM bridge_get_ranked_post_by_hot_for_community( (:community)::VARCHAR, (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT, (:observer)::VARCHAR )"
return await execute_community_query(db, sql, limit) return await execute_community_query(db, sql, limit)
if sort == 'trending': if sort == 'trending':
result_with_pinned_posts = [] result_with_pinned_posts = []
sql = "SELECT * FROM bridge_get_ranked_post_by_trends_for_community( (:community)::VARCHAR, (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT, True )" sql = "SELECT * FROM bridge_get_ranked_post_by_trends_for_community( (:community)::VARCHAR, (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT, True, (:observer)::VARCHAR )"
result_with_pinned_posts = await execute_community_query(db, pinned_sql, limit) result_with_pinned_posts = await execute_community_query(db, pinned_sql, limit)
limit -= len(result_with_pinned_posts) limit -= len(result_with_pinned_posts)
if limit > 0: if limit > 0:
...@@ -124,7 +124,7 @@ async def _get_ranked_posts_for_communities( db, sort:str, community, start_auth ...@@ -124,7 +124,7 @@ async def _get_ranked_posts_for_communities( db, sort:str, community, start_auth
return result_with_pinned_posts return result_with_pinned_posts
if sort == 'promoted': if sort == 'promoted':
sql = "SELECT * FROM bridge_get_ranked_post_by_promoted_for_community( (:community)::VARCHAR, (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT )" sql = "SELECT * FROM bridge_get_ranked_post_by_promoted_for_community( (:community)::VARCHAR, (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT, (:observer)::VARCHAR )"
return await execute_community_query(db, sql, limit) return await execute_community_query(db, sql, limit)
if sort == 'created': if sort == 'created':
...@@ -136,15 +136,15 @@ async def _get_ranked_posts_for_communities( db, sort:str, community, start_auth ...@@ -136,15 +136,15 @@ async def _get_ranked_posts_for_communities( db, sort:str, community, start_auth
return result_with_pinned_posts return result_with_pinned_posts
if sort == 'muted': if sort == 'muted':
sql = "SELECT * FROM bridge_get_ranked_post_by_muted_for_community( (:community)::VARCHAR, (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT )" sql = "SELECT * FROM bridge_get_ranked_post_by_muted_for_community( (:community)::VARCHAR, (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT, (:observer)::VARCHAR )"
return await execute_community_query(db, sql, limit) return await execute_community_query(db, sql, limit)
if sort == 'payout': if sort == 'payout':
sql = "SELECT * FROM bridge_get_ranked_post_by_payout_for_community( (:community)::VARCHAR, (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT )" sql = "SELECT * FROM bridge_get_ranked_post_by_payout_for_community( (:community)::VARCHAR, (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT, (:observer)::VARCHAR )"
return await execute_community_query(db, sql, limit) return await execute_community_query(db, sql, limit)
if sort == 'payout_comments': if sort == 'payout_comments':
sql = "SELECT * FROM bridge_get_ranked_post_by_payout_comments_for_community( (:community)::VARCHAR, (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT )" sql = "SELECT * FROM bridge_get_ranked_post_by_payout_comments_for_community( (:community)::VARCHAR, (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT, (:observer)::VARCHAR )"
return await execute_community_query(db, sql, limit) return await execute_community_query(db, sql, limit)
assert False, "Unknown sort order" assert False, "Unknown sort order"
...@@ -156,27 +156,27 @@ async def _get_ranked_posts_for_tag( db, sort:str, tag, start_author:str, start_ ...@@ -156,27 +156,27 @@ async def _get_ranked_posts_for_tag( db, sort:str, tag, start_author:str, start_
return await db.query_all(sql, tag=tag, author=start_author, permlink=start_permlink, limit=limit, observer=observer ) return await db.query_all(sql, tag=tag, author=start_author, permlink=start_permlink, limit=limit, observer=observer )
if sort == 'hot': if sort == 'hot':
sql = "SELECT * FROM bridge_get_ranked_post_by_hot_for_tag( (:tag)::VARCHAR, (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT )" sql = "SELECT * FROM bridge_get_ranked_post_by_hot_for_tag( (:tag)::VARCHAR, (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT, (:observer)::VARCHAR )"
return await execute_tags_query(db, sql, limit) return await execute_tags_query(db, sql, limit)
if sort == 'promoted': if sort == 'promoted':
sql = "SELECT * FROM bridge_get_ranked_post_by_promoted_for_tag( (:tag)::VARCHAR, (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT )" sql = "SELECT * FROM bridge_get_ranked_post_by_promoted_for_tag( (:tag)::VARCHAR, (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT, (:observer)::VARCHAR )"
return await execute_tags_query(db, sql, limit) return await execute_tags_query(db, sql, limit)
if sort == 'payout': if sort == 'payout':
sql = "SELECT * FROM bridge_get_ranked_post_by_payout_for_category( (:tag)::VARCHAR, (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT, True )" sql = "SELECT * FROM bridge_get_ranked_post_by_payout_for_category( (:tag)::VARCHAR, (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT, True, (:observer)::VARCHAR )"
return await execute_tags_query(db, sql, limit) return await execute_tags_query(db, sql, limit)
if sort == 'payout_comments': if sort == 'payout_comments':
sql = "SELECT * FROM bridge_get_ranked_post_by_payout_comments_for_category( (:tag)::VARCHAR, (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT )" sql = "SELECT * FROM bridge_get_ranked_post_by_payout_comments_for_category( (:tag)::VARCHAR, (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT, (:observer)::VARCHAR )"
return await execute_tags_query(db, sql, limit) return await execute_tags_query(db, sql, limit)
if sort == 'muted': if sort == 'muted':
sql = "SELECT * FROM bridge_get_ranked_post_by_muted_for_tag( (:tag)::VARCHAR, (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT )" sql = "SELECT * FROM bridge_get_ranked_post_by_muted_for_tag( (:tag)::VARCHAR, (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT, (:observer)::VARCHAR )"
return await execute_tags_query(db, sql, limit) return await execute_tags_query(db, sql, limit)
if sort == 'trending': if sort == 'trending':
sql = "SELECT * FROM bridge_get_ranked_post_by_trends_for_tag( (:tag)::VARCHAR, (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT )" sql = "SELECT * FROM bridge_get_ranked_post_by_trends_for_tag( (:tag)::VARCHAR, (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT, (:observer)::VARCHAR )"
return await execute_tags_query(db, sql, limit) return await execute_tags_query(db, sql, limit)
if sort == 'created': if sort == 'created':
...@@ -191,7 +191,7 @@ async def _get_ranked_posts_for_all( db, sort:str, start_author:str, start_perml ...@@ -191,7 +191,7 @@ async def _get_ranked_posts_for_all( db, sort:str, start_author:str, start_perml
return await db.query_all(sql, author=start_author, permlink=start_permlink, limit=limit, observer=observer ) return await db.query_all(sql, author=start_author, permlink=start_permlink, limit=limit, observer=observer )
if sort == 'trending': if sort == 'trending':
sql = "SELECT * FROM bridge_get_ranked_post_by_trends( (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT )" sql = "SELECT * FROM bridge_get_ranked_post_by_trends( (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT, (:observer)::VARCHAR )"
return await execute_query(db, sql, limit) return await execute_query(db, sql, limit)
if sort == 'created': if sort == 'created':
...@@ -199,23 +199,23 @@ async def _get_ranked_posts_for_all( db, sort:str, start_author:str, start_perml ...@@ -199,23 +199,23 @@ async def _get_ranked_posts_for_all( db, sort:str, start_author:str, start_perml
return await execute_query(db, sql, limit, observer) return await execute_query(db, sql, limit, observer)
if sort == 'hot': if sort == 'hot':
sql = "SELECT * FROM bridge_get_ranked_post_by_hot( (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT )" sql = "SELECT * FROM bridge_get_ranked_post_by_hot( (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT, (:observer)::VARCHAR )"
return await execute_query(db, sql, limit) return await execute_query(db, sql, limit)
if sort == 'promoted': if sort == 'promoted':
sql = "SELECT * FROM bridge_get_ranked_post_by_promoted( (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT )" sql = "SELECT * FROM bridge_get_ranked_post_by_promoted( (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT, (:observer)::VARCHAR )"
return await execute_query(db, sql, limit) return await execute_query(db, sql, limit)
if sort == 'payout': if sort == 'payout':
sql = "SELECT * FROM bridge_get_ranked_post_by_payout( (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT, True )" sql = "SELECT * FROM bridge_get_ranked_post_by_payout( (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT, True, (:observer)::VARCHAR )"
return await execute_query(db, sql, limit) return await execute_query(db, sql, limit)
if sort == 'payout_comments': if sort == 'payout_comments':
sql = "SELECT * FROM bridge_get_ranked_post_by_payout_comments( (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT )" sql = "SELECT * FROM bridge_get_ranked_post_by_payout_comments( (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT, (:observer)::VARCHAR )"
return await execute_query(db, sql, limit) return await execute_query(db, sql, limit)
if sort == 'muted': if sort == 'muted':
sql = "SELECT * FROM bridge_get_ranked_post_by_muted( (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT )" sql = "SELECT * FROM bridge_get_ranked_post_by_muted( (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT, (:observer)::VARCHAR )"
return await execute_query(db, sql, limit) return await execute_query(db, sql, limit)
assert False, "Unknown sort order" assert False, "Unknown sort order"
......
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