Loading transfer_service/db_connector.py +8 −2 Original line number Diff line number Diff line Loading @@ -196,14 +196,20 @@ class DbConnector(object): try: cursor = conn.cursor(cursor_factory = RealDictCursor) cursor.execute(""" WITH RECURSIVE del AS ( 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 node n JOIN del d ON n.relative_path = d.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 Loading Loading
transfer_service/db_connector.py +8 −2 Original line number Diff line number Diff line Loading @@ -196,14 +196,20 @@ class DbConnector(object): try: cursor = conn.cursor(cursor_factory = RealDictCursor) cursor.execute(""" WITH RECURSIVE del AS ( 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 node n JOIN del d ON n.relative_path = d.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 Loading