sue445 / rubocop-isucon

RuboCop plugin for ruby reference implementation of ISUCON

Home Page:https://sue445.github.io/rubocop-isucon/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Fix duplicate offense messages in `RuboCop::Cop::Isucon::Mysql2::ManyJoinTable`

sue445 opened this issue · comments

expect_offense(<<~RUBY)
totals = db.xquery(
^^^^^^^^^^ Avoid SQL with lots of JOINs
^^^^^^^^^^ Avoid SQL with lots of JOINs
"SELECT IFNULL(SUM(`submissions`.`score`), 0) AS `total_score`" \\
" FROM `users`" \\
" JOIN `registrations` ON `users`.`id` = `registrations`.`user_id`" \\
" JOIN `courses` ON `registrations`.`course_id` = `courses`.`id`" \\
" LEFT JOIN `classes` ON `courses`.`id` = `classes`.`course_id`" \\
" LEFT JOIN `submissions` ON `users`.`id` = `submissions`.`user_id` AND `submissions`.`class_id` = `classes`.`id`" \\
" WHERE `courses`.`id` = ?" \\
" GROUP BY `users`.`id`",
course[:id]
).map { |_| _[:total_score] }
RUBY