Skip to content

Commit 7b28a20

Browse files
committed
fix parse tests
1 parent 0139367 commit 7b28a20

File tree

1 file changed

+92
-28
lines changed

1 file changed

+92
-28
lines changed

sql/planbuilder/parse_test.go

Lines changed: 92 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,70 @@ func TestPlanBuilder(t *testing.T) {
5454
var tests = []planTest{
5555
{
5656
Query: "WITH cte AS (SELECT * FROM xy) SELECT *, (SELECT SUM(x) FROM cte) AS xy FROM cte",
57+
ExpectedPlan: `
58+
Project
59+
├─ columns: [cte.x:7!null, cte.y:8!null, cte.z:9!null, Subquery
60+
│ ├─ cacheable: true
61+
│ ├─ alias-string: select SUM(x) from cte
62+
│ └─ Project
63+
│ ├─ columns: [sum(cte.x):13!null as SUM(x)]
64+
│ └─ GroupBy
65+
│ ├─ select: SUM(cte.x:10!null)
66+
│ ├─ group:
67+
│ └─ SubqueryAlias
68+
│ ├─ name: cte
69+
│ ├─ outerVisibility: false
70+
│ ├─ isLateral: false
71+
│ ├─ cacheable: true
72+
│ ├─ colSet: (10-12)
73+
│ ├─ tableId: 4
74+
│ └─ Project
75+
│ ├─ columns: [xy.x:1!null, xy.y:2!null, xy.z:3!null]
76+
│ └─ Table
77+
│ ├─ name: xy
78+
│ ├─ columns: [x y z]
79+
│ ├─ colSet: (1-3)
80+
│ └─ tableId: 1
81+
│ as xy]
82+
└─ Project
83+
├─ columns: [cte.x:7!null, cte.y:8!null, cte.z:9!null, Subquery
84+
│ ├─ cacheable: true
85+
│ ├─ alias-string: select SUM(x) from cte
86+
│ └─ Project
87+
│ ├─ columns: [sum(cte.x):13!null as SUM(x)]
88+
│ └─ GroupBy
89+
│ ├─ select: SUM(cte.x:10!null)
90+
│ ├─ group:
91+
│ └─ SubqueryAlias
92+
│ ├─ name: cte
93+
│ ├─ outerVisibility: false
94+
│ ├─ isLateral: false
95+
│ ├─ cacheable: true
96+
│ ├─ colSet: (10-12)
97+
│ ├─ tableId: 4
98+
│ └─ Project
99+
│ ├─ columns: [xy.x:1!null, xy.y:2!null, xy.z:3!null]
100+
│ └─ Table
101+
│ ├─ name: xy
102+
│ ├─ columns: [x y z]
103+
│ ├─ colSet: (1-3)
104+
│ └─ tableId: 1
105+
│ as xy]
106+
└─ SubqueryAlias
107+
├─ name: cte
108+
├─ outerVisibility: false
109+
├─ isLateral: false
110+
├─ cacheable: true
111+
├─ colSet: (7-9)
112+
├─ tableId: 3
113+
└─ Project
114+
├─ columns: [xy.x:1!null, xy.y:2!null, xy.z:3!null]
115+
└─ Table
116+
├─ name: xy
117+
├─ columns: [x y z]
118+
├─ colSet: (1-3)
119+
└─ tableId: 1
120+
`,
57121
},
58122
{
59123
Query: "select 0 as col1, 1 as col2, 2 as col2 group by col2 having col2 = 1",
@@ -83,20 +147,20 @@ Project
83147
├─ columns: [1 (tinyint) as x]
84148
└─ Having
85149
├─ GreaterThan
86-
│ ├─ avg(cte.x):4
150+
│ ├─ avg(cte.x):5
87151
│ └─ 0 (tinyint)
88152
└─ Project
89-
├─ columns: [avg(cte.x):4, cte.x:2!null, 1 (tinyint) as x]
153+
├─ columns: [avg(cte.x):5, cte.x:3!null, 1 (tinyint) as x]
90154
└─ GroupBy
91-
├─ select: AVG(cte.x:2!null), cte.x:2!null
155+
├─ select: AVG(cte.x:3!null), cte.x:3!null
92156
├─ group:
93157
└─ SubqueryAlias
94158
├─ name: cte
95159
├─ outerVisibility: false
96160
├─ isLateral: false
97161
├─ cacheable: true
98-
├─ colSet: (2)
99-
├─ tableId: 1
162+
├─ colSet: (3)
163+
├─ tableId: 2
100164
└─ Project
101165
├─ columns: [1 (tinyint) as x]
102166
└─ Table
@@ -252,8 +316,8 @@ SubqueryAlias
252316
├─ outerVisibility: false
253317
├─ isLateral: false
254318
├─ cacheable: true
255-
├─ colSet: (4,5)
256-
├─ tableId: 2
319+
├─ colSet: (6,7)
320+
├─ tableId: 3
257321
└─ Project
258322
├─ columns: [xy.x:1!null, xy.y:2!null]
259323
└─ Table
@@ -465,8 +529,8 @@ SubqueryAlias
465529
├─ outerVisibility: false
466530
├─ isLateral: false
467531
├─ cacheable: true
468-
├─ colSet: (2)
469-
├─ tableId: 1
532+
├─ colSet: (3)
533+
├─ tableId: 2
470534
└─ Project
471535
├─ columns: [1 (tinyint)]
472536
└─ Table
@@ -484,8 +548,8 @@ SubqueryAlias
484548
├─ outerVisibility: false
485549
├─ isLateral: false
486550
├─ cacheable: true
487-
├─ colSet: (4)
488-
├─ tableId: 2
551+
├─ colSet: (9)
552+
├─ tableId: 4
489553
└─ RecursiveCTE
490554
└─ Union distinct
491555
├─ Project
@@ -496,16 +560,16 @@ SubqueryAlias
496560
│ ├─ colSet: (1-3)
497561
│ └─ tableId: 1
498562
└─ Project
499-
├─ columns: [cte.s:4!null]
563+
├─ columns: [cte.s:5!null]
500564
└─ InnerJoin
501565
├─ Eq
502-
│ ├─ xy.y:6!null
503-
│ └─ cte.s:4!null
566+
│ ├─ xy.y:7!null
567+
│ └─ cte.s:5!null
504568
├─ RecursiveTable(cte)
505569
└─ Table
506570
├─ name: xy
507571
├─ columns: [x y z]
508-
├─ colSet: (5-7)
572+
├─ colSet: (6-8)
509573
└─ tableId: 4
510574
`,
511575
},
@@ -1590,8 +1654,8 @@ SubqueryAlias
15901654
├─ outerVisibility: false
15911655
├─ isLateral: false
15921656
├─ cacheable: true
1593-
├─ colSet: (6,7)
1594-
├─ tableId: 4
1657+
├─ colSet: (14,15)
1658+
├─ tableId: 6
15951659
└─ RecursiveCTE
15961660
└─ Union all
15971661
├─ Project
@@ -1601,8 +1665,8 @@ SubqueryAlias
16011665
│ ├─ outerVisibility: false
16021666
│ ├─ isLateral: false
16031667
│ ├─ cacheable: true
1604-
│ ├─ colSet: (2)
1605-
│ ├─ tableId: 1
1668+
│ ├─ colSet: (5)
1669+
│ ├─ tableId: 3
16061670
│ └─ RecursiveCTE
16071671
│ └─ Union all
16081672
│ ├─ Project
@@ -1613,27 +1677,27 @@ SubqueryAlias
16131677
│ │ ├─ colSet: ()
16141678
│ │ └─ tableId: 0
16151679
│ └─ Project
1616-
│ ├─ columns: [(rt.foo:2!null + 1 (tinyint)) as foo]
1680+
│ ├─ columns: [(rt.foo:3!null + 1 (tinyint)) as foo]
16171681
│ └─ Filter
16181682
│ ├─ LessThan
1619-
│ │ ├─ rt.foo:2!null
1683+
│ │ ├─ rt.foo:3!null
16201684
│ │ └─ 5 (bigint)
16211685
│ └─ RecursiveTable(rt)
16221686
└─ Project
1623-
├─ columns: [(ladder.depth:6!null + 1 (tinyint)) as depth, rt.foo:2!null]
1687+
├─ columns: [(ladder.depth:10!null + 1 (tinyint)) as depth, rt.foo:12!null]
16241688
└─ Filter
16251689
├─ Eq
1626-
│ ├─ ladder.foo:7
1627-
│ └─ rt.foo:2!null
1690+
│ ├─ ladder.foo:11
1691+
│ └─ rt.foo:12!null
16281692
└─ CrossJoin
16291693
├─ RecursiveTable(ladder)
16301694
└─ SubqueryAlias
16311695
├─ name: rt
16321696
├─ outerVisibility: false
16331697
├─ isLateral: false
16341698
├─ cacheable: true
1635-
├─ colSet: (2)
1636-
├─ tableId: 1
1699+
├─ colSet: (12)
1700+
├─ tableId: 4
16371701
└─ RecursiveCTE
16381702
└─ Union all
16391703
├─ Project
@@ -1644,10 +1708,10 @@ SubqueryAlias
16441708
│ ├─ colSet: ()
16451709
│ └─ tableId: 0
16461710
└─ Project
1647-
├─ columns: [(rt.foo:2!null + 1 (tinyint)) as foo]
1711+
├─ columns: [(rt.foo:3!null + 1 (tinyint)) as foo]
16481712
└─ Filter
16491713
├─ LessThan
1650-
│ ├─ rt.foo:2!null
1714+
│ ├─ rt.foo:3!null
16511715
│ └─ 5 (bigint)
16521716
└─ RecursiveTable(rt)
16531717
`,

0 commit comments

Comments
 (0)