PERF: we have no use for topic percent rank

Prepare to remove this column
This commit is contained in:
Sam 2018-07-05 15:10:19 +10:00
parent 68bfe0260a
commit 7b26f5086b
2 changed files with 3 additions and 19 deletions

View File

@ -31,6 +31,9 @@ class Topic < ActiveRecord::Base
def_delegator :notifier, :mute!, :notify_muted!
def_delegator :notifier, :toggle_mute, :toggle_mute
# TODO remove 01-01-2019
self.ignored_columns = ["percent_rank"]
attr_accessor :allowed_user_ids, :tags_changed, :includes_destination_category
DiscourseEvent.on(:site_setting_saved) do |site_setting|
@ -1433,7 +1436,6 @@ end
# spam_count :integer default(0), not null
# pinned_at :datetime
# score :float
# percent_rank :float default(1.0), not null
# subtype :string
# slug :string
# deleted_by_id :integer

View File

@ -20,7 +20,6 @@ class ScoreCalculator
update_posts_score(opts)
update_posts_rank(opts)
update_topics_rank(opts)
update_topics_percent_rank(opts)
end
private
@ -120,23 +119,6 @@ SQL
builder.exec
end
def update_topics_percent_rank(opts)
builder = DB.build <<~SQL
UPDATE topics SET percent_rank = x.percent_rank
FROM (SELECT id, percent_rank()
OVER (ORDER BY SCORE DESC) as percent_rank
FROM topics) AS x
/*where*/
SQL
builder.where("x.id = topics.id AND (topics.percent_rank <> x.percent_rank OR topics.percent_rank IS NULL)")
filter_topics(builder, opts)
builder.exec
end
def filter_topics(builder, opts)
return builder unless opts