creecros / Group_assign

Kanboard Plugin to Assign Tasks to Groups and multiple users
MIT License
61 stars 23 forks source link

Breaking error on viewing the board #50

Closed iessing closed 4 years ago

iessing commented 4 years ago

Breaking error on viewing the Board. It only displays the error message "SQL: SQLSTATE[21000]: Cardinality violation: 1242 Subquery returns more than 1 row" without any other indication.

Log:

[2020-02-14 12:12:10] [debug] SQL: SELECT (SELECT COUNT(*) FROM comments WHERE task_id=tasks.id) AS nb_comments, (SELECT COUNT(*) FROM task_has_files WHERE task_id=tasks.id) AS nb_files, (SELECT COUNT(*) FROM subtasks WHERE subtasks.task_id=tasks.id) AS nb_subtasks, (SELECT COUNT(*) FROM subtasks WHERE subtasks.task_id=tasks.id AND status=2) AS nb_completed_subtasks, (SELECT COUNT(*) FROM task_has_links WHERE task_has_links.task_id = tasks.id) AS nb_links, (SELECT COUNT(*) FROM task_has_external_links WHERE task_has_external_links.task_id = tasks.id) AS nb_external_links, (SELECT DISTINCT 1 FROM task_has_links WHERE task_has_links.task_id = tasks.id AND task_has_links.link_id = 9) AS is_milestone, tasks.id, tasks.reference, tasks.title, tasks.description, tasks.date_creation, tasks.date_modification, tasks.date_completed, tasks.date_started, tasks.date_due, tasks.color_id, tasks.project_id, tasks.column_id, tasks.swimlane_id, tasks.owner_id, tasks.creator_id, tasks.position, tasks.is_active, tasks.score, tasks.category_id, tasks.priority, tasks.date_moved, tasks.recurrence_status, tasks.recurrence_trigger, tasks.recurrence_factor, tasks.recurrence_timeframe, tasks.recurrence_basedate, tasks.recurrence_parent, tasks.recurrence_child, tasks.time_estimated, tasks.time_spent, users.username AS assignee_username, users.name AS assignee_name, users.email AS assignee_email, users.avatar_path AS assignee_avatar_path, project_has_categories.name AS category_name, project_has_categories.description AS category_description, project_has_categories.color_id AS category_color_id, columns.title AS column_name, columns.position AS column_position, swimlanes.name AS swimlane_name, projects.name AS project_name, tasks.owner_ms, groups.name AS assigned_groupname FROM `tasks` LEFT JOIN `users` ON `users`.`id`=`tasks`.`owner_id` LEFT JOIN `users` AS `uc` ON `uc`.`id`=`tasks`.`creator_id` LEFT JOIN `project_has_categories` ON `project_has_categories`.`id`=`tasks`.`category_id` LEFT JOIN `columns` ON `columns`.`id`=`tasks`.`column_id` LEFT JOIN `swimlanes` ON `swimlanes`.`id`=`tasks`.`swimlane_id` LEFT JOIN `groups` ON `groups`.`id`=`tasks`.`owner_gp` LEFT JOIN `multiselect` ON `multiselect`.`id`=`tasks`.`owner_ms` LEFT JOIN `projects` ON `projects`.`id`=`tasks`.`project_id`  WHERE tasks.is_active = ? AND tasks.date_board <= ? AND tasks.project_id = ?   ORDER BY tasks.position ASC
[2020-02-14 12:12:10] [debug] SQL: SELECT `version` FROM `plugin_schema_versions`   WHERE `plugin` = ?    LIMIT 1
[2020-02-14 12:12:10] [debug] SQL: query_duration=0.00081300735473633
[2020-02-14 12:12:10] [debug] SQL: SQLSTATE[21000]: Cardinality violation: 1242 Subquery returns more than 1 row
[2020-02-14 12:12:10] [debug] SQL: total_execution_time=0.013763189315796

I changed the following line (159) in "OldTaskFinderModel.php" and "NewTaskFinderModel.php"

from:

'(SELECT DISTINCT 1 FROM '.TaskLinkModel::TABLE.' WHERE '.TaskLinkModel::TABLE.'.task_id = tasks.id AND '.TaskLinkModel::TABLE.'.link_id = 9 ) AS is_milestone',

to

'(SELECT DISTINCT 1 FROM '.TaskLinkModel::TABLE.' WHERE '.TaskLinkModel::TABLE.'.task_id = tasks.id AND '.TaskLinkModel::TABLE.'.link_id = 9 LIMIT 1) AS is_milestone',

This solved the issue are there any complications which can happen after this change?

creecros commented 4 years ago

not sure what that would have to do with anything, that line is completely unrelated to group_assign functionality and exists as is, in kanboards core TaskFinderModel.