Skip to content

Commit 4821721

Browse files
authored
Fix EXPLAIN AST formatting for ShowCreateTableQuery, DetachQuery, and AttachQuery (#72)
1 parent fc6b69c commit 4821721

215 files changed

Lines changed: 193 additions & 1091 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

internal/explain/explain.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ func Node(sb *strings.Builder, node interface{}, depth int) {
118118
case *ast.SetQuery:
119119
explainSetQuery(sb, indent)
120120
case *ast.SystemQuery:
121-
explainSystemQuery(sb, indent)
121+
explainSystemQuery(sb, n, indent)
122122
case *ast.ExplainQuery:
123123
explainExplainQuery(sb, n, indent, depth)
124124
case *ast.ShowQuery:

internal/explain/statements.go

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -379,7 +379,7 @@ func explainSetQuery(sb *strings.Builder, indent string) {
379379
fmt.Fprintf(sb, "%sSet\n", indent)
380380
}
381381

382-
func explainSystemQuery(sb *strings.Builder, indent string) {
382+
func explainSystemQuery(sb *strings.Builder, n *ast.SystemQuery, indent string) {
383383
fmt.Fprintf(sb, "%sSYSTEM query\n", indent)
384384
}
385385

@@ -442,10 +442,10 @@ func explainShowQuery(sb *strings.Builder, n *ast.ShowQuery, indent string) {
442442
fmt.Fprintf(sb, "%s Identifier %s\n", indent, n.Database)
443443
fmt.Fprintf(sb, "%s Identifier %s\n", indent, n.From)
444444
} else if n.From != "" {
445-
fmt.Fprintf(sb, "%sShowCreateTableQuery %s (children 1)\n", indent, name)
445+
fmt.Fprintf(sb, "%sShowCreateTableQuery %s (children 1)\n", indent, name)
446446
fmt.Fprintf(sb, "%s Identifier %s\n", indent, name)
447447
} else if n.Database != "" {
448-
fmt.Fprintf(sb, "%sShowCreateTableQuery %s (children 1)\n", indent, n.Database)
448+
fmt.Fprintf(sb, "%sShowCreateTableQuery %s (children 1)\n", indent, n.Database)
449449
fmt.Fprintf(sb, "%s Identifier %s\n", indent, n.Database)
450450
} else {
451451
fmt.Fprintf(sb, "%sShow%s\n", indent, showType)
@@ -544,11 +544,29 @@ func explainParameter(sb *strings.Builder, n *ast.Parameter, indent string) {
544544
}
545545

546546
func explainDetachQuery(sb *strings.Builder, n *ast.DetachQuery, indent string) {
547-
fmt.Fprintf(sb, "%sDetachQuery\n", indent)
547+
name := n.Table
548+
if name == "" {
549+
name = n.Database
550+
}
551+
if name != "" {
552+
fmt.Fprintf(sb, "%sDetachQuery %s (children 1)\n", indent, name)
553+
fmt.Fprintf(sb, "%s Identifier %s\n", indent, name)
554+
} else {
555+
fmt.Fprintf(sb, "%sDetachQuery\n", indent)
556+
}
548557
}
549558

550559
func explainAttachQuery(sb *strings.Builder, n *ast.AttachQuery, indent string) {
551-
fmt.Fprintf(sb, "%sAttachQuery\n", indent)
560+
name := n.Table
561+
if name == "" {
562+
name = n.Database
563+
}
564+
if name != "" {
565+
fmt.Fprintf(sb, "%sAttachQuery %s (children 1)\n", indent, name)
566+
fmt.Fprintf(sb, "%s Identifier %s\n", indent, name)
567+
} else {
568+
fmt.Fprintf(sb, "%sAttachQuery\n", indent)
569+
}
552570
}
553571

554572
func explainAlterQuery(sb *strings.Builder, n *ast.AlterQuery, indent string, depth int) {
Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,7 @@
11
{
22
"explain_todo": {
3-
"stmt11": true,
4-
"stmt16": true,
5-
"stmt21": true,
6-
"stmt25": true,
7-
"stmt29": true,
83
"stmt33": true,
9-
"stmt35": true,
104
"stmt37": true,
11-
"stmt39": true,
12-
"stmt41": true,
13-
"stmt43": true,
14-
"stmt47": true,
15-
"stmt6": true
5+
"stmt41": true
166
}
177
}
Lines changed: 1 addition & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,7 @@
11
{
22
"explain_todo": {
3-
"stmt11": true,
4-
"stmt16": true,
5-
"stmt18": true,
6-
"stmt23": true,
7-
"stmt25": true,
8-
"stmt30": true,
9-
"stmt32": true,
10-
"stmt37": true,
11-
"stmt39": true,
12-
"stmt43": true,
13-
"stmt45": true,
14-
"stmt49": true,
15-
"stmt51": true,
163
"stmt53": true,
17-
"stmt55": true,
18-
"stmt57": true,
194
"stmt59": true,
20-
"stmt61": true,
21-
"stmt63": true,
22-
"stmt65": true,
23-
"stmt67": true,
24-
"stmt69": true,
25-
"stmt73": true,
26-
"stmt75": true,
27-
"stmt79": true,
28-
"stmt81": true,
29-
"stmt9": true
5+
"stmt65": true
306
}
317
}
Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1 @@
1-
{
2-
"explain_todo": {
3-
"stmt5": true,
4-
"stmt6": true
5-
}
6-
}
1+
{}

parser/testdata/00116_storage_set/metadata.json

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
{
22
"explain_todo": {
3-
"stmt15": true,
4-
"stmt16": true,
53
"stmt18": true,
64
"stmt9": true
75
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"explain_todo":{"stmt11":true,"stmt12":true,"stmt15":true,"stmt16":true,"stmt5":true,"stmt6":true}}
1+
{}
Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
{
22
"explain_todo": {
3-
"stmt3": true,
4-
"stmt6": true
3+
"stmt3": true
54
}
65
}
Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
{
22
"explain_todo": {
33
"stmt44": true,
4-
"stmt45": true,
5-
"stmt47": true,
64
"stmt49": true
75
}
86
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"explain_todo":{"stmt5":true,"stmt6":true,"stmt7":true}}
1+
{}

0 commit comments

Comments
 (0)