123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 |
- <?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="922pt" height="958pt"
- viewBox="0.00 0.00 922.00 957.99" 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 953.99)">
- <title>G</title>
- <polygon fill="white" stroke="transparent" points="-4,4 -4,-953.99 918,-953.99 918,4 -4,4"/>
- <text text-anchor="middle" x="387.5" 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; (before rewrites)</text>
- <g id="clust1" class="cluster">
- <title>cluster3</title>
- <polygon fill="none" stroke="black" points="652,-740.99 652,-941.99 906,-941.99 906,-740.99 652,-740.99"/>
- <text text-anchor="middle" x="702.5" y="-926.79" font-family="Times,serif" font-size="14.00">Box3:Select</text>
- </g>
- <g id="clust3" class="cluster">
- <title>cluster4</title>
- <polygon fill="none" stroke="black" points="192,-520.99 192,-721.99 778,-721.99 778,-520.99 192,-520.99"/>
- <text text-anchor="middle" x="242.5" y="-706.79" font-family="Times,serif" font-size="14.00">Box4:Select</text>
- </g>
- <g id="clust5" class="cluster">
- <title>cluster2</title>
- <polygon fill="none" stroke="black" points="200,-369.99 200,-501.99 454,-501.99 454,-369.99 200,-369.99"/>
- <text text-anchor="middle" x="250.5" y="-486.79" font-family="Times,serif" font-size="14.00">Box2:Select</text>
- </g>
- <g id="clust7" class="cluster">
- <title>cluster0</title>
- <polygon fill="none" stroke="black" points="16,-182 16,-350.99 326,-350.99 326,-182 16,-182"/>
- <text text-anchor="middle" x="66.5" y="-335.79" font-family="Times,serif" font-size="14.00">Box0:Select</text>
- </g>
- <g id="clust9" class="cluster">
- <title>cluster1</title>
- <polygon fill="none" stroke="black" points="8,-31 8,-163 170,-163 170,-31 8,-31"/>
- <text text-anchor="middle" x="84" 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="752,-749.49 752,-910.49 898,-910.49 898,-749.49 752,-749.49"/>
- <text text-anchor="middle" x="825" y="-895.29" font-family="Times,serif" font-size="14.00">Distinct: Preserve</text>
- <polyline fill="none" stroke="black" points="752,-887.49 898,-887.49 "/>
- <text text-anchor="middle" x="825" y="-872.29" font-family="Times,serif" font-size="14.00">0: Q4.c0 as A</text>
- <polyline fill="none" stroke="black" points="752,-864.49 898,-864.49 "/>
- <text text-anchor="middle" x="825" y="-849.29" font-family="Times,serif" font-size="14.00">1: Q4.c1 as B</text>
- <polyline fill="none" stroke="black" points="752,-841.49 898,-841.49 "/>
- <text text-anchor="middle" x="825" y="-826.29" font-family="Times,serif" font-size="14.00">2: Q4.c2 as C</text>
- <polyline fill="none" stroke="black" points="752,-818.49 898,-818.49 "/>
- <text text-anchor="middle" x="825" y="-803.29" font-family="Times,serif" font-size="14.00">3: Q4.c3 as A</text>
- <polyline fill="none" stroke="black" points="752,-795.49 898,-795.49 "/>
- <text text-anchor="middle" x="825" y="-780.29" font-family="Times,serif" font-size="14.00">4: Q4.c4 as B</text>
- <polyline fill="none" stroke="black" points="752,-772.49 898,-772.49 "/>
- <text text-anchor="middle" x="825" y="-757.29" font-family="Times,serif" font-size="14.00">5: Q4.c5 as C</text>
- </g>
- <!-- Q4 -->
- <g id="node2" class="node">
- <title>Q4</title>
- <ellipse fill="none" stroke="black" cx="697" cy="-829.99" rx="37.09" ry="37.09"/>
- <text text-anchor="middle" x="697" y="-826.29" font-family="Times,serif" font-size="14.00">Q4(F)</text>
- </g>
- <!-- boxhead4 -->
- <g id="node3" class="node">
- <title>boxhead4</title>
- <polygon fill="none" stroke="black" points="624,-529.49 624,-690.49 770,-690.49 770,-529.49 624,-529.49"/>
- <text text-anchor="middle" x="697" y="-675.29" font-family="Times,serif" font-size="14.00">Distinct: Preserve</text>
- <polyline fill="none" stroke="black" points="624,-667.49 770,-667.49 "/>
- <text text-anchor="middle" x="697" y="-652.29" font-family="Times,serif" font-size="14.00">0: Q2.c0 as A</text>
- <polyline fill="none" stroke="black" points="624,-644.49 770,-644.49 "/>
- <text text-anchor="middle" x="697" y="-629.29" font-family="Times,serif" font-size="14.00">1: Q2.c1 as B</text>
- <polyline fill="none" stroke="black" points="624,-621.49 770,-621.49 "/>
- <text text-anchor="middle" x="697" y="-606.29" font-family="Times,serif" font-size="14.00">2: Q2.c2 as C</text>
- <polyline fill="none" stroke="black" points="624,-598.49 770,-598.49 "/>
- <text text-anchor="middle" x="697" y="-583.29" font-family="Times,serif" font-size="14.00">3: Q3.c0 as A</text>
- <polyline fill="none" stroke="black" points="624,-575.49 770,-575.49 "/>
- <text text-anchor="middle" x="697" y="-560.29" font-family="Times,serif" font-size="14.00">4: Q3.c1 as B</text>
- <polyline fill="none" stroke="black" points="624,-552.49 770,-552.49 "/>
- <text text-anchor="middle" x="697" y="-537.29" font-family="Times,serif" font-size="14.00">5: Q3.c2 as C</text>
- </g>
- <!-- Q4->boxhead4 -->
- <g id="edge2" class="edge">
- <title>Q4->boxhead4</title>
- <path fill="none" stroke="black" stroke-dasharray="5,2" d="M697,-792.5C697,-772.87 697,-747.5 697,-721.99"/>
- </g>
- <!-- Q2 -->
- <g id="node4" class="node">
- <title>Q2</title>
- <ellipse fill="none" stroke="black" cx="266" cy="-609.99" rx="65.79" ry="65.79"/>
- <text text-anchor="middle" x="266" y="-606.29" font-family="Times,serif" font-size="14.00">Q2(F) as A1</text>
- </g>
- <!-- Q3 -->
- <g id="node5" class="node">
- <title>Q3</title>
- <ellipse fill="none" stroke="black" cx="540" cy="-609.99" rx="65.79" ry="65.79"/>
- <text text-anchor="middle" x="540" y="-606.29" font-family="Times,serif" font-size="14.00">Q3(F) as A2</text>
- </g>
- <!-- Q2->Q3 -->
- <g id="edge1" class="edge">
- <title>Q2->Q3</title>
- <path fill="none" stroke="black" d="M331.98,-609.99C375.05,-609.99 431.07,-609.99 474.12,-609.99"/>
- <text text-anchor="middle" x="403" y="-616.79" font-family="Times,serif" font-size="14.00">(Q2.c0) = (Q3.c2)</text>
- </g>
- <!-- boxhead2 -->
- <g id="node6" class="node">
- <title>boxhead2</title>
- <polygon fill="none" stroke="black" points="300,-378.49 300,-470.49 446,-470.49 446,-378.49 300,-378.49"/>
- <text text-anchor="middle" x="373" y="-455.29" font-family="Times,serif" font-size="14.00">Distinct: Preserve</text>
- <polyline fill="none" stroke="black" points="300,-447.49 446,-447.49 "/>
- <text text-anchor="middle" x="373" y="-432.29" font-family="Times,serif" font-size="14.00">0: Q1.c0 as A</text>
- <polyline fill="none" stroke="black" points="300,-424.49 446,-424.49 "/>
- <text text-anchor="middle" x="373" y="-409.29" font-family="Times,serif" font-size="14.00">1: Q1.c1 as B</text>
- <polyline fill="none" stroke="black" points="300,-401.49 446,-401.49 "/>
- <text text-anchor="middle" x="373" y="-386.29" font-family="Times,serif" font-size="14.00">2: Q1.c2 as C</text>
- </g>
- <!-- Q2->boxhead2 -->
- <g id="edge3" class="edge">
- <title>Q2->boxhead2</title>
- <path fill="none" stroke="black" stroke-dasharray="5,2" d="M298.68,-552.94C308.06,-536.86 318.44,-519.06 328.39,-501.98"/>
- </g>
- <!-- Q3->boxhead2 -->
- <g id="edge4" class="edge">
- <title>Q3->boxhead2</title>
- <path fill="none" stroke="black" stroke-dasharray="5,2" d="M496.12,-560.78C479.75,-542.79 460.74,-521.89 442.62,-501.98"/>
- </g>
- <!-- Q1 -->
- <g id="node7" class="node">
- <title>Q1</title>
- <ellipse fill="none" stroke="black" cx="245" cy="-424.49" rx="37.09" ry="37.09"/>
- <text text-anchor="middle" x="245" y="-420.79" font-family="Times,serif" font-size="14.00">Q1(F)</text>
- </g>
- <!-- boxhead0 -->
- <g id="node8" class="node">
- <title>boxhead0</title>
- <polygon fill="none" stroke="black" points="172,-208.99 172,-300.99 318,-300.99 318,-208.99 172,-208.99"/>
- <text text-anchor="middle" x="245" y="-285.79" font-family="Times,serif" font-size="14.00">Distinct: Preserve</text>
- <polyline fill="none" stroke="black" points="172,-277.99 318,-277.99 "/>
- <text text-anchor="middle" x="245" y="-262.79" font-family="Times,serif" font-size="14.00">0: Q0.c0 as F1</text>
- <polyline fill="none" stroke="black" points="172,-254.99 318,-254.99 "/>
- <text text-anchor="middle" x="245" y="-239.79" font-family="Times,serif" font-size="14.00">1: Q0.c1 as F2</text>
- <polyline fill="none" stroke="black" points="172,-231.99 318,-231.99 "/>
- <text text-anchor="middle" x="245" y="-216.79" font-family="Times,serif" font-size="14.00">2: Q0.c2 as F3</text>
- </g>
- <!-- Q1->boxhead0 -->
- <g id="edge5" class="edge">
- <title>Q1->boxhead0</title>
- <path fill="none" stroke="black" stroke-dasharray="5,2" d="M245,-387.14C245,-376.27 245,-363.81 245,-350.99"/>
- </g>
- <!-- Q0 -->
- <g id="node9" class="node">
- <title>Q0</title>
- <ellipse fill="none" stroke="black" cx="89" cy="-254.99" rx="64.99" ry="64.99"/>
- <text text-anchor="middle" x="89" y="-251.29" font-family="Times,serif" font-size="14.00">Q0(F) as T1</text>
- </g>
- <!-- boxhead1 -->
- <g id="node10" class="node">
- <title>boxhead1</title>
- <polygon fill="none" stroke="black" points="16,-39.5 16,-131.5 162,-131.5 162,-39.5 16,-39.5"/>
- <text text-anchor="middle" x="89" y="-116.3" font-family="Times,serif" font-size="14.00">Distinct: Preserve</text>
- <polyline fill="none" stroke="black" points="16,-108.5 162,-108.5 "/>
- <text text-anchor="middle" x="89" y="-93.3" font-family="Times,serif" font-size="14.00">0: c0 as F1</text>
- <polyline fill="none" stroke="black" points="16,-85.5 162,-85.5 "/>
- <text text-anchor="middle" x="89" y="-70.3" font-family="Times,serif" font-size="14.00">1: c1 as F2</text>
- <polyline fill="none" stroke="black" points="16,-62.5 162,-62.5 "/>
- <text text-anchor="middle" x="89" y="-47.3" font-family="Times,serif" font-size="14.00">2: c2 as F3</text>
- </g>
- <!-- Q0->boxhead1 -->
- <g id="edge6" class="edge">
- <title>Q0->boxhead1</title>
- <path fill="none" stroke="black" stroke-dasharray="5,2" d="M89,-189.72C89,-180.97 89,-171.93 89,-163"/>
- </g>
- </g>
- </svg>
|