Up
This commit is contained in:
parent
b29141c47c
commit
8ddfce6d38
@ -31,15 +31,20 @@ style = "dashed"
|
|||||||
color = "#888888"
|
color = "#888888"
|
||||||
fontcolor = "#555555"
|
fontcolor = "#555555"
|
||||||
margin = 18
|
margin = 18
|
||||||
edge_table [label = <<table border="0" cellborder="0" cellspacing="0" cellpadding="4">
|
author_table [label = <<table border="0" cellborder="0" cellspacing="0" cellpadding="4">
|
||||||
<tr><td align="center"><b>Table: edge</b></td></tr>
|
<tr><td align="center"><b>Table: author</b></td></tr>
|
||||||
<tr><td align="left" balign="left">• arity 2</td></tr>
|
<tr><td align="left" balign="left">• arity 2</td></tr>
|
||||||
<tr><td align="left" balign="left">• rows: (src, dst)</td></tr>
|
<tr><td align="left" balign="left">• rows: (name, book)</td></tr>
|
||||||
</table>>, fillcolor = "#E8F4FD", color = "#2196F3"]
|
</table>>, fillcolor = "#E8F4FD", color = "#2196F3"]
|
||||||
labeled_table [label = <<table border="0" cellborder="0" cellspacing="0" cellpadding="4">
|
bestseller_table [label = <<table border="0" cellborder="0" cellspacing="0" cellpadding="4">
|
||||||
<tr><td align="center"><b>Table: labeled</b></td></tr>
|
<tr><td align="center"><b>Table: bestseller</b></td></tr>
|
||||||
<tr><td align="left" balign="left">• arity 1</td></tr>
|
<tr><td align="left" balign="left">• arity 1</td></tr>
|
||||||
<tr><td align="left" balign="left">• rows: (node)</td></tr>
|
<tr><td align="left" balign="left">• rows: (book)</td></tr>
|
||||||
|
</table>>, fillcolor = "#E8F4FD", color = "#2196F3"]
|
||||||
|
price_table [label = <<table border="0" cellborder="0" cellspacing="0" cellpadding="4">
|
||||||
|
<tr><td align="center"><b>Table: price</b></td></tr>
|
||||||
|
<tr><td align="left" balign="left">• arity 2</td></tr>
|
||||||
|
<tr><td align="left" balign="left">• rows: (book, dollars)</td></tr>
|
||||||
</table>>, fillcolor = "#E8F4FD", color = "#2196F3"]
|
</table>>, fillcolor = "#E8F4FD", color = "#2196F3"]
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -49,27 +54,20 @@ style = "dashed"
|
|||||||
color = "#9C27B0"
|
color = "#9C27B0"
|
||||||
fontcolor = "#7B1FA2"
|
fontcolor = "#7B1FA2"
|
||||||
margin = 14
|
margin = 14
|
||||||
self_loops [label = <<table border="0" cellborder="0" cellspacing="0" cellpadding="4">
|
author_rel [label = <<table border="0" cellborder="0" cellspacing="0" cellpadding="4">
|
||||||
<tr><td align="center"><b>self_loops</b></td></tr>
|
<tr><td align="center"><b>author_rel</b></td></tr>
|
||||||
<tr><td align="left" balign="left">pattern: [Var X, Var X]</td></tr>
|
<tr><td align="left" balign="left">pattern: [Var name, Var book]</td></tr>
|
||||||
<tr><td align="left" balign="left">filter: row[0] == row[1]</td></tr>
|
<tr><td align="left" balign="left">cols: [name, book]</td></tr>
|
||||||
<tr><td align="left" balign="left">cols: [X]</td></tr>
|
|
||||||
</table>>, fillcolor = "#F3E5F5", color = "#9C27B0"]
|
</table>>, fillcolor = "#F3E5F5", color = "#9C27B0"]
|
||||||
edge_xy [label = <<table border="0" cellborder="0" cellspacing="0" cellpadding="4">
|
bestseller_rel [label = <<table border="0" cellborder="0" cellspacing="0" cellpadding="4">
|
||||||
<tr><td align="center"><b>edge_xy</b></td></tr>
|
<tr><td align="center"><b>bestseller_rel</b></td></tr>
|
||||||
<tr><td align="left" balign="left">pattern: [Var X, Var Y]</td></tr>
|
<tr><td align="left" balign="left">pattern: [Var book]</td></tr>
|
||||||
<tr><td align="left" balign="left">filter: none</td></tr>
|
<tr><td align="left" balign="left">cols: [book]</td></tr>
|
||||||
<tr><td align="left" balign="left">cols: [X, Y]</td></tr>
|
|
||||||
</table>>, fillcolor = "#F3E5F5", color = "#9C27B0"]
|
</table>>, fillcolor = "#F3E5F5", color = "#9C27B0"]
|
||||||
labeled_x [label = <<table border="0" cellborder="0" cellspacing="0" cellpadding="4">
|
price_rel [label = <<table border="0" cellborder="0" cellspacing="0" cellpadding="4">
|
||||||
<tr><td align="center"><b>labeled_x</b></td></tr>
|
<tr><td align="center"><b>price_rel</b></td></tr>
|
||||||
<tr><td align="left" balign="left">pattern: [Var X]</td></tr>
|
<tr><td align="left" balign="left">pattern: [Var book, Var dollars]</td></tr>
|
||||||
<tr><td align="left" balign="left">cols: [X]</td></tr>
|
<tr><td align="left" balign="left">cols: [book, dollars]</td></tr>
|
||||||
</table>>, fillcolor = "#F3E5F5", color = "#9C27B0"]
|
|
||||||
labeled_y [label = <<table border="0" cellborder="0" cellspacing="0" cellpadding="4">
|
|
||||||
<tr><td align="center"><b>labeled_y</b></td></tr>
|
|
||||||
<tr><td align="left" balign="left">pattern: [Var Y]</td></tr>
|
|
||||||
<tr><td align="left" balign="left">cols: [Y]</td></tr>
|
|
||||||
</table>>, fillcolor = "#F3E5F5", color = "#9C27B0"]
|
</table>>, fillcolor = "#F3E5F5", color = "#9C27B0"]
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -79,53 +77,46 @@ style = "dashed"
|
|||||||
color = "#4CAF50"
|
color = "#4CAF50"
|
||||||
fontcolor = "#388E3C"
|
fontcolor = "#388E3C"
|
||||||
margin = 14
|
margin = 14
|
||||||
q1 [label = <<table border="0" cellborder="0" cellspacing="0" cellpadding="4">
|
semijoin_step [label = <<table border="0" cellborder="0" cellspacing="0" cellpadding="4">
|
||||||
<tr><td align="center"><b>Q1: semijoin</b></td></tr>
|
<tr><td align="center"><b>semijoin</b></td></tr>
|
||||||
<tr><td align="left" balign="left">edge(X, X), labeled(X)</td></tr>
|
<tr><td align="left" balign="left">authors of bestsellers</td></tr>
|
||||||
<tr><td align="left" balign="left">keep left rows whose [X] is in right</td></tr>
|
<tr><td align="left" balign="left">shared: book</td></tr>
|
||||||
<tr><td align="left" balign="left">cols: [X]</td></tr>
|
<tr><td align="left" balign="left">cols: [name, book]</td></tr>
|
||||||
</table>>, fillcolor = "#E8F5E9", color = "#4CAF50"]
|
</table>>, fillcolor = "#E8F5E9", color = "#4CAF50"]
|
||||||
q2 [label = <<table border="0" cellborder="0" cellspacing="0" cellpadding="4">
|
natural_join_step [label = <<table border="0" cellborder="0" cellspacing="0" cellpadding="4">
|
||||||
<tr><td align="center"><b>Q2: natural_join</b></td></tr>
|
<tr><td align="center"><b>natural_join</b></td></tr>
|
||||||
<tr><td align="left" balign="left">edge(X, Y), labeled(Y)</td></tr>
|
<tr><td align="left" balign="left">attach each book's price</td></tr>
|
||||||
<tr><td align="left" balign="left">emit left ++ (right \ shared) per match</td></tr>
|
<tr><td align="left" balign="left">shared: book</td></tr>
|
||||||
<tr><td align="left" balign="left">cols: [X, Y]</td></tr>
|
<tr><td align="left" balign="left">cols: [name, book, dollars]</td></tr>
|
||||||
</table>>, fillcolor = "#E8F5E9", color = "#4CAF50"]
|
</table>>, fillcolor = "#E8F5E9", color = "#4CAF50"]
|
||||||
}
|
}
|
||||||
|
|
||||||
subgraph cluster_outputs {
|
subgraph cluster_output {
|
||||||
label = "Outputs (binding relations)"
|
label = "Output (binding relation)"
|
||||||
style = "dashed"
|
style = "dashed"
|
||||||
color = "#888888"
|
color = "#888888"
|
||||||
fontcolor = "#555555"
|
fontcolor = "#555555"
|
||||||
margin = 18
|
margin = 18
|
||||||
q1_out [label = <<table border="0" cellborder="0" cellspacing="0" cellpadding="4">
|
result [label = <<table border="0" cellborder="0" cellspacing="0" cellpadding="4">
|
||||||
<tr><td align="center"><b>Q1 result</b></td></tr>
|
<tr><td align="center"><b>Q result</b></td></tr>
|
||||||
<tr><td align="left" balign="left">labeled self-loops</td></tr>
|
<tr><td align="left" balign="left">authors of bestsellers with each book's price</td></tr>
|
||||||
<tr><td align="left" balign="left">cols: [X]</td></tr>
|
<tr><td align="left" balign="left">cols: [name, book, dollars]</td></tr>
|
||||||
</table>>, fillcolor = "#ECEFF1", color = "#607D8B"]
|
|
||||||
q2_out [label = <<table border="0" cellborder="0" cellspacing="0" cellpadding="4">
|
|
||||||
<tr><td align="center"><b>Q2 result</b></td></tr>
|
|
||||||
<tr><td align="left" balign="left">edges into labeled nodes</td></tr>
|
|
||||||
<tr><td align="left" balign="left">cols: [X, Y]</td></tr>
|
|
||||||
</table>>, fillcolor = "#ECEFF1", color = "#607D8B"]
|
</table>>, fillcolor = "#ECEFF1", color = "#607D8B"]
|
||||||
}
|
}
|
||||||
|
|
||||||
// Atom scans consume tables
|
// Atom scans consume tables
|
||||||
edge_table -> self_loops [color = "#2196F3"]
|
author_table -> author_rel [color = "#2196F3"]
|
||||||
edge_table -> edge_xy [color = "#2196F3"]
|
bestseller_table -> bestseller_rel [color = "#2196F3"]
|
||||||
labeled_table -> labeled_x [color = "#2196F3"]
|
price_table -> price_rel [color = "#2196F3"]
|
||||||
labeled_table -> labeled_y [color = "#2196F3"]
|
|
||||||
|
|
||||||
// Q1: edge(X, X), labeled(X) -> semijoin
|
// semijoin narrows author_rel to bestseller authors
|
||||||
self_loops -> q1 [label = "left", color = "#9C27B0"]
|
author_rel -> semijoin_step [label = "left", color = "#9C27B0"]
|
||||||
labeled_x -> q1 [label = "right", color = "#9C27B0"]
|
bestseller_rel -> semijoin_step [label = "right", color = "#9C27B0"]
|
||||||
|
|
||||||
// Q2: edge(X, Y), labeled(Y) -> natural_join
|
// natural_join attaches price
|
||||||
edge_xy -> q2 [label = "left", color = "#9C27B0"]
|
semijoin_step -> natural_join_step [label = "left", color = "#4CAF50"]
|
||||||
labeled_y -> q2 [label = "right", color = "#9C27B0"]
|
price_rel -> natural_join_step [label = "right", color = "#9C27B0"]
|
||||||
|
|
||||||
// Final outputs
|
// Final output
|
||||||
q1 -> q1_out [color = "#4CAF50"]
|
natural_join_step -> result [color = "#4CAF50"]
|
||||||
q2 -> q2_out [color = "#4CAF50"]
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,299 +1,159 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
<!-- Generated by graphviz version 12.2.1 (0)
|
<!-- Generated by graphviz version 12.2.1 (0)
|
||||||
-->
|
-->
|
||||||
<!-- Title: QueryOpsHandPlan Pages: 1 -->
|
<!-- Title: QueryOpsHandPlan Pages: 1 -->
|
||||||
<svg width="1194pt" height="666pt"
|
<svg width="1482pt" height="471pt"
|
||||||
viewBox="0.00 0.00 1193.62 666.00" xmlns="http://www.w3.org/2000/svg">
|
viewBox="0.00 0.00 1481.75 471.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 662)">
|
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 467)">
|
||||||
<title>QueryOpsHandPlan</title>
|
<title>QueryOpsHandPlan</title>
|
||||||
<polygon fill="white" stroke="none" points="-4,4 -4,-662 1189.62,-662 1189.62,4 -4,4"/>
|
<polygon fill="white" stroke="none" points="-4,4 -4,-467 1477.75,-467 1477.75,4 -4,4"/>
|
||||||
<g id="clust1" class="cluster">
|
<g id="clust1" class="cluster">
|
||||||
<title>cluster_inputs</title>
|
<title>cluster_inputs</title>
|
||||||
<polygon fill="white" stroke="#888888" stroke-dasharray="5,2"
|
<polygon fill="white" stroke="#888888" stroke-dasharray="5,2" points="8,-8 8,-455 198.5,-455 198.5,-8 8,-8"/>
|
||||||
points="6.12,-154 6.12,-457 168.38,-457 168.38,-154 6.12,-154"/>
|
<text text-anchor="middle" x="103.25" y="-437.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00" fill="#555555">Inputs (positional tables)</text>
|
||||||
<text text-anchor="middle" x="87.25" y="-439.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00"
|
</g>
|
||||||
fill="#555555">Inputs (positional tables)
|
<g id="clust2" class="cluster">
|
||||||
</text>
|
<title>cluster_atoms</title>
|
||||||
</g>
|
<polygon fill="white" stroke="#9c27b0" stroke-dasharray="5,2" points="233.5,-12 233.5,-451 609.5,-451 609.5,-12 233.5,-12"/>
|
||||||
<g id="clust2" class="cluster">
|
<text text-anchor="middle" x="421.5" y="-433.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00" fill="#7b1fa2">Atom Scans  (scan_atom: Table × AtomPattern → Relation)</text>
|
||||||
<title>cluster_atoms</title>
|
</g>
|
||||||
<polygon fill="white" stroke="#9c27b0" stroke-dasharray="5,2"
|
<g id="clust3" class="cluster">
|
||||||
points="203.38,-8 203.38,-650 579.38,-650 579.38,-8 203.38,-8"/>
|
<title>cluster_joins</title>
|
||||||
<text text-anchor="middle" x="391.38" y="-632.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00"
|
<polygon fill="white" stroke="#4caf50" stroke-dasharray="5,2" points="665.5,-141 665.5,-322 1106,-322 1106,-141 665.5,-141"/>
|
||||||
fill="#7b1fa2">Atom Scans  (scan_atom: Table × AtomPattern → Relation)
|
<text text-anchor="middle" x="885.75" y="-304.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00" fill="#388e3c">Joins  (shared cols = matching column names)</text>
|
||||||
</text>
|
</g>
|
||||||
</g>
|
<g id="clust4" class="cluster">
|
||||||
<g id="clust3" class="cluster">
|
<title>cluster_output</title>
|
||||||
<title>cluster_joins</title>
|
<polygon fill="white" stroke="#888888" stroke-dasharray="5,2" points="1141,-152 1141,-311 1465.75,-311 1465.75,-152 1141,-152"/>
|
||||||
<polygon fill="white" stroke="#4caf50" stroke-dasharray="5,2"
|
<text text-anchor="middle" x="1303.38" y="-293.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00" fill="#555555">Output (binding relation)</text>
|
||||||
points="635.38,-70 635.38,-424 932.62,-424 932.62,-70 635.38,-70"/>
|
</g>
|
||||||
<text text-anchor="middle" x="784" y="-406.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00"
|
<!-- author_table -->
|
||||||
fill="#388e3c">Joins  (shared cols = matching column names)
|
<g id="node1" class="node">
|
||||||
</text>
|
<title>author_table</title>
|
||||||
</g>
|
<path fill="#e8f4fd" stroke="#2196f3" stroke-width="1.5" d="M165.88,-408.12C165.88,-408.12 40.62,-408.12 40.62,-408.12 34.62,-408.12 28.62,-402.12 28.62,-396.12 28.62,-396.12 28.62,-325.88 28.62,-325.88 28.62,-319.88 34.62,-313.88 40.62,-313.88 40.62,-313.88 165.88,-313.88 165.88,-313.88 171.88,-313.88 177.88,-319.88 177.88,-325.88 177.88,-325.88 177.88,-396.12 177.88,-396.12 177.88,-402.12 171.88,-408.12 165.88,-408.12"/>
|
||||||
<g id="clust4" class="cluster">
|
<text text-anchor="start" x="60.88" y="-387.82" font-family="Helvetica,Arial,sans-serif" font-weight="bold" font-size="14.00">Table: author</text>
|
||||||
<title>cluster_outputs</title>
|
<text text-anchor="start" x="40.62" y="-358.57" font-family="Helvetica,Arial,sans-serif" font-size="14.00">• arity 2</text>
|
||||||
<polygon fill="white" stroke="#888888" stroke-dasharray="5,2"
|
<text text-anchor="start" x="40.62" y="-329.57" font-family="Helvetica,Arial,sans-serif" font-size="14.00">• rows: (name, book)</text>
|
||||||
points="967.62,-99 967.62,-402 1177.62,-402 1177.62,-99 967.62,-99"/>
|
</g>
|
||||||
<text text-anchor="middle" x="1072.62" y="-384.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00"
|
<!-- author_rel -->
|
||||||
fill="#555555">Outputs (binding relations)
|
<g id="node4" class="node">
|
||||||
</text>
|
<title>author_rel</title>
|
||||||
</g>
|
<path fill="#f3e5f5" stroke="#9c27b0" stroke-width="1.5" d="M509.12,-408.12C509.12,-408.12 332.88,-408.12 332.88,-408.12 326.88,-408.12 320.88,-402.12 320.88,-396.12 320.88,-396.12 320.88,-325.88 320.88,-325.88 320.88,-319.88 326.88,-313.88 332.88,-313.88 332.88,-313.88 509.12,-313.88 509.12,-313.88 515.12,-313.88 521.12,-319.88 521.12,-325.88 521.12,-325.88 521.12,-396.12 521.12,-396.12 521.12,-402.12 515.12,-408.12 509.12,-408.12"/>
|
||||||
<!-- edge_table -->
|
<text text-anchor="start" x="388" y="-387.82" font-family="Helvetica,Arial,sans-serif" font-weight="bold" font-size="14.00">author_rel</text>
|
||||||
<g id="node1" class="node">
|
<text text-anchor="start" x="332.88" y="-358.57" font-family="Helvetica,Arial,sans-serif" font-size="14.00">pattern: [Var name, Var book]</text>
|
||||||
<title>edge_table</title>
|
<text text-anchor="start" x="332.88" y="-329.57" font-family="Helvetica,Arial,sans-serif" font-size="14.00">cols: [name, book]</text>
|
||||||
<path fill="#e8f4fd" stroke="#2196f3" stroke-width="1.5"
|
</g>
|
||||||
d="M135.5,-410.12C135.5,-410.12 38,-410.12 38,-410.12 32,-410.12 26,-404.12 26,-398.12 26,-398.12 26,-327.88 26,-327.88 26,-321.88 32,-315.88 38,-315.88 38,-315.88 135.5,-315.88 135.5,-315.88 141.5,-315.88 147.5,-321.88 147.5,-327.88 147.5,-327.88 147.5,-398.12 147.5,-398.12 147.5,-404.12 141.5,-410.12 135.5,-410.12"/>
|
<!-- author_table->author_rel -->
|
||||||
<text text-anchor="start" x="49.25" y="-389.82" font-family="Helvetica,Arial,sans-serif" font-weight="bold"
|
<g id="edge1" class="edge">
|
||||||
font-size="14.00">Table: edge
|
<title>author_table->author_rel</title>
|
||||||
</text>
|
<path fill="none" stroke="#2196f3" stroke-width="1.2" d="M178.28,-361C217.1,-361 265.45,-361 308.68,-361"/>
|
||||||
<text text-anchor="start" x="38" y="-360.57" font-family="Helvetica,Arial,sans-serif" font-size="14.00">•
|
<polygon fill="#2196f3" stroke="#2196f3" stroke-width="1.2" points="308.62,-364.5 318.62,-361 308.62,-357.5 308.62,-364.5"/>
|
||||||
arity 2
|
</g>
|
||||||
</text>
|
<!-- bestseller_table -->
|
||||||
<text text-anchor="start" x="38" y="-331.57" font-family="Helvetica,Arial,sans-serif" font-size="14.00">•
|
<g id="node2" class="node">
|
||||||
rows: (src, dst)
|
<title>bestseller_table</title>
|
||||||
</text>
|
<path fill="#e8f4fd" stroke="#2196f3" stroke-width="1.5" d="M156.12,-264.12C156.12,-264.12 50.38,-264.12 50.38,-264.12 44.38,-264.12 38.38,-258.12 38.38,-252.12 38.38,-252.12 38.38,-181.88 38.38,-181.88 38.38,-175.88 44.38,-169.88 50.38,-169.88 50.38,-169.88 156.12,-169.88 156.12,-169.88 162.12,-169.88 168.12,-175.88 168.12,-181.88 168.12,-181.88 168.12,-252.12 168.12,-252.12 168.12,-258.12 162.12,-264.12 156.12,-264.12"/>
|
||||||
</g>
|
<text text-anchor="start" x="50.38" y="-243.82" font-family="Helvetica,Arial,sans-serif" font-weight="bold" font-size="14.00">Table: bestseller</text>
|
||||||
<!-- self_loops -->
|
<text text-anchor="start" x="50.38" y="-214.57" font-family="Helvetica,Arial,sans-serif" font-size="14.00">• arity 1</text>
|
||||||
<g id="node3" class="node">
|
<text text-anchor="start" x="50.38" y="-185.57" font-family="Helvetica,Arial,sans-serif" font-size="14.00">• rows: (book)</text>
|
||||||
<title>self_loops</title>
|
</g>
|
||||||
<path fill="#f3e5f5" stroke="#9c27b0" stroke-width="1.5"
|
<!-- bestseller_rel -->
|
||||||
d="M456.12,-606.62C456.12,-606.62 325.62,-606.62 325.62,-606.62 319.62,-606.62 313.62,-600.62 313.62,-594.62 313.62,-594.62 313.62,-495.38 313.62,-495.38 313.62,-489.38 319.62,-483.38 325.62,-483.38 325.62,-483.38 456.12,-483.38 456.12,-483.38 462.12,-483.38 468.12,-489.38 468.12,-495.38 468.12,-495.38 468.12,-594.62 468.12,-594.62 468.12,-600.62 462.12,-606.62 456.12,-606.62"/>
|
<g id="node5" class="node">
|
||||||
<text text-anchor="start" x="357.5" y="-586.33" font-family="Helvetica,Arial,sans-serif" font-weight="bold"
|
<title>bestseller_rel</title>
|
||||||
font-size="14.00">self_loops
|
<path fill="#f3e5f5" stroke="#9c27b0" stroke-width="1.5" d="M476.12,-264.12C476.12,-264.12 365.88,-264.12 365.88,-264.12 359.88,-264.12 353.88,-258.12 353.88,-252.12 353.88,-252.12 353.88,-181.88 353.88,-181.88 353.88,-175.88 359.88,-169.88 365.88,-169.88 365.88,-169.88 476.12,-169.88 476.12,-169.88 482.12,-169.88 488.12,-175.88 488.12,-181.88 488.12,-181.88 488.12,-252.12 488.12,-252.12 488.12,-258.12 482.12,-264.12 476.12,-264.12"/>
|
||||||
</text>
|
<text text-anchor="start" x="377.5" y="-243.82" font-family="Helvetica,Arial,sans-serif" font-weight="bold" font-size="14.00">bestseller_rel</text>
|
||||||
<text text-anchor="start" x="325.62" y="-557.08" font-family="Helvetica,Arial,sans-serif" font-size="14.00">
|
<text text-anchor="start" x="365.88" y="-214.57" font-family="Helvetica,Arial,sans-serif" font-size="14.00">pattern: [Var book]</text>
|
||||||
pattern: [Var X, Var X]
|
<text text-anchor="start" x="365.88" y="-185.57" font-family="Helvetica,Arial,sans-serif" font-size="14.00">cols: [book]</text>
|
||||||
</text>
|
</g>
|
||||||
<text text-anchor="start" x="325.62" y="-528.08" font-family="Helvetica,Arial,sans-serif" font-size="14.00">
|
<!-- bestseller_table->bestseller_rel -->
|
||||||
filter: row[0] == row[1]
|
<g id="edge2" class="edge">
|
||||||
</text>
|
<title>bestseller_table->bestseller_rel</title>
|
||||||
<text text-anchor="start" x="325.62" y="-499.07" font-family="Helvetica,Arial,sans-serif" font-size="14.00">
|
<path fill="none" stroke="#2196f3" stroke-width="1.2" d="M168.53,-217C218.65,-217 288.47,-217 341.83,-217"/>
|
||||||
cols: [X]
|
<polygon fill="#2196f3" stroke="#2196f3" stroke-width="1.2" points="341.82,-220.5 351.82,-217 341.82,-213.5 341.82,-220.5"/>
|
||||||
</text>
|
</g>
|
||||||
</g>
|
<!-- price_table -->
|
||||||
<!-- edge_table->self_loops -->
|
<g id="node3" class="node">
|
||||||
<g id="edge1" class="edge">
|
<title>price_table</title>
|
||||||
<title>edge_table->self_loops</title>
|
<path fill="#e8f4fd" stroke="#2196f3" stroke-width="1.5" d="M168.5,-120.12C168.5,-120.12 38,-120.12 38,-120.12 32,-120.12 26,-114.12 26,-108.12 26,-108.12 26,-37.88 26,-37.88 26,-31.88 32,-25.88 38,-25.88 38,-25.88 168.5,-25.88 168.5,-25.88 174.5,-25.88 180.5,-31.88 180.5,-37.88 180.5,-37.88 180.5,-108.12 180.5,-108.12 180.5,-114.12 174.5,-120.12 168.5,-120.12"/>
|
||||||
<path fill="none" stroke="#2196f3" stroke-width="1.2"
|
<text text-anchor="start" x="65.75" y="-99.83" font-family="Helvetica,Arial,sans-serif" font-weight="bold" font-size="14.00">Table: price</text>
|
||||||
d="M139.07,-410.51C158.38,-427.04 181.08,-444.95 203.38,-459 234.4,-478.56 270.61,-496.29 302.82,-510.5"/>
|
<text text-anchor="start" x="38" y="-70.58" font-family="Helvetica,Arial,sans-serif" font-size="14.00">• arity 2</text>
|
||||||
<polygon fill="#2196f3" stroke="#2196f3" stroke-width="1.2"
|
<text text-anchor="start" x="38" y="-41.58" font-family="Helvetica,Arial,sans-serif" font-size="14.00">• rows: (book, dollars)</text>
|
||||||
points="301.35,-513.67 311.91,-514.45 304.14,-507.25 301.35,-513.67"/>
|
</g>
|
||||||
</g>
|
<!-- price_rel -->
|
||||||
<!-- edge_xy -->
|
<g id="node6" class="node">
|
||||||
<g id="node4" class="node">
|
<title>price_rel</title>
|
||||||
<title>edge_xy</title>
|
<path fill="#f3e5f5" stroke="#9c27b0" stroke-width="1.5" d="M511.75,-120.12C511.75,-120.12 330.25,-120.12 330.25,-120.12 324.25,-120.12 318.25,-114.12 318.25,-108.12 318.25,-108.12 318.25,-37.88 318.25,-37.88 318.25,-31.88 324.25,-25.88 330.25,-25.88 330.25,-25.88 511.75,-25.88 511.75,-25.88 517.75,-25.88 523.75,-31.88 523.75,-37.88 523.75,-37.88 523.75,-108.12 523.75,-108.12 523.75,-114.12 517.75,-120.12 511.75,-120.12"/>
|
||||||
<path fill="#f3e5f5" stroke="#9c27b0" stroke-width="1.5"
|
<text text-anchor="start" x="392.88" y="-99.83" font-family="Helvetica,Arial,sans-serif" font-weight="bold" font-size="14.00">price_rel</text>
|
||||||
d="M456.12,-433.62C456.12,-433.62 325.62,-433.62 325.62,-433.62 319.62,-433.62 313.62,-427.62 313.62,-421.62 313.62,-421.62 313.62,-322.38 313.62,-322.38 313.62,-316.38 319.62,-310.38 325.62,-310.38 325.62,-310.38 456.12,-310.38 456.12,-310.38 462.12,-310.38 468.12,-316.38 468.12,-322.38 468.12,-322.38 468.12,-421.62 468.12,-421.62 468.12,-427.62 462.12,-433.62 456.12,-433.62"/>
|
<text text-anchor="start" x="330.25" y="-70.58" font-family="Helvetica,Arial,sans-serif" font-size="14.00">pattern: [Var book, Var dollars]</text>
|
||||||
<text text-anchor="start" x="363.5" y="-413.32" font-family="Helvetica,Arial,sans-serif" font-weight="bold"
|
<text text-anchor="start" x="330.25" y="-41.58" font-family="Helvetica,Arial,sans-serif" font-size="14.00">cols: [book, dollars]</text>
|
||||||
font-size="14.00">edge_xy
|
</g>
|
||||||
</text>
|
<!-- price_table->price_rel -->
|
||||||
<text text-anchor="start" x="325.62" y="-384.07" font-family="Helvetica,Arial,sans-serif" font-size="14.00">
|
<g id="edge3" class="edge">
|
||||||
pattern: [Var X, Var Y]
|
<title>price_table->price_rel</title>
|
||||||
</text>
|
<path fill="none" stroke="#2196f3" stroke-width="1.2" d="M180.68,-73C218.39,-73 264.62,-73 306.37,-73"/>
|
||||||
<text text-anchor="start" x="325.62" y="-355.07" font-family="Helvetica,Arial,sans-serif" font-size="14.00">
|
<polygon fill="#2196f3" stroke="#2196f3" stroke-width="1.2" points="306.2,-76.5 316.2,-73 306.2,-69.5 306.2,-76.5"/>
|
||||||
filter: none
|
</g>
|
||||||
</text>
|
<!-- semijoin_step -->
|
||||||
<text text-anchor="start" x="325.62" y="-326.07" font-family="Helvetica,Arial,sans-serif" font-size="14.00">
|
<g id="node7" class="node">
|
||||||
cols: [X, Y]
|
<title>semijoin_step</title>
|
||||||
</text>
|
<path fill="#e8f5e9" stroke="#4caf50" stroke-width="1.5" d="M819.75,-278.62C819.75,-278.62 691.5,-278.62 691.5,-278.62 685.5,-278.62 679.5,-272.62 679.5,-266.62 679.5,-266.62 679.5,-167.38 679.5,-167.38 679.5,-161.38 685.5,-155.38 691.5,-155.38 691.5,-155.38 819.75,-155.38 819.75,-155.38 825.75,-155.38 831.75,-161.38 831.75,-167.38 831.75,-167.38 831.75,-266.62 831.75,-266.62 831.75,-272.62 825.75,-278.62 819.75,-278.62"/>
|
||||||
</g>
|
<text text-anchor="start" x="727.88" y="-258.32" font-family="Helvetica,Arial,sans-serif" font-weight="bold" font-size="14.00">semijoin</text>
|
||||||
<!-- edge_table->edge_xy -->
|
<text text-anchor="start" x="691.5" y="-229.07" font-family="Helvetica,Arial,sans-serif" font-size="14.00">authors of bestsellers</text>
|
||||||
<g id="edge2" class="edge">
|
<text text-anchor="start" x="691.5" y="-200.07" font-family="Helvetica,Arial,sans-serif" font-size="14.00">shared: book</text>
|
||||||
<title>edge_table->edge_xy</title>
|
<text text-anchor="start" x="691.5" y="-171.07" font-family="Helvetica,Arial,sans-serif" font-size="14.00">cols: [name, book]</text>
|
||||||
<path fill="none" stroke="#2196f3" stroke-width="1.2"
|
</g>
|
||||||
d="M147.8,-364.79C191.77,-366.1 252.15,-367.9 301.6,-369.37"/>
|
<!-- author_rel->semijoin_step -->
|
||||||
<polygon fill="#2196f3" stroke="#2196f3" stroke-width="1.2"
|
<g id="edge4" class="edge">
|
||||||
points="301.35,-372.86 311.45,-369.66 301.56,-365.87 301.35,-372.86"/>
|
<title>author_rel->semijoin_step</title>
|
||||||
</g>
|
<path fill="none" stroke="#9c27b0" stroke-width="1.2" d="M521.48,-324.79C550.11,-313.83 581.24,-301.4 609.5,-289 628.84,-280.51 649.32,-270.81 668.61,-261.33"/>
|
||||||
<!-- labeled_table -->
|
<polygon fill="#9c27b0" stroke="#9c27b0" stroke-width="1.2" points="670.15,-264.48 677.56,-256.91 667.04,-258.2 670.15,-264.48"/>
|
||||||
<g id="node2" class="node">
|
<text text-anchor="middle" x="637.5" y="-284.9" font-family="Helvetica,Arial,sans-serif" font-size="9.00" fill="#555555">left</text>
|
||||||
<title>labeled_table</title>
|
</g>
|
||||||
<path fill="#e8f4fd" stroke="#2196f3" stroke-width="1.5"
|
<!-- bestseller_rel->semijoin_step -->
|
||||||
d="M131.38,-266.12C131.38,-266.12 42.12,-266.12 42.12,-266.12 36.12,-266.12 30.12,-260.12 30.12,-254.12 30.12,-254.12 30.12,-183.88 30.12,-183.88 30.12,-177.88 36.12,-171.88 42.12,-171.88 42.12,-171.88 131.38,-171.88 131.38,-171.88 137.38,-171.88 143.38,-177.88 143.38,-183.88 143.38,-183.88 143.38,-254.12 143.38,-254.12 143.38,-260.12 137.38,-266.12 131.38,-266.12"/>
|
<g id="edge5" class="edge">
|
||||||
<text text-anchor="start" x="42.12" y="-245.82" font-family="Helvetica,Arial,sans-serif" font-weight="bold"
|
<title>bestseller_rel->semijoin_step</title>
|
||||||
font-size="14.00">Table: labeled
|
<path fill="none" stroke="#9c27b0" stroke-width="1.2" d="M488.51,-217C539.93,-217 611.54,-217 667.53,-217"/>
|
||||||
</text>
|
<polygon fill="#9c27b0" stroke="#9c27b0" stroke-width="1.2" points="667.41,-220.5 677.41,-217 667.41,-213.5 667.41,-220.5"/>
|
||||||
<text text-anchor="start" x="42.12" y="-216.57" font-family="Helvetica,Arial,sans-serif" font-size="14.00">•
|
<text text-anchor="middle" x="637.5" y="-221.95" font-family="Helvetica,Arial,sans-serif" font-size="9.00" fill="#555555">right</text>
|
||||||
arity 1
|
</g>
|
||||||
</text>
|
<!-- natural_join_step -->
|
||||||
<text text-anchor="start" x="42.12" y="-187.57" font-family="Helvetica,Arial,sans-serif" font-size="14.00">•
|
<g id="node8" class="node">
|
||||||
rows: (node)
|
<title>natural_join_step</title>
|
||||||
</text>
|
<path fill="#e8f5e9" stroke="#4caf50" stroke-width="1.5" d="M1080,-278.62C1080,-278.62 922.5,-278.62 922.5,-278.62 916.5,-278.62 910.5,-272.62 910.5,-266.62 910.5,-266.62 910.5,-167.38 910.5,-167.38 910.5,-161.38 916.5,-155.38 922.5,-155.38 922.5,-155.38 1080,-155.38 1080,-155.38 1086,-155.38 1092,-161.38 1092,-167.38 1092,-167.38 1092,-266.62 1092,-266.62 1092,-272.62 1086,-278.62 1080,-278.62"/>
|
||||||
</g>
|
<text text-anchor="start" x="963" y="-258.32" font-family="Helvetica,Arial,sans-serif" font-weight="bold" font-size="14.00">natural_join</text>
|
||||||
<!-- labeled_x -->
|
<text text-anchor="start" x="922.5" y="-229.07" font-family="Helvetica,Arial,sans-serif" font-size="14.00">attach each book's price</text>
|
||||||
<g id="node5" class="node">
|
<text text-anchor="start" x="922.5" y="-200.07" font-family="Helvetica,Arial,sans-serif" font-size="14.00">shared: book</text>
|
||||||
<title>labeled_x</title>
|
<text text-anchor="start" x="922.5" y="-171.07" font-family="Helvetica,Arial,sans-serif" font-size="14.00">cols: [name, book, dollars]</text>
|
||||||
<path fill="#f3e5f5" stroke="#9c27b0" stroke-width="1.5"
|
</g>
|
||||||
d="M435.88,-260.12C435.88,-260.12 345.88,-260.12 345.88,-260.12 339.88,-260.12 333.88,-254.12 333.88,-248.12 333.88,-248.12 333.88,-177.88 333.88,-177.88 333.88,-171.88 339.88,-165.88 345.88,-165.88 345.88,-165.88 435.88,-165.88 435.88,-165.88 441.88,-165.88 447.88,-171.88 447.88,-177.88 447.88,-177.88 447.88,-248.12 447.88,-248.12 447.88,-254.12 441.88,-260.12 435.88,-260.12"/>
|
<!-- price_rel->natural_join_step -->
|
||||||
<text text-anchor="start" x="360.12" y="-239.82" font-family="Helvetica,Arial,sans-serif" font-weight="bold"
|
<g id="edge7" class="edge">
|
||||||
font-size="14.00">labeled_x
|
<title>price_rel->natural_join_step</title>
|
||||||
</text>
|
<path fill="none" stroke="#9c27b0" stroke-width="1.2" d="M523.91,-71.78C608.41,-73.58 730.63,-82.79 831.75,-116.5 855.71,-124.49 879.92,-136.28 902.24,-149"/>
|
||||||
<text text-anchor="start" x="345.88" y="-210.57" font-family="Helvetica,Arial,sans-serif" font-size="14.00">
|
<polygon fill="#9c27b0" stroke="#9c27b0" stroke-width="1.2" points="900.38,-151.97 910.78,-153.98 903.91,-145.92 900.38,-151.97"/>
|
||||||
pattern: [Var X]
|
<text text-anchor="middle" x="755.62" y="-121.45" font-family="Helvetica,Arial,sans-serif" font-size="9.00" fill="#555555">right</text>
|
||||||
</text>
|
</g>
|
||||||
<text text-anchor="start" x="345.88" y="-181.57" font-family="Helvetica,Arial,sans-serif" font-size="14.00">
|
<!-- semijoin_step->natural_join_step -->
|
||||||
cols: [X]
|
<g id="edge6" class="edge">
|
||||||
</text>
|
<title>semijoin_step->natural_join_step</title>
|
||||||
</g>
|
<path fill="none" stroke="#4caf50" stroke-width="1.2" d="M832.04,-217C853.1,-217 876.34,-217 898.65,-217"/>
|
||||||
<!-- labeled_table->labeled_x -->
|
<polygon fill="#4caf50" stroke="#4caf50" stroke-width="1.2" points="898.4,-220.5 908.4,-217 898.4,-213.5 898.4,-220.5"/>
|
||||||
<g id="edge3" class="edge">
|
<text text-anchor="middle" x="871.12" y="-221.95" font-family="Helvetica,Arial,sans-serif" font-size="9.00" fill="#555555">left</text>
|
||||||
<title>labeled_table->labeled_x</title>
|
</g>
|
||||||
<path fill="none" stroke="#2196f3" stroke-width="1.2"
|
<!-- result -->
|
||||||
d="M143.87,-217.89C194.16,-216.89 268.06,-215.42 321.73,-214.35"/>
|
<g id="node9" class="node">
|
||||||
<polygon fill="#2196f3" stroke="#2196f3" stroke-width="1.2"
|
<title>result</title>
|
||||||
points="321.8,-217.85 331.73,-214.15 321.66,-210.85 321.8,-217.85"/>
|
<path fill="#eceff1" stroke="#607d8b" stroke-width="1.5" d="M1435.75,-264.12C1435.75,-264.12 1171,-264.12 1171,-264.12 1165,-264.12 1159,-258.12 1159,-252.12 1159,-252.12 1159,-181.88 1159,-181.88 1159,-175.88 1165,-169.88 1171,-169.88 1171,-169.88 1435.75,-169.88 1435.75,-169.88 1441.75,-169.88 1447.75,-175.88 1447.75,-181.88 1447.75,-181.88 1447.75,-252.12 1447.75,-252.12 1447.75,-258.12 1441.75,-264.12 1435.75,-264.12"/>
|
||||||
</g>
|
<text text-anchor="start" x="1277.5" y="-243.82" font-family="Helvetica,Arial,sans-serif" font-weight="bold" font-size="14.00">Q result</text>
|
||||||
<!-- labeled_y -->
|
<text text-anchor="start" x="1171" y="-214.57" font-family="Helvetica,Arial,sans-serif" font-size="14.00">authors of bestsellers with each book's price</text>
|
||||||
<g id="node6" class="node">
|
<text text-anchor="start" x="1171" y="-185.57" font-family="Helvetica,Arial,sans-serif" font-size="14.00">cols: [name, book, dollars]</text>
|
||||||
<title>labeled_y</title>
|
</g>
|
||||||
<path fill="#f3e5f5" stroke="#9c27b0" stroke-width="1.5"
|
<!-- natural_join_step->result -->
|
||||||
d="M435.88,-116.12C435.88,-116.12 345.88,-116.12 345.88,-116.12 339.88,-116.12 333.88,-110.12 333.88,-104.12 333.88,-104.12 333.88,-33.88 333.88,-33.88 333.88,-27.88 339.88,-21.88 345.88,-21.88 345.88,-21.88 435.88,-21.88 435.88,-21.88 441.88,-21.88 447.88,-27.88 447.88,-33.88 447.88,-33.88 447.88,-104.12 447.88,-104.12 447.88,-110.12 441.88,-116.12 435.88,-116.12"/>
|
<g id="edge8" class="edge">
|
||||||
<text text-anchor="start" x="360.12" y="-95.83" font-family="Helvetica,Arial,sans-serif" font-weight="bold"
|
<title>natural_join_step->result</title>
|
||||||
font-size="14.00">labeled_y
|
<path fill="none" stroke="#4caf50" stroke-width="1.2" d="M1092.3,-217C1109.6,-217 1128.17,-217 1146.86,-217"/>
|
||||||
</text>
|
<polygon fill="#4caf50" stroke="#4caf50" stroke-width="1.2" points="1146.69,-220.5 1156.69,-217 1146.69,-213.5 1146.69,-220.5"/>
|
||||||
<text text-anchor="start" x="345.88" y="-66.58" font-family="Helvetica,Arial,sans-serif" font-size="14.00">
|
</g>
|
||||||
pattern: [Var Y]
|
</g>
|
||||||
</text>
|
|
||||||
<text text-anchor="start" x="345.88" y="-37.58" font-family="Helvetica,Arial,sans-serif" font-size="14.00">
|
|
||||||
cols: [Y]
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<!-- labeled_table->labeled_y -->
|
|
||||||
<g id="edge4" class="edge">
|
|
||||||
<title>labeled_table->labeled_y</title>
|
|
||||||
<path fill="none" stroke="#2196f3" stroke-width="1.2"
|
|
||||||
d="M143.81,-177.48C162.25,-164.84 183.2,-151.53 203.38,-141 241.58,-121.06 286.59,-103.53 322.82,-90.76"/>
|
|
||||||
<polygon fill="#2196f3" stroke="#2196f3" stroke-width="1.2"
|
|
||||||
points="323.76,-94.14 332.05,-87.55 321.46,-87.53 323.76,-94.14"/>
|
|
||||||
</g>
|
|
||||||
<!-- q1 -->
|
|
||||||
<g id="node7" class="node">
|
|
||||||
<title>q1</title>
|
|
||||||
<path fill="#e8f5e9" stroke="#4caf50" stroke-width="1.5"
|
|
||||||
d="M885.88,-380.62C885.88,-380.62 681.12,-380.62 681.12,-380.62 675.12,-380.62 669.12,-374.62 669.12,-368.62 669.12,-368.62 669.12,-269.38 669.12,-269.38 669.12,-263.38 675.12,-257.38 681.12,-257.38 681.12,-257.38 885.88,-257.38 885.88,-257.38 891.88,-257.38 897.88,-263.38 897.88,-269.38 897.88,-269.38 897.88,-368.62 897.88,-368.62 897.88,-374.62 891.88,-380.62 885.88,-380.62"/>
|
|
||||||
<text text-anchor="start" x="742.25" y="-360.32" font-family="Helvetica,Arial,sans-serif" font-weight="bold"
|
|
||||||
font-size="14.00">Q1: semijoin
|
|
||||||
</text>
|
|
||||||
<text text-anchor="start" x="681.12" y="-331.07" font-family="Helvetica,Arial,sans-serif" font-size="14.00">
|
|
||||||
edge(X, X), labeled(X)
|
|
||||||
</text>
|
|
||||||
<text text-anchor="start" x="681.12" y="-302.07" font-family="Helvetica,Arial,sans-serif" font-size="14.00">
|
|
||||||
keep left rows whose [X] is in right
|
|
||||||
</text>
|
|
||||||
<text text-anchor="start" x="681.12" y="-273.07" font-family="Helvetica,Arial,sans-serif" font-size="14.00">
|
|
||||||
cols: [X]
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<!-- self_loops->q1 -->
|
|
||||||
<g id="edge5" class="edge">
|
|
||||||
<title>self_loops->q1</title>
|
|
||||||
<path fill="none" stroke="#9c27b0" stroke-width="1.2"
|
|
||||||
d="M468.18,-513.59C502.81,-498.43 543.88,-479.17 579.38,-459 616.82,-437.72 656.18,-411.56 690.18,-387.64"/>
|
|
||||||
<polygon fill="#9c27b0" stroke="#9c27b0" stroke-width="1.2"
|
|
||||||
points="692,-390.64 698.14,-382.01 687.96,-384.93 692,-390.64"/>
|
|
||||||
<text text-anchor="middle" x="607.38" y="-450.4" font-family="Helvetica,Arial,sans-serif" font-size="9.00"
|
|
||||||
fill="#555555">left
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<!-- q2 -->
|
|
||||||
<g id="node8" class="node">
|
|
||||||
<title>q2</title>
|
|
||||||
<path fill="#e8f5e9" stroke="#4caf50" stroke-width="1.5"
|
|
||||||
d="M896,-207.62C896,-207.62 671,-207.62 671,-207.62 665,-207.62 659,-201.62 659,-195.62 659,-195.62 659,-96.38 659,-96.38 659,-90.38 665,-84.38 671,-84.38 671,-84.38 896,-84.38 896,-84.38 902,-84.38 908,-90.38 908,-96.38 908,-96.38 908,-195.62 908,-195.62 908,-201.62 902,-207.62 896,-207.62"/>
|
|
||||||
<text text-anchor="start" x="731.75" y="-187.32" font-family="Helvetica,Arial,sans-serif" font-weight="bold"
|
|
||||||
font-size="14.00">Q2: natural_join
|
|
||||||
</text>
|
|
||||||
<text text-anchor="start" x="671" y="-158.07" font-family="Helvetica,Arial,sans-serif" font-size="14.00">
|
|
||||||
edge(X, Y), labeled(Y)
|
|
||||||
</text>
|
|
||||||
<text text-anchor="start" x="671" y="-129.07" font-family="Helvetica,Arial,sans-serif" font-size="14.00">
|
|
||||||
emit left ++ (right \ shared) per match
|
|
||||||
</text>
|
|
||||||
<text text-anchor="start" x="671" y="-100.08" font-family="Helvetica,Arial,sans-serif" font-size="14.00">
|
|
||||||
cols: [X, Y]
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<!-- edge_xy->q2 -->
|
|
||||||
<g id="edge7" class="edge">
|
|
||||||
<title>edge_xy->q2</title>
|
|
||||||
<path fill="none" stroke="#9c27b0" stroke-width="1.2"
|
|
||||||
d="M468.53,-363.61C517.02,-354.43 577.64,-335.21 616.38,-295 636.66,-273.94 617.27,-254.97 635.38,-232 639.88,-226.28 644.88,-220.87 650.24,-215.75"/>
|
|
||||||
<polygon fill="#9c27b0" stroke="#9c27b0" stroke-width="1.2"
|
|
||||||
points="652.47,-218.45 657.58,-209.17 647.79,-213.24 652.47,-218.45"/>
|
|
||||||
<text text-anchor="middle" x="607.38" y="-312.83" font-family="Helvetica,Arial,sans-serif" font-size="9.00"
|
|
||||||
fill="#555555">left
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<!-- labeled_x->q1 -->
|
|
||||||
<g id="edge6" class="edge">
|
|
||||||
<title>labeled_x->q1</title>
|
|
||||||
<path fill="none" stroke="#9c27b0" stroke-width="1.2"
|
|
||||||
d="M448.17,-228.1C493.59,-240.3 559.11,-257.94 616.38,-273.5 629.81,-277.15 643.85,-280.98 657.84,-284.8"/>
|
|
||||||
<polygon fill="#9c27b0" stroke="#9c27b0" stroke-width="1.2"
|
|
||||||
points="656.71,-288.12 667.27,-287.38 658.55,-281.36 656.71,-288.12"/>
|
|
||||||
<text text-anchor="middle" x="607.38" y="-278.45" font-family="Helvetica,Arial,sans-serif" font-size="9.00"
|
|
||||||
fill="#555555">right
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<!-- labeled_y->q2 -->
|
|
||||||
<g id="edge8" class="edge">
|
|
||||||
<title>labeled_y->q2</title>
|
|
||||||
<path fill="none" stroke="#9c27b0" stroke-width="1.2"
|
|
||||||
d="M448.26,-80.11C500.19,-90.35 579.3,-105.95 647.52,-119.39"/>
|
|
||||||
<polygon fill="#9c27b0" stroke="#9c27b0" stroke-width="1.2"
|
|
||||||
points="646.54,-122.77 657.03,-121.27 647.89,-115.9 646.54,-122.77"/>
|
|
||||||
<text text-anchor="middle" x="607.38" y="-117.06" font-family="Helvetica,Arial,sans-serif" font-size="9.00"
|
|
||||||
fill="#555555">right
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<!-- q1_out -->
|
|
||||||
<g id="node9" class="node">
|
|
||||||
<title>q1_out</title>
|
|
||||||
<path fill="#eceff1" stroke="#607d8b" stroke-width="1.5"
|
|
||||||
d="M1125.12,-355.12C1125.12,-355.12 1020.12,-355.12 1020.12,-355.12 1014.12,-355.12 1008.12,-349.12 1008.12,-343.12 1008.12,-343.12 1008.12,-272.88 1008.12,-272.88 1008.12,-266.88 1014.12,-260.88 1020.12,-260.88 1020.12,-260.88 1125.12,-260.88 1125.12,-260.88 1131.12,-260.88 1137.12,-266.88 1137.12,-272.88 1137.12,-272.88 1137.12,-343.12 1137.12,-343.12 1137.12,-349.12 1131.12,-355.12 1125.12,-355.12"/>
|
|
||||||
<text text-anchor="start" x="1043" y="-334.82" font-family="Helvetica,Arial,sans-serif" font-weight="bold"
|
|
||||||
font-size="14.00">Q1 result
|
|
||||||
</text>
|
|
||||||
<text text-anchor="start" x="1020.12" y="-305.57" font-family="Helvetica,Arial,sans-serif"
|
|
||||||
font-size="14.00">labeled self-loops
|
|
||||||
</text>
|
|
||||||
<text text-anchor="start" x="1020.12" y="-276.57" font-family="Helvetica,Arial,sans-serif"
|
|
||||||
font-size="14.00">cols: [X]
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<!-- q1->q1_out -->
|
|
||||||
<g id="edge9" class="edge">
|
|
||||||
<title>q1->q1_out</title>
|
|
||||||
<path fill="none" stroke="#4caf50" stroke-width="1.2"
|
|
||||||
d="M897.98,-314.65C930.91,-313.39 966.06,-312.04 996.06,-310.9"/>
|
|
||||||
<polygon fill="#4caf50" stroke="#4caf50" stroke-width="1.2"
|
|
||||||
points="996.04,-314.4 1005.9,-310.52 995.77,-307.4 996.04,-314.4"/>
|
|
||||||
</g>
|
|
||||||
<!-- q2_out -->
|
|
||||||
<g id="node10" class="node">
|
|
||||||
<title>q2_out</title>
|
|
||||||
<path fill="#eceff1" stroke="#607d8b" stroke-width="1.5"
|
|
||||||
d="M1147.62,-211.12C1147.62,-211.12 997.62,-211.12 997.62,-211.12 991.62,-211.12 985.62,-205.12 985.62,-199.12 985.62,-199.12 985.62,-128.88 985.62,-128.88 985.62,-122.88 991.62,-116.88 997.62,-116.88 997.62,-116.88 1147.62,-116.88 1147.62,-116.88 1153.62,-116.88 1159.62,-122.88 1159.62,-128.88 1159.62,-128.88 1159.62,-199.12 1159.62,-199.12 1159.62,-205.12 1153.62,-211.12 1147.62,-211.12"/>
|
|
||||||
<text text-anchor="start" x="1043" y="-190.82" font-family="Helvetica,Arial,sans-serif" font-weight="bold"
|
|
||||||
font-size="14.00">Q2 result
|
|
||||||
</text>
|
|
||||||
<text text-anchor="start" x="997.62" y="-161.57" font-family="Helvetica,Arial,sans-serif" font-size="14.00">
|
|
||||||
edges into labeled nodes
|
|
||||||
</text>
|
|
||||||
<text text-anchor="start" x="997.62" y="-132.57" font-family="Helvetica,Arial,sans-serif" font-size="14.00">
|
|
||||||
cols: [X, Y]
|
|
||||||
</text>
|
|
||||||
</g>
|
|
||||||
<!-- q2->q2_out -->
|
|
||||||
<g id="edge10" class="edge">
|
|
||||||
<title>q2->q2_out</title>
|
|
||||||
<path fill="none" stroke="#4caf50" stroke-width="1.2"
|
|
||||||
d="M908.35,-153.76C930.25,-155.14 952.77,-156.55 973.83,-157.87"/>
|
|
||||||
<polygon fill="#4caf50" stroke="#4caf50" stroke-width="1.2"
|
|
||||||
points="973.35,-161.35 983.55,-158.48 973.79,-154.36 973.35,-161.35"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 14 KiB |
Loading…
x
Reference in New Issue
Block a user