Skip to content

Commit f2b49f7

Browse files
authored
Add EXPLAIN QUERY TREE support for ClickHouse query tree explain statements (#102)
1 parent b3d1073 commit f2b49f7

File tree

3 files changed

+10
-92
lines changed

3 files changed

+10
-92
lines changed

ast/ast.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -702,6 +702,7 @@ const (
702702
ExplainPlan ExplainType = "PLAN"
703703
ExplainPipeline ExplainType = "PIPELINE"
704704
ExplainEstimate ExplainType = "ESTIMATE"
705+
ExplainQueryTree ExplainType = "QUERY TREE"
705706
ExplainCurrentTransaction ExplainType = "CURRENT TRANSACTION"
706707
)
707708

parser/parser.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3685,6 +3685,14 @@ func (p *Parser) parseExplain() *ast.ExplainQuery {
36853685
explain.ExplainType = ast.ExplainEstimate
36863686
explain.ExplicitType = true
36873687
p.nextToken()
3688+
case "QUERY":
3689+
// EXPLAIN QUERY TREE
3690+
p.nextToken()
3691+
if p.currentIs(token.IDENT) && strings.ToUpper(p.current.Value) == "TREE" {
3692+
p.nextToken()
3693+
}
3694+
explain.ExplainType = ast.ExplainQueryTree
3695+
explain.ExplicitType = true
36883696
case "CURRENT":
36893697
// EXPLAIN CURRENT TRANSACTION
36903698
p.nextToken()
Lines changed: 1 addition & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -1,92 +1 @@
1-
{
2-
"explain_todo": {
3-
"stmt101": true,
4-
"stmt102": true,
5-
"stmt103": true,
6-
"stmt104": true,
7-
"stmt105": true,
8-
"stmt106": true,
9-
"stmt107": true,
10-
"stmt108": true,
11-
"stmt117": true,
12-
"stmt118": true,
13-
"stmt119": true,
14-
"stmt12": true,
15-
"stmt120": true,
16-
"stmt121": true,
17-
"stmt122": true,
18-
"stmt123": true,
19-
"stmt124": true,
20-
"stmt13": true,
21-
"stmt134": true,
22-
"stmt135": true,
23-
"stmt136": true,
24-
"stmt137": true,
25-
"stmt138": true,
26-
"stmt139": true,
27-
"stmt140": true,
28-
"stmt141": true,
29-
"stmt142": true,
30-
"stmt143": true,
31-
"stmt154": true,
32-
"stmt155": true,
33-
"stmt156": true,
34-
"stmt157": true,
35-
"stmt158": true,
36-
"stmt159": true,
37-
"stmt160": true,
38-
"stmt161": true,
39-
"stmt162": true,
40-
"stmt163": true,
41-
"stmt174": true,
42-
"stmt175": true,
43-
"stmt176": true,
44-
"stmt177": true,
45-
"stmt178": true,
46-
"stmt179": true,
47-
"stmt180": true,
48-
"stmt181": true,
49-
"stmt182": true,
50-
"stmt183": true,
51-
"stmt26": true,
52-
"stmt27": true,
53-
"stmt28": true,
54-
"stmt29": true,
55-
"stmt30": true,
56-
"stmt36": true,
57-
"stmt37": true,
58-
"stmt38": true,
59-
"stmt39": true,
60-
"stmt40": true,
61-
"stmt46": true,
62-
"stmt47": true,
63-
"stmt48": true,
64-
"stmt49": true,
65-
"stmt50": true,
66-
"stmt56": true,
67-
"stmt57": true,
68-
"stmt58": true,
69-
"stmt59": true,
70-
"stmt6": true,
71-
"stmt60": true,
72-
"stmt69": true,
73-
"stmt7": true,
74-
"stmt70": true,
75-
"stmt71": true,
76-
"stmt72": true,
77-
"stmt73": true,
78-
"stmt74": true,
79-
"stmt75": true,
80-
"stmt76": true,
81-
"stmt8": true,
82-
"stmt85": true,
83-
"stmt86": true,
84-
"stmt87": true,
85-
"stmt88": true,
86-
"stmt89": true,
87-
"stmt9": true,
88-
"stmt90": true,
89-
"stmt91": true,
90-
"stmt92": true
91-
}
92-
}
1+
{}

0 commit comments

Comments
 (0)