Commit ed61c510 authored by Sonia Zorba's avatar Sonia Zorba
Browse files

Updated nodes to delete query (used fs_path instead of relative_path)

parent 01a20be4
Loading
Loading
Loading
Loading
+2 −21
Original line number Diff line number Diff line
@@ -241,27 +241,8 @@ class DbConnector(object):
            conn = self.getConnection()
            cursor = conn.cursor(cursor_factory = RealDictCursor)
            cursor.execute("""
                WITH RECURSIVE all_nodes AS (
                    SELECT node_id, name, os_name, relative_path, parent_relative_path
                    FROM node
                    UNION
                    SELECT node_id, name, os_name, path(parent_relative_path, node_id) AS relative_path, parent_relative_path
                    FROM deleted_node
                ), del AS (
                    SELECT COALESCE(os_name, name) AS os_name, 1 AS level, node_id AS deleted_node_id,
                    path(parent_relative_path, node_id) AS relative_path, parent_relative_path 
                    FROM deleted_node WHERE phy_deleted_on IS NULL
                    UNION ALL
                    SELECT COALESCE(n.os_name, n.name), d.level + 1, d.deleted_node_id,
                    n.relative_path, n.parent_relative_path
                    FROM all_nodes n JOIN del d ON n.relative_path = d.parent_relative_path
                    WHERE n.parent_relative_path IS NOT NULL
                ), paths_to_delete AS
                (SELECT deleted_node_id, '/' || STRING_AGG(os_name, '/' ORDER BY LEVEL DESC) AS os_path
                FROM del GROUP BY deleted_node_id)
                SELECT base_path || '/' || creator_id as os_base_path, os_path AS os_rel_path, deleted_on, d.node_id
                FROM paths_to_delete p
                JOIN deleted_node d ON d.node_id = p.deleted_node_id
                SELECT base_path as os_base_path, '/' || fs_path AS os_rel_path, deleted_on, d.node_id
                FROM deleted_node d
                JOIN location l ON d.location_id = l.location_id
                JOIN storage s ON s.storage_id = l.storage_src_id;
                """)