about summary refs log tree commit diff
diff options
context:
space:
mode:
authorArun Isaac2026-08-14 20:52:14 +0100
committerArun Isaac2026-08-14 20:52:14 +0100
commit6b6dbbb94db9220e6414f7e1dd6a85d025347829 (patch)
tree93598db4a24124cec691287afdf3ee1585cc9c3e
parent2a6fde912bd65b7e60ae17b3355902c2dcdea29e (diff)
downloaddomagi-6b6dbbb94db9220e6414f7e1dd6a85d025347829.tar.gz
domagi-6b6dbbb94db9220e6414f7e1dd6a85d025347829.tar.lz
domagi-6b6dbbb94db9220e6414f7e1dd6a85d025347829.zip
Move path_length to schema as view.
-rw-r--r--domagi/path-depth.sql9
-rw-r--r--domagi/schema.sql7
2 files changed, 7 insertions, 9 deletions
diff --git a/domagi/path-depth.sql b/domagi/path-depth.sql
index 081d015..f4d33d3 100644
--- a/domagi/path-depth.sql
+++ b/domagi/path-depth.sql
@@ -9,15 +9,6 @@ WITH path_depth AS (
        INNER JOIN path ON path.id=path_segment.path_id
        -- subset paths
        WHERE ($1 IS NULL) OR (path.name IN (SELECT UNNEST($1)))
-       GROUP BY path_id),
-     path_length AS (
-       -- Compute length of each path.
-       SELECT path_id, sum(len(sequence)) AS length
-       FROM path_segment
-       INNER JOIN segment ON segment_id=segment.id
-       INNER JOIN path ON path.id=path_segment.path_id
-       -- subset paths (same filter as above)
-       WHERE (($1 IS NULL) OR (path.name IN (SELECT UNNEST($1))))
        GROUP BY path_id)
     -- Combine path name, length and mean depth for display.
     SELECT name, length, mean_depth
diff --git a/domagi/schema.sql b/domagi/schema.sql
index 29066f9..f9a867f 100644
--- a/domagi/schema.sql
+++ b/domagi/schema.sql
@@ -28,6 +28,13 @@ CREATE TABLE path_segment (
        "end" INTEGER,
 );
 
+-- One-to-one relation mapping path IDs to their length
+CREATE VIEW path_length AS
+  SELECT ANY_VALUE(path_id) AS path_id, sum(len(sequence))::INTEGER AS length
+  FROM path_segment
+  INNER JOIN segment ON segment.id=path_segment.segment_id
+  GROUP BY path_id;
+
 -- One-to-one relation mapping segment IDs to their depth
 CREATE VIEW segment_depth AS
   WITH segment_depth_nonzero_depths_only AS (