Fix recursive query

pull/3311/head
Alex Baker 11 months ago
parent 951d4de52d
commit 5d2e25ec4e

@ -115,14 +115,20 @@ internal object TaskListQueryRecursive {
${SortHelper.orderForGroupTypeRecursive(groupMode, groupAscending)},
${SortHelper.orderForSortTypeRecursive(sortMode, sortAscending, subtaskMode, subtaskAscending)}
),
numbered_tasks AS (
SELECT task, ROW_NUMBER() OVER () AS sequence
max_indent AS (
SELECT
task,
MAX(recursive_tasks.indent) OVER (PARTITION BY task) AS max_indent
FROM recursive_tasks
),
max_indent AS (
SELECT task,
MAX(recursive_tasks.indent) OVER (PARTITION BY task) AS max_indent
numbered_tasks AS (
SELECT
recursive_tasks.task,
max_indent,
ROW_NUMBER() OVER () AS sequence
FROM recursive_tasks
INNER JOIN max_indent ON max_indent.task = recursive_tasks.task
WHERE recursive_tasks.indent = max_indent
),
child_counts AS (
SELECT DISTINCT(parent),
@ -140,17 +146,16 @@ internal object TaskListQueryRecursive {
secondary_sort,
parent_complete
FROM tasks
INNER JOIN numbered_tasks ON tasks._id = numbered_tasks.task
INNER JOIN max_indent ON tasks._id = max_indent.task
INNER JOIN recursive_tasks ON recursive_tasks.task = tasks._id
INNER JOIN numbered_tasks ON tasks._id = numbered_tasks.task
LEFT JOIN child_counts ON child_counts.parent = tasks._id
LEFT JOIN tags ON tags.task = tasks._id
${TaskListQuery.JOINS}
WHERE
recursive_tasks.hidden = 0
AND recursive_tasks.indent = max_indent
GROUP BY tasks._id
ORDER BY sequence
GROUP BY tasks._id
ORDER BY sequence
""".trimIndent()
return SortHelper.adjustQueryForFlags(preferences, query)

Loading…
Cancel
Save