mirror of
https://github.com/LemmyNet/lemmy.git
synced 2024-12-13 22:22:10 +00:00
80 lines
2.1 KiB
PL/PgSQL
80 lines
2.1 KiB
PL/PgSQL
DROP TRIGGER IF EXISTS post_aggregates_featured_local ON post;
|
|
|
|
DROP TRIGGER IF EXISTS post_aggregates_featured_community ON post;
|
|
|
|
DROP FUNCTION post_aggregates_featured_community;
|
|
|
|
DROP FUNCTION post_aggregates_featured_local;
|
|
|
|
ALTER TABLE post
|
|
ADD stickied boolean NOT NULL DEFAULT FALSE;
|
|
|
|
UPDATE
|
|
post
|
|
SET
|
|
stickied = featured_community;
|
|
|
|
ALTER TABLE post
|
|
DROP COLUMN featured_community;
|
|
|
|
ALTER TABLE post
|
|
DROP COLUMN featured_local;
|
|
|
|
ALTER TABLE post_aggregates
|
|
ADD stickied boolean NOT NULL DEFAULT FALSE;
|
|
|
|
UPDATE
|
|
post_aggregates
|
|
SET
|
|
stickied = featured_community;
|
|
|
|
ALTER TABLE post_aggregates
|
|
DROP COLUMN featured_community;
|
|
|
|
ALTER TABLE post_aggregates
|
|
DROP COLUMN featured_local;
|
|
|
|
ALTER TABLE mod_feature_post RENAME COLUMN featured TO stickied;
|
|
|
|
ALTER TABLE mod_feature_post
|
|
DROP COLUMN is_featured_community;
|
|
|
|
ALTER TABLE mod_feature_post
|
|
ALTER COLUMN stickied DROP NOT NULL;
|
|
|
|
ALTER TABLE mod_feature_post RENAME TO mod_sticky_post;
|
|
|
|
CREATE FUNCTION post_aggregates_stickied ()
|
|
RETURNS TRIGGER
|
|
LANGUAGE plpgsql
|
|
AS $$
|
|
BEGIN
|
|
UPDATE
|
|
post_aggregates pa
|
|
SET
|
|
stickied = NEW.stickied
|
|
WHERE
|
|
pa.post_id = NEW.id;
|
|
RETURN NULL;
|
|
END
|
|
$$;
|
|
|
|
CREATE TRIGGER post_aggregates_stickied
|
|
AFTER UPDATE ON post
|
|
FOR EACH ROW
|
|
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);
|
|
|