From 40f19d8f1505fad549cf56a32fccd26141b983fe Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Wed, 26 Aug 2026 01:12:09 +0100 Subject: Move node traversal extraction query to its own file. --- domagi/domagi.py | 35 ++++++++--------------------------- domagi/extract-node-traversal.sql | 17 +++++++++++++++++ 2 files changed, 25 insertions(+), 27 deletions(-) create mode 100644 domagi/extract-node-traversal.sql diff --git a/domagi/domagi.py b/domagi/domagi.py index 4d9bb45..2aba383 100644 --- a/domagi/domagi.py +++ b/domagi/domagi.py @@ -253,42 +253,23 @@ def extract(con, outfile, segment_name, path_range, steps, threads, progress): re.match(r"^([^:]*):(\d+)-(\d+)", path_range).groups()) else: raise ValueError("Neither --node and --path-range specified") - con.execute(""" - CREATE TEMPORARY TABLE reachable_segment AS - WITH RECURSIVE cte (id, distance) AS ( - SELECT id, 0 FROM initial_segment - UNION ALL - SELECT DISTINCT to_segment, distance+1 FROM cte - INNER JOIN ( - -- Eliminate directionality of the link table. We must traverse both - -- to segments leading out of and to segments leading into the - -- current segment. - SELECT from_segment, to_segment FROM link - UNION - SELECT to_segment AS from_segment, from_segment AS to_segment FROM link - ) - ON from_segment=id - WHERE distance