Add RuboCop rule for preventing using histogram method on large tables
requested to merge 325516-add-rubocop-rule-for-preventing-using-histogram-method-on-large-tables into master
What does this MR do?
Related to #325516 (closed)
This adds UsageData/HistogramWithLargeTable
cop that checks calls to histogram
method in Gitlab::UsageData
for models that wrap large tables as defined in migration helpers, because batch counting with histogram
is not supported.
HighTrafficTables
from Migration/UpdateLargeTable
couldn't be used directly - Rubocop doesn't have the Rails context, so mapping the tables to relevant models on the fly using ActiveRecord
is not possible. Instead, I manually specified models that have the relevant table_name
s in the cop configuration.
Does this MR meet the acceptance criteria?
Conformity
-
I have included a changelog entry, or it's not needed. (Does this MR need a changelog?) -
I have added/updated documentation, or it's not needed. (Is documentation required?) -
I have properly separated EE content from FOSS, or this MR is FOSS only. (Where should EE code go?) -
I have added information for database reviewers in the MR description, or it's not needed. (Does this MR have database related changes?) -
I have self-reviewed this MR per code review guidelines. -
This MR does not harm performance, or I have asked a reviewer to help assess the performance impact. (Merge request performance guidelines) -
I have followed the style guides.
Availability and Testing
-
I have added/updated tests following the Testing Guide, or it's not needed. (Consider all test levels. See the Test Planning Process.) -
I have tested this MR in all supported browsers, or it's not needed. -
I have informed the Infrastructure department of a default or new setting change per definition of done, or it's not needed.
Edited by Piotr Skorupa