diff options
| -rw-r--r-- | domagi/domagi.py | 8 | ||||
| -rw-r--r-- | domagi/extract-path-range.sql | 6 | ||||
| -rw-r--r-- | meson.build | 1 |
3 files changed, 8 insertions, 7 deletions
diff --git a/domagi/domagi.py b/domagi/domagi.py index f5cdde5..0abf006 100644 --- a/domagi/domagi.py +++ b/domagi/domagi.py @@ -240,13 +240,7 @@ def extract(con, outfile, segment_name, path_range, steps, threads, progress): out_con.execute(read_sql("schema.sql")) if path_range: path, start, end = re.match(r"^([^:]*):(\d+)-(\d+)", path_range).groups() - con.execute(""" - CREATE TEMPORARY TABLE selected_segment AS - SELECT segment_id AS id - FROM path_segment - INNER JOIN path ON path.id=path_segment.path_id - WHERE path.name=$1 AND $2<path_segment.end AND path_segment.start<$3; - """, + con.execute(read_sql("extract-path-range.sql"), [path, int(start), int(end)]) elif segment_name: con.execute(read_sql("extract-node-traversal.sql"), diff --git a/domagi/extract-path-range.sql b/domagi/extract-path-range.sql new file mode 100644 index 0000000..897e57b --- /dev/null +++ b/domagi/extract-path-range.sql @@ -0,0 +1,6 @@ +-- Select segments in the specified path range. +CREATE TEMPORARY TABLE selected_segment AS + SELECT segment_id AS id + FROM path_segment + INNER JOIN path ON path.id=path_segment.path_id + WHERE path.name=$1 AND $2<path_segment.end AND path_segment.start<$3; diff --git a/meson.build b/meson.build index 4fbc671..8a37e32 100644 --- a/meson.build +++ b/meson.build @@ -14,6 +14,7 @@ install_data('domagi/matrix.sql', 'domagi/chop-1.sql', 'domagi/chop-2.sql', 'domagi/extract-node-traversal.sql', + 'domagi/extract-path-range.sql', 'domagi/bed-depth.sql', 'domagi/overlap.sql', 'domagi/path-depth.sql', |
