|
|
|
|
@ -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)
|
|
|
|
|
|