494 lines
32 KiB
XML
494 lines
32 KiB
XML
|
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||
|
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||
|
|
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||
|
|
<!-- Generated by graphviz version 12.2.1 (0)
|
||
|
|
-->
|
||
|
|
<!-- Title: GeologQueryEngineNarrow Pages: 1 -->
|
||
|
|
<svg width="2622pt" height="670pt"
|
||
|
|
viewBox="0.00 0.00 2622.25 670.00" xmlns="http://www.w3.org/2000/svg">
|
||
|
|
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 666)">
|
||
|
|
<title>GeologQueryEngineNarrow</title>
|
||
|
|
<polygon fill="white" stroke="none" points="-4,4 -4,-666 2618.25,-666 2618.25,4 -4,4"/>
|
||
|
|
<g id="clust1" class="cluster">
|
||
|
|
<title>cluster_frontend</title>
|
||
|
|
<path fill="#fafafa" stroke="#666666"
|
||
|
|
d="M20,-207C20,-207 1383.75,-207 1383.75,-207 1389.75,-207 1395.75,-213 1395.75,-219 1395.75,-219 1395.75,-498 1395.75,-498 1395.75,-504 1389.75,-510 1383.75,-510 1383.75,-510 20,-510 20,-510 14,-510 8,-504 8,-498 8,-498 8,-219 8,-219 8,-213 14,-207 20,-207"/>
|
||
|
|
<text text-anchor="middle" x="701.88" y="-492.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00"
|
||
|
|
fill="#333333">Geolog Front End
|
||
|
|
</text>
|
||
|
|
</g>
|
||
|
|
<g id="clust2" class="cluster">
|
||
|
|
<title>cluster_language</title>
|
||
|
|
<polygon fill="#fafafa" stroke="#9c27b0" stroke-dasharray="5,2"
|
||
|
|
points="28,-227 28,-334 1375.75,-334 1375.75,-227 28,-227"/>
|
||
|
|
<text text-anchor="middle" x="701.88" y="-316.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00"
|
||
|
|
fill="#7b1fa2">Language Pipeline
|
||
|
|
</text>
|
||
|
|
</g>
|
||
|
|
<g id="clust3" class="cluster">
|
||
|
|
<title>cluster_tools</title>
|
||
|
|
<polygon fill="#fafafa" stroke="#4caf50" stroke-dasharray="5,2"
|
||
|
|
points="733,-354 733,-461 984,-461 984,-354 733,-354"/>
|
||
|
|
<text text-anchor="middle" x="858.5" y="-443.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00"
|
||
|
|
fill="#388e3c">Developer Tooling
|
||
|
|
</text>
|
||
|
|
</g>
|
||
|
|
<g id="clust4" class="cluster">
|
||
|
|
<title>cluster_execution</title>
|
||
|
|
<polygon fill="white" stroke="#4caf50" stroke-dasharray="5,2"
|
||
|
|
points="1462.25,-230 1462.25,-331 1668.75,-331 1668.75,-230 1462.25,-230"/>
|
||
|
|
<text text-anchor="middle" x="1565.5" y="-313.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00"
|
||
|
|
fill="#388e3c">Execution Layer
|
||
|
|
</text>
|
||
|
|
</g>
|
||
|
|
<g id="clust5" class="cluster">
|
||
|
|
<title>cluster_backends</title>
|
||
|
|
<path fill="#fafafa" stroke="#666666"
|
||
|
|
d="M1704.75,-8C1704.75,-8 2594.25,-8 2594.25,-8 2600.25,-8 2606.25,-14 2606.25,-20 2606.25,-20 2606.25,-642 2606.25,-642 2606.25,-648 2600.25,-654 2594.25,-654 2594.25,-654 1704.75,-654 1704.75,-654 1698.75,-654 1692.75,-648 1692.75,-642 1692.75,-642 1692.75,-20 1692.75,-20 1692.75,-14 1698.75,-8 1704.75,-8"/>
|
||
|
|
<text text-anchor="middle" x="2149.5" y="-636.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00"
|
||
|
|
fill="#333333">Backend Implementations
|
||
|
|
</text>
|
||
|
|
</g>
|
||
|
|
<g id="clust6" class="cluster">
|
||
|
|
<title>cluster_inmemory</title>
|
||
|
|
<polygon fill="#fafafa" stroke="#ff9800" stroke-dasharray="5,2"
|
||
|
|
points="1712.75,-426 1712.75,-605 2324.38,-605 2324.38,-426 1712.75,-426"/>
|
||
|
|
<text text-anchor="middle" x="2018.56" y="-587.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00"
|
||
|
|
fill="#f57c00">In-Memory Backend
|
||
|
|
</text>
|
||
|
|
</g>
|
||
|
|
<g id="clust7" class="cluster">
|
||
|
|
<title>cluster_postgres</title>
|
||
|
|
<polygon fill="#fafafa" stroke="#ff9800" stroke-dasharray="5,2"
|
||
|
|
points="1729.25,-28 1729.25,-207 2317.62,-207 2317.62,-28 1729.25,-28"/>
|
||
|
|
<text text-anchor="middle" x="2023.44" y="-189.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00"
|
||
|
|
fill="#f57c00">Postgres Backend
|
||
|
|
</text>
|
||
|
|
</g>
|
||
|
|
<g id="clust8" class="cluster">
|
||
|
|
<title>cluster_rust</title>
|
||
|
|
<polygon fill="#fafafa" stroke="#ff9800" stroke-dasharray="5,2"
|
||
|
|
points="1727.75,-227 1727.75,-406 2586.25,-406 2586.25,-227 1727.75,-227"/>
|
||
|
|
<text text-anchor="middle" x="2157" y="-388.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00"
|
||
|
|
fill="#f57c00">Rust Backend
|
||
|
|
</text>
|
||
|
|
</g>
|
||
|
|
<!-- concrete -->
|
||
|
|
<g id="node1" class="node">
|
||
|
|
<title>concrete</title>
|
||
|
|
<path fill="#f3e5f5" stroke="#9c27b0" stroke-width="1.5"
|
||
|
|
d="M145.75,-291C145.75,-291 54,-291 54,-291 48,-291 42,-285 42,-279 42,-279 42,-267 42,-267 42,-261 48,-255 54,-255 54,-255 145.75,-255 145.75,-255 151.75,-255 157.75,-261 157.75,-267 157.75,-267 157.75,-279 157.75,-279 157.75,-285 151.75,-291 145.75,-291"/>
|
||
|
|
<text text-anchor="middle" x="99.88" y="-270.2" font-family="Helvetica,Arial,sans-serif" font-size="14.00">
|
||
|
|
Concrete Syntax
|
||
|
|
</text>
|
||
|
|
</g>
|
||
|
|
<!-- parser -->
|
||
|
|
<g id="node2" class="node">
|
||
|
|
<title>parser</title>
|
||
|
|
<path fill="#f3e5f5" stroke="#9c27b0" stroke-width="1.5"
|
||
|
|
d="M268.5,-291C268.5,-291 236.75,-291 236.75,-291 230.75,-291 224.75,-285 224.75,-279 224.75,-279 224.75,-267 224.75,-267 224.75,-261 230.75,-255 236.75,-255 236.75,-255 268.5,-255 268.5,-255 274.5,-255 280.5,-261 280.5,-267 280.5,-267 280.5,-279 280.5,-279 280.5,-285 274.5,-291 268.5,-291"/>
|
||
|
|
<text text-anchor="middle" x="252.62" y="-270.2" font-family="Helvetica,Arial,sans-serif" font-size="14.00">
|
||
|
|
Parser
|
||
|
|
</text>
|
||
|
|
</g>
|
||
|
|
<!-- concrete->parser -->
|
||
|
|
<g id="edge1" class="edge">
|
||
|
|
<title>concrete->parser</title>
|
||
|
|
<path fill="none" stroke="#9c27b0" stroke-width="1.2" d="M157.87,-273C176.25,-273 196.19,-273 212.93,-273"/>
|
||
|
|
<polygon fill="#9c27b0" stroke="#9c27b0" stroke-width="1.2"
|
||
|
|
points="212.68,-276.5 222.68,-273 212.68,-269.5 212.68,-276.5"/>
|
||
|
|
</g>
|
||
|
|
<!-- abstract -->
|
||
|
|
<g id="node3" class="node">
|
||
|
|
<title>abstract</title>
|
||
|
|
<path fill="#f3e5f5" stroke="#9c27b0" stroke-width="1.5"
|
||
|
|
d="M446.75,-291C446.75,-291 359.5,-291 359.5,-291 353.5,-291 347.5,-285 347.5,-279 347.5,-279 347.5,-267 347.5,-267 347.5,-261 353.5,-255 359.5,-255 359.5,-255 446.75,-255 446.75,-255 452.75,-255 458.75,-261 458.75,-267 458.75,-267 458.75,-279 458.75,-279 458.75,-285 452.75,-291 446.75,-291"/>
|
||
|
|
<text text-anchor="middle" x="403.12" y="-270.2" font-family="Helvetica,Arial,sans-serif" font-size="14.00">
|
||
|
|
Abstract Syntax
|
||
|
|
</text>
|
||
|
|
</g>
|
||
|
|
<!-- parser->abstract -->
|
||
|
|
<g id="edge2" class="edge">
|
||
|
|
<title>parser->abstract</title>
|
||
|
|
<path fill="none" stroke="#9c27b0" stroke-width="1.2" d="M280.86,-273C296.26,-273 316.24,-273 335.52,-273"/>
|
||
|
|
<polygon fill="#9c27b0" stroke="#9c27b0" stroke-width="1.2"
|
||
|
|
points="335.25,-276.5 345.25,-273 335.25,-269.5 335.25,-276.5"/>
|
||
|
|
</g>
|
||
|
|
<!-- lsp -->
|
||
|
|
<g id="node8" class="node">
|
||
|
|
<title>lsp</title>
|
||
|
|
<path fill="#e8f5e9" stroke="#4caf50" stroke-width="1.5"
|
||
|
|
d="M958,-418C958,-418 759,-418 759,-418 753,-418 747,-412 747,-406 747,-406 747,-380 747,-380 747,-374 753,-368 759,-368 759,-368 958,-368 958,-368 964,-368 970,-374 970,-380 970,-380 970,-406 970,-406 970,-412 964,-418 958,-418"/>
|
||
|
|
<text text-anchor="middle" x="858.5" y="-400.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00">
|
||
|
|
LSP
|
||
|
|
</text>
|
||
|
|
<text text-anchor="middle" x="858.5" y="-379.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00">
|
||
|
|
(parsing + elaboration diagnostics)
|
||
|
|
</text>
|
||
|
|
</g>
|
||
|
|
<!-- parser->lsp -->
|
||
|
|
<g id="edge7" class="edge">
|
||
|
|
<title>parser->lsp</title>
|
||
|
|
<path fill="none" stroke="#4caf50" stroke-width="1.2" stroke-dasharray="5,2"
|
||
|
|
d="M280.77,-287.9C299.1,-297.34 324.14,-309.04 347.5,-316 476.74,-354.52 630.42,-374.37 735.06,-384.18"/>
|
||
|
|
<polygon fill="#4caf50" stroke="#4caf50" stroke-width="1.2"
|
||
|
|
points="734.53,-387.65 744.81,-385.08 735.17,-380.68 734.53,-387.65"/>
|
||
|
|
<text text-anchor="middle" x="513.5" y="-362.93" font-family="Helvetica,Arial,sans-serif" font-size="9.00"
|
||
|
|
fill="#555555">syntax info
|
||
|
|
</text>
|
||
|
|
</g>
|
||
|
|
<!-- elaborator -->
|
||
|
|
<g id="node4" class="node">
|
||
|
|
<title>elaborator</title>
|
||
|
|
<path fill="#f3e5f5" stroke="#9c27b0" stroke-width="1.5"
|
||
|
|
d="M634.5,-291C634.5,-291 580.25,-291 580.25,-291 574.25,-291 568.25,-285 568.25,-279 568.25,-279 568.25,-267 568.25,-267 568.25,-261 574.25,-255 580.25,-255 580.25,-255 634.5,-255 634.5,-255 640.5,-255 646.5,-261 646.5,-267 646.5,-267 646.5,-279 646.5,-279 646.5,-285 640.5,-291 634.5,-291"/>
|
||
|
|
<text text-anchor="middle" x="607.38" y="-270.2" font-family="Helvetica,Arial,sans-serif" font-size="14.00">
|
||
|
|
Elaborator
|
||
|
|
</text>
|
||
|
|
</g>
|
||
|
|
<!-- abstract->elaborator -->
|
||
|
|
<g id="edge3" class="edge">
|
||
|
|
<title>abstract->elaborator</title>
|
||
|
|
<path fill="none" stroke="#9c27b0" stroke-width="1.2" d="M459.12,-273C489.45,-273 526.83,-273 556.33,-273"/>
|
||
|
|
<polygon fill="#9c27b0" stroke="#9c27b0" stroke-width="1.2"
|
||
|
|
points="556.22,-276.5 566.22,-273 556.22,-269.5 556.22,-276.5"/>
|
||
|
|
</g>
|
||
|
|
<!-- typed -->
|
||
|
|
<g id="node5" class="node">
|
||
|
|
<title>typed</title>
|
||
|
|
<path fill="#f3e5f5" stroke="#9c27b0" stroke-width="1.5"
|
||
|
|
d="M909.62,-291C909.62,-291 807.38,-291 807.38,-291 801.38,-291 795.38,-285 795.38,-279 795.38,-279 795.38,-253 795.38,-253 795.38,-247 801.38,-241 807.38,-241 807.38,-241 909.62,-241 909.62,-241 915.62,-241 921.62,-247 921.62,-253 921.62,-253 921.62,-279 921.62,-279 921.62,-285 915.62,-291 909.62,-291"/>
|
||
|
|
<text text-anchor="middle" x="858.5" y="-273.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00">
|
||
|
|
Elaborated Syntax
|
||
|
|
</text>
|
||
|
|
<text text-anchor="middle" x="858.5" y="-252.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00">
|
||
|
|
(with types)
|
||
|
|
</text>
|
||
|
|
</g>
|
||
|
|
<!-- elaborator->typed -->
|
||
|
|
<g id="edge4" class="edge">
|
||
|
|
<title>elaborator->typed</title>
|
||
|
|
<path fill="none" stroke="#9c27b0" stroke-width="1.2"
|
||
|
|
d="M646.75,-271.92C683.09,-270.9 738.61,-269.34 783.55,-268.08"/>
|
||
|
|
<polygon fill="#9c27b0" stroke="#9c27b0" stroke-width="1.2"
|
||
|
|
points="783.61,-271.58 793.5,-267.8 783.41,-264.58 783.61,-271.58"/>
|
||
|
|
</g>
|
||
|
|
<!-- elaborator->lsp -->
|
||
|
|
<g id="edge8" class="edge">
|
||
|
|
<title>elaborator->lsp</title>
|
||
|
|
<path fill="none" stroke="#4caf50" stroke-width="1.2" stroke-dasharray="5,2"
|
||
|
|
d="M636.34,-291.22C661.12,-306.92 698.61,-329.58 733,-346 745.75,-352.09 759.51,-357.95 773.08,-363.34"/>
|
||
|
|
<polygon fill="#4caf50" stroke="#4caf50" stroke-width="1.2"
|
||
|
|
points="771.61,-366.53 782.2,-366.91 774.16,-360.01 771.61,-366.53"/>
|
||
|
|
<text text-anchor="middle" x="696.75" y="-340.34" font-family="Helvetica,Arial,sans-serif" font-size="9.00"
|
||
|
|
fill="#555555">type info
|
||
|
|
</text>
|
||
|
|
</g>
|
||
|
|
<!-- lowering -->
|
||
|
|
<g id="node6" class="node">
|
||
|
|
<title>lowering</title>
|
||
|
|
<path fill="#f3e5f5" stroke="#9c27b0" stroke-width="1.5"
|
||
|
|
d="M1095.75,-284C1095.75,-284 1049,-284 1049,-284 1043,-284 1037,-278 1037,-272 1037,-272 1037,-260 1037,-260 1037,-254 1043,-248 1049,-248 1049,-248 1095.75,-248 1095.75,-248 1101.75,-248 1107.75,-254 1107.75,-260 1107.75,-260 1107.75,-272 1107.75,-272 1107.75,-278 1101.75,-284 1095.75,-284"/>
|
||
|
|
<text text-anchor="middle" x="1072.38" y="-263.2" font-family="Helvetica,Arial,sans-serif"
|
||
|
|
font-size="14.00">Lowering
|
||
|
|
</text>
|
||
|
|
</g>
|
||
|
|
<!-- typed->lowering -->
|
||
|
|
<g id="edge5" class="edge">
|
||
|
|
<title>typed->lowering</title>
|
||
|
|
<path fill="none" stroke="#9c27b0" stroke-width="1.2"
|
||
|
|
d="M921.92,-266C955.01,-266 994.94,-266 1025.21,-266"/>
|
||
|
|
<polygon fill="#9c27b0" stroke="#9c27b0" stroke-width="1.2"
|
||
|
|
points="1024.89,-269.5 1034.89,-266 1024.89,-262.5 1024.89,-269.5"/>
|
||
|
|
</g>
|
||
|
|
<!-- ir -->
|
||
|
|
<g id="node7" class="node">
|
||
|
|
<title>ir</title>
|
||
|
|
<path fill="#f3e5f5" stroke="#9c27b0" stroke-width="1.5"
|
||
|
|
d="M1349.75,-291C1349.75,-291 1186.75,-291 1186.75,-291 1180.75,-291 1174.75,-285 1174.75,-279 1174.75,-279 1174.75,-253 1174.75,-253 1174.75,-247 1180.75,-241 1186.75,-241 1186.75,-241 1349.75,-241 1349.75,-241 1355.75,-241 1361.75,-247 1361.75,-253 1361.75,-253 1361.75,-279 1361.75,-279 1361.75,-285 1355.75,-291 1349.75,-291"/>
|
||
|
|
<text text-anchor="middle" x="1268.25" y="-273.7" font-family="Helvetica,Arial,sans-serif"
|
||
|
|
font-size="14.00">Intermediate Representation
|
||
|
|
</text>
|
||
|
|
<text text-anchor="middle" x="1268.25" y="-252.7" font-family="Helvetica,Arial,sans-serif"
|
||
|
|
font-size="14.00">(backend-neutral contract)
|
||
|
|
</text>
|
||
|
|
</g>
|
||
|
|
<!-- lowering->ir -->
|
||
|
|
<g id="edge6" class="edge">
|
||
|
|
<title>lowering->ir</title>
|
||
|
|
<path fill="none" stroke="#9c27b0" stroke-width="1.2"
|
||
|
|
d="M1108.04,-266C1123.7,-266 1143.12,-266 1162.95,-266"/>
|
||
|
|
<polygon fill="#9c27b0" stroke="#9c27b0" stroke-width="1.2"
|
||
|
|
points="1162.83,-269.5 1172.83,-266 1162.83,-262.5 1162.83,-269.5"/>
|
||
|
|
</g>
|
||
|
|
<!-- query_translation -->
|
||
|
|
<g id="node9" class="node">
|
||
|
|
<title>query_translation</title>
|
||
|
|
<path fill="#e8f5e9" stroke="#4caf50" stroke-width="1.5"
|
||
|
|
d="M1638.75,-284C1638.75,-284 1492.25,-284 1492.25,-284 1486.25,-284 1480.25,-278 1480.25,-272 1480.25,-272 1480.25,-260 1480.25,-260 1480.25,-254 1486.25,-248 1492.25,-248 1492.25,-248 1638.75,-248 1638.75,-248 1644.75,-248 1650.75,-254 1650.75,-260 1650.75,-260 1650.75,-272 1650.75,-272 1650.75,-278 1644.75,-284 1638.75,-284"/>
|
||
|
|
<text text-anchor="middle" x="1565.5" y="-263.2" font-family="Helvetica,Arial,sans-serif" font-size="14.00">
|
||
|
|
IR to Backend Translation
|
||
|
|
</text>
|
||
|
|
</g>
|
||
|
|
<!-- ir->query_translation -->
|
||
|
|
<g id="edge9" class="edge">
|
||
|
|
<title>ir->query_translation</title>
|
||
|
|
<path fill="none" stroke="#4caf50" stroke-width="1.2"
|
||
|
|
d="M1361.86,-266C1395.89,-266 1434.48,-266 1468.78,-266"/>
|
||
|
|
<polygon fill="#4caf50" stroke="#4caf50" stroke-width="1.2"
|
||
|
|
points="1468.42,-269.5 1478.42,-266 1468.42,-262.5 1468.42,-269.5"/>
|
||
|
|
<text text-anchor="middle" x="1425.5" y="-270.95" font-family="Helvetica,Arial,sans-serif" font-size="9.00"
|
||
|
|
fill="#555555">compile IR
|
||
|
|
</text>
|
||
|
|
</g>
|
||
|
|
<!-- inmem_rel -->
|
||
|
|
<g id="node10" class="node">
|
||
|
|
<title>inmem_rel</title>
|
||
|
|
<path fill="#fff3e0" stroke="#ff9800" stroke-width="1.5"
|
||
|
|
d="M1862.75,-562C1862.75,-562 1751.5,-562 1751.5,-562 1745.5,-562 1739.5,-556 1739.5,-550 1739.5,-550 1739.5,-538 1739.5,-538 1739.5,-532 1745.5,-526 1751.5,-526 1751.5,-526 1862.75,-526 1862.75,-526 1868.75,-526 1874.75,-532 1874.75,-538 1874.75,-538 1874.75,-550 1874.75,-550 1874.75,-556 1868.75,-562 1862.75,-562"/>
|
||
|
|
<text text-anchor="middle" x="1807.12" y="-541.2" font-family="Helvetica,Arial,sans-serif"
|
||
|
|
font-size="14.00">Relation Translation
|
||
|
|
</text>
|
||
|
|
</g>
|
||
|
|
<!-- query_translation->inmem_rel -->
|
||
|
|
<g id="edge10" class="edge">
|
||
|
|
<title>query_translation->inmem_rel</title>
|
||
|
|
<path fill="none" stroke="#ff9800" stroke-width="1.2"
|
||
|
|
d="M1571.5,-284.4C1584.29,-328.11 1622.25,-439.15 1692.75,-501 1703.07,-510.06 1715.5,-517.29 1728.28,-523.04"/>
|
||
|
|
<polygon fill="#ff9800" stroke="#ff9800" stroke-width="1.2"
|
||
|
|
points="1726.81,-526.22 1737.39,-526.83 1729.5,-519.76 1726.81,-526.22"/>
|
||
|
|
</g>
|
||
|
|
<!-- inmem_laws -->
|
||
|
|
<g id="node11" class="node">
|
||
|
|
<title>inmem_laws</title>
|
||
|
|
<path fill="#fff3e0" stroke="#ff9800" stroke-width="1.5"
|
||
|
|
d="M1875.5,-476C1875.5,-476 1738.75,-476 1738.75,-476 1732.75,-476 1726.75,-470 1726.75,-464 1726.75,-464 1726.75,-452 1726.75,-452 1726.75,-446 1732.75,-440 1738.75,-440 1738.75,-440 1875.5,-440 1875.5,-440 1881.5,-440 1887.5,-446 1887.5,-452 1887.5,-452 1887.5,-464 1887.5,-464 1887.5,-470 1881.5,-476 1875.5,-476"/>
|
||
|
|
<text text-anchor="middle" x="1807.12" y="-455.2" font-family="Helvetica,Arial,sans-serif"
|
||
|
|
font-size="14.00">Law / Chase Translation
|
||
|
|
</text>
|
||
|
|
</g>
|
||
|
|
<!-- query_translation->inmem_laws -->
|
||
|
|
<g id="edge11" class="edge">
|
||
|
|
<title>query_translation->inmem_laws</title>
|
||
|
|
<path fill="none" stroke="#ff9800" stroke-width="1.2"
|
||
|
|
d="M1576.98,-284.17C1596.09,-315.75 1639.55,-380.94 1692.75,-418 1702.42,-424.74 1713.34,-430.45 1724.48,-435.25"/>
|
||
|
|
<polygon fill="#ff9800" stroke="#ff9800" stroke-width="1.2"
|
||
|
|
points="1722.94,-438.41 1733.52,-438.91 1725.57,-431.92 1722.94,-438.41"/>
|
||
|
|
</g>
|
||
|
|
<!-- pg_schema -->
|
||
|
|
<g id="node14" class="node">
|
||
|
|
<title>pg_schema</title>
|
||
|
|
<path fill="#fff3e0" stroke="#ff9800" stroke-width="1.5"
|
||
|
|
d="M2077,-78C2077,-78 2002.5,-78 2002.5,-78 1996.5,-78 1990.5,-72 1990.5,-66 1990.5,-66 1990.5,-54 1990.5,-54 1990.5,-48 1996.5,-42 2002.5,-42 2002.5,-42 2077,-42 2077,-42 2083,-42 2089,-48 2089,-54 2089,-54 2089,-66 2089,-66 2089,-72 2083,-78 2077,-78"/>
|
||
|
|
<text text-anchor="middle" x="2039.75" y="-57.2" font-family="Helvetica,Arial,sans-serif" font-size="14.00">
|
||
|
|
IR to Schema
|
||
|
|
</text>
|
||
|
|
</g>
|
||
|
|
<!-- query_translation->pg_schema -->
|
||
|
|
<g id="edge12" class="edge">
|
||
|
|
<title>query_translation->pg_schema</title>
|
||
|
|
<path fill="none" stroke="#ff9800" stroke-width="1.2"
|
||
|
|
d="M1574.64,-247.73C1591.23,-212.86 1632.56,-137.28 1692.75,-103 1782.31,-51.99 1905.8,-49.81 1978.46,-54.08"/>
|
||
|
|
<polygon fill="#ff9800" stroke="#ff9800" stroke-width="1.2"
|
||
|
|
points="1978.09,-57.56 1988.3,-54.72 1978.55,-50.57 1978.09,-57.56"/>
|
||
|
|
</g>
|
||
|
|
<!-- pg_queries -->
|
||
|
|
<g id="node15" class="node">
|
||
|
|
<title>pg_queries</title>
|
||
|
|
<path fill="#fff3e0" stroke="#ff9800" stroke-width="1.5"
|
||
|
|
d="M1859,-164C1859,-164 1755.25,-164 1755.25,-164 1749.25,-164 1743.25,-158 1743.25,-152 1743.25,-152 1743.25,-140 1743.25,-140 1743.25,-134 1749.25,-128 1755.25,-128 1755.25,-128 1859,-128 1859,-128 1865,-128 1871,-134 1871,-140 1871,-140 1871,-152 1871,-152 1871,-158 1865,-164 1859,-164"/>
|
||
|
|
<text text-anchor="middle" x="1807.12" y="-143.2" font-family="Helvetica,Arial,sans-serif"
|
||
|
|
font-size="14.00">IR to SQL Queries
|
||
|
|
</text>
|
||
|
|
</g>
|
||
|
|
<!-- query_translation->pg_queries -->
|
||
|
|
<g id="edge13" class="edge">
|
||
|
|
<title>query_translation->pg_queries</title>
|
||
|
|
<path fill="none" stroke="#ff9800" stroke-width="1.2"
|
||
|
|
d="M1603.42,-247.51C1645.23,-226.58 1713.45,-192.41 1759.05,-169.57"/>
|
||
|
|
<polygon fill="#ff9800" stroke="#ff9800" stroke-width="1.2"
|
||
|
|
points="1760.56,-172.73 1767.94,-165.12 1757.43,-166.47 1760.56,-172.73"/>
|
||
|
|
</g>
|
||
|
|
<!-- ffi -->
|
||
|
|
<g id="node18" class="node">
|
||
|
|
<title>ffi</title>
|
||
|
|
<path fill="#fff3e0" stroke="#ff9800" stroke-width="1.5"
|
||
|
|
d="M1860.5,-291C1860.5,-291 1753.75,-291 1753.75,-291 1747.75,-291 1741.75,-285 1741.75,-279 1741.75,-279 1741.75,-253 1741.75,-253 1741.75,-247 1747.75,-241 1753.75,-241 1753.75,-241 1860.5,-241 1860.5,-241 1866.5,-241 1872.5,-247 1872.5,-253 1872.5,-253 1872.5,-279 1872.5,-279 1872.5,-285 1866.5,-291 1860.5,-291"/>
|
||
|
|
<text text-anchor="middle" x="1807.12" y="-273.7" font-family="Helvetica,Arial,sans-serif"
|
||
|
|
font-size="14.00">FFI Haskell to Rust
|
||
|
|
</text>
|
||
|
|
<text text-anchor="middle" x="1807.12" y="-252.7" font-family="Helvetica,Arial,sans-serif"
|
||
|
|
font-size="14.00">(IR marshalling)
|
||
|
|
</text>
|
||
|
|
</g>
|
||
|
|
<!-- query_translation->ffi -->
|
||
|
|
<g id="edge14" class="edge">
|
||
|
|
<title>query_translation->ffi</title>
|
||
|
|
<path fill="none" stroke="#ff9800" stroke-width="1.2"
|
||
|
|
d="M1650.98,-266C1676.69,-266 1704.78,-266 1729.91,-266"/>
|
||
|
|
<polygon fill="#ff9800" stroke="#ff9800" stroke-width="1.2"
|
||
|
|
points="1729.79,-269.5 1739.79,-266 1729.79,-262.5 1729.79,-269.5"/>
|
||
|
|
</g>
|
||
|
|
<!-- inmem_qe -->
|
||
|
|
<g id="node12" class="node">
|
||
|
|
<title>inmem_qe</title>
|
||
|
|
<path fill="#fff3e0" stroke="#ff9800" stroke-width="1.5"
|
||
|
|
d="M2113,-499C2113,-499 1966.5,-499 1966.5,-499 1960.5,-499 1954.5,-493 1954.5,-487 1954.5,-487 1954.5,-475 1954.5,-475 1954.5,-469 1960.5,-463 1966.5,-463 1966.5,-463 2113,-463 2113,-463 2119,-463 2125,-469 2125,-475 2125,-475 2125,-487 2125,-487 2125,-493 2119,-499 2113,-499"/>
|
||
|
|
<text text-anchor="middle" x="2039.75" y="-478.2" font-family="Helvetica,Arial,sans-serif"
|
||
|
|
font-size="14.00">In-Memory Query Engine
|
||
|
|
</text>
|
||
|
|
</g>
|
||
|
|
<!-- inmem_rel->inmem_qe -->
|
||
|
|
<g id="edge15" class="edge">
|
||
|
|
<title>inmem_rel->inmem_qe</title>
|
||
|
|
<path fill="none" stroke="#ff9800" stroke-width="1.2"
|
||
|
|
d="M1875.14,-525.69C1901.67,-518.44 1932.37,-510.06 1959.96,-502.52"/>
|
||
|
|
<polygon fill="#ff9800" stroke="#ff9800" stroke-width="1.2"
|
||
|
|
points="1960.69,-505.95 1969.42,-499.94 1958.85,-499.2 1960.69,-505.95"/>
|
||
|
|
</g>
|
||
|
|
<!-- inmem_laws->inmem_qe -->
|
||
|
|
<g id="edge16" class="edge">
|
||
|
|
<title>inmem_laws->inmem_qe</title>
|
||
|
|
<path fill="none" stroke="#ff9800" stroke-width="1.2"
|
||
|
|
d="M1887.82,-465.95C1905.52,-467.71 1924.47,-469.6 1942.75,-471.43"/>
|
||
|
|
<polygon fill="#ff9800" stroke="#ff9800" stroke-width="1.2"
|
||
|
|
points="1942.24,-474.89 1952.53,-472.4 1942.93,-467.93 1942.24,-474.89"/>
|
||
|
|
</g>
|
||
|
|
<!-- inmem_db -->
|
||
|
|
<g id="node13" class="node">
|
||
|
|
<title>inmem_db</title>
|
||
|
|
<path fill="#eceff1" stroke="#607d8b" stroke-width="1.5"
|
||
|
|
d="M2298.38,-499C2298.38,-499 2217.12,-499 2217.12,-499 2211.12,-499 2205.12,-493 2205.12,-487 2205.12,-487 2205.12,-475 2205.12,-475 2205.12,-469 2211.12,-463 2217.12,-463 2217.12,-463 2298.38,-463 2298.38,-463 2304.38,-463 2310.38,-469 2310.38,-475 2310.38,-475 2310.38,-487 2310.38,-487 2310.38,-493 2304.38,-499 2298.38,-499"/>
|
||
|
|
<text text-anchor="middle" x="2257.75" y="-478.2" font-family="Helvetica,Arial,sans-serif"
|
||
|
|
font-size="14.00">In-Memory DB
|
||
|
|
</text>
|
||
|
|
</g>
|
||
|
|
<!-- inmem_qe->inmem_db -->
|
||
|
|
<g id="edge17" class="edge">
|
||
|
|
<title>inmem_qe->inmem_db</title>
|
||
|
|
<path fill="none" stroke="#607d8b" stroke-width="1.2"
|
||
|
|
d="M2125.5,-481C2147.93,-481 2171.77,-481 2192.89,-481"/>
|
||
|
|
<polygon fill="#607d8b" stroke="#607d8b" stroke-width="1.2"
|
||
|
|
points="2192.83,-484.5 2202.83,-481 2192.83,-477.5 2192.83,-484.5"/>
|
||
|
|
</g>
|
||
|
|
<!-- pg_db -->
|
||
|
|
<g id="node17" class="node">
|
||
|
|
<title>pg_db</title>
|
||
|
|
<path fill="#eceff1" stroke="#607d8b" stroke-width="1.5"
|
||
|
|
d="M2291.62,-121C2291.62,-121 2223.88,-121 2223.88,-121 2217.88,-121 2211.88,-115 2211.88,-109 2211.88,-109 2211.88,-97 2211.88,-97 2211.88,-91 2217.88,-85 2223.88,-85 2223.88,-85 2291.62,-85 2291.62,-85 2297.62,-85 2303.62,-91 2303.62,-97 2303.62,-97 2303.62,-109 2303.62,-109 2303.62,-115 2297.62,-121 2291.62,-121"/>
|
||
|
|
<text text-anchor="middle" x="2257.75" y="-100.2" font-family="Helvetica,Arial,sans-serif"
|
||
|
|
font-size="14.00">Postgres DB
|
||
|
|
</text>
|
||
|
|
</g>
|
||
|
|
<!-- pg_schema->pg_db -->
|
||
|
|
<g id="edge18" class="edge">
|
||
|
|
<title>pg_schema->pg_db</title>
|
||
|
|
<path fill="none" stroke="#607d8b" stroke-width="1.2"
|
||
|
|
d="M2089.49,-69.7C2122.36,-76.25 2165.83,-84.9 2200.22,-91.75"/>
|
||
|
|
<polygon fill="#607d8b" stroke="#607d8b" stroke-width="1.2"
|
||
|
|
points="2199.23,-95.12 2209.72,-93.64 2200.6,-88.25 2199.23,-95.12"/>
|
||
|
|
</g>
|
||
|
|
<!-- pg_qe -->
|
||
|
|
<g id="node16" class="node">
|
||
|
|
<title>pg_qe</title>
|
||
|
|
<path fill="#fff3e0" stroke="#ff9800" stroke-width="1.5"
|
||
|
|
d="M2106.25,-164C2106.25,-164 1973.25,-164 1973.25,-164 1967.25,-164 1961.25,-158 1961.25,-152 1961.25,-152 1961.25,-140 1961.25,-140 1961.25,-134 1967.25,-128 1973.25,-128 1973.25,-128 2106.25,-128 2106.25,-128 2112.25,-128 2118.25,-134 2118.25,-140 2118.25,-140 2118.25,-152 2118.25,-152 2118.25,-158 2112.25,-164 2106.25,-164"/>
|
||
|
|
<text text-anchor="middle" x="2039.75" y="-143.2" font-family="Helvetica,Arial,sans-serif"
|
||
|
|
font-size="14.00">Postgres Query Engine
|
||
|
|
</text>
|
||
|
|
</g>
|
||
|
|
<!-- pg_queries->pg_qe -->
|
||
|
|
<g id="edge19" class="edge">
|
||
|
|
<title>pg_queries->pg_qe</title>
|
||
|
|
<path fill="none" stroke="#ff9800" stroke-width="1.2"
|
||
|
|
d="M1871.45,-146C1895.39,-146 1923.1,-146 1949.01,-146"/>
|
||
|
|
<polygon fill="#ff9800" stroke="#ff9800" stroke-width="1.2"
|
||
|
|
points="1948.95,-149.5 1958.95,-146 1948.95,-142.5 1948.95,-149.5"/>
|
||
|
|
</g>
|
||
|
|
<!-- pg_qe->pg_db -->
|
||
|
|
<g id="edge20" class="edge">
|
||
|
|
<title>pg_qe->pg_db</title>
|
||
|
|
<path fill="none" stroke="#607d8b" stroke-width="1.2"
|
||
|
|
d="M2118.73,-130.48C2145.65,-125.12 2175.26,-119.22 2200.14,-114.27"/>
|
||
|
|
<polygon fill="#607d8b" stroke="#607d8b" stroke-width="1.2"
|
||
|
|
points="2200.66,-117.73 2209.79,-112.35 2199.3,-110.87 2200.66,-117.73"/>
|
||
|
|
</g>
|
||
|
|
<!-- rust_rel -->
|
||
|
|
<g id="node19" class="node">
|
||
|
|
<title>rust_rel</title>
|
||
|
|
<path fill="#fff3e0" stroke="#ff9800" stroke-width="1.5"
|
||
|
|
d="M2095.38,-277C2095.38,-277 1984.12,-277 1984.12,-277 1978.12,-277 1972.12,-271 1972.12,-265 1972.12,-265 1972.12,-253 1972.12,-253 1972.12,-247 1978.12,-241 1984.12,-241 1984.12,-241 2095.38,-241 2095.38,-241 2101.38,-241 2107.38,-247 2107.38,-253 2107.38,-253 2107.38,-265 2107.38,-265 2107.38,-271 2101.38,-277 2095.38,-277"/>
|
||
|
|
<text text-anchor="middle" x="2039.75" y="-256.2" font-family="Helvetica,Arial,sans-serif"
|
||
|
|
font-size="14.00">Relation Translation
|
||
|
|
</text>
|
||
|
|
</g>
|
||
|
|
<!-- ffi->rust_rel -->
|
||
|
|
<g id="edge21" class="edge">
|
||
|
|
<title>ffi->rust_rel</title>
|
||
|
|
<path fill="none" stroke="#ff9800" stroke-width="1.2"
|
||
|
|
d="M1872.98,-264.03C1900.15,-263.21 1931.97,-262.24 1960.43,-261.38"/>
|
||
|
|
<polygon fill="#ff9800" stroke="#ff9800" stroke-width="1.2"
|
||
|
|
points="1960.27,-264.88 1970.16,-261.08 1960.06,-257.89 1960.27,-264.88"/>
|
||
|
|
</g>
|
||
|
|
<!-- rust_laws -->
|
||
|
|
<g id="node20" class="node">
|
||
|
|
<title>rust_laws</title>
|
||
|
|
<path fill="#fff3e0" stroke="#ff9800" stroke-width="1.5"
|
||
|
|
d="M2108.12,-363C2108.12,-363 1971.38,-363 1971.38,-363 1965.38,-363 1959.38,-357 1959.38,-351 1959.38,-351 1959.38,-339 1959.38,-339 1959.38,-333 1965.38,-327 1971.38,-327 1971.38,-327 2108.12,-327 2108.12,-327 2114.12,-327 2120.12,-333 2120.12,-339 2120.12,-339 2120.12,-351 2120.12,-351 2120.12,-357 2114.12,-363 2108.12,-363"/>
|
||
|
|
<text text-anchor="middle" x="2039.75" y="-342.2" font-family="Helvetica,Arial,sans-serif"
|
||
|
|
font-size="14.00">Law / Chase Translation
|
||
|
|
</text>
|
||
|
|
</g>
|
||
|
|
<!-- ffi->rust_laws -->
|
||
|
|
<g id="edge22" class="edge">
|
||
|
|
<title>ffi->rust_laws</title>
|
||
|
|
<path fill="none" stroke="#ff9800" stroke-width="1.2"
|
||
|
|
d="M1872.98,-288.22C1904.56,-299.03 1942.43,-312.01 1974,-322.82"/>
|
||
|
|
<polygon fill="#ff9800" stroke="#ff9800" stroke-width="1.2"
|
||
|
|
points="1972.57,-326.03 1983.17,-325.96 1974.84,-319.41 1972.57,-326.03"/>
|
||
|
|
</g>
|
||
|
|
<!-- rust_qe -->
|
||
|
|
<g id="node21" class="node">
|
||
|
|
<title>rust_qe</title>
|
||
|
|
<path fill="#fff3e0" stroke="#ff9800" stroke-width="1.5"
|
||
|
|
d="M2311.5,-300C2311.5,-300 2204,-300 2204,-300 2198,-300 2192,-294 2192,-288 2192,-288 2192,-276 2192,-276 2192,-270 2198,-264 2204,-264 2204,-264 2311.5,-264 2311.5,-264 2317.5,-264 2323.5,-270 2323.5,-276 2323.5,-276 2323.5,-288 2323.5,-288 2323.5,-294 2317.5,-300 2311.5,-300"/>
|
||
|
|
<text text-anchor="middle" x="2257.75" y="-279.2" font-family="Helvetica,Arial,sans-serif"
|
||
|
|
font-size="14.00">Rust Query Engine
|
||
|
|
</text>
|
||
|
|
</g>
|
||
|
|
<!-- rust_rel->rust_qe -->
|
||
|
|
<g id="edge23" class="edge">
|
||
|
|
<title>rust_rel->rust_qe</title>
|
||
|
|
<path fill="none" stroke="#ff9800" stroke-width="1.2"
|
||
|
|
d="M2107.61,-266.12C2130.61,-268.57 2156.54,-271.33 2180.25,-273.85"/>
|
||
|
|
<polygon fill="#ff9800" stroke="#ff9800" stroke-width="1.2"
|
||
|
|
points="2179.56,-277.3 2189.88,-274.88 2180.3,-270.34 2179.56,-277.3"/>
|
||
|
|
</g>
|
||
|
|
<!-- rust_laws->rust_qe -->
|
||
|
|
<g id="edge24" class="edge">
|
||
|
|
<title>rust_laws->rust_qe</title>
|
||
|
|
<path fill="none" stroke="#ff9800" stroke-width="1.2"
|
||
|
|
d="M2104.1,-326.52C2128.6,-319.38 2156.83,-311.14 2182.3,-303.71"/>
|
||
|
|
<polygon fill="#ff9800" stroke="#ff9800" stroke-width="1.2"
|
||
|
|
points="2183.04,-307.14 2191.66,-300.98 2181.08,-300.42 2183.04,-307.14"/>
|
||
|
|
</g>
|
||
|
|
<!-- rust_store -->
|
||
|
|
<g id="node22" class="node">
|
||
|
|
<title>rust_store</title>
|
||
|
|
<path fill="#eceff1" stroke="#607d8b" stroke-width="1.5"
|
||
|
|
d="M2560.25,-300C2560.25,-300 2402.5,-300 2402.5,-300 2396.5,-300 2390.5,-294 2390.5,-288 2390.5,-288 2390.5,-276 2390.5,-276 2390.5,-270 2396.5,-264 2402.5,-264 2402.5,-264 2560.25,-264 2560.25,-264 2566.25,-264 2572.25,-270 2572.25,-276 2572.25,-276 2572.25,-288 2572.25,-288 2572.25,-294 2566.25,-300 2560.25,-300"/>
|
||
|
|
<text text-anchor="middle" x="2481.38" y="-279.2" font-family="Helvetica,Arial,sans-serif"
|
||
|
|
font-size="14.00">Rust Storage / Query Layer
|
||
|
|
</text>
|
||
|
|
</g>
|
||
|
|
<!-- rust_qe->rust_store -->
|
||
|
|
<g id="edge25" class="edge">
|
||
|
|
<title>rust_qe->rust_store</title>
|
||
|
|
<path fill="none" stroke="#607d8b" stroke-width="1.2"
|
||
|
|
d="M2323.75,-282C2340.99,-282 2360.02,-282 2378.71,-282"/>
|
||
|
|
<polygon fill="#607d8b" stroke="#607d8b" stroke-width="1.2"
|
||
|
|
points="2378.47,-285.5 2388.47,-282 2378.47,-278.5 2378.47,-285.5"/>
|
||
|
|
</g>
|
||
|
|
</g>
|
||
|
|
</svg>
|