-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathissue15190.go
114 lines (108 loc) · 2.7 KB
/
issue15190.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
package main
import (
"fmt"
"time"
"go.uber.org/zap"
)
var kases15190 = []*testKase{
{
sql: "set global save_query_result = on;show global variables like '%save_query_result%';",
dst: []any{
new(string),
new(string),
},
prepare: func(kase *testKase, startTime, endTime, moTimeNow time.Time) {
kase.dst = make([]any, 2)
kase.dst[0] = new(string)
kase.dst[1] = new(string)
},
hook: func(kase *testKase, startTime, endTime, _ time.Time) {
fmt.Println(*kase.dst[0].(*string), *kase.dst[1].(*string))
},
},
{
sql: "/* cloud_user */ explain select * from mo_catalog.mo_user;",
dst: []any{
new(string),
},
prepare: func(kase *testKase, startTime, endTime, moTimeNow time.Time) {
kase.dst = make([]any, 1)
kase.dst[0] = new(string)
},
hook: func(kase *testKase, startTime, endTime, _ time.Time) {
fmt.Println(*kase.dst[0].(*string))
},
},
{
sql: "select database() as db,last_query_id() as query_id;",
dst: []any{
new(string),
new(string),
},
prepare: func(kase *testKase, startTime, endTime, moTimeNow time.Time) {
kase.dst = make([]any, 2)
kase.dst[0] = new(string)
kase.dst[1] = new(string)
},
hook: func(kase *testKase, startTime, endTime, _ time.Time) {
fmt.Println(*kase.dst[0].(*string), *kase.dst[1].(*string))
},
},
{
sql: "",
sqlTemplate: "select * from result_scan('%s') as t limit 0,1000;",
dst: []any{
new(string),
},
inputParams: make([]string, 1),
prepare: func(kase *testKase, startTime, endTime, moTimeNow time.Time) {
kase.dst = make([]any, 1)
kase.dst[0] = new(string)
kase.sql = fmt.Sprintf(kase.sqlTemplate, kase.inputParams[0])
fmt.Println(kase.sql)
},
hook: func(kase *testKase, startTime, endTime, _ time.Time) {
},
},
//!!!NOTE: do not change content above
{
sql: "set global save_query_result = off;",
},
}
func issue15190() {
establishConn()
err := runCase(kases15190[0])
if err != nil {
logger.Error("kase1", zap.Error(err))
return
}
err = runCase(kases15190[1])
if err != nil {
logger.Error("kase2", zap.Error(err))
return
}
err = runCase(kases15190[2])
if err != nil {
logger.Error("kase3", zap.Error(err))
return
}
kases15190[3].inputParams[0] = *(kases15190[2].dst[1].(*string))
err = runCase(kases15190[3])
if err != nil {
logger.Error("kase4", zap.Error(err))
return
}
want := *(kases15190[1].dst[0].(*string))
realRes := *(kases15190[3].dst[0].(*string))
if want != realRes {
logger.Error("not equal", zap.String("want", want), zap.String("real", realRes))
}
for _, t := range kasesComposite {
fmt.Println("run case:", t.sql)
err = runCase(t)
if err != nil {
logger.Error("kase", zap.String("sql", t.sql), zap.Error(err))
return
}
}
}