2026-06-04 12:47:47 +02:00
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
< !DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
2026-06-05 11:31:18 +02:00
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
2026-06-04 12:47:47 +02:00
<!-- Generated by graphviz version 12.2.1 (0)
-->
<!-- Title: StorageWorkflow Pages: 1 -->
<svg width= "2196pt" height= "573pt"
2026-06-05 11:31:18 +02:00
viewBox="0.00 0.00 2195.75 573.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id= "graph0" class= "graph" transform= "scale(1 1) rotate(0) translate(4 569)" >
<title > StorageWorkflow</title>
<polygon fill= "white" stroke= "none" points= "-4,4 -4,-569 2191.75,-569 2191.75,4 -4,4" />
<g id= "clust1" class= "cluster" >
<title > cluster_inputs</title>
<polygon fill= "white" stroke= "#888888" stroke-dasharray= "5,2" points= "23.5,-254 23.5,-557 211.75,-557 211.75,-254 23.5,-254" />
<text text-anchor= "middle" x= "117.62" y= "-539.7" font-family= "Helvetica,Arial,sans-serif" font-size= "14.00" fill= "#555555" > Inputs</text>
</g>
<g id= "clust2" class= "cluster" >
<title > cluster_setup</title>
<polygon fill= "white" stroke= "#9c27b0" stroke-dasharray= "5,2" points= "8,-65 8,-246 524.75,-246 524.75,-65 8,-65" />
<text text-anchor= "middle" x= "266.38" y= "-228.7" font-family= "Helvetica,Arial,sans-serif" font-size= "14.00" fill= "#7b1fa2" > Setup   (open backend, declare relations)</text>
</g>
<g id= "clust3" class= "cluster" >
<title > cluster_write</title>
<polygon fill= "white" stroke= "#4caf50" stroke-dasharray= "5,2" points= "563.75,-323 563.75,-532 1882.5,-532 1882.5,-323 563.75,-323" />
<text text-anchor= "middle" x= "1223.12" y= "-514.7" font-family= "Helvetica,Arial,sans-serif" font-size= "14.00" fill= "#388e3c" > Write   (atomic batch via Transaction)</text>
</g>
<g id= "clust4" class= "cluster" >
<title > cluster_read</title>
<polygon fill= "white" stroke= "#ff9800" stroke-dasharray= "5,2" points= "1568.25,-8 1568.25,-315 1841.75,-315 1841.75,-8 1568.25,-8" />
<text text-anchor= "middle" x= "1705" y= "-297.7" font-family= "Helvetica,Arial,sans-serif" font-size= "14.00" fill= "#f57c00" > Read</text>
</g>
<g id= "clust5" class= "cluster" >
<title > cluster_output</title>
<polygon fill= "white" stroke= "#888888" stroke-dasharray= "5,2" points= "1965.25,-117 1965.25,-306 2179.75,-306 2179.75,-117 1965.25,-117" />
<text text-anchor= "middle" x= "2072.5" y= "-288.7" font-family= "Helvetica,Arial,sans-serif" font-size= "14.00" fill= "#555555" > Output</text>
</g>
<!-- schema -->
<g id= "node1" class= "node" >
<title > schema</title>
<path fill= "#e8f4fd" stroke= "#2196f3" stroke-width= "1.5" d= "M181.75,-366.12C181.75,-366.12 53.5,-366.12 53.5,-366.12 47.5,-366.12 41.5,-360.12 41.5,-354.12 41.5,-354.12 41.5,-283.88 41.5,-283.88 41.5,-277.88 47.5,-271.88 53.5,-271.88 53.5,-271.88 181.75,-271.88 181.75,-271.88 187.75,-271.88 193.75,-277.88 193.75,-283.88 193.75,-283.88 193.75,-354.12 193.75,-354.12 193.75,-360.12 187.75,-366.12 181.75,-366.12" />
<text text-anchor= "start" x= "91.38" y= "-345.82" font-family= "Helvetica,Arial,sans-serif" font-weight= "bold" font-size= "14.00" > Schema</text>
<text text-anchor= "start" x= "53.5" y= "-316.57" font-family= "Helvetica,Arial,sans-serif" font-size= "14.00" > • relation name</text>
<text text-anchor= "start" x= "53.5" y= "-287.57" font-family= "Helvetica,Arial,sans-serif" font-size= "14.00" > • arity (column count)</text>
</g>
<!-- create_relation -->
<g id= "node4" class= "node" >
<title > create_relation</title>
<path fill= "#f3e5f5" stroke= "#9c27b0" stroke-width= "1.5" d= "M498.75,-184C498.75,-184 292.25,-184 292.25,-184 286.25,-184 280.25,-178 280.25,-172 280.25,-172 280.25,-160 280.25,-160 280.25,-154 286.25,-148 292.25,-148 292.25,-148 498.75,-148 498.75,-148 504.75,-148 510.75,-154 510.75,-160 510.75,-160 510.75,-172 510.75,-172 510.75,-178 504.75,-184 498.75,-184" />
<text text-anchor= "middle" x= "395.5" y= "-163.2" font-family= "Helvetica,Arial,sans-serif" font-size= "14.00" > storage.create_relation(name, arity)</text>
</g>
<!-- schema->create_relation -->
<g id= "edge1" class= "edge" >
<title > schema- > create_relation</title>
<path fill= "none" stroke= "#2196f3" stroke-width= "1.2" d= "M194.01,-277.19C244.45,-249.22 309.06,-213.38 351.1,-190.07" />
<polygon fill= "#2196f3" stroke= "#2196f3" stroke-width= "1.2" points= "352.64,-193.22 359.69,-185.31 349.24,-187.1 352.64,-193.22" />
</g>
<!-- row_data -->
<g id= "node2" class= "node" >
<title > row_data</title>
<path fill= "#e8f4fd" stroke= "#2196f3" stroke-width= "1.5" d= "M178.75,-510.12C178.75,-510.12 56.5,-510.12 56.5,-510.12 50.5,-510.12 44.5,-504.12 44.5,-498.12 44.5,-498.12 44.5,-427.88 44.5,-427.88 44.5,-421.88 50.5,-415.88 56.5,-415.88 56.5,-415.88 178.75,-415.88 178.75,-415.88 184.75,-415.88 190.75,-421.88 190.75,-427.88 190.75,-427.88 190.75,-498.12 190.75,-498.12 190.75,-504.12 184.75,-510.12 178.75,-510.12" />
<text text-anchor= "start" x= "86.5" y= "-489.82" font-family= "Helvetica,Arial,sans-serif" font-weight= "bold" font-size= "14.00" > Row Data</text>
<text text-anchor= "start" x= "56.5" y= "-460.57" font-family= "Helvetica,Arial,sans-serif" font-size= "14.00" > • Vec< Value> </text>
<text text-anchor= "start" x= "56.5" y= "-431.57" font-family= "Helvetica,Arial,sans-serif" font-size= "14.00" > • Int / Str / Id(RowId)</text>
</g>
<!-- tx_ops -->
<g id= "node6" class= "node" >
<title > tx_ops</title>
<path fill= "#e8f5e9" stroke= "#4caf50" stroke-width= "1.5" d= "M1020.75,-474.62C1020.75,-474.62 824.25,-474.62 824.25,-474.62 818.25,-474.62 812.25,-468.62 812.25,-462.62 812.25,-462.62 812.25,-363.38 812.25,-363.38 812.25,-357.38 818.25,-351.38 824.25,-351.38 824.25,-351.38 1020.75,-351.38 1020.75,-351.38 1026.75,-351.38 1032.75,-357.38 1032.75,-363.38 1032.75,-363.38 1032.75,-462.62 1032.75,-462.62 1032.75,-468.62 1026.75,-474.62 1020.75,-474.62" />
<text text-anchor= "start" x= "862.88" y= "-454.32" font-family= "Helvetica,Arial,sans-serif" font-weight= "bold" font-size= "14.00" > tx.insert / tx.delete</text>
<text text-anchor= "start" x= "824.25" y= "-425.07" font-family= "Helvetica,Arial,sans-serif" font-size= "14.00" > • insert yields pending RowId</text>
<text text-anchor= "start" x= "824.25" y= "-396.07" font-family= "Helvetica,Arial,sans-serif" font-size= "14.00" > • pending RowIds reused as FKs</text>
<text text-anchor= "start" x= "824.25" y= "-367.07" font-family= "Helvetica,Arial,sans-serif" font-size= "14.00" > • delete by RowId</text>
</g>
<!-- row_data->tx_ops -->
<g id= "edge5" class= "edge" >
<title > row_data- > tx_ops</title>
<path fill= "none" stroke= "#2196f3" stroke-width= "1.2" stroke-dasharray= "5,2" d= "M190.94,-458.5C328.87,-449.91 630.86,-431.1 800.21,-420.55" />
<polygon fill= "#2196f3" stroke= "#2196f3" stroke-width= "1.2" points= "800.34,-424.05 810.11,-419.94 799.91,-417.07 800.34,-424.05" />
</g>
<!-- open_backend -->
<g id= "node3" class= "node" >
<title > open_backend</title>
<path fill= "#f3e5f5" stroke= "#9c27b0" stroke-width= "1.5" d= "M201.25,-202.62C201.25,-202.62 34,-202.62 34,-202.62 28,-202.62 22,-196.62 22,-190.62 22,-190.62 22,-91.38 22,-91.38 22,-85.38 28,-79.38 34,-79.38 34,-79.38 201.25,-79.38 201.25,-79.38 207.25,-79.38 213.25,-85.38 213.25,-91.38 213.25,-91.38 213.25,-190.62 213.25,-190.62 213.25,-196.62 207.25,-202.62 201.25,-202.62" />
<text text-anchor= "start" x= "70" y= "-182.32" font-family= "Helvetica,Arial,sans-serif" font-weight= "bold" font-size= "14.00" > Open Backend</text>
<text text-anchor= "start" x= "34" y= "-153.07" font-family= "Helvetica,Arial,sans-serif" font-size= "14.00" > MemoryStorage::new() /</text>
<text text-anchor= "start" x= "34" y= "-124.08" font-family= "Helvetica,Arial,sans-serif" font-size= "14.00" > SqliteStorage::open(path) /</text>
<text text-anchor= "start" x= "34" y= "-95.08" font-family= "Helvetica,Arial,sans-serif" font-size= "14.00" > FjallStorage::open(path) / ...</text>
</g>
<!-- open_backend->create_relation -->
<g id= "edge2" class= "edge" >
<title > open_backend- > create_relation</title>
<path fill= "none" stroke= "#9c27b0" stroke-width= "1.2" d= "M213.57,-149.6C231.17,-151.2 249.8,-152.89 268.16,-154.55" />
<polygon fill= "#9c27b0" stroke= "#9c27b0" stroke-width= "1.2" points= "267.78,-158.03 278.05,-155.45 268.41,-151.06 267.78,-158.03" />
</g>
<!-- begin_tx -->
<g id= "node5" class= "node" >
<title > begin_tx</title>
<path fill= "#e8f5e9" stroke= "#4caf50" stroke-width= "1.5" d= "M733.25,-387C733.25,-387 589.75,-387 589.75,-387 583.75,-387 577.75,-381 577.75,-375 577.75,-375 577.75,-349 577.75,-349 577.75,-343 583.75,-337 589.75,-337 589.75,-337 733.25,-337 733.25,-337 739.25,-337 745.25,-343 745.25,-349 745.25,-349 745.25,-375 745.25,-375 745.25,-381 739.25,-387 733.25,-387" />
<text text-anchor= "middle" x= "661.5" y= "-369.7" font-family= "Helvetica,Arial,sans-serif" font-size= "14.00" > storage.transaction()</text>
<text text-anchor= "middle" x= "661.5" y= "-348.7" font-family= "Helvetica,Arial,sans-serif" font-size= "14.00" > - > Box< dyn Transaction> </text>
</g>
<!-- create_relation->begin_tx -->
<g id= "edge3" class= "edge" >
<title > create_relation- > begin_tx</title>
<path fill= "none" stroke= "#4caf50" stroke-width= "1.2" d= "M416.8,-184.23C444.61,-208.87 496.48,-253.65 543.75,-288 564.01,-302.72 587.16,-317.74 607.47,-330.37" />
<polygon fill= "#4caf50" stroke= "#4caf50" stroke-width= "1.2" points= "605.6,-333.32 615.94,-335.59 609.27,-327.37 605.6,-333.32" />
</g>
<!-- scan_iter -->
<g id= "node9" class= "node" >
<title > scan_iter</title>
<path fill= "#fff3e0" stroke= "#ff9800" stroke-width= "1.5" d= "M1774.5,-272C1774.5,-272 1635.5,-272 1635.5,-272 1629.5,-272 1623.5,-266 1623.5,-260 1623.5,-260 1623.5,-234 1623.5,-234 1623.5,-228 1629.5,-222 1635.5,-222 1635.5,-222 1774.5,-222 1774.5,-222 1780.5,-222 1786.5,-228 1786.5,-234 1786.5,-234 1786.5,-260 1786.5,-260 1786.5,-266 1780.5,-272 1774.5,-272" />
<text text-anchor= "middle" x= "1705" y= "-254.7" font-family= "Helvetica,Arial,sans-serif" font-size= "14.00" > storage.scan_iter(name)</text>
<text text-anchor= "middle" x= "1705" y= "-233.7" font-family= "Helvetica,Arial,sans-serif" font-size= "14.00" > - > RowStream</text>
</g>
<!-- create_relation->scan_iter -->
<g id= "edge8" class= "edge" >
<title > create_relation- > scan_iter</title>
<path fill= "none" stroke= "#9c27b0" stroke-width= "1.2" stroke-dasharray= "5,2" d= "M430.83,-184.43C480.17,-209.16 574.65,-250 660.5,-250 660.5,-250 660.5,-250 1261.62,-250 1382.54,-250 1522.03,-248.87 1611.53,-247.99" />
<polygon fill= "#9c27b0" stroke= "#9c27b0" stroke-width= "1.2" points= "1611.5,-251.49 1621.46,-247.89 1611.43,-244.49 1611.5,-251.49" />
</g>
<!-- scan_where -->
<g id= "node10" class= "node" >
<title > scan_where</title>
<path fill= "#fff3e0" stroke= "#ff9800" stroke-width= "1.5" d= "M1815.75,-72C1815.75,-72 1594.25,-72 1594.25,-72 1588.25,-72 1582.25,-66 1582.25,-60 1582.25,-60 1582.25,-34 1582.25,-34 1582.25,-28 1588.25,-22 1594.25,-22 1594.25,-22 1815.75,-22 1815.75,-22 1821.75,-22 1827.75,-28 1827.75,-34 1827.75,-34 1827.75,-60 1827.75,-60 1827.75,-66 1821.75,-72 1815.75,-72" />
<text text-anchor= "middle" x= "1705" y= "-54.7" font-family= "Helvetica,Arial,sans-serif" font-size= "14.00" > storage.scan_where(name, col, value)</text>
<text text-anchor= "middle" x= "1705" y= "-33.7" font-family= "Helvetica,Arial,sans-serif" font-size= "14.00" > - > RowStream   (filtered)</text>
</g>
<!-- create_relation->scan_where -->
<g id= "edge9" class= "edge" >
<title > create_relation- > scan_where</title>
<path fill= "none" stroke= "#9c27b0" stroke-width= "1.2" stroke-dasharray= "5,2" d= "M419.28,-147.51C463.15,-113.85 563.58,-46 660.5,-46 660.5,-46 660.5,-46 1261.62,-46 1365.26,-46 1482.56,-46.28 1570.31,-46.54" />
<polygon fill= "#9c27b0" stroke= "#9c27b0" stroke-width= "1.2" points= "1570.12,-50.04 1580.13,-46.57 1570.15,-43.04 1570.12,-50.04" />
</g>
<!-- scan_full -->
<g id= "node11" class= "node" >
<title > scan_full</title>
<path fill= "#fff3e0" stroke= "#ff9800" stroke-width= "1.5" d= "M1792.5,-172C1792.5,-172 1617.5,-172 1617.5,-172 1611.5,-172 1605.5,-166 1605.5,-160 1605.5,-160 1605.5,-134 1605.5,-134 1605.5,-128 1611.5,-122 1617.5,-122 1617.5,-122 1792.5,-122 1792.5,-122 1798.5,-122 1804.5,-128 1804.5,-134 1804.5,-134 1804.5,-160 1804.5,-160 1804.5,-166 1798.5,-172 1792.5,-172" />
<text text-anchor= "middle" x= "1705" y= "-154.7" font-family= "Helvetica,Arial,sans-serif" font-size= "14.00" > storage.scan(name)</text>
<text text-anchor= "middle" x= "1705" y= "-133.7" font-family= "Helvetica,Arial,sans-serif" font-size= "14.00" > - > Vec< (RowId, Vec< Value> )> </text>
</g>
<!-- create_relation->scan_full -->
<g id= "edge10" class= "edge" >
<title > create_relation- > scan_full</title>
<path fill= "none" stroke= "#9c27b0" stroke-width= "1.2" stroke-dasharray= "5,2" d= "M511.06,-154.78C557.41,-151.13 611.46,-148 660.5,-148 660.5,-148 660.5,-148 1261.62,-148 1374.63,-148 1503.88,-147.67 1593.36,-147.39" />
<polygon fill= "#9c27b0" stroke= "#9c27b0" stroke-width= "1.2" points= "1593.37,-150.89 1603.35,-147.36 1593.34,-143.89 1593.37,-150.89" />
</g>
<!-- begin_tx->tx_ops -->
<g id= "edge4" class= "edge" >
<title > begin_tx- > tx_ops</title>
<path fill= "none" stroke= "#4caf50" stroke-width= "1.2" d= "M745.52,-378.35C763.04,-381.8 781.87,-385.51 800.47,-389.17" />
<polygon fill= "#4caf50" stroke= "#4caf50" stroke-width= "1.2" points= "799.73,-392.59 810.22,-391.09 801.09,-385.72 799.73,-392.59" />
</g>
<!-- commit -->
<g id= "node7" class= "node" >
<title > commit</title>
<path fill= "#e8f5e9" stroke= "#4caf50" stroke-width= "1.5" d= "M1409.5,-489.12C1409.5,-489.12 1111.75,-489.12 1111.75,-489.12 1105.75,-489.12 1099.75,-483.12 1099.75,-477.12 1099.75,-477.12 1099.75,-348.88 1099.75,-348.88 1099.75,-342.88 1105.75,-336.88 1111.75,-336.88 1111.75,-336.88 1409.5,-336.88 1409.5,-336.88 1415.5,-336.88 1421.5,-342.88 1421.5,-348.88 1421.5,-348.88 1421.5,-477.12 1421.5,-477.12 1421.5,-483.12 1415.5,-489.12 1409.5,-489.12" />
<text text-anchor= "start" x= "1223.5" y= "-468.82" font-family= "Helvetica,Arial,sans-serif" font-weight= "bold" font-size= "14.00" > tx.commit()</text>
<text text-anchor= "start" x= "1111.75" y= "-439.57" font-family= "Helvetica,Arial,sans-serif" font-size= "14.00" > • native commit (LMDB, redb, SQLite, geomerge)</text>
<text text-anchor= "start" x= "1111.75" y= "-410.57" font-family= "Helvetica,Arial,sans-serif" font-size= "14.00" > • buffered apply (memory, fjall)</text>
<text text-anchor= "start" x= "1111.75" y= "-381.57" font-family= "Helvetica,Arial,sans-serif" font-size= "14.00" > • law validation (geomerge)</text>
<text text-anchor= "start" x= "1111.75" y= "-352.57" font-family= "Helvetica,Arial,sans-serif" font-size= "14.00" > • yields CommittedTx</text>
</g>
<!-- tx_ops->commit -->
<g id= "edge6" class= "edge" >
<title > tx_ops- > commit</title>
<path fill= "none" stroke= "#4caf50" stroke-width= "1.2" d= "M1033.09,-413C1050.7,-413 1069.29,-413 1087.94,-413" />
<polygon fill= "#4caf50" stroke= "#4caf50" stroke-width= "1.2" points= "1087.74,-416.5 1097.74,-413 1087.74,-409.5 1087.74,-416.5" />
</g>
<!-- resolve_ids -->
<g id= "node8" class= "node" >
<title > resolve_ids</title>
<path fill= "#e8f5e9" stroke= "#4caf50" stroke-width= "1.5" d= "M1856.5,-438.12C1856.5,-438.12 1553.5,-438.12 1553.5,-438.12 1547.5,-438.12 1541.5,-432.12 1541.5,-426.12 1541.5,-426.12 1541.5,-355.88 1541.5,-355.88 1541.5,-349.88 1547.5,-343.88 1553.5,-343.88 1553.5,-343.88 1856.5,-343.88 1856.5,-343.88 1862.5,-343.88 1868.5,-349.88 1868.5,-355.88 1868.5,-355.88 1868.5,-426.12 1868.5,-426.12 1868.5,-432.12 1862.5,-438.12 1856.5,-438.12" />
<text text-anchor= "start" x= "1633" y= "-417.82" font-family= "Helvetica,Arial,sans-serif" font-weight= "bold" font-size= "14.00" > CommittedTx::resolve</text>
<text text-anchor= "start" x= "1553.5" y= "-388.57" font-family= "Helvetica,Arial,sans-serif" font-size= "14.00" > • KV: pending == real</text>
<text text-anchor= "start" x= "1553.5" y= "-359.57" font-family= "Helvetica,Arial,sans-serif" font-size= "14.00" > • geomerge: pending counter → (commit, counter)</text>
</g>
<!-- commit->resolve_ids -->
<g id= "edge7" class= "edge" >
<title > commit- > resolve_ids</title>
<path fill= "none" stroke= "#4caf50" stroke-width= "1.2" d= "M1421.96,-405.03C1456.99,-403.28 1494.23,-401.43 1529.77,-399.66" />
<polygon fill= "#4caf50" stroke= "#4caf50" stroke-width= "1.2" points= "1529.61,-403.18 1539.43,-399.18 1529.27,-396.19 1529.61,-403.18" />
<text text-anchor= "middle" x= "1481.5" y= "-408.27" font-family= "Helvetica,Arial,sans-serif" font-size= "9.00" fill= "#555555" > CommittedTx</text>
</g>
<!-- commit->scan_iter -->
<g id= "edge11" class= "edge" >
<title > commit- > scan_iter</title>
<path fill= "none" stroke= "#4caf50" stroke-width= "1.2" stroke-dasharray= "5,2" d= "M1421.96,-352.84C1491.15,-326.87 1568.97,-297.67 1625.3,-276.53" />
<polygon fill= "#4caf50" stroke= "#4caf50" stroke-width= "1.2" points= "1626.44,-279.84 1634.58,-273.05 1623.98,-273.29 1626.44,-279.84" />
<text text-anchor= "middle" x= "1481.5" y= "-344.89" font-family= "Helvetica,Arial,sans-serif" font-size= "9.00" fill= "#555555" > after commit</text>
</g>
<!-- rows_out -->
<g id= "node12" class= "node" >
<title > rows_out</title>
<path fill= "#eceff1" stroke= "#607d8b" stroke-width= "1.5" d= "M2149.75,-258.62C2149.75,-258.62 1995.25,-258.62 1995.25,-258.62 1989.25,-258.62 1983.25,-252.62 1983.25,-246.62 1983.25,-246.62 1983.25,-147.38 1983.25,-147.38 1983.25,-141.38 1989.25,-135.38 1995.25,-135.38 1995.25,-135.38 2149.75,-135.38 2149.75,-135.38 2155.75,-135.38 2161.75,-141.38 2161.75,-147.38 2161.75,-147.38 2161.75,-246.62 2161.75,-246.62 2161.75,-252.62 2155.75,-258.62 2149.75,-258.62" />
<text text-anchor= "start" x= "2054.5" y= "-238.32" font-family= "Helvetica,Arial,sans-serif" font-weight= "bold" font-size= "14.00" > Rows</text>
<text text-anchor= "start" x= "1995.25" y= "-209.07" font-family= "Helvetica,Arial,sans-serif" font-size= "14.00" > • (RowId, Vec< Value> )</text>
<text text-anchor= "start" x= "1995.25" y= "-180.07" font-family= "Helvetica,Arial,sans-serif" font-size= "14.00" > • consumed by query- ops</text>
<text text-anchor= "start" x= "1995.25" y= "-151.07" font-family= "Helvetica,Arial,sans-serif" font-size= "14.00" >   via scan_as_table</text>
</g>
<!-- resolve_ids->rows_out -->
<g id= "edge15" class= "edge" >
<title > resolve_ids- > rows_out</title>
<path fill= "none" stroke= "#4caf50" stroke-width= "1.2" stroke-dasharray= "5,2" d= "M1847.09,-343.54C1859.24,-338.34 1871.2,-332.82 1882.5,-327 1916.36,-309.58 1951.29,-287.04 1981.77,-265.63" />
<polygon fill= "#4caf50" stroke= "#4caf50" stroke-width= "1.2" points= "1983.46,-268.72 1989.6,-260.08 1979.41,-263.01 1983.46,-268.72" />
<text text-anchor= "middle" x= "1925.88" y= "-320.11" font-family= "Helvetica,Arial,sans-serif" font-size= "9.00" fill= "#555555" > real RowIds</text>
</g>
<!-- scan_iter->rows_out -->
<g id= "edge12" class= "edge" >
<title > scan_iter- > rows_out</title>
<path fill= "none" stroke= "#ff9800" stroke-width= "1.2" d= "M1786.66,-235.97C1841.16,-228.51 1913.48,-218.62 1971.62,-210.66" />
<polygon fill= "#ff9800" stroke= "#ff9800" stroke-width= "1.2" points= "1971.81,-214.17 1981.25,-209.35 1970.86,-207.23 1971.81,-214.17" />
</g>
<!-- scan_where->rows_out -->
<g id= "edge13" class= "edge" >
<title > scan_where- > rows_out</title>
<path fill= "none" stroke= "#ff9800" stroke-width= "1.2" d= "M1809.89,-72.49C1834.05,-79.5 1859.44,-87.75 1882.5,-97 1912.57,-109.06 1944.11,-124.52 1972.62,-139.66" />
<polygon fill= "#ff9800" stroke= "#ff9800" stroke-width= "1.2" points= "1970.91,-142.71 1981.37,-144.36 1974.22,-136.55 1970.91,-142.71" />
</g>
<!-- scan_full->rows_out -->
<g id= "edge14" class= "edge" >
<title > scan_full- > rows_out</title>
<path fill= "none" stroke= "#ff9800" stroke-width= "1.2" d= "M1804.91,-160.53C1856.5,-167.59 1919.48,-176.2 1971.27,-183.29" />
<polygon fill= "#ff9800" stroke= "#ff9800" stroke-width= "1.2" points= "1970.63,-186.73 1981.02,-184.62 1971.58,-179.8 1970.63,-186.73" />
</g>
</g>
2026-06-04 12:47:47 +02:00
</svg>