1.11.2 - browser - categories - Delete unused Categories - fix ancestor deletion

*** Please report new bugs here! ***

Moderators: xnview, Dreamer

User avatar
user0
XnThusiast
Posts: 2893
Joined: Sat May 09, 2015 9:37 am

1.11.2 - browser - categories - Delete unused Categories - fix ancestor deletion

Post by user0 »

XnViewMP 1.11.2
Windows11 (25H2), display resolution 3840x2160, dpi scale 150%


Browser - categories
'Delete unused Categories...' command fails to preserve hierarchy, deleting unused ancestors of used tags (case c)

Code: Select all

initial       expected      current
a (1)         a (1)         a (1)
b (0)
c (0)         c (0)
└─ c1 (1)     └─ c1 (1)
   └─ c2 (0)
  • current
    user0 wrote: Sun Mar 23, 2025 1:47 pm
    • add 'Delete unused (empty) Categories..'
      command to delete cats that have not assigned to any image (have no records in TagsTree table), eg

      Code: Select all

      DELETE FROM Tags 
      WHERE NOT EXISTS (
          SELECT 1 FROM TagsTree WHERE TagsTree.TagID = Tags.TagID
      );
  • expected
    this sql works as expected

    Code: Select all

    WITH RECURSIVE Keepers(ID) AS (
        SELECT TagID
        FROM TagsTree
        UNION
        SELECT t.ParentID
        FROM Tags t
        JOIN Keepers k ON t.TagID = k.ID
        WHERE t.ParentID != -1
    )
    DELETE FROM Tags
    WHERE NOT EXISTS (
        SELECT 1 FROM Keepers WHERE Keepers.ID = Tags.TagID
    );
    






Related