From 576b84e5a7233a4df3e9327597c0c3a4165aad56 Mon Sep 17 00:00:00 2001 From: phweyland Date: Sun, 26 Dec 2021 19:33:48 -0300 Subject: [PATCH] export tags: roll back #9963 taking care #9949 is still fixed fixes #10696 --- src/common/tags.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/common/tags.c b/src/common/tags.c index d45b87e4e3e5..fc056b55a909 100644 --- a/src/common/tags.c +++ b/src/common/tags.c @@ -665,10 +665,18 @@ static uint32_t _tag_get_attached_export(const gint imgid, GList **result) sqlite3_stmt *stmt; DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), - "SELECT DISTINCT TI.tagid, T.name, T.flags, T.synonyms" - " FROM main.tagged_images AS TI" - " JOIN data.tags AS T ON T.id = TI.tagid" - " WHERE TI.imgid = ?1 AND TI.tagid NOT IN memory.darktable_tags", + "SELECT DISTINCT T.id, T.name, T.flags, T.synonyms" + " FROM data.tags AS T" + // tags attached to image(s), not dt tag, ordered by name + " JOIN (SELECT DISTINCT I.tagid, T.name" + " FROM main.tagged_images AS I" + " JOIN data.tags AS T ON T.id = I.tagid" + " WHERE I.imgid = ?1 AND T.id NOT IN memory.darktable_tags" + " ORDER by T.name) AS T1" + // keep also tags in the path to be able to check category in path + " ON T.id = T1.tagid" + " OR (T.name = SUBSTR(T1.name, 1, LENGTH(T.name))" + " AND SUBSTR(T1.name, LENGTH(T.name) + 1, 1) = '|')", -1, &stmt, NULL); DT_DEBUG_SQLITE3_BIND_INT(stmt, 1, imgid); // Create result