12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- <?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 2.43.0 (0)
- -->
- <!-- Title: G Pages: 1 -->
- <svg width="919pt" height="399pt"
- viewBox="0.00 0.00 919.00 399.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 395)">
- <title>G</title>
- <polygon fill="white" stroke="transparent" points="-4,4 -4,-395 915,-395 915,4 -4,4"/>
- <text text-anchor="middle" x="382" y="-7.8" font-family="Times,serif" font-size="14.00">with a(a, b, c) as (select * from t1) select * from a as a1 inner join a as a2 on a1.a = a2.c; (after rewrites)</text>
- <g id="clust1" class="cluster">
- <title>cluster3</title>
- <polygon fill="none" stroke="black" points="8,-182 8,-383 903,-383 903,-182 8,-182"/>
- <text text-anchor="middle" x="58.5" y="-367.8" font-family="Times,serif" font-size="14.00">Box3:Select</text>
- </g>
- <g id="clust3" class="cluster">
- <title>cluster1</title>
- <polygon fill="none" stroke="black" points="14,-31 14,-163 176,-163 176,-31 14,-31"/>
- <text text-anchor="middle" x="90" y="-147.8" font-family="Times,serif" font-size="14.00">Box1:BaseTable T1</text>
- </g>
- <!-- boxhead3 -->
- <g id="node1" class="node">
- <title>boxhead3</title>
- <polygon fill="none" stroke="black" points="749,-190.5 749,-351.5 895,-351.5 895,-190.5 749,-190.5"/>
- <text text-anchor="middle" x="822" y="-336.3" font-family="Times,serif" font-size="14.00">Distinct: Preserve</text>
- <polyline fill="none" stroke="black" points="749,-328.5 895,-328.5 "/>
- <text text-anchor="middle" x="822" y="-313.3" font-family="Times,serif" font-size="14.00">0: Q5.c0 as A</text>
- <polyline fill="none" stroke="black" points="749,-305.5 895,-305.5 "/>
- <text text-anchor="middle" x="822" y="-290.3" font-family="Times,serif" font-size="14.00">1: Q5.c1 as B</text>
- <polyline fill="none" stroke="black" points="749,-282.5 895,-282.5 "/>
- <text text-anchor="middle" x="822" y="-267.3" font-family="Times,serif" font-size="14.00">2: Q5.c2 as C</text>
- <polyline fill="none" stroke="black" points="749,-259.5 895,-259.5 "/>
- <text text-anchor="middle" x="822" y="-244.3" font-family="Times,serif" font-size="14.00">3: Q0.c0 as A</text>
- <polyline fill="none" stroke="black" points="749,-236.5 895,-236.5 "/>
- <text text-anchor="middle" x="822" y="-221.3" font-family="Times,serif" font-size="14.00">4: Q0.c1 as B</text>
- <polyline fill="none" stroke="black" points="749,-213.5 895,-213.5 "/>
- <text text-anchor="middle" x="822" y="-198.3" font-family="Times,serif" font-size="14.00">5: Q0.c2 as C</text>
- </g>
- <!-- Q0 -->
- <g id="node2" class="node">
- <title>Q0</title>
- <ellipse fill="none" stroke="black" cx="81" cy="-271" rx="64.99" ry="64.99"/>
- <text text-anchor="middle" x="81" y="-267.3" font-family="Times,serif" font-size="14.00">Q0(F) as T1</text>
- </g>
- <!-- Q0->Q0 -->
- <g id="edge2" class="edge">
- <title>Q0->Q0</title>
- <path fill="none" stroke="black" d="M143.61,-288.5C155.55,-286.4 163.99,-280.57 163.99,-271 163.99,-261.43 155.55,-255.6 143.61,-253.5"/>
- <text text-anchor="middle" x="246.99" y="-267.3" font-family="Times,serif" font-size="14.00">NOT ((Q0.c2) IS NULL)</text>
- </g>
- <!-- Q5 -->
- <g id="node3" class="node">
- <title>Q5</title>
- <ellipse fill="none" stroke="black" cx="510" cy="-271" rx="37.09" ry="37.09"/>
- <text text-anchor="middle" x="510" y="-267.3" font-family="Times,serif" font-size="14.00">Q5(F)</text>
- </g>
- <!-- Q0->Q5 -->
- <g id="edge1" class="edge">
- <title>Q0->Q5</title>
- <path fill="none" stroke="black" d="M146.16,-271C237.34,-271 399.99,-271 472.88,-271"/>
- <text text-anchor="middle" x="309.47" y="-277.8" font-family="Times,serif" font-size="14.00">(Q0.c2) = (Q5.c0)</text>
- </g>
- <!-- boxhead1 -->
- <g id="node4" class="node">
- <title>boxhead1</title>
- <polygon fill="none" stroke="black" points="22,-39.5 22,-131.5 168,-131.5 168,-39.5 22,-39.5"/>
- <text text-anchor="middle" x="95" y="-116.3" font-family="Times,serif" font-size="14.00">Distinct: Preserve</text>
- <polyline fill="none" stroke="black" points="22,-108.5 168,-108.5 "/>
- <text text-anchor="middle" x="95" y="-93.3" font-family="Times,serif" font-size="14.00">0: c0 as F1</text>
- <polyline fill="none" stroke="black" points="22,-85.5 168,-85.5 "/>
- <text text-anchor="middle" x="95" y="-70.3" font-family="Times,serif" font-size="14.00">1: c1 as F2</text>
- <polyline fill="none" stroke="black" points="22,-62.5 168,-62.5 "/>
- <text text-anchor="middle" x="95" y="-47.3" font-family="Times,serif" font-size="14.00">2: c2 as F3</text>
- </g>
- <!-- Q0->boxhead1 -->
- <g id="edge4" class="edge">
- <title>Q0->boxhead1</title>
- <path fill="none" stroke="black" stroke-dasharray="5,2" d="M85.88,-206.08C86.94,-192.18 88.07,-177.33 89.16,-163"/>
- </g>
- <!-- Q5->Q5 -->
- <g id="edge3" class="edge">
- <title>Q5->Q5</title>
- <path fill="none" stroke="black" d="M542.23,-289.3C554.69,-290.12 565.05,-284.02 565.05,-271 565.05,-257.98 554.69,-251.88 542.23,-252.7"/>
- <text text-anchor="middle" x="648.05" y="-267.3" font-family="Times,serif" font-size="14.00">NOT ((Q5.c0) IS NULL)</text>
- </g>
- <!-- Q5->boxhead1 -->
- <g id="edge5" class="edge">
- <title>Q5->boxhead1</title>
- <path fill="none" stroke="black" stroke-dasharray="5,2" d="M478.02,-252.29C444.02,-233.77 388.45,-204.33 339,-182 285.49,-157.83 223.91,-133.76 176,-115.83"/>
- </g>
- </g>
- </svg>
|