mirror of
https://github.com/LemmyNet/lemmy.git
synced 2024-11-30 00:01:25 +00:00
Revert changes to old migrations
This commit is contained in:
parent
8b72238686
commit
7fcaca0cb1
36 changed files with 92 additions and 875 deletions
|
@ -1,16 +1,16 @@
|
|||
DROP VIEW IF EXISTS mod_remove_post_view;
|
||||
DROP VIEW mod_remove_post_view;
|
||||
|
||||
DROP VIEW IF EXISTS mod_lock_post_view;
|
||||
DROP VIEW mod_lock_post_view;
|
||||
|
||||
DROP VIEW IF EXISTS mod_remove_comment_view;
|
||||
DROP VIEW mod_remove_comment_view;
|
||||
|
||||
DROP VIEW IF EXISTS mod_remove_community_view;
|
||||
DROP VIEW mod_remove_community_view;
|
||||
|
||||
DROP VIEW IF EXISTS mod_ban_from_community_view;
|
||||
DROP VIEW mod_ban_from_community_view;
|
||||
|
||||
DROP VIEW IF EXISTS mod_ban_view;
|
||||
DROP VIEW mod_ban_view;
|
||||
|
||||
DROP VIEW IF EXISTS mod_add_community_view;
|
||||
DROP VIEW mod_add_community_view;
|
||||
|
||||
DROP VIEW IF EXISTS mod_add_view;
|
||||
DROP VIEW mod_add_view;
|
||||
|
||||
|
|
|
@ -1,39 +1,39 @@
|
|||
-- functions and triggers
|
||||
DROP TRIGGER IF EXISTS refresh_user ON user_;
|
||||
DROP TRIGGER refresh_user ON user_;
|
||||
|
||||
DROP FUNCTION IF EXISTS refresh_user ();
|
||||
DROP FUNCTION refresh_user ();
|
||||
|
||||
DROP TRIGGER IF EXISTS refresh_post ON post;
|
||||
DROP TRIGGER refresh_post ON post;
|
||||
|
||||
DROP FUNCTION IF EXISTS refresh_post ();
|
||||
DROP FUNCTION refresh_post ();
|
||||
|
||||
DROP TRIGGER IF EXISTS refresh_post_like ON post_like;
|
||||
DROP TRIGGER refresh_post_like ON post_like;
|
||||
|
||||
DROP FUNCTION IF EXISTS refresh_post_like ();
|
||||
DROP FUNCTION refresh_post_like ();
|
||||
|
||||
DROP TRIGGER IF EXISTS refresh_community ON community;
|
||||
DROP TRIGGER refresh_community ON community;
|
||||
|
||||
DROP FUNCTION IF EXISTS refresh_community ();
|
||||
DROP FUNCTION refresh_community ();
|
||||
|
||||
DROP TRIGGER IF EXISTS refresh_community_follower ON community_follower;
|
||||
DROP TRIGGER refresh_community_follower ON community_follower;
|
||||
|
||||
DROP FUNCTION IF EXISTS refresh_community_follower ();
|
||||
DROP FUNCTION refresh_community_follower ();
|
||||
|
||||
DROP TRIGGER IF EXISTS refresh_community_user_ban ON community_user_ban;
|
||||
DROP TRIGGER refresh_community_user_ban ON community_user_ban;
|
||||
|
||||
DROP FUNCTION IF EXISTS refresh_community_user_ban ();
|
||||
DROP FUNCTION refresh_community_user_ban ();
|
||||
|
||||
DROP TRIGGER IF EXISTS refresh_comment ON comment;
|
||||
DROP TRIGGER refresh_comment ON comment;
|
||||
|
||||
DROP FUNCTION IF EXISTS refresh_comment ();
|
||||
DROP FUNCTION refresh_comment ();
|
||||
|
||||
DROP TRIGGER IF EXISTS refresh_comment_like ON comment_like;
|
||||
DROP TRIGGER refresh_comment_like ON comment_like;
|
||||
|
||||
DROP FUNCTION IF EXISTS refresh_comment_like ();
|
||||
DROP FUNCTION refresh_comment_like ();
|
||||
|
||||
-- post
|
||||
-- Recreate the view
|
||||
DROP VIEW IF EXISTS post_view;
|
||||
DROP VIEW post_view;
|
||||
|
||||
CREATE VIEW post_view AS
|
||||
with all_post AS (
|
||||
|
@ -167,16 +167,16 @@ FROM
|
|||
FROM
|
||||
all_post ap;
|
||||
|
||||
DROP VIEW IF EXISTS post_mview;
|
||||
DROP VIEW post_mview;
|
||||
|
||||
DROP MATERIALIZED VIEW post_aggregates_mview;
|
||||
|
||||
DROP VIEW IF EXISTS post_aggregates_view;
|
||||
DROP VIEW post_aggregates_view;
|
||||
|
||||
-- user
|
||||
DROP MATERIALIZED VIEW user_mview;
|
||||
|
||||
DROP VIEW IF EXISTS user_view;
|
||||
DROP VIEW user_view;
|
||||
|
||||
CREATE VIEW user_view AS
|
||||
SELECT
|
||||
|
@ -226,13 +226,13 @@ FROM
|
|||
user_ u;
|
||||
|
||||
-- community
|
||||
DROP VIEW IF EXISTS community_mview;
|
||||
DROP VIEW community_mview;
|
||||
|
||||
DROP MATERIALIZED VIEW community_aggregates_mview;
|
||||
|
||||
DROP VIEW IF EXISTS community_view;
|
||||
DROP VIEW community_view;
|
||||
|
||||
DROP VIEW IF EXISTS community_aggregates_view;
|
||||
DROP VIEW community_aggregates_view;
|
||||
|
||||
CREATE VIEW community_view AS
|
||||
with all_community AS (
|
||||
|
@ -314,17 +314,17 @@ FROM
|
|||
all_community ac;
|
||||
|
||||
-- reply and comment view
|
||||
DROP VIEW IF EXISTS reply_view;
|
||||
DROP VIEW reply_view;
|
||||
|
||||
DROP VIEW IF EXISTS user_mention_view;
|
||||
DROP VIEW user_mention_view;
|
||||
|
||||
DROP VIEW IF EXISTS comment_view;
|
||||
DROP VIEW comment_view;
|
||||
|
||||
DROP VIEW IF EXISTS comment_mview;
|
||||
DROP VIEW comment_mview;
|
||||
|
||||
DROP MATERIALIZED VIEW comment_aggregates_mview;
|
||||
|
||||
DROP VIEW IF EXISTS comment_aggregates_view;
|
||||
DROP VIEW comment_aggregates_view;
|
||||
|
||||
CREATE VIEW comment_view AS
|
||||
with all_comment AS (
|
||||
|
|
|
@ -1,19 +1,19 @@
|
|||
-- Drop the dependent views
|
||||
DROP VIEW IF EXISTS post_view;
|
||||
DROP VIEW post_view;
|
||||
|
||||
DROP VIEW IF EXISTS post_mview;
|
||||
DROP VIEW post_mview;
|
||||
|
||||
DROP MATERIALIZED VIEW IF EXISTS post_aggregates_mview;
|
||||
DROP MATERIALIZED VIEW post_aggregates_mview;
|
||||
|
||||
DROP VIEW IF EXISTS post_aggregates_view;
|
||||
DROP VIEW post_aggregates_view;
|
||||
|
||||
DROP VIEW IF EXISTS mod_remove_post_view;
|
||||
DROP VIEW mod_remove_post_view;
|
||||
|
||||
DROP VIEW IF EXISTS mod_sticky_post_view;
|
||||
DROP VIEW mod_sticky_post_view;
|
||||
|
||||
DROP VIEW IF EXISTS mod_lock_post_view;
|
||||
DROP VIEW mod_lock_post_view;
|
||||
|
||||
DROP VIEW IF EXISTS mod_remove_comment_view;
|
||||
DROP VIEW mod_remove_comment_view;
|
||||
|
||||
ALTER TABLE post
|
||||
ALTER COLUMN name TYPE varchar(100);
|
||||
|
|
|
@ -1,11 +1,5 @@
|
|||
DROP TABLE activity;
|
||||
|
||||
DROP VIEW community_view, community_mview;
|
||||
|
||||
DROP MATERIALIZED VIEW community_aggregates_mview;
|
||||
|
||||
DROP VIEW community_aggregates_view;
|
||||
|
||||
ALTER TABLE user_
|
||||
DROP COLUMN actor_id,
|
||||
DROP COLUMN private_key,
|
||||
|
@ -21,126 +15,3 @@ ALTER TABLE community
|
|||
DROP COLUMN local,
|
||||
DROP COLUMN last_refreshed_at;
|
||||
|
||||
-- Views are the same as before, except `*` does not reference the dropped columns
|
||||
CREATE VIEW community_aggregates_view AS
|
||||
SELECT
|
||||
c.*,
|
||||
(
|
||||
SELECT
|
||||
name
|
||||
FROM
|
||||
user_ u
|
||||
WHERE
|
||||
c.creator_id = u.id) AS creator_name,
|
||||
(
|
||||
SELECT
|
||||
avatar
|
||||
FROM
|
||||
user_ u
|
||||
WHERE
|
||||
c.creator_id = u.id) AS creator_avatar,
|
||||
(
|
||||
SELECT
|
||||
name
|
||||
FROM
|
||||
category ct
|
||||
WHERE
|
||||
c.category_id = ct.id) AS category_name,
|
||||
(
|
||||
SELECT
|
||||
count(*)
|
||||
FROM
|
||||
community_follower cf
|
||||
WHERE
|
||||
cf.community_id = c.id) AS number_of_subscribers,
|
||||
(
|
||||
SELECT
|
||||
count(*)
|
||||
FROM
|
||||
post p
|
||||
WHERE
|
||||
p.community_id = c.id) AS number_of_posts,
|
||||
(
|
||||
SELECT
|
||||
count(*)
|
||||
FROM
|
||||
comment co,
|
||||
post p
|
||||
WHERE
|
||||
c.id = p.community_id
|
||||
AND p.id = co.post_id) AS number_of_comments,
|
||||
hot_rank ((
|
||||
SELECT
|
||||
count(*)
|
||||
FROM community_follower cf
|
||||
WHERE
|
||||
cf.community_id = c.id), c.published) AS hot_rank
|
||||
FROM
|
||||
community c;
|
||||
|
||||
CREATE MATERIALIZED VIEW community_aggregates_mview AS
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
community_aggregates_view;
|
||||
|
||||
CREATE UNIQUE INDEX idx_community_aggregates_mview_id ON community_aggregates_mview (id);
|
||||
|
||||
CREATE VIEW community_view AS
|
||||
with all_community AS (
|
||||
SELECT
|
||||
ca.*
|
||||
FROM
|
||||
community_aggregates_view ca
|
||||
)
|
||||
SELECT
|
||||
ac.*,
|
||||
u.id AS user_id,
|
||||
(
|
||||
SELECT
|
||||
cf.id::boolean
|
||||
FROM
|
||||
community_follower cf
|
||||
WHERE
|
||||
u.id = cf.user_id
|
||||
AND ac.id = cf.community_id) AS subscribed
|
||||
FROM
|
||||
user_ u
|
||||
CROSS JOIN all_community ac
|
||||
UNION ALL
|
||||
SELECT
|
||||
ac.*,
|
||||
NULL AS user_id,
|
||||
NULL AS subscribed
|
||||
FROM
|
||||
all_community ac;
|
||||
|
||||
CREATE VIEW community_mview AS
|
||||
with all_community AS (
|
||||
SELECT
|
||||
ca.*
|
||||
FROM
|
||||
community_aggregates_mview ca
|
||||
)
|
||||
SELECT
|
||||
ac.*,
|
||||
u.id AS user_id,
|
||||
(
|
||||
SELECT
|
||||
cf.id::boolean
|
||||
FROM
|
||||
community_follower cf
|
||||
WHERE
|
||||
u.id = cf.user_id
|
||||
AND ac.id = cf.community_id) AS subscribed
|
||||
FROM
|
||||
user_ u
|
||||
CROSS JOIN all_community ac
|
||||
UNION ALL
|
||||
SELECT
|
||||
ac.*,
|
||||
NULL AS user_id,
|
||||
NULL AS subscribed
|
||||
FROM
|
||||
all_community ac;
|
||||
|
||||
|
|
|
@ -1,15 +1,3 @@
|
|||
DROP VIEW post_mview;
|
||||
|
||||
DROP MATERIALIZED VIEW post_aggregates_mview;
|
||||
|
||||
DROP VIEW post_view, post_aggregates_view;
|
||||
|
||||
DROP VIEW user_mention_view, comment_view, user_mention_mview, reply_view, comment_mview;
|
||||
|
||||
DROP MATERIALIZED VIEW comment_aggregates_mview;
|
||||
|
||||
DROP VIEW comment_aggregates_view;
|
||||
|
||||
ALTER TABLE post
|
||||
DROP COLUMN ap_id,
|
||||
DROP COLUMN local;
|
||||
|
@ -18,526 +6,3 @@ ALTER TABLE comment
|
|||
DROP COLUMN ap_id,
|
||||
DROP COLUMN local;
|
||||
|
||||
-- Views are the same as before, except `*` does not reference the dropped columns
|
||||
CREATE VIEW post_aggregates_view AS
|
||||
SELECT
|
||||
p.*,
|
||||
(
|
||||
SELECT
|
||||
u.banned
|
||||
FROM
|
||||
user_ u
|
||||
WHERE
|
||||
p.creator_id = u.id) AS banned,
|
||||
(
|
||||
SELECT
|
||||
cb.id::bool
|
||||
FROM
|
||||
community_user_ban cb
|
||||
WHERE
|
||||
p.creator_id = cb.user_id
|
||||
AND p.community_id = cb.community_id) AS banned_from_community,
|
||||
(
|
||||
SELECT
|
||||
name
|
||||
FROM
|
||||
user_
|
||||
WHERE
|
||||
p.creator_id = user_.id) AS creator_name,
|
||||
(
|
||||
SELECT
|
||||
avatar
|
||||
FROM
|
||||
user_
|
||||
WHERE
|
||||
p.creator_id = user_.id) AS creator_avatar,
|
||||
(
|
||||
SELECT
|
||||
name
|
||||
FROM
|
||||
community
|
||||
WHERE
|
||||
p.community_id = community.id) AS community_name,
|
||||
(
|
||||
SELECT
|
||||
removed
|
||||
FROM
|
||||
community c
|
||||
WHERE
|
||||
p.community_id = c.id) AS community_removed,
|
||||
(
|
||||
SELECT
|
||||
deleted
|
||||
FROM
|
||||
community c
|
||||
WHERE
|
||||
p.community_id = c.id) AS community_deleted,
|
||||
(
|
||||
SELECT
|
||||
nsfw
|
||||
FROM
|
||||
community c
|
||||
WHERE
|
||||
p.community_id = c.id) AS community_nsfw,
|
||||
(
|
||||
SELECT
|
||||
count(*)
|
||||
FROM
|
||||
comment
|
||||
WHERE
|
||||
comment.post_id = p.id) AS number_of_comments,
|
||||
coalesce(sum(pl.score), 0) AS score,
|
||||
count(
|
||||
CASE WHEN pl.score = 1 THEN
|
||||
1
|
||||
ELSE
|
||||
NULL
|
||||
END) AS upvotes,
|
||||
count(
|
||||
CASE WHEN pl.score = - 1 THEN
|
||||
1
|
||||
ELSE
|
||||
NULL
|
||||
END) AS downvotes,
|
||||
hot_rank (coalesce(sum(pl.score), 0), (
|
||||
CASE WHEN (p.published < ('now'::timestamp - '1 month'::interval)) THEN
|
||||
p.published -- Prevents necro-bumps
|
||||
ELSE
|
||||
greatest (c.recent_comment_time, p.published)
|
||||
END)) AS hot_rank,
|
||||
(
|
||||
CASE WHEN (p.published < ('now'::timestamp - '1 month'::interval)) THEN
|
||||
p.published -- Prevents necro-bumps
|
||||
ELSE
|
||||
greatest (c.recent_comment_time, p.published)
|
||||
END) AS newest_activity_time
|
||||
FROM
|
||||
post p
|
||||
LEFT JOIN post_like pl ON p.id = pl.post_id
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
post_id,
|
||||
max(published) AS recent_comment_time
|
||||
FROM
|
||||
comment
|
||||
GROUP BY
|
||||
1) c ON p.id = c.post_id
|
||||
GROUP BY
|
||||
p.id,
|
||||
c.recent_comment_time;
|
||||
|
||||
CREATE VIEW post_view AS
|
||||
with all_post AS (
|
||||
SELECT
|
||||
pa.*
|
||||
FROM
|
||||
post_aggregates_view pa
|
||||
)
|
||||
SELECT
|
||||
ap.*,
|
||||
u.id AS user_id,
|
||||
coalesce(pl.score, 0) AS my_vote,
|
||||
(
|
||||
SELECT
|
||||
cf.id::bool
|
||||
FROM
|
||||
community_follower cf
|
||||
WHERE
|
||||
u.id = cf.user_id
|
||||
AND cf.community_id = ap.community_id) AS subscribed,
|
||||
(
|
||||
SELECT
|
||||
pr.id::bool
|
||||
FROM
|
||||
post_read pr
|
||||
WHERE
|
||||
u.id = pr.user_id
|
||||
AND pr.post_id = ap.id) AS read,
|
||||
(
|
||||
SELECT
|
||||
ps.id::bool
|
||||
FROM
|
||||
post_saved ps
|
||||
WHERE
|
||||
u.id = ps.user_id
|
||||
AND ps.post_id = ap.id) AS saved
|
||||
FROM
|
||||
user_ u
|
||||
CROSS JOIN all_post ap
|
||||
LEFT JOIN post_like pl ON u.id = pl.user_id
|
||||
AND ap.id = pl.post_id
|
||||
UNION ALL
|
||||
SELECT
|
||||
ap.*,
|
||||
NULL AS user_id,
|
||||
NULL AS my_vote,
|
||||
NULL AS subscribed,
|
||||
NULL AS read,
|
||||
NULL AS saved
|
||||
FROM
|
||||
all_post ap;
|
||||
|
||||
CREATE MATERIALIZED VIEW post_aggregates_mview AS
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
post_aggregates_view;
|
||||
|
||||
CREATE UNIQUE INDEX idx_post_aggregates_mview_id ON post_aggregates_mview (id);
|
||||
|
||||
CREATE VIEW post_mview AS
|
||||
with all_post AS (
|
||||
SELECT
|
||||
pa.*
|
||||
FROM
|
||||
post_aggregates_mview pa
|
||||
)
|
||||
SELECT
|
||||
ap.*,
|
||||
u.id AS user_id,
|
||||
coalesce(pl.score, 0) AS my_vote,
|
||||
(
|
||||
SELECT
|
||||
cf.id::bool
|
||||
FROM
|
||||
community_follower cf
|
||||
WHERE
|
||||
u.id = cf.user_id
|
||||
AND cf.community_id = ap.community_id) AS subscribed,
|
||||
(
|
||||
SELECT
|
||||
pr.id::bool
|
||||
FROM
|
||||
post_read pr
|
||||
WHERE
|
||||
u.id = pr.user_id
|
||||
AND pr.post_id = ap.id) AS read,
|
||||
(
|
||||
SELECT
|
||||
ps.id::bool
|
||||
FROM
|
||||
post_saved ps
|
||||
WHERE
|
||||
u.id = ps.user_id
|
||||
AND ps.post_id = ap.id) AS saved
|
||||
FROM
|
||||
user_ u
|
||||
CROSS JOIN all_post ap
|
||||
LEFT JOIN post_like pl ON u.id = pl.user_id
|
||||
AND ap.id = pl.post_id
|
||||
UNION ALL
|
||||
SELECT
|
||||
ap.*,
|
||||
NULL AS user_id,
|
||||
NULL AS my_vote,
|
||||
NULL AS subscribed,
|
||||
NULL AS read,
|
||||
NULL AS saved
|
||||
FROM
|
||||
all_post ap;
|
||||
|
||||
CREATE VIEW comment_aggregates_view AS
|
||||
SELECT
|
||||
c.*,
|
||||
(
|
||||
SELECT
|
||||
community_id
|
||||
FROM
|
||||
post p
|
||||
WHERE
|
||||
p.id = c.post_id), (
|
||||
SELECT
|
||||
co.name
|
||||
FROM
|
||||
post p,
|
||||
community co
|
||||
WHERE
|
||||
p.id = c.post_id
|
||||
AND p.community_id = co.id) AS community_name,
|
||||
(
|
||||
SELECT
|
||||
u.banned
|
||||
FROM
|
||||
user_ u
|
||||
WHERE
|
||||
c.creator_id = u.id) AS banned,
|
||||
(
|
||||
SELECT
|
||||
cb.id::bool
|
||||
FROM
|
||||
community_user_ban cb,
|
||||
post p
|
||||
WHERE
|
||||
c.creator_id = cb.user_id
|
||||
AND p.id = c.post_id
|
||||
AND p.community_id = cb.community_id) AS banned_from_community,
|
||||
(
|
||||
SELECT
|
||||
name
|
||||
FROM
|
||||
user_
|
||||
WHERE
|
||||
c.creator_id = user_.id) AS creator_name,
|
||||
(
|
||||
SELECT
|
||||
avatar
|
||||
FROM
|
||||
user_
|
||||
WHERE
|
||||
c.creator_id = user_.id) AS creator_avatar,
|
||||
coalesce(sum(cl.score), 0) AS score,
|
||||
count(
|
||||
CASE WHEN cl.score = 1 THEN
|
||||
1
|
||||
ELSE
|
||||
NULL
|
||||
END) AS upvotes,
|
||||
count(
|
||||
CASE WHEN cl.score = - 1 THEN
|
||||
1
|
||||
ELSE
|
||||
NULL
|
||||
END) AS downvotes,
|
||||
hot_rank (coalesce(sum(cl.score), 0), c.published) AS hot_rank
|
||||
FROM
|
||||
comment c
|
||||
LEFT JOIN comment_like cl ON c.id = cl.comment_id
|
||||
GROUP BY
|
||||
c.id;
|
||||
|
||||
CREATE MATERIALIZED VIEW comment_aggregates_mview AS
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
comment_aggregates_view;
|
||||
|
||||
CREATE UNIQUE INDEX idx_comment_aggregates_mview_id ON comment_aggregates_mview (id);
|
||||
|
||||
CREATE VIEW comment_mview AS
|
||||
with all_comment AS (
|
||||
SELECT
|
||||
ca.*
|
||||
FROM
|
||||
comment_aggregates_mview ca
|
||||
)
|
||||
SELECT
|
||||
ac.*,
|
||||
u.id AS user_id,
|
||||
coalesce(cl.score, 0) AS my_vote,
|
||||
(
|
||||
SELECT
|
||||
cf.id::boolean
|
||||
FROM
|
||||
community_follower cf
|
||||
WHERE
|
||||
u.id = cf.user_id
|
||||
AND ac.community_id = cf.community_id) AS subscribed,
|
||||
(
|
||||
SELECT
|
||||
cs.id::bool
|
||||
FROM
|
||||
comment_saved cs
|
||||
WHERE
|
||||
u.id = cs.user_id
|
||||
AND cs.comment_id = ac.id) AS saved
|
||||
FROM
|
||||
user_ u
|
||||
CROSS JOIN all_comment ac
|
||||
LEFT JOIN comment_like cl ON u.id = cl.user_id
|
||||
AND ac.id = cl.comment_id
|
||||
UNION ALL
|
||||
SELECT
|
||||
ac.*,
|
||||
NULL AS user_id,
|
||||
NULL AS my_vote,
|
||||
NULL AS subscribed,
|
||||
NULL AS saved
|
||||
FROM
|
||||
all_comment ac;
|
||||
|
||||
CREATE VIEW reply_view AS
|
||||
with closereply AS (
|
||||
SELECT
|
||||
c2.id,
|
||||
c2.creator_id AS sender_id,
|
||||
c.creator_id AS recipient_id
|
||||
FROM
|
||||
comment c
|
||||
INNER JOIN comment c2 ON c.id = c2.parent_id
|
||||
WHERE
|
||||
c2.creator_id != c.creator_id
|
||||
-- Do union where post is null
|
||||
UNION
|
||||
SELECT
|
||||
c.id,
|
||||
c.creator_id AS sender_id,
|
||||
p.creator_id AS recipient_id
|
||||
FROM
|
||||
comment c,
|
||||
post p
|
||||
WHERE
|
||||
c.post_id = p.id
|
||||
AND c.parent_id IS NULL
|
||||
AND c.creator_id != p.creator_id
|
||||
)
|
||||
SELECT
|
||||
cv.*,
|
||||
closereply.recipient_id
|
||||
FROM
|
||||
comment_mview cv,
|
||||
closereply
|
||||
WHERE
|
||||
closereply.id = cv.id;
|
||||
|
||||
CREATE VIEW user_mention_mview AS
|
||||
with all_comment AS (
|
||||
SELECT
|
||||
ca.*
|
||||
FROM
|
||||
comment_aggregates_mview ca
|
||||
)
|
||||
SELECT
|
||||
ac.id,
|
||||
um.id AS user_mention_id,
|
||||
ac.creator_id,
|
||||
ac.post_id,
|
||||
ac.parent_id,
|
||||
ac.content,
|
||||
ac.removed,
|
||||
um.read,
|
||||
ac.published,
|
||||
ac.updated,
|
||||
ac.deleted,
|
||||
ac.community_id,
|
||||
ac.community_name,
|
||||
ac.banned,
|
||||
ac.banned_from_community,
|
||||
ac.creator_name,
|
||||
ac.creator_avatar,
|
||||
ac.score,
|
||||
ac.upvotes,
|
||||
ac.downvotes,
|
||||
ac.hot_rank,
|
||||
u.id AS user_id,
|
||||
coalesce(cl.score, 0) AS my_vote,
|
||||
(
|
||||
SELECT
|
||||
cs.id::bool
|
||||
FROM
|
||||
comment_saved cs
|
||||
WHERE
|
||||
u.id = cs.user_id
|
||||
AND cs.comment_id = ac.id) AS saved,
|
||||
um.recipient_id
|
||||
FROM
|
||||
user_ u
|
||||
CROSS JOIN all_comment ac
|
||||
LEFT JOIN comment_like cl ON u.id = cl.user_id
|
||||
AND ac.id = cl.comment_id
|
||||
LEFT JOIN user_mention um ON um.comment_id = ac.id
|
||||
UNION ALL
|
||||
SELECT
|
||||
ac.id,
|
||||
um.id AS user_mention_id,
|
||||
ac.creator_id,
|
||||
ac.post_id,
|
||||
ac.parent_id,
|
||||
ac.content,
|
||||
ac.removed,
|
||||
um.read,
|
||||
ac.published,
|
||||
ac.updated,
|
||||
ac.deleted,
|
||||
ac.community_id,
|
||||
ac.community_name,
|
||||
ac.banned,
|
||||
ac.banned_from_community,
|
||||
ac.creator_name,
|
||||
ac.creator_avatar,
|
||||
ac.score,
|
||||
ac.upvotes,
|
||||
ac.downvotes,
|
||||
ac.hot_rank,
|
||||
NULL AS user_id,
|
||||
NULL AS my_vote,
|
||||
NULL AS saved,
|
||||
um.recipient_id
|
||||
FROM
|
||||
all_comment ac
|
||||
LEFT JOIN user_mention um ON um.comment_id = ac.id;
|
||||
|
||||
CREATE VIEW comment_view AS
|
||||
with all_comment AS (
|
||||
SELECT
|
||||
ca.*
|
||||
FROM
|
||||
comment_aggregates_view ca
|
||||
)
|
||||
SELECT
|
||||
ac.*,
|
||||
u.id AS user_id,
|
||||
coalesce(cl.score, 0) AS my_vote,
|
||||
(
|
||||
SELECT
|
||||
cf.id::boolean
|
||||
FROM
|
||||
community_follower cf
|
||||
WHERE
|
||||
u.id = cf.user_id
|
||||
AND ac.community_id = cf.community_id) AS subscribed,
|
||||
(
|
||||
SELECT
|
||||
cs.id::bool
|
||||
FROM
|
||||
comment_saved cs
|
||||
WHERE
|
||||
u.id = cs.user_id
|
||||
AND cs.comment_id = ac.id) AS saved
|
||||
FROM
|
||||
user_ u
|
||||
CROSS JOIN all_comment ac
|
||||
LEFT JOIN comment_like cl ON u.id = cl.user_id
|
||||
AND ac.id = cl.comment_id
|
||||
UNION ALL
|
||||
SELECT
|
||||
ac.*,
|
||||
NULL AS user_id,
|
||||
NULL AS my_vote,
|
||||
NULL AS subscribed,
|
||||
NULL AS saved
|
||||
FROM
|
||||
all_comment ac;
|
||||
|
||||
CREATE VIEW user_mention_view AS
|
||||
SELECT
|
||||
c.id,
|
||||
um.id AS user_mention_id,
|
||||
c.creator_id,
|
||||
c.post_id,
|
||||
c.parent_id,
|
||||
c.content,
|
||||
c.removed,
|
||||
um.read,
|
||||
c.published,
|
||||
c.updated,
|
||||
c.deleted,
|
||||
c.community_id,
|
||||
c.community_name,
|
||||
c.banned,
|
||||
c.banned_from_community,
|
||||
c.creator_name,
|
||||
c.creator_avatar,
|
||||
c.score,
|
||||
c.upvotes,
|
||||
c.downvotes,
|
||||
c.hot_rank,
|
||||
c.user_id,
|
||||
c.my_vote,
|
||||
c.saved,
|
||||
um.recipient_id
|
||||
FROM
|
||||
user_mention um,
|
||||
comment_view c
|
||||
WHERE
|
||||
um.comment_id = c.id;
|
||||
|
||||
|
|
|
@ -5,8 +5,6 @@ ALTER TABLE user_
|
|||
ADD COLUMN fedi_name varchar(40) NOT NULL DEFAULT 'http://fake.com';
|
||||
|
||||
ALTER TABLE user_
|
||||
-- Default is only for existing rows
|
||||
ALTER COLUMN fedi_name DROP DEFAULT,
|
||||
ADD CONSTRAINT user__name_fedi_name_key UNIQUE (name, fedi_name);
|
||||
|
||||
-- Community
|
||||
|
|
|
@ -57,7 +57,7 @@ BEGIN
|
|||
END
|
||||
$$;
|
||||
|
||||
DROP TRIGGER IF EXISTS refresh_user ON user_;
|
||||
DROP TRIGGER refresh_user ON user_;
|
||||
|
||||
CREATE TRIGGER refresh_user
|
||||
AFTER INSERT OR UPDATE OR DELETE OR TRUNCATE ON user_
|
||||
|
@ -125,7 +125,7 @@ FROM
|
|||
CREATE UNIQUE INDEX idx_user_mview_id ON user_mview (id);
|
||||
|
||||
-- community
|
||||
DROP TRIGGER IF EXISTS refresh_community ON community;
|
||||
DROP TRIGGER refresh_community ON community;
|
||||
|
||||
CREATE TRIGGER refresh_community
|
||||
AFTER INSERT OR UPDATE OR DELETE OR TRUNCATE ON community
|
||||
|
@ -547,7 +547,7 @@ FROM
|
|||
FROM
|
||||
all_post ap;
|
||||
|
||||
DROP TRIGGER IF EXISTS refresh_post ON post;
|
||||
DROP TRIGGER refresh_post ON post;
|
||||
|
||||
CREATE TRIGGER refresh_post
|
||||
AFTER INSERT OR UPDATE OR DELETE OR TRUNCATE ON post
|
||||
|
|
|
@ -493,5 +493,3 @@ SELECT
|
|||
FROM
|
||||
post_aggregates_fast pav;
|
||||
|
||||
CREATE INDEX idx_post_aggregates_fast_hot_rank_published ON post_aggregates_fast (hot_rank DESC, published DESC);
|
||||
|
||||
|
|
|
@ -1,47 +1,47 @@
|
|||
-- Drops first
|
||||
DROP VIEW IF EXISTS site_view;
|
||||
DROP VIEW site_view;
|
||||
|
||||
DROP TABLE IF EXISTS user_fast;
|
||||
DROP TABLE user_fast;
|
||||
|
||||
DROP VIEW IF EXISTS user_view;
|
||||
DROP VIEW user_view;
|
||||
|
||||
DROP VIEW IF EXISTS post_fast_view;
|
||||
DROP VIEW post_fast_view;
|
||||
|
||||
DROP TABLE IF EXISTS post_aggregates_fast;
|
||||
DROP TABLE post_aggregates_fast;
|
||||
|
||||
DROP VIEW IF EXISTS post_view;
|
||||
DROP VIEW post_view;
|
||||
|
||||
DROP VIEW IF EXISTS post_aggregates_view;
|
||||
DROP VIEW post_aggregates_view;
|
||||
|
||||
DROP VIEW IF EXISTS community_moderator_view;
|
||||
DROP VIEW community_moderator_view;
|
||||
|
||||
DROP VIEW IF EXISTS community_follower_view;
|
||||
DROP VIEW community_follower_view;
|
||||
|
||||
DROP VIEW IF EXISTS community_user_ban_view;
|
||||
DROP VIEW community_user_ban_view;
|
||||
|
||||
DROP VIEW IF EXISTS community_view;
|
||||
DROP VIEW community_view;
|
||||
|
||||
DROP VIEW IF EXISTS community_aggregates_view;
|
||||
DROP VIEW community_aggregates_view;
|
||||
|
||||
DROP VIEW IF EXISTS community_fast_view;
|
||||
DROP VIEW community_fast_view;
|
||||
|
||||
DROP TABLE IF EXISTS community_aggregates_fast;
|
||||
DROP TABLE community_aggregates_fast;
|
||||
|
||||
DROP VIEW IF EXISTS private_message_view;
|
||||
DROP VIEW private_message_view;
|
||||
|
||||
DROP VIEW IF EXISTS user_mention_view;
|
||||
DROP VIEW user_mention_view;
|
||||
|
||||
DROP VIEW IF EXISTS reply_fast_view;
|
||||
DROP VIEW reply_fast_view;
|
||||
|
||||
DROP VIEW IF EXISTS comment_fast_view;
|
||||
DROP VIEW comment_fast_view;
|
||||
|
||||
DROP VIEW IF EXISTS comment_view;
|
||||
DROP VIEW comment_view;
|
||||
|
||||
DROP VIEW IF EXISTS user_mention_fast_view;
|
||||
DROP VIEW user_mention_fast_view;
|
||||
|
||||
DROP TABLE IF EXISTS comment_aggregates_fast;
|
||||
DROP TABLE comment_aggregates_fast;
|
||||
|
||||
DROP VIEW IF EXISTS comment_aggregates_view;
|
||||
DROP VIEW comment_aggregates_view;
|
||||
|
||||
ALTER TABLE site
|
||||
DROP COLUMN icon,
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
-- Drop first
|
||||
DROP VIEW IF EXISTS community_view;
|
||||
DROP VIEW community_view;
|
||||
|
||||
DROP VIEW IF EXISTS community_aggregates_view;
|
||||
DROP VIEW community_aggregates_view;
|
||||
|
||||
DROP VIEW IF EXISTS community_fast_view;
|
||||
DROP VIEW community_fast_view;
|
||||
|
||||
DROP TABLE IF EXISTS community_aggregates_fast;
|
||||
DROP TABLE community_aggregates_fast;
|
||||
|
||||
CREATE VIEW community_aggregates_view AS
|
||||
SELECT
|
||||
|
|
|
@ -155,8 +155,7 @@ BEGIN
|
|||
UPDATE
|
||||
post_aggregates_fast AS paf
|
||||
SET
|
||||
hot_rank = pav.hot_rank,
|
||||
hot_rank_active = pav.hot_rank_active
|
||||
hot_rank = pav.hot_rank
|
||||
FROM
|
||||
post_aggregates_view AS pav
|
||||
WHERE
|
||||
|
@ -221,36 +220,14 @@ BEGIN
|
|||
post_aggregates_view
|
||||
WHERE
|
||||
id = NEW.post_id;
|
||||
-- Update the comment hot_ranks as of last week
|
||||
UPDATE
|
||||
comment_aggregates_fast AS caf
|
||||
SET
|
||||
hot_rank = cav.hot_rank,
|
||||
hot_rank_active = cav.hot_rank_active
|
||||
FROM
|
||||
comment_aggregates_view AS cav
|
||||
WHERE
|
||||
caf.id = cav.id
|
||||
AND (cav.published > ('now'::timestamp - '1 week'::interval));
|
||||
-- Update the post ranks
|
||||
-- Force the hot rank as zero on week-older posts
|
||||
UPDATE
|
||||
post_aggregates_fast AS paf
|
||||
SET
|
||||
hot_rank = pav.hot_rank,
|
||||
hot_rank_active = pav.hot_rank_active
|
||||
FROM
|
||||
post_aggregates_view AS pav
|
||||
WHERE
|
||||
paf.id = pav.id
|
||||
AND (pav.published > ('now'::timestamp - '1 week'::interval));
|
||||
-- Force the hot rank active as zero on 2 day-older posts (necro-bump)
|
||||
UPDATE
|
||||
post_aggregates_fast AS paf
|
||||
SET
|
||||
hot_rank_active = 0
|
||||
hot_rank = 0
|
||||
WHERE
|
||||
paf.id = NEW.post_id
|
||||
AND (paf.published < ('now'::timestamp - '2 days'::interval));
|
||||
AND (paf.published < ('now'::timestamp - '1 week'::interval));
|
||||
-- Update community number of comments
|
||||
UPDATE
|
||||
community_aggregates_fast AS caf
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
DROP VIEW IF EXISTS comment_report_view;
|
||||
DROP VIEW comment_report_view;
|
||||
|
||||
DROP VIEW IF EXISTS post_report_view;
|
||||
DROP VIEW post_report_view;
|
||||
|
||||
DROP TABLE comment_report;
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
ALTER TABLE activity
|
||||
ADD COLUMN user_id INTEGER NOT NULL REFERENCES user_ (id) ON UPDATE CASCADE ON DELETE CASCADE;
|
||||
ADD COLUMN user_id INTEGER;
|
||||
|
||||
ALTER TABLE activity
|
||||
DROP COLUMN sensitive;
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
DROP VIEW user_alias_1, user_alias_2;
|
||||
|
||||
ALTER TABLE community
|
||||
DROP COLUMN followers_url;
|
||||
|
||||
|
@ -15,16 +13,3 @@ ALTER TABLE user_
|
|||
ALTER TABLE user_
|
||||
DROP COLUMN shared_inbox_url;
|
||||
|
||||
-- Views are the same as before, except `*` does not reference the dropped columns
|
||||
CREATE VIEW user_alias_1 AS
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
user_;
|
||||
|
||||
CREATE VIEW user_alias_2 AS
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
user_;
|
||||
|
||||
|
|
|
@ -34,9 +34,3 @@ INSERT INTO category (name)
|
|||
ALTER TABLE community
|
||||
ADD category_id int REFERENCES category ON UPDATE CASCADE ON DELETE CASCADE NOT NULL DEFAULT 1;
|
||||
|
||||
-- Default is only for existing rows
|
||||
ALTER TABLE community
|
||||
ALTER COLUMN category_id DROP DEFAULT;
|
||||
|
||||
CREATE INDEX idx_community_category ON community (category_id);
|
||||
|
||||
|
|
|
@ -229,7 +229,7 @@ ALTER SEQUENCE person_id_seq
|
|||
-- Add the columns back in
|
||||
ALTER TABLE user_
|
||||
ADD COLUMN password_encrypted text NOT NULL DEFAULT 'changeme',
|
||||
ADD COLUMN email text UNIQUE,
|
||||
ADD COLUMN email text,
|
||||
ADD COLUMN admin boolean DEFAULT FALSE NOT NULL,
|
||||
ADD COLUMN show_nsfw boolean DEFAULT FALSE NOT NULL,
|
||||
ADD COLUMN theme character varying(20) DEFAULT 'darkly'::character varying NOT NULL,
|
||||
|
@ -238,11 +238,7 @@ ALTER TABLE user_
|
|||
ADD COLUMN lang character varying(20) DEFAULT 'browser'::character varying NOT NULL,
|
||||
ADD COLUMN show_avatars boolean DEFAULT TRUE NOT NULL,
|
||||
ADD COLUMN send_notifications_to_email boolean DEFAULT FALSE NOT NULL,
|
||||
ADD COLUMN matrix_user_id text UNIQUE;
|
||||
|
||||
-- Default is only for existing rows
|
||||
ALTER TABLE user_
|
||||
ALTER COLUMN password_encrypted DROP DEFAULT;
|
||||
ADD COLUMN matrix_user_id text;
|
||||
|
||||
-- Update the user_ table with the local_user data
|
||||
UPDATE
|
||||
|
@ -264,8 +260,6 @@ FROM
|
|||
WHERE
|
||||
lu.person_id = u.id;
|
||||
|
||||
CREATE UNIQUE INDEX idx_user_email_lower ON user_ (lower(email));
|
||||
|
||||
CREATE VIEW user_alias_1 AS
|
||||
SELECT
|
||||
*
|
||||
|
|
|
@ -1,4 +1,2 @@
|
|||
DROP TABLE secret;
|
||||
|
||||
DROP EXTENSION pgcrypto;
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
ALTER TABLE post
|
||||
DROP COLUMN embed_video_url;
|
||||
DROP COLUMN embed_url;
|
||||
|
||||
ALTER TABLE post
|
||||
ADD COLUMN embed_html text;
|
||||
ADD COLUMN embed_video_url text;
|
||||
|
||||
|
|
|
@ -116,10 +116,6 @@ FROM
|
|||
WHERE
|
||||
c.id = ct.id;
|
||||
|
||||
-- Without this, `DROP EXTENSION` in down.sql throws an object dependency error if up.sql and down.sql
|
||||
-- are run in the same database connection
|
||||
DROP TABLE comment_temp;
|
||||
|
||||
-- Update the child counts
|
||||
UPDATE
|
||||
comment_aggregates ca
|
||||
|
|
|
@ -6,7 +6,7 @@ ALTER TABLE site
|
|||
ADD COLUMN community_creation_admin_only boolean DEFAULT FALSE NOT NULL,
|
||||
ADD COLUMN require_email_verification boolean DEFAULT FALSE NOT NULL,
|
||||
ADD COLUMN require_application boolean DEFAULT TRUE NOT NULL,
|
||||
ADD COLUMN application_question text DEFAULT 'To verify that you are human, please explain why you want to create an account on this site'::text,
|
||||
ADD COLUMN application_question text DEFAULT 'to verify that you are human, please explain why you want to create an account on this site'::text,
|
||||
ADD COLUMN private_instance boolean DEFAULT FALSE NOT NULL,
|
||||
ADD COLUMN default_theme text DEFAULT 'browser'::text NOT NULL,
|
||||
ADD COLUMN default_post_listing_type text DEFAULT 'Local'::text NOT NULL,
|
||||
|
|
|
@ -65,15 +65,3 @@ CREATE TRIGGER post_aggregates_stickied
|
|||
WHEN (OLD.stickied IS DISTINCT FROM NEW.stickied)
|
||||
EXECUTE PROCEDURE post_aggregates_stickied ();
|
||||
|
||||
CREATE INDEX idx_post_aggregates_stickied_newest_comment_time ON post_aggregates (stickied DESC, newest_comment_time DESC);
|
||||
|
||||
CREATE INDEX idx_post_aggregates_stickied_comments ON post_aggregates (stickied DESC, comments DESC);
|
||||
|
||||
CREATE INDEX idx_post_aggregates_stickied_hot ON post_aggregates (stickied DESC, hot_rank (score, published) DESC, published DESC);
|
||||
|
||||
CREATE INDEX idx_post_aggregates_stickied_active ON post_aggregates (stickied DESC, hot_rank (score, newest_comment_time_necro) DESC, newest_comment_time_necro DESC);
|
||||
|
||||
CREATE INDEX idx_post_aggregates_stickied_score ON post_aggregates (stickied DESC, score DESC);
|
||||
|
||||
CREATE INDEX idx_post_aggregates_stickied_published ON post_aggregates (stickied DESC, published DESC);
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@ CREATE INDEX idx_post_aggregates_comments ON post_aggregates (comments DESC);
|
|||
|
||||
CREATE INDEX idx_post_aggregates_hot ON post_aggregates (hot_rank (score, published) DESC, published DESC);
|
||||
|
||||
CREATE INDEX idx_post_aggregates_active ON post_aggregates (hot_rank (score, newest_comment_time_necro) DESC, newest_comment_time_necro DESC);
|
||||
CREATE INDEX idx_post_aggregates_active ON post_aggregates (hot_rank (score, newest_comment_time) DESC, newest_comment_time DESC);
|
||||
|
||||
CREATE INDEX idx_post_aggregates_score ON post_aggregates (score DESC);
|
||||
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
ALTER TABLE local_site
|
||||
ADD COLUMN federation_debug boolean DEFAULT FALSE NOT NULL;
|
||||
ADD COLUMN federation_debug int DEFAULT 0;
|
||||
|
||||
|
|
|
@ -117,7 +117,7 @@ ALTER TABLE local_site
|
|||
ALTER COLUMN default_post_listing_type TYPE text;
|
||||
|
||||
ALTER TABLE local_site
|
||||
ALTER COLUMN default_post_listing_type SET DEFAULT 'Local';
|
||||
ALTER COLUMN default_post_listing_type SET DEFAULT 1;
|
||||
|
||||
-- Drop the types
|
||||
DROP TYPE listing_type_enum;
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
SELECT
|
||||
1;
|
||||
|
|
@ -1,6 +1,3 @@
|
|||
ALTER TABLE local_user
|
||||
ALTER default_sort_type DROP DEFAULT;
|
||||
|
||||
-- update the default sort type
|
||||
UPDATE
|
||||
local_user
|
||||
|
@ -32,9 +29,6 @@ ALTER TABLE local_user
|
|||
ALTER COLUMN default_sort_type TYPE sort_type_enum
|
||||
USING default_sort_type::text::sort_type_enum;
|
||||
|
||||
ALTER TABLE local_user
|
||||
ALTER default_sort_type SET DEFAULT 'Active';
|
||||
|
||||
-- drop the old enum
|
||||
DROP TYPE sort_type_enum__;
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
ALTER TABLE local_user
|
||||
ALTER default_sort_type DROP DEFAULT;
|
||||
|
||||
-- update the default sort type
|
||||
UPDATE
|
||||
local_user
|
||||
|
@ -35,9 +32,6 @@ ALTER TABLE local_user
|
|||
ALTER COLUMN default_sort_type TYPE sort_type_enum
|
||||
USING default_sort_type::text::sort_type_enum;
|
||||
|
||||
ALTER TABLE local_user
|
||||
ALTER default_sort_type SET DEFAULT 'Active';
|
||||
|
||||
-- drop the old enum
|
||||
DROP TYPE sort_type_enum__;
|
||||
|
||||
|
|
|
@ -26,5 +26,3 @@ DROP TABLE sent_activity;
|
|||
|
||||
DROP TABLE received_activity;
|
||||
|
||||
CREATE UNIQUE INDEX idx_activity_ap_id ON activity (ap_id);
|
||||
|
||||
|
|
|
@ -6,5 +6,3 @@ DROP INDEX idx_person_trigram;
|
|||
|
||||
DROP INDEX idx_community_trigram;
|
||||
|
||||
DROP EXTENSION pg_trgm;
|
||||
|
||||
|
|
|
@ -14,7 +14,3 @@ WHERE
|
|||
ALTER TABLE local_user
|
||||
DROP COLUMN admin;
|
||||
|
||||
CREATE INDEX idx_person_admin ON person (admin)
|
||||
WHERE
|
||||
admin;
|
||||
|
||||
|
|
|
@ -328,9 +328,7 @@ ALTER TABLE captcha_answer
|
|||
ALTER COLUMN published TYPE timestamp
|
||||
USING published;
|
||||
|
||||
DROP FUNCTION hot_rank;
|
||||
|
||||
CREATE FUNCTION hot_rank (score numeric, published timestamp without time zone)
|
||||
CREATE OR REPLACE FUNCTION hot_rank (score numeric, published timestamp without time zone)
|
||||
RETURNS integer
|
||||
AS $$
|
||||
DECLARE
|
||||
|
|
|
@ -85,18 +85,3 @@ ALTER TABLE local_user
|
|||
-- drop the old enum
|
||||
DROP TYPE sort_type_enum__;
|
||||
|
||||
-- Remove int to float conversions that were automatically added to index filters
|
||||
DROP INDEX idx_comment_aggregates_nonzero_hotrank, idx_community_aggregates_nonzero_hotrank, idx_post_aggregates_nonzero_hotrank;
|
||||
|
||||
CREATE INDEX idx_community_aggregates_nonzero_hotrank ON community_aggregates (published)
|
||||
WHERE
|
||||
hot_rank != 0;
|
||||
|
||||
CREATE INDEX idx_comment_aggregates_nonzero_hotrank ON comment_aggregates (published)
|
||||
WHERE
|
||||
hot_rank != 0;
|
||||
|
||||
CREATE INDEX idx_post_aggregates_nonzero_hotrank ON post_aggregates (published DESC)
|
||||
WHERE
|
||||
hot_rank != 0 OR hot_rank_active != 0;
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
DROP TABLE login_token;
|
||||
|
||||
ALTER TABLE local_user
|
||||
ADD COLUMN validator_time timestamptz NOT NULL DEFAULT now();
|
||||
ADD COLUMN validator_time timestamp NOT NULL DEFAULT now();
|
||||
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
ALTER TABLE mod_remove_community
|
||||
ADD COLUMN expires timestamptz;
|
||||
ADD COLUMN expires timestamp;
|
||||
|
||||
|
|
|
@ -148,7 +148,7 @@ ALTER TABLE post_read
|
|||
ALTER TABLE received_activity
|
||||
ADD UNIQUE (ap_id),
|
||||
DROP CONSTRAINT received_activity_pkey,
|
||||
ADD COLUMN id bigserial PRIMARY KEY;
|
||||
ADD COLUMN id serial PRIMARY KEY;
|
||||
|
||||
CREATE INDEX idx_post_saved_person_id ON post_saved (person_id);
|
||||
|
||||
|
|
|
@ -945,13 +945,6 @@ CREATE TRIGGER site_aggregates_comment_insert
|
|||
WHEN ((new.local = TRUE))
|
||||
EXECUTE FUNCTION site_aggregates_comment_insert ();
|
||||
|
||||
CREATE TRIGGER site_aggregates_community_delete
|
||||
AFTER DELETE OR UPDATE OF removed,
|
||||
deleted ON community
|
||||
FOR EACH ROW
|
||||
WHEN (OLD.local = TRUE)
|
||||
EXECUTE PROCEDURE site_aggregates_community_delete ();
|
||||
|
||||
CREATE TRIGGER site_aggregates_community_insert
|
||||
AFTER INSERT OR UPDATE OF removed,
|
||||
deleted ON community
|
||||
|
|
Loading…
Reference in a new issue