Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Xiaomi
soar
提交
6eddefa4
S
soar
项目概览
Xiaomi
/
soar
大约 2 年 前同步成功
通知
467
Star
8513
Fork
1329
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
soar
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
6eddefa4
编写于
12月 05, 2018
作者:
martianzhang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
daily update vendor
上级
5eb250bb
变更
19
隐藏空白更改
内联
并排
Showing
19 changed file
with
710 addition
and
80 deletion
+710
-80
advisor/rules.go
advisor/rules.go
+2
-2
advisor/testdata/TestListHeuristicRules.golden
advisor/testdata/TestListHeuristicRules.golden
+2
-2
advisor/testdata/TestMergeConflictHeuristicRules.golden
advisor/testdata/TestMergeConflictHeuristicRules.golden
+2
-2
common/config.go
common/config.go
+4
-5
doc/heuristic.md
doc/heuristic.md
+11
-1
vendor/github.com/pingcap/parser/ast/ast.go
vendor/github.com/pingcap/parser/ast/ast.go
+3
-0
vendor/github.com/pingcap/parser/ast/ddl.go
vendor/github.com/pingcap/parser/ast/ddl.go
+141
-1
vendor/github.com/pingcap/parser/ast/dml.go
vendor/github.com/pingcap/parser/ast/dml.go
+138
-0
vendor/github.com/pingcap/parser/ast/expressions.go
vendor/github.com/pingcap/parser/ast/expressions.go
+125
-0
vendor/github.com/pingcap/parser/ast/functions.go
vendor/github.com/pingcap/parser/ast/functions.go
+22
-0
vendor/github.com/pingcap/parser/ast/misc.go
vendor/github.com/pingcap/parser/ast/misc.go
+123
-0
vendor/github.com/pingcap/parser/ast/stats.go
vendor/github.com/pingcap/parser/ast/stats.go
+21
-1
vendor/github.com/pingcap/parser/ast/util.go
vendor/github.com/pingcap/parser/ast/util.go
+15
-1
vendor/github.com/pingcap/parser/go.mod1
vendor/github.com/pingcap/parser/go.mod1
+2
-1
vendor/github.com/pingcap/parser/go.sum1
vendor/github.com/pingcap/parser/go.sum1
+35
-0
vendor/github.com/pingcap/parser/lexer.go
vendor/github.com/pingcap/parser/lexer.go
+3
-3
vendor/github.com/pingcap/parser/yy_parser.go
vendor/github.com/pingcap/parser/yy_parser.go
+3
-3
vendor/github.com/pingcap/tidb/types/time.go
vendor/github.com/pingcap/tidb/types/time.go
+1
-1
vendor/vendor.json
vendor/vendor.json
+57
-57
未找到文件。
advisor/rules.go
浏览文件 @
6eddefa4
...
@@ -1093,7 +1093,7 @@ func init() {
...
@@ -1093,7 +1093,7 @@ func init() {
Item
:
"TBL.005"
,
Item
:
"TBL.005"
,
Severity
:
"L4"
,
Severity
:
"L4"
,
Summary
:
"请使用推荐的字符集"
,
Summary
:
"请使用推荐的字符集"
,
Content
:
`表字符集只允许设置为
`
+
strings
.
Join
(
common
.
Config
.
AllowCharsets
,
","
)
,
Content
:
`表字符集只允许设置为
'`
+
strings
.
Join
(
common
.
Config
.
AllowCharsets
,
","
)
+
"'"
,
Case
:
"CREATE TABLE tbl (a int) DEFAULT CHARSET = latin1;"
,
Case
:
"CREATE TABLE tbl (a int) DEFAULT CHARSET = latin1;"
,
Func
:
(
*
Query4Audit
)
.
RuleTableCharsetCheck
,
Func
:
(
*
Query4Audit
)
.
RuleTableCharsetCheck
,
},
},
...
@@ -1117,7 +1117,7 @@ func init() {
...
@@ -1117,7 +1117,7 @@ func init() {
Item
:
"TBL.008"
,
Item
:
"TBL.008"
,
Severity
:
"L4"
,
Severity
:
"L4"
,
Summary
:
"请使用推荐的COLLATE"
,
Summary
:
"请使用推荐的COLLATE"
,
Content
:
`COLLATE 只允许设置为
`
+
strings
.
Join
(
common
.
Config
.
AllowCollates
,
","
)
,
Content
:
`COLLATE 只允许设置为
'`
+
strings
.
Join
(
common
.
Config
.
AllowCollates
,
","
)
+
"'"
,
Case
:
"CREATE TABLE tbl (a int) DEFAULT COLLATE = latin1_bin;"
,
Case
:
"CREATE TABLE tbl (a int) DEFAULT COLLATE = latin1_bin;"
,
Func
:
(
*
Query4Audit
)
.
RuleTableCharsetCheck
,
Func
:
(
*
Query4Audit
)
.
RuleTableCharsetCheck
,
},
},
...
...
advisor/testdata/TestListHeuristicRules.golden
浏览文件 @
6eddefa4
...
@@ -1176,7 +1176,7 @@ CREATE TABLE tbl (a int) AUTO_INCREMENT = 10;
...
@@ -1176,7 +1176,7 @@ CREATE TABLE tbl (a int) AUTO_INCREMENT = 10;
* **Item**:TBL.005
* **Item**:TBL.005
* **Severity**:L4
* **Severity**:L4
* **Content**:表字符集只允许设置为
utf8,utf8mb4
* **Content**:表字符集只允许设置为
'utf8,utf8mb4'
* **Case**:
* **Case**:
```sql
```sql
...
@@ -1206,7 +1206,7 @@ CREATE TEMPORARY TABLE `work` (`time` time DEFAULT NULL) ENGINE=InnoDB;
...
@@ -1206,7 +1206,7 @@ CREATE TEMPORARY TABLE `work` (`time` time DEFAULT NULL) ENGINE=InnoDB;
* **Item**:TBL.008
* **Item**:TBL.008
* **Severity**:L4
* **Severity**:L4
* **Content**:COLLATE 只允许设置为
* **Content**:COLLATE 只允许设置为
''
* **Case**:
* **Case**:
```sql
```sql
...
...
advisor/testdata/TestMergeConflictHeuristicRules.golden
浏览文件 @
6eddefa4
...
@@ -111,7 +111,7 @@ advisor.Rule{Item:"TBL.001", Severity:"L4", Summary:"不建议使用分区表",
...
@@ -111,7 +111,7 @@ advisor.Rule{Item:"TBL.001", Severity:"L4", Summary:"不建议使用分区表",
advisor.Rule{Item:"TBL.002", Severity:"L4", Summary:"请为表选择合适的存储引擎", Content:"建表或修改表的存储引擎时建议使用推荐的存储引擎,如:innodb", Case:"create table test(`id` int(11) NOT NULL AUTO_INCREMENT)", Position:0, Func:func(*advisor.Query4Audit) advisor.Rule {...}}
advisor.Rule{Item:"TBL.002", Severity:"L4", Summary:"请为表选择合适的存储引擎", Content:"建表或修改表的存储引擎时建议使用推荐的存储引擎,如:innodb", Case:"create table test(`id` int(11) NOT NULL AUTO_INCREMENT)", Position:0, Func:func(*advisor.Query4Audit) advisor.Rule {...}}
advisor.Rule{Item:"TBL.003", Severity:"L8", Summary:"以DUAL命名的表在数据库中有特殊含义", Content:"DUAL表为虚拟表,不需要创建即可使用,也不建议服务以DUAL命名表。", Case:"create table dual(id int, primary key (id));", Position:0, Func:func(*advisor.Query4Audit) advisor.Rule {...}}
advisor.Rule{Item:"TBL.003", Severity:"L8", Summary:"以DUAL命名的表在数据库中有特殊含义", Content:"DUAL表为虚拟表,不需要创建即可使用,也不建议服务以DUAL命名表。", Case:"create table dual(id int, primary key (id));", Position:0, Func:func(*advisor.Query4Audit) advisor.Rule {...}}
advisor.Rule{Item:"TBL.004", Severity:"L2", Summary:"表的初始AUTO_INCREMENT值不为0", Content:"AUTO_INCREMENT不为0会导致数据空洞。", Case:"CREATE TABLE tbl (a int) AUTO_INCREMENT = 10;", Position:0, Func:func(*advisor.Query4Audit) advisor.Rule {...}}
advisor.Rule{Item:"TBL.004", Severity:"L2", Summary:"表的初始AUTO_INCREMENT值不为0", Content:"AUTO_INCREMENT不为0会导致数据空洞。", Case:"CREATE TABLE tbl (a int) AUTO_INCREMENT = 10;", Position:0, Func:func(*advisor.Query4Audit) advisor.Rule {...}}
advisor.Rule{Item:"TBL.005", Severity:"L4", Summary:"请使用推荐的字符集", Content:"表字符集只允许设置为
utf8,utf8mb4
", Case:"CREATE TABLE tbl (a int) DEFAULT CHARSET = latin1;", Position:0, Func:func(*advisor.Query4Audit) advisor.Rule {...}}
advisor.Rule{Item:"TBL.005", Severity:"L4", Summary:"请使用推荐的字符集", Content:"表字符集只允许设置为
'utf8,utf8mb4'
", Case:"CREATE TABLE tbl (a int) DEFAULT CHARSET = latin1;", Position:0, Func:func(*advisor.Query4Audit) advisor.Rule {...}}
advisor.Rule{Item:"TBL.006", Severity:"L1", Summary:"不建议使用视图", Content:"不建议使用视图", Case:"create view v_today (today) AS SELECT CURRENT_DATE;", Position:0, Func:func(*advisor.Query4Audit) advisor.Rule {...}}
advisor.Rule{Item:"TBL.006", Severity:"L1", Summary:"不建议使用视图", Content:"不建议使用视图", Case:"create view v_today (today) AS SELECT CURRENT_DATE;", Position:0, Func:func(*advisor.Query4Audit) advisor.Rule {...}}
advisor.Rule{Item:"TBL.007", Severity:"L1", Summary:"不建议使用临时表", Content:"不建议使用临时表", Case:"CREATE TEMPORARY TABLE `work` (`time` time DEFAULT NULL) ENGINE=InnoDB;", Position:0, Func:func(*advisor.Query4Audit) advisor.Rule {...}}
advisor.Rule{Item:"TBL.007", Severity:"L1", Summary:"不建议使用临时表", Content:"不建议使用临时表", Case:"CREATE TEMPORARY TABLE `work` (`time` time DEFAULT NULL) ENGINE=InnoDB;", Position:0, Func:func(*advisor.Query4Audit) advisor.Rule {...}}
advisor.Rule{Item:"TBL.008", Severity:"L4", Summary:"请使用推荐的COLLATE", Content:"COLLATE 只允许设置为", Case:"CREATE TABLE tbl (a int) DEFAULT COLLATE = latin1_bin;", Position:0, Func:func(*advisor.Query4Audit) advisor.Rule {...}}
advisor.Rule{Item:"TBL.008", Severity:"L4", Summary:"请使用推荐的COLLATE", Content:"COLLATE 只允许设置为
''
", Case:"CREATE TABLE tbl (a int) DEFAULT COLLATE = latin1_bin;", Position:0, Func:func(*advisor.Query4Audit) advisor.Rule {...}}
common/config.go
浏览文件 @
6eddefa4
...
@@ -609,11 +609,10 @@ func readCmdFlags() error {
...
@@ -609,11 +609,10 @@ func readCmdFlags() error {
Config
.
IgnoreRules
=
strings
.
Split
(
*
ignoreRules
,
","
)
Config
.
IgnoreRules
=
strings
.
Split
(
*
ignoreRules
,
","
)
Config
.
RewriteRules
=
strings
.
Split
(
*
rewriteRules
,
","
)
Config
.
RewriteRules
=
strings
.
Split
(
*
rewriteRules
,
","
)
*
blackList
=
strings
.
TrimSpace
(
*
blackList
)
*
blackList
=
strings
.
TrimSpace
(
*
blackList
)
if
strings
.
HasPrefix
(
*
blackList
,
"/"
)
||
*
blackList
==
""
{
if
filepath
.
IsAbs
(
*
blackList
)
||
*
blackList
==
""
{
Config
.
BlackList
=
*
blackList
Config
.
BlackList
=
*
blackList
}
else
{
}
else
{
pwd
,
_
:=
os
.
Getwd
()
Config
.
BlackList
=
filepath
.
Join
(
BaseDir
,
*
blackList
)
Config
.
BlackList
=
pwd
+
"/"
+
*
blackList
}
}
Config
.
MaxJoinTableCount
=
*
maxJoinTableCount
Config
.
MaxJoinTableCount
=
*
maxJoinTableCount
Config
.
MaxGroupByColsCount
=
*
maxGroupByColsCount
Config
.
MaxGroupByColsCount
=
*
maxGroupByColsCount
...
@@ -688,8 +687,8 @@ func ParseConfig(configFile string) error {
...
@@ -688,8 +687,8 @@ func ParseConfig(configFile string) error {
if
configFile
==
""
{
if
configFile
==
""
{
configs
=
[]
string
{
configs
=
[]
string
{
"/etc/soar.yaml"
,
"/etc/soar.yaml"
,
BaseDir
+
"/etc/soar.yaml"
,
filepath
.
Join
(
BaseDir
,
"etc"
,
"soar.yaml"
)
,
BaseDir
+
"/soar.yaml"
,
filepath
.
Join
(
BaseDir
,
"soar.yaml"
)
,
}
}
}
else
{
}
else
{
configs
=
[]
string
{
configs
=
[]
string
{
...
...
doc/heuristic.md
浏览文件 @
6eddefa4
...
@@ -1176,7 +1176,7 @@ CREATE TABLE tbl (a int) AUTO_INCREMENT = 10;
...
@@ -1176,7 +1176,7 @@ CREATE TABLE tbl (a int) AUTO_INCREMENT = 10;
*
**Item**
:TBL.005
*
**Item**
:TBL.005
*
**Severity**
:L4
*
**Severity**
:L4
*
**Content**
:表字符集只允许设置为
utf8,utf8mb4
*
**Content**
:表字符集只允许设置为
'utf8,utf8mb4'
*
**Case**
:
*
**Case**
:
```
sql
```
sql
...
@@ -1202,3 +1202,13 @@ create view v_today (today) AS SELECT CURRENT_DATE;
...
@@ -1202,3 +1202,13 @@ create view v_today (today) AS SELECT CURRENT_DATE;
```
sql
```
sql
CREATE
TEMPORARY
TABLE
`work`
(
`time`
time
DEFAULT
NULL
)
ENGINE
=
InnoDB
;
CREATE
TEMPORARY
TABLE
`work`
(
`time`
time
DEFAULT
NULL
)
ENGINE
=
InnoDB
;
```
```
## 请使用推荐的COLLATE
*
**Item**
:TBL.008
*
**Severity**
:L4
*
**Content**
:COLLATE 只允许设置为''
*
**Case**
:
```
sql
CREATE
TABLE
tbl
(
a
int
)
DEFAULT
COLLATE
=
latin1_bin
;
```
vendor/github.com/pingcap/parser/ast/ast.go
浏览文件 @
6eddefa4
...
@@ -17,6 +17,7 @@ package ast
...
@@ -17,6 +17,7 @@ package ast
import
(
import
(
"io"
"io"
"strings"
"github.com/pingcap/parser/model"
"github.com/pingcap/parser/model"
"github.com/pingcap/parser/types"
"github.com/pingcap/parser/types"
...
@@ -25,6 +26,8 @@ import (
...
@@ -25,6 +26,8 @@ import (
// Node is the basic element of the AST.
// Node is the basic element of the AST.
// Interfaces embed Node should have 'Node' name suffix.
// Interfaces embed Node should have 'Node' name suffix.
type
Node
interface
{
type
Node
interface
{
// Restore returns the sql text from ast tree
Restore
(
sb
*
strings
.
Builder
)
error
// Accept accepts Visitor to visit itself.
// Accept accepts Visitor to visit itself.
// The returned node should replace original node.
// The returned node should replace original node.
// ok returns false to stop visiting.
// ok returns false to stop visiting.
...
...
vendor/github.com/pingcap/parser/ast/ddl.go
浏览文件 @
6eddefa4
...
@@ -14,6 +14,9 @@
...
@@ -14,6 +14,9 @@
package
ast
package
ast
import
(
import
(
"strings"
"github.com/pingcap/errors"
"github.com/pingcap/parser/auth"
"github.com/pingcap/parser/auth"
"github.com/pingcap/parser/model"
"github.com/pingcap/parser/model"
"github.com/pingcap/parser/types"
"github.com/pingcap/parser/types"
...
@@ -62,6 +65,21 @@ type DatabaseOption struct {
...
@@ -62,6 +65,21 @@ type DatabaseOption struct {
Value
string
Value
string
}
}
// Restore implements Recoverable interface.
func
(
n
*
DatabaseOption
)
Restore
(
sb
*
strings
.
Builder
)
error
{
switch
n
.
Tp
{
case
DatabaseOptionCharset
:
sb
.
WriteString
(
"CHARACTER SET = "
)
sb
.
WriteString
(
n
.
Value
)
case
DatabaseOptionCollate
:
sb
.
WriteString
(
"COLLATE = "
)
sb
.
WriteString
(
n
.
Value
)
default
:
return
errors
.
Errorf
(
"invalid DatabaseOptionType: %d"
,
n
.
Tp
)
}
return
nil
}
// CreateDatabaseStmt is a statement to create a database.
// CreateDatabaseStmt is a statement to create a database.
// See https://dev.mysql.com/doc/refman/5.7/en/create-database.html
// See https://dev.mysql.com/doc/refman/5.7/en/create-database.html
type
CreateDatabaseStmt
struct
{
type
CreateDatabaseStmt
struct
{
...
@@ -72,6 +90,23 @@ type CreateDatabaseStmt struct {
...
@@ -72,6 +90,23 @@ type CreateDatabaseStmt struct {
Options
[]
*
DatabaseOption
Options
[]
*
DatabaseOption
}
}
// Restore implements Recoverable interface.
func
(
n
*
CreateDatabaseStmt
)
Restore
(
sb
*
strings
.
Builder
)
error
{
sb
.
WriteString
(
"CREATE DATABASE "
)
if
n
.
IfNotExists
{
sb
.
WriteString
(
"IF NOT EXISTS "
)
}
WriteName
(
sb
,
n
.
Name
)
for
_
,
option
:=
range
n
.
Options
{
sb
.
WriteString
(
" "
)
err
:=
option
.
Restore
(
sb
)
if
err
!=
nil
{
return
errors
.
Trace
(
err
)
}
}
return
nil
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
CreateDatabaseStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
CreateDatabaseStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -91,6 +126,16 @@ type DropDatabaseStmt struct {
...
@@ -91,6 +126,16 @@ type DropDatabaseStmt struct {
Name
string
Name
string
}
}
// Restore implements Recoverable interface.
func
(
n
*
DropDatabaseStmt
)
Restore
(
sb
*
strings
.
Builder
)
error
{
sb
.
WriteString
(
"DROP DATABASE "
)
if
n
.
IfExists
{
sb
.
WriteString
(
"IF EXISTS "
)
}
WriteName
(
sb
,
n
.
Name
)
return
nil
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
DropDatabaseStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
DropDatabaseStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -109,6 +154,11 @@ type IndexColName struct {
...
@@ -109,6 +154,11 @@ type IndexColName struct {
Length
int
Length
int
}
}
// Restore implements Recoverable interface.
func
(
n
*
IndexColName
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
IndexColName
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
IndexColName
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -135,6 +185,11 @@ type ReferenceDef struct {
...
@@ -135,6 +185,11 @@ type ReferenceDef struct {
OnUpdate
*
OnUpdateOpt
OnUpdate
*
OnUpdateOpt
}
}
// Restore implements Recoverable interface.
func
(
n
*
ReferenceDef
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
ReferenceDef
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
ReferenceDef
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -200,6 +255,11 @@ type OnDeleteOpt struct {
...
@@ -200,6 +255,11 @@ type OnDeleteOpt struct {
ReferOpt
ReferOptionType
ReferOpt
ReferOptionType
}
}
// Restore implements Recoverable interface.
func
(
n
*
OnDeleteOpt
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
OnDeleteOpt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
OnDeleteOpt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -216,6 +276,11 @@ type OnUpdateOpt struct {
...
@@ -216,6 +276,11 @@ type OnUpdateOpt struct {
ReferOpt
ReferOptionType
ReferOpt
ReferOptionType
}
}
// Restore implements Recoverable interface.
func
(
n
*
OnUpdateOpt
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
OnUpdateOpt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
OnUpdateOpt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -260,6 +325,11 @@ type ColumnOption struct {
...
@@ -260,6 +325,11 @@ type ColumnOption struct {
Refer
*
ReferenceDef
Refer
*
ReferenceDef
}
}
// Restore implements Recoverable interface.
func
(
n
*
ColumnOption
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
ColumnOption
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
ColumnOption
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -291,6 +361,11 @@ type IndexOption struct {
...
@@ -291,6 +361,11 @@ type IndexOption struct {
Comment
string
Comment
string
}
}
// Restore implements Recoverable interface.
func
(
n
*
IndexOption
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
IndexOption
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
IndexOption
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -331,6 +406,11 @@ type Constraint struct {
...
@@ -331,6 +406,11 @@ type Constraint struct {
Option
*
IndexOption
// Index Options
Option
*
IndexOption
// Index Options
}
}
// Restore implements Recoverable interface.
func
(
n
*
Constraint
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
Constraint
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
Constraint
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -371,6 +451,11 @@ type ColumnDef struct {
...
@@ -371,6 +451,11 @@ type ColumnDef struct {
Options
[]
*
ColumnOption
Options
[]
*
ColumnOption
}
}
// Restore implements Recoverable interface.
func
(
n
*
ColumnDef
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
ColumnDef
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
ColumnDef
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -409,6 +494,11 @@ type CreateTableStmt struct {
...
@@ -409,6 +494,11 @@ type CreateTableStmt struct {
Select
ResultSetNode
Select
ResultSetNode
}
}
// Restore implements Recoverable interface.
func
(
n
*
CreateTableStmt
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
CreateTableStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
CreateTableStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -462,6 +552,11 @@ type DropTableStmt struct {
...
@@ -462,6 +552,11 @@ type DropTableStmt struct {
Tables
[]
*
TableName
Tables
[]
*
TableName
}
}
// Restore implements Recoverable interface.
func
(
n
*
DropTableStmt
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
DropTableStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
DropTableStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -492,6 +587,11 @@ type RenameTableStmt struct {
...
@@ -492,6 +587,11 @@ type RenameTableStmt struct {
TableToTables
[]
*
TableToTable
TableToTables
[]
*
TableToTable
}
}
// Restore implements Recoverable interface.
func
(
n
*
RenameTableStmt
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
RenameTableStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
RenameTableStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -528,6 +628,11 @@ type TableToTable struct {
...
@@ -528,6 +628,11 @@ type TableToTable struct {
NewTable
*
TableName
NewTable
*
TableName
}
}
// Restore implements Recoverable interface.
func
(
n
*
TableToTable
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
TableToTable
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
TableToTable
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -563,6 +668,11 @@ type CreateViewStmt struct {
...
@@ -563,6 +668,11 @@ type CreateViewStmt struct {
CheckOption
model
.
ViewCheckOption
CheckOption
model
.
ViewCheckOption
}
}
// Restore implements Recoverable interface.
func
(
n
*
CreateViewStmt
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
CreateViewStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
CreateViewStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -595,6 +705,11 @@ type CreateIndexStmt struct {
...
@@ -595,6 +705,11 @@ type CreateIndexStmt struct {
IndexOption
*
IndexOption
IndexOption
*
IndexOption
}
}
// Restore implements Recoverable interface.
func
(
n
*
CreateIndexStmt
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
CreateIndexStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
CreateIndexStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -634,6 +749,11 @@ type DropIndexStmt struct {
...
@@ -634,6 +749,11 @@ type DropIndexStmt struct {
Table
*
TableName
Table
*
TableName
}
}
// Restore implements Recoverable interface.
func
(
n
*
DropIndexStmt
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
DropIndexStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
DropIndexStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -722,6 +842,11 @@ type ColumnPosition struct {
...
@@ -722,6 +842,11 @@ type ColumnPosition struct {
RelativeColumn
*
ColumnName
RelativeColumn
*
ColumnName
}
}
// Restore implements Recoverable interface.
func
(
n
*
ColumnPosition
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
ColumnPosition
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
ColumnPosition
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -763,7 +888,7 @@ const (
...
@@ -763,7 +888,7 @@ const (
AlterTableCoalescePartitions
AlterTableCoalescePartitions
AlterTableDropPartition
AlterTableDropPartition
// TODO: Add more actions
// TODO: Add more actions
)
)
// LockType is the type for AlterTableSpec.
// LockType is the type for AlterTableSpec.
...
@@ -798,6 +923,11 @@ type AlterTableSpec struct {
...
@@ -798,6 +923,11 @@ type AlterTableSpec struct {
Num
uint64
Num
uint64
}
}
// Restore implements Recoverable interface.
func
(
n
*
AlterTableSpec
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
AlterTableSpec
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
AlterTableSpec
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -852,6 +982,11 @@ type AlterTableStmt struct {
...
@@ -852,6 +982,11 @@ type AlterTableStmt struct {
Specs
[]
*
AlterTableSpec
Specs
[]
*
AlterTableSpec
}
}
// Restore implements Recoverable interface.
func
(
n
*
AlterTableStmt
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
AlterTableStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
AlterTableStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -882,6 +1017,11 @@ type TruncateTableStmt struct {
...
@@ -882,6 +1017,11 @@ type TruncateTableStmt struct {
Table
*
TableName
Table
*
TableName
}
}
// Restore implements Recoverable interface.
func
(
n
*
TruncateTableStmt
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
TruncateTableStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
TruncateTableStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
...
vendor/github.com/pingcap/parser/ast/dml.go
浏览文件 @
6eddefa4
...
@@ -14,6 +14,9 @@
...
@@ -14,6 +14,9 @@
package
ast
package
ast
import
(
import
(
"strings"
"github.com/pingcap/errors"
"github.com/pingcap/parser/auth"
"github.com/pingcap/parser/auth"
"github.com/pingcap/parser/model"
"github.com/pingcap/parser/model"
"github.com/pingcap/parser/mysql"
"github.com/pingcap/parser/mysql"
...
@@ -82,6 +85,11 @@ type Join struct {
...
@@ -82,6 +85,11 @@ type Join struct {
StraightJoin
bool
StraightJoin
bool
}
}
// Restore implements Recoverable interface.
func
(
n
*
Join
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
Join
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
Join
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -125,6 +133,11 @@ type TableName struct {
...
@@ -125,6 +133,11 @@ type TableName struct {
IndexHints
[]
*
IndexHint
IndexHints
[]
*
IndexHint
}
}
// Restore implements Recoverable interface.
func
(
n
*
TableName
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// IndexHintType is the type for index hint use, ignore or force.
// IndexHintType is the type for index hint use, ignore or force.
type
IndexHintType
int
type
IndexHintType
int
...
@@ -169,6 +182,11 @@ type DeleteTableList struct {
...
@@ -169,6 +182,11 @@ type DeleteTableList struct {
Tables
[]
*
TableName
Tables
[]
*
TableName
}
}
// Restore implements Recoverable interface.
func
(
n
*
DeleteTableList
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
DeleteTableList
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
DeleteTableList
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -195,6 +213,11 @@ type OnCondition struct {
...
@@ -195,6 +213,11 @@ type OnCondition struct {
Expr
ExprNode
Expr
ExprNode
}
}
// Restore implements Recoverable interface.
func
(
n
*
OnCondition
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
OnCondition
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
OnCondition
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -222,6 +245,11 @@ type TableSource struct {
...
@@ -222,6 +245,11 @@ type TableSource struct {
AsName
model
.
CIStr
AsName
model
.
CIStr
}
}
// Restore implements Recoverable interface.
func
(
n
*
TableSource
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
TableSource
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
TableSource
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -268,6 +296,11 @@ type WildCardField struct {
...
@@ -268,6 +296,11 @@ type WildCardField struct {
Schema
model
.
CIStr
Schema
model
.
CIStr
}
}
// Restore implements Recoverable interface.
func
(
n
*
WildCardField
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
WildCardField
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
WildCardField
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -298,6 +331,11 @@ type SelectField struct {
...
@@ -298,6 +331,11 @@ type SelectField struct {
Auxiliary
bool
Auxiliary
bool
}
}
// Restore implements Recoverable interface.
func
(
n
*
SelectField
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
SelectField
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
SelectField
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -322,6 +360,11 @@ type FieldList struct {
...
@@ -322,6 +360,11 @@ type FieldList struct {
Fields
[]
*
SelectField
Fields
[]
*
SelectField
}
}
// Restore implements Recoverable interface.
func
(
n
*
FieldList
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
FieldList
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
FieldList
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -346,6 +389,11 @@ type TableRefsClause struct {
...
@@ -346,6 +389,11 @@ type TableRefsClause struct {
TableRefs
*
Join
TableRefs
*
Join
}
}
// Restore implements Recoverable interface.
func
(
n
*
TableRefsClause
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
TableRefsClause
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
TableRefsClause
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -369,6 +417,11 @@ type ByItem struct {
...
@@ -369,6 +417,11 @@ type ByItem struct {
Desc
bool
Desc
bool
}
}
// Restore implements Recoverable interface.
func
(
n
*
ByItem
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
ByItem
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
ByItem
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -390,6 +443,11 @@ type GroupByClause struct {
...
@@ -390,6 +443,11 @@ type GroupByClause struct {
Items
[]
*
ByItem
Items
[]
*
ByItem
}
}
// Restore implements Recoverable interface.
func
(
n
*
GroupByClause
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
GroupByClause
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
GroupByClause
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -413,6 +471,11 @@ type HavingClause struct {
...
@@ -413,6 +471,11 @@ type HavingClause struct {
Expr
ExprNode
Expr
ExprNode
}
}
// Restore implements Recoverable interface.
func
(
n
*
HavingClause
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
HavingClause
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
HavingClause
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -435,6 +498,11 @@ type OrderByClause struct {
...
@@ -435,6 +498,11 @@ type OrderByClause struct {
ForUnion
bool
ForUnion
bool
}
}
// Restore implements Recoverable interface.
func
(
n
*
OrderByClause
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
OrderByClause
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
OrderByClause
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -488,6 +556,11 @@ type SelectStmt struct {
...
@@ -488,6 +556,11 @@ type SelectStmt struct {
IsInBraces
bool
IsInBraces
bool
}
}
// Restore implements Recoverable interface.
func
(
n
*
SelectStmt
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
SelectStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
SelectStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -582,6 +655,11 @@ type UnionSelectList struct {
...
@@ -582,6 +655,11 @@ type UnionSelectList struct {
Selects
[]
*
SelectStmt
Selects
[]
*
SelectStmt
}
}
// Restore implements Recoverable interface.
func
(
n
*
UnionSelectList
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
UnionSelectList
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
UnionSelectList
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -610,6 +688,11 @@ type UnionStmt struct {
...
@@ -610,6 +688,11 @@ type UnionStmt struct {
Limit
*
Limit
Limit
*
Limit
}
}
// Restore implements Recoverable interface.
func
(
n
*
UnionStmt
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
UnionStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
UnionStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -650,6 +733,11 @@ type Assignment struct {
...
@@ -650,6 +733,11 @@ type Assignment struct {
Expr
ExprNode
Expr
ExprNode
}
}
// Restore implements Recoverable interface.
func
(
n
*
Assignment
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
Assignment
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
Assignment
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -684,6 +772,11 @@ type LoadDataStmt struct {
...
@@ -684,6 +772,11 @@ type LoadDataStmt struct {
IgnoreLines
uint64
IgnoreLines
uint64
}
}
// Restore implements Recoverable interface.
func
(
n
*
LoadDataStmt
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
LoadDataStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
LoadDataStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -737,6 +830,11 @@ type InsertStmt struct {
...
@@ -737,6 +830,11 @@ type InsertStmt struct {
Select
ResultSetNode
Select
ResultSetNode
}
}
// Restore implements Recoverable interface.
func
(
n
*
InsertStmt
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
InsertStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
InsertStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -813,6 +911,11 @@ type DeleteStmt struct {
...
@@ -813,6 +911,11 @@ type DeleteStmt struct {
TableHints
[]
*
TableOptimizerHint
TableHints
[]
*
TableOptimizerHint
}
}
// Restore implements Recoverable interface.
func
(
n
*
DeleteStmt
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
DeleteStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
DeleteStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -873,6 +976,11 @@ type UpdateStmt struct {
...
@@ -873,6 +976,11 @@ type UpdateStmt struct {
TableHints
[]
*
TableOptimizerHint
TableHints
[]
*
TableOptimizerHint
}
}
// Restore implements Recoverable interface.
func
(
n
*
UpdateStmt
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
UpdateStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
UpdateStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -924,6 +1032,11 @@ type Limit struct {
...
@@ -924,6 +1032,11 @@ type Limit struct {
Offset
ExprNode
Offset
ExprNode
}
}
// Restore implements Recoverable interface.
func
(
n
*
Limit
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
Limit
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
Limit
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -1004,6 +1117,11 @@ type ShowStmt struct {
...
@@ -1004,6 +1117,11 @@ type ShowStmt struct {
Where
ExprNode
Where
ExprNode
}
}
// Restore implements Recoverable interface.
func
(
n
*
ShowStmt
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
ShowStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
ShowStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -1064,6 +1182,11 @@ type WindowSpec struct {
...
@@ -1064,6 +1182,11 @@ type WindowSpec struct {
Frame
*
FrameClause
Frame
*
FrameClause
}
}
// Restore implements Recoverable interface.
func
(
n
*
WindowSpec
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
WindowSpec
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
WindowSpec
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -1102,6 +1225,11 @@ type PartitionByClause struct {
...
@@ -1102,6 +1225,11 @@ type PartitionByClause struct {
Items
[]
*
ByItem
Items
[]
*
ByItem
}
}
// Restore implements Recoverable interface.
func
(
n
*
PartitionByClause
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
PartitionByClause
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
PartitionByClause
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -1138,6 +1266,11 @@ type FrameClause struct {
...
@@ -1138,6 +1266,11 @@ type FrameClause struct {
Extent
FrameExtent
Extent
FrameExtent
}
}
// Restore implements Recoverable interface.
func
(
n
*
FrameClause
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
FrameClause
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
FrameClause
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -1186,6 +1319,11 @@ type FrameBound struct {
...
@@ -1186,6 +1319,11 @@ type FrameBound struct {
Unit
ExprNode
Unit
ExprNode
}
}
// Restore implements Recoverable interface.
func
(
n
*
FrameBound
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
FrameBound
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
FrameBound
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
...
vendor/github.com/pingcap/parser/ast/expressions.go
浏览文件 @
6eddefa4
...
@@ -19,6 +19,7 @@ import (
...
@@ -19,6 +19,7 @@ import (
"regexp"
"regexp"
"strings"
"strings"
"github.com/pingcap/errors"
"github.com/pingcap/parser/model"
"github.com/pingcap/parser/model"
"github.com/pingcap/parser/opcode"
"github.com/pingcap/parser/opcode"
)
)
...
@@ -78,6 +79,11 @@ type BetweenExpr struct {
...
@@ -78,6 +79,11 @@ type BetweenExpr struct {
Not
bool
Not
bool
}
}
// Restore implements Recoverable interface.
func
(
n
*
BetweenExpr
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Format the ExprNode into a Writer.
// Format the ExprNode into a Writer.
func
(
n
*
BetweenExpr
)
Format
(
w
io
.
Writer
)
{
func
(
n
*
BetweenExpr
)
Format
(
w
io
.
Writer
)
{
n
.
Expr
.
Format
(
w
)
n
.
Expr
.
Format
(
w
)
...
@@ -131,6 +137,11 @@ type BinaryOperationExpr struct {
...
@@ -131,6 +137,11 @@ type BinaryOperationExpr struct {
R
ExprNode
R
ExprNode
}
}
// Restore implements Recoverable interface.
func
(
n
*
BinaryOperationExpr
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Format the ExprNode into a Writer.
// Format the ExprNode into a Writer.
func
(
n
*
BinaryOperationExpr
)
Format
(
w
io
.
Writer
)
{
func
(
n
*
BinaryOperationExpr
)
Format
(
w
io
.
Writer
)
{
n
.
L
.
Format
(
w
)
n
.
L
.
Format
(
w
)
...
@@ -172,6 +183,11 @@ type WhenClause struct {
...
@@ -172,6 +183,11 @@ type WhenClause struct {
Result
ExprNode
Result
ExprNode
}
}
// Restore implements Recoverable interface.
func
(
n
*
WhenClause
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
WhenClause
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
WhenClause
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -205,6 +221,11 @@ type CaseExpr struct {
...
@@ -205,6 +221,11 @@ type CaseExpr struct {
ElseClause
ExprNode
ElseClause
ExprNode
}
}
// Restore implements Recoverable interface.
func
(
n
*
CaseExpr
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Format the ExprNode into a Writer.
// Format the ExprNode into a Writer.
func
(
n
*
CaseExpr
)
Format
(
w
io
.
Writer
)
{
func
(
n
*
CaseExpr
)
Format
(
w
io
.
Writer
)
{
fmt
.
Fprint
(
w
,
"CASE "
)
fmt
.
Fprint
(
w
,
"CASE "
)
...
@@ -269,6 +290,11 @@ type SubqueryExpr struct {
...
@@ -269,6 +290,11 @@ type SubqueryExpr struct {
Exists
bool
Exists
bool
}
}
// Restore implements Recoverable interface.
func
(
n
*
SubqueryExpr
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Format the ExprNode into a Writer.
// Format the ExprNode into a Writer.
func
(
n
*
SubqueryExpr
)
Format
(
w
io
.
Writer
)
{
func
(
n
*
SubqueryExpr
)
Format
(
w
io
.
Writer
)
{
panic
(
"Not implemented"
)
panic
(
"Not implemented"
)
...
@@ -305,6 +331,11 @@ type CompareSubqueryExpr struct {
...
@@ -305,6 +331,11 @@ type CompareSubqueryExpr struct {
All
bool
All
bool
}
}
// Restore implements Recoverable interface.
func
(
n
*
CompareSubqueryExpr
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Format the ExprNode into a Writer.
// Format the ExprNode into a Writer.
func
(
n
*
CompareSubqueryExpr
)
Format
(
w
io
.
Writer
)
{
func
(
n
*
CompareSubqueryExpr
)
Format
(
w
io
.
Writer
)
{
panic
(
"Not implemented"
)
panic
(
"Not implemented"
)
...
@@ -338,6 +369,20 @@ type ColumnName struct {
...
@@ -338,6 +369,20 @@ type ColumnName struct {
Name
model
.
CIStr
Name
model
.
CIStr
}
}
// Restore implements Recoverable interface.
func
(
n
*
ColumnName
)
Restore
(
sb
*
strings
.
Builder
)
error
{
if
n
.
Schema
.
O
!=
""
{
WriteName
(
sb
,
n
.
Schema
.
O
)
sb
.
WriteString
(
"."
)
}
if
n
.
Table
.
O
!=
""
{
WriteName
(
sb
,
n
.
Table
.
O
)
sb
.
WriteString
(
"."
)
}
WriteName
(
sb
,
n
.
Name
.
O
)
return
nil
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
ColumnName
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
ColumnName
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -386,6 +431,15 @@ type ColumnNameExpr struct {
...
@@ -386,6 +431,15 @@ type ColumnNameExpr struct {
Refer
*
ResultField
Refer
*
ResultField
}
}
// Restore implements Recoverable interface.
func
(
n
*
ColumnNameExpr
)
Restore
(
sb
*
strings
.
Builder
)
error
{
err
:=
n
.
Name
.
Restore
(
sb
)
if
err
!=
nil
{
return
errors
.
Trace
(
err
)
}
return
nil
}
// Format the ExprNode into a Writer.
// Format the ExprNode into a Writer.
func
(
n
*
ColumnNameExpr
)
Format
(
w
io
.
Writer
)
{
func
(
n
*
ColumnNameExpr
)
Format
(
w
io
.
Writer
)
{
name
:=
strings
.
Replace
(
n
.
Name
.
String
(),
"."
,
"`.`"
,
-
1
)
name
:=
strings
.
Replace
(
n
.
Name
.
String
(),
"."
,
"`.`"
,
-
1
)
...
@@ -414,6 +468,11 @@ type DefaultExpr struct {
...
@@ -414,6 +468,11 @@ type DefaultExpr struct {
Name
*
ColumnName
Name
*
ColumnName
}
}
// Restore implements Recoverable interface.
func
(
n
*
DefaultExpr
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Format the ExprNode into a Writer.
// Format the ExprNode into a Writer.
func
(
n
*
DefaultExpr
)
Format
(
w
io
.
Writer
)
{
func
(
n
*
DefaultExpr
)
Format
(
w
io
.
Writer
)
{
panic
(
"Not implemented"
)
panic
(
"Not implemented"
)
...
@@ -446,6 +505,11 @@ type ExistsSubqueryExpr struct {
...
@@ -446,6 +505,11 @@ type ExistsSubqueryExpr struct {
Not
bool
Not
bool
}
}
// Restore implements Recoverable interface.
func
(
n
*
ExistsSubqueryExpr
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Format the ExprNode into a Writer.
// Format the ExprNode into a Writer.
func
(
n
*
ExistsSubqueryExpr
)
Format
(
w
io
.
Writer
)
{
func
(
n
*
ExistsSubqueryExpr
)
Format
(
w
io
.
Writer
)
{
panic
(
"Not implemented"
)
panic
(
"Not implemented"
)
...
@@ -479,6 +543,11 @@ type PatternInExpr struct {
...
@@ -479,6 +543,11 @@ type PatternInExpr struct {
Sel
ExprNode
Sel
ExprNode
}
}
// Restore implements Recoverable interface.
func
(
n
*
PatternInExpr
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Format the ExprNode into a Writer.
// Format the ExprNode into a Writer.
func
(
n
*
PatternInExpr
)
Format
(
w
io
.
Writer
)
{
func
(
n
*
PatternInExpr
)
Format
(
w
io
.
Writer
)
{
n
.
Expr
.
Format
(
w
)
n
.
Expr
.
Format
(
w
)
...
@@ -534,6 +603,11 @@ type IsNullExpr struct {
...
@@ -534,6 +603,11 @@ type IsNullExpr struct {
Not
bool
Not
bool
}
}
// Restore implements Recoverable interface.
func
(
n
*
IsNullExpr
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Format the ExprNode into a Writer.
// Format the ExprNode into a Writer.
func
(
n
*
IsNullExpr
)
Format
(
w
io
.
Writer
)
{
func
(
n
*
IsNullExpr
)
Format
(
w
io
.
Writer
)
{
n
.
Expr
.
Format
(
w
)
n
.
Expr
.
Format
(
w
)
...
@@ -570,6 +644,11 @@ type IsTruthExpr struct {
...
@@ -570,6 +644,11 @@ type IsTruthExpr struct {
True
int64
True
int64
}
}
// Restore implements Recoverable interface.
func
(
n
*
IsTruthExpr
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Format the ExprNode into a Writer.
// Format the ExprNode into a Writer.
func
(
n
*
IsTruthExpr
)
Format
(
w
io
.
Writer
)
{
func
(
n
*
IsTruthExpr
)
Format
(
w
io
.
Writer
)
{
n
.
Expr
.
Format
(
w
)
n
.
Expr
.
Format
(
w
)
...
@@ -616,6 +695,11 @@ type PatternLikeExpr struct {
...
@@ -616,6 +695,11 @@ type PatternLikeExpr struct {
PatTypes
[]
byte
PatTypes
[]
byte
}
}
// Restore implements Recoverable interface.
func
(
n
*
PatternLikeExpr
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Format the ExprNode into a Writer.
// Format the ExprNode into a Writer.
func
(
n
*
PatternLikeExpr
)
Format
(
w
io
.
Writer
)
{
func
(
n
*
PatternLikeExpr
)
Format
(
w
io
.
Writer
)
{
n
.
Expr
.
Format
(
w
)
n
.
Expr
.
Format
(
w
)
...
@@ -669,6 +753,11 @@ type ParenthesesExpr struct {
...
@@ -669,6 +753,11 @@ type ParenthesesExpr struct {
Expr
ExprNode
Expr
ExprNode
}
}
// Restore implements Recoverable interface.
func
(
n
*
ParenthesesExpr
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Format the ExprNode into a Writer.
// Format the ExprNode into a Writer.
func
(
n
*
ParenthesesExpr
)
Format
(
w
io
.
Writer
)
{
func
(
n
*
ParenthesesExpr
)
Format
(
w
io
.
Writer
)
{
fmt
.
Fprint
(
w
,
"("
)
fmt
.
Fprint
(
w
,
"("
)
...
@@ -706,6 +795,11 @@ type PositionExpr struct {
...
@@ -706,6 +795,11 @@ type PositionExpr struct {
Refer
*
ResultField
Refer
*
ResultField
}
}
// Restore implements Recoverable interface.
func
(
n
*
PositionExpr
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Format the ExprNode into a Writer.
// Format the ExprNode into a Writer.
func
(
n
*
PositionExpr
)
Format
(
w
io
.
Writer
)
{
func
(
n
*
PositionExpr
)
Format
(
w
io
.
Writer
)
{
panic
(
"Not implemented"
)
panic
(
"Not implemented"
)
...
@@ -744,6 +838,11 @@ type PatternRegexpExpr struct {
...
@@ -744,6 +838,11 @@ type PatternRegexpExpr struct {
Sexpr
*
string
Sexpr
*
string
}
}
// Restore implements Recoverable interface.
func
(
n
*
PatternRegexpExpr
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Format the ExprNode into a Writer.
// Format the ExprNode into a Writer.
func
(
n
*
PatternRegexpExpr
)
Format
(
w
io
.
Writer
)
{
func
(
n
*
PatternRegexpExpr
)
Format
(
w
io
.
Writer
)
{
n
.
Expr
.
Format
(
w
)
n
.
Expr
.
Format
(
w
)
...
@@ -783,6 +882,11 @@ type RowExpr struct {
...
@@ -783,6 +882,11 @@ type RowExpr struct {
Values
[]
ExprNode
Values
[]
ExprNode
}
}
// Restore implements Recoverable interface.
func
(
n
*
RowExpr
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Format the ExprNode into a Writer.
// Format the ExprNode into a Writer.
func
(
n
*
RowExpr
)
Format
(
w
io
.
Writer
)
{
func
(
n
*
RowExpr
)
Format
(
w
io
.
Writer
)
{
panic
(
"Not implemented"
)
panic
(
"Not implemented"
)
...
@@ -814,6 +918,12 @@ type UnaryOperationExpr struct {
...
@@ -814,6 +918,12 @@ type UnaryOperationExpr struct {
V
ExprNode
V
ExprNode
}
}
// Restore implements Recoverable interface.
func
(
n
*
UnaryOperationExpr
)
Restore
(
sb
*
strings
.
Builder
)
error
{
n
.
Format
(
sb
)
return
nil
}
// Format the ExprNode into a Writer.
// Format the ExprNode into a Writer.
func
(
n
*
UnaryOperationExpr
)
Format
(
w
io
.
Writer
)
{
func
(
n
*
UnaryOperationExpr
)
Format
(
w
io
.
Writer
)
{
n
.
Op
.
Format
(
w
)
n
.
Op
.
Format
(
w
)
...
@@ -842,6 +952,11 @@ type ValuesExpr struct {
...
@@ -842,6 +952,11 @@ type ValuesExpr struct {
Column
*
ColumnNameExpr
Column
*
ColumnNameExpr
}
}
// Restore implements Recoverable interface.
func
(
n
*
ValuesExpr
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Format the ExprNode into a Writer.
// Format the ExprNode into a Writer.
func
(
n
*
ValuesExpr
)
Format
(
w
io
.
Writer
)
{
func
(
n
*
ValuesExpr
)
Format
(
w
io
.
Writer
)
{
panic
(
"Not implemented"
)
panic
(
"Not implemented"
)
...
@@ -879,6 +994,11 @@ type VariableExpr struct {
...
@@ -879,6 +994,11 @@ type VariableExpr struct {
Value
ExprNode
Value
ExprNode
}
}
// Restore implements Recoverable interface.
func
(
n
*
VariableExpr
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Format the ExprNode into a Writer.
// Format the ExprNode into a Writer.
func
(
n
*
VariableExpr
)
Format
(
w
io
.
Writer
)
{
func
(
n
*
VariableExpr
)
Format
(
w
io
.
Writer
)
{
panic
(
"Not implemented"
)
panic
(
"Not implemented"
)
...
@@ -908,6 +1028,11 @@ type MaxValueExpr struct {
...
@@ -908,6 +1028,11 @@ type MaxValueExpr struct {
exprNode
exprNode
}
}
// Restore implements Recoverable interface.
func
(
n
*
MaxValueExpr
)
Restore
(
sb
*
strings
.
Builder
)
error
{
panic
(
"Not implemented"
)
}
// Format the ExprNode into a Writer.
// Format the ExprNode into a Writer.
func
(
n
*
MaxValueExpr
)
Format
(
w
io
.
Writer
)
{
func
(
n
*
MaxValueExpr
)
Format
(
w
io
.
Writer
)
{
fmt
.
Fprint
(
w
,
"MAXVALUE"
)
fmt
.
Fprint
(
w
,
"MAXVALUE"
)
...
...
vendor/github.com/pingcap/parser/ast/functions.go
浏览文件 @
6eddefa4
...
@@ -16,7 +16,9 @@ package ast
...
@@ -16,7 +16,9 @@ package ast
import
(
import
(
"fmt"
"fmt"
"io"
"io"
"strings"
"github.com/pingcap/errors"
"github.com/pingcap/parser/model"
"github.com/pingcap/parser/model"
"github.com/pingcap/parser/types"
"github.com/pingcap/parser/types"
)
)
...
@@ -327,6 +329,11 @@ type FuncCallExpr struct {
...
@@ -327,6 +329,11 @@ type FuncCallExpr struct {
Args
[]
ExprNode
Args
[]
ExprNode
}
}
// Restore implements Recoverable interface.
func
(
n
*
FuncCallExpr
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Format the ExprNode into a Writer.
// Format the ExprNode into a Writer.
func
(
n
*
FuncCallExpr
)
Format
(
w
io
.
Writer
)
{
func
(
n
*
FuncCallExpr
)
Format
(
w
io
.
Writer
)
{
fmt
.
Fprintf
(
w
,
"%s("
,
n
.
FnName
.
L
)
fmt
.
Fprintf
(
w
,
"%s("
,
n
.
FnName
.
L
)
...
@@ -399,6 +406,11 @@ type FuncCastExpr struct {
...
@@ -399,6 +406,11 @@ type FuncCastExpr struct {
FunctionType
CastFunctionType
FunctionType
CastFunctionType
}
}
// Restore implements Recoverable interface.
func
(
n
*
FuncCastExpr
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Format the ExprNode into a Writer.
// Format the ExprNode into a Writer.
func
(
n
*
FuncCastExpr
)
Format
(
w
io
.
Writer
)
{
func
(
n
*
FuncCastExpr
)
Format
(
w
io
.
Writer
)
{
switch
n
.
FunctionType
{
switch
n
.
FunctionType
{
...
@@ -507,6 +519,11 @@ type AggregateFuncExpr struct {
...
@@ -507,6 +519,11 @@ type AggregateFuncExpr struct {
Distinct
bool
Distinct
bool
}
}
// Restore implements Recoverable interface.
func
(
n
*
AggregateFuncExpr
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Format the ExprNode into a Writer.
// Format the ExprNode into a Writer.
func
(
n
*
AggregateFuncExpr
)
Format
(
w
io
.
Writer
)
{
func
(
n
*
AggregateFuncExpr
)
Format
(
w
io
.
Writer
)
{
panic
(
"Not implemented"
)
panic
(
"Not implemented"
)
...
@@ -575,6 +592,11 @@ type WindowFuncExpr struct {
...
@@ -575,6 +592,11 @@ type WindowFuncExpr struct {
Spec
WindowSpec
Spec
WindowSpec
}
}
// Restore implements Recoverable interface.
func
(
n
*
WindowFuncExpr
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Format formats the window function expression into a Writer.
// Format formats the window function expression into a Writer.
func
(
n
*
WindowFuncExpr
)
Format
(
w
io
.
Writer
)
{
func
(
n
*
WindowFuncExpr
)
Format
(
w
io
.
Writer
)
{
panic
(
"Not implemented"
)
panic
(
"Not implemented"
)
...
...
vendor/github.com/pingcap/parser/ast/misc.go
浏览文件 @
6eddefa4
...
@@ -18,6 +18,7 @@ import (
...
@@ -18,6 +18,7 @@ import (
"fmt"
"fmt"
"strings"
"strings"
"github.com/pingcap/errors"
"github.com/pingcap/parser/auth"
"github.com/pingcap/parser/auth"
"github.com/pingcap/parser/model"
"github.com/pingcap/parser/model"
"github.com/pingcap/parser/mysql"
"github.com/pingcap/parser/mysql"
...
@@ -97,6 +98,11 @@ type TraceStmt struct {
...
@@ -97,6 +98,11 @@ type TraceStmt struct {
Format
string
Format
string
}
}
// Restore implements Recoverable interface.
func
(
n
*
TraceStmt
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
TraceStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
TraceStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -123,6 +129,11 @@ type ExplainStmt struct {
...
@@ -123,6 +129,11 @@ type ExplainStmt struct {
Analyze
bool
Analyze
bool
}
}
// Restore implements Recoverable interface.
func
(
n
*
ExplainStmt
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
ExplainStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
ExplainStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -149,6 +160,11 @@ type PrepareStmt struct {
...
@@ -149,6 +160,11 @@ type PrepareStmt struct {
SQLVar
*
VariableExpr
SQLVar
*
VariableExpr
}
}
// Restore implements Recoverable interface.
func
(
n
*
PrepareStmt
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
PrepareStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
PrepareStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -174,6 +190,11 @@ type DeallocateStmt struct {
...
@@ -174,6 +190,11 @@ type DeallocateStmt struct {
Name
string
Name
string
}
}
// Restore implements Recoverable interface.
func
(
n
*
DeallocateStmt
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
DeallocateStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
DeallocateStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -202,6 +223,11 @@ type ExecuteStmt struct {
...
@@ -202,6 +223,11 @@ type ExecuteStmt struct {
ExecID
uint32
ExecID
uint32
}
}
// Restore implements Recoverable interface.
func
(
n
*
ExecuteStmt
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
ExecuteStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
ExecuteStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -225,6 +251,11 @@ type BeginStmt struct {
...
@@ -225,6 +251,11 @@ type BeginStmt struct {
stmtNode
stmtNode
}
}
// Restore implements Recoverable interface.
func
(
n
*
BeginStmt
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
BeginStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
BeginStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -243,6 +274,11 @@ type BinlogStmt struct {
...
@@ -243,6 +274,11 @@ type BinlogStmt struct {
Str
string
Str
string
}
}
// Restore implements Recoverable interface.
func
(
n
*
BinlogStmt
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
BinlogStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
BinlogStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -259,6 +295,11 @@ type CommitStmt struct {
...
@@ -259,6 +295,11 @@ type CommitStmt struct {
stmtNode
stmtNode
}
}
// Restore implements Recoverable interface.
func
(
n
*
CommitStmt
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
CommitStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
CommitStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -275,6 +316,11 @@ type RollbackStmt struct {
...
@@ -275,6 +316,11 @@ type RollbackStmt struct {
stmtNode
stmtNode
}
}
// Restore implements Recoverable interface.
func
(
n
*
RollbackStmt
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
RollbackStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
RollbackStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -293,6 +339,13 @@ type UseStmt struct {
...
@@ -293,6 +339,13 @@ type UseStmt struct {
DBName
string
DBName
string
}
}
// Restore implements Recoverable interface.
func
(
n
*
UseStmt
)
Restore
(
sb
*
strings
.
Builder
)
error
{
sb
.
WriteString
(
"USE "
)
WriteName
(
sb
,
n
.
DBName
)
return
nil
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
UseStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
UseStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -324,6 +377,11 @@ type VariableAssignment struct {
...
@@ -324,6 +377,11 @@ type VariableAssignment struct {
ExtendValue
ValueExpr
ExtendValue
ValueExpr
}
}
// Restore implements Recoverable interface.
func
(
n
*
VariableAssignment
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node interface.
// Accept implements Node interface.
func
(
n
*
VariableAssignment
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
VariableAssignment
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -360,6 +418,11 @@ type FlushStmt struct {
...
@@ -360,6 +418,11 @@ type FlushStmt struct {
ReadLock
bool
ReadLock
bool
}
}
// Restore implements Recoverable interface.
func
(
n
*
FlushStmt
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
FlushStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
FlushStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -390,6 +453,11 @@ type KillStmt struct {
...
@@ -390,6 +453,11 @@ type KillStmt struct {
TiDBExtension
bool
TiDBExtension
bool
}
}
// Restore implements Recoverable interface.
func
(
n
*
KillStmt
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
KillStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
KillStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -407,6 +475,11 @@ type SetStmt struct {
...
@@ -407,6 +475,11 @@ type SetStmt struct {
Variables
[]
*
VariableAssignment
Variables
[]
*
VariableAssignment
}
}
// Restore implements Recoverable interface.
func
(
n
*
SetStmt
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
SetStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
SetStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -454,6 +527,11 @@ type SetPwdStmt struct {
...
@@ -454,6 +527,11 @@ type SetPwdStmt struct {
Password
string
Password
string
}
}
// Restore implements Recoverable interface.
func
(
n
*
SetPwdStmt
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// SecureText implements SensitiveStatement interface.
// SecureText implements SensitiveStatement interface.
func
(
n
*
SetPwdStmt
)
SecureText
()
string
{
func
(
n
*
SetPwdStmt
)
SecureText
()
string
{
return
fmt
.
Sprintf
(
"set password for user %s"
,
n
.
User
)
return
fmt
.
Sprintf
(
"set password for user %s"
,
n
.
User
)
...
@@ -517,6 +595,11 @@ type CreateUserStmt struct {
...
@@ -517,6 +595,11 @@ type CreateUserStmt struct {
Specs
[]
*
UserSpec
Specs
[]
*
UserSpec
}
}
// Restore implements Recoverable interface.
func
(
n
*
CreateUserStmt
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
CreateUserStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
CreateUserStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -548,6 +631,11 @@ type AlterUserStmt struct {
...
@@ -548,6 +631,11 @@ type AlterUserStmt struct {
Specs
[]
*
UserSpec
Specs
[]
*
UserSpec
}
}
// Restore implements Recoverable interface.
func
(
n
*
AlterUserStmt
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// SecureText implements SensitiveStatement interface.
// SecureText implements SensitiveStatement interface.
func
(
n
*
AlterUserStmt
)
SecureText
()
string
{
func
(
n
*
AlterUserStmt
)
SecureText
()
string
{
var
buf
bytes
.
Buffer
var
buf
bytes
.
Buffer
...
@@ -578,6 +666,11 @@ type DropUserStmt struct {
...
@@ -578,6 +666,11 @@ type DropUserStmt struct {
UserList
[]
*
auth
.
UserIdentity
UserList
[]
*
auth
.
UserIdentity
}
}
// Restore implements Recoverable interface.
func
(
n
*
DropUserStmt
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
DropUserStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
DropUserStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -595,6 +688,11 @@ type DoStmt struct {
...
@@ -595,6 +688,11 @@ type DoStmt struct {
Exprs
[]
ExprNode
Exprs
[]
ExprNode
}
}
// Restore implements Recoverable interface.
func
(
n
*
DoStmt
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
DoStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
DoStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -682,6 +780,11 @@ type AdminStmt struct {
...
@@ -682,6 +780,11 @@ type AdminStmt struct {
ShowSlow
*
ShowSlow
ShowSlow
*
ShowSlow
}
}
// Restore implements Recoverable interface.
func
(
n
*
AdminStmt
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
AdminStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
AdminStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -709,6 +812,11 @@ type PrivElem struct {
...
@@ -709,6 +812,11 @@ type PrivElem struct {
Cols
[]
*
ColumnName
Cols
[]
*
ColumnName
}
}
// Restore implements Recoverable interface.
func
(
n
*
PrivElem
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
PrivElem
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
PrivElem
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -767,6 +875,11 @@ type RevokeStmt struct {
...
@@ -767,6 +875,11 @@ type RevokeStmt struct {
Users
[]
*
UserSpec
Users
[]
*
UserSpec
}
}
// Restore implements Recoverable interface.
func
(
n
*
RevokeStmt
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
RevokeStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
RevokeStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -795,6 +908,11 @@ type GrantStmt struct {
...
@@ -795,6 +908,11 @@ type GrantStmt struct {
WithGrant
bool
WithGrant
bool
}
}
// Restore implements Recoverable interface.
func
(
n
*
GrantStmt
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// SecureText implements SensitiveStatement interface.
// SecureText implements SensitiveStatement interface.
func
(
n
*
GrantStmt
)
SecureText
()
string
{
func
(
n
*
GrantStmt
)
SecureText
()
string
{
text
:=
n
.
text
text
:=
n
.
text
...
@@ -860,6 +978,11 @@ type TableOptimizerHint struct {
...
@@ -860,6 +978,11 @@ type TableOptimizerHint struct {
MaxExecutionTime
uint64
MaxExecutionTime
uint64
}
}
// Restore implements Recoverable interface.
func
(
n
*
TableOptimizerHint
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
TableOptimizerHint
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
TableOptimizerHint
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
...
vendor/github.com/pingcap/parser/ast/stats.go
浏览文件 @
6eddefa4
...
@@ -13,7 +13,12 @@
...
@@ -13,7 +13,12 @@
package
ast
package
ast
import
"github.com/pingcap/parser/model"
import
(
"strings"
"github.com/pingcap/errors"
"github.com/pingcap/parser/model"
)
var
(
var
(
_
StmtNode
=
&
AnalyzeTableStmt
{}
_
StmtNode
=
&
AnalyzeTableStmt
{}
...
@@ -34,6 +39,11 @@ type AnalyzeTableStmt struct {
...
@@ -34,6 +39,11 @@ type AnalyzeTableStmt struct {
IndexFlag
bool
IndexFlag
bool
}
}
// Restore implements Recoverable interface.
func
(
n
*
AnalyzeTableStmt
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
AnalyzeTableStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
AnalyzeTableStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -58,6 +68,11 @@ type DropStatsStmt struct {
...
@@ -58,6 +68,11 @@ type DropStatsStmt struct {
Table
*
TableName
Table
*
TableName
}
}
// Restore implements Recoverable interface.
func
(
n
*
DropStatsStmt
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
DropStatsStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
DropStatsStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
@@ -80,6 +95,11 @@ type LoadStatsStmt struct {
...
@@ -80,6 +95,11 @@ type LoadStatsStmt struct {
Path
string
Path
string
}
}
// Restore implements Recoverable interface.
func
(
n
*
LoadStatsStmt
)
Restore
(
sb
*
strings
.
Builder
)
error
{
return
errors
.
New
(
"Not implemented"
)
}
// Accept implements Node Accept interface.
// Accept implements Node Accept interface.
func
(
n
*
LoadStatsStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
func
(
n
*
LoadStatsStmt
)
Accept
(
v
Visitor
)
(
Node
,
bool
)
{
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
newNode
,
skipChildren
:=
v
.
Enter
(
n
)
...
...
vendor/github.com/pingcap/parser/ast/
read_only_checker
.go
→
vendor/github.com/pingcap/parser/ast/
util
.go
浏览文件 @
6eddefa4
// Copyright 201
7
PingCAP, Inc.
// Copyright 201
8
PingCAP, Inc.
//
//
// Licensed under the Apache License, Version 2.0 (the "License");
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// you may not use this file except in compliance with the License.
...
@@ -13,6 +13,8 @@
...
@@ -13,6 +13,8 @@
package
ast
package
ast
import
"strings"
// IsReadOnly checks whether the input ast is readOnly.
// IsReadOnly checks whether the input ast is readOnly.
func
IsReadOnly
(
node
Node
)
bool
{
func
IsReadOnly
(
node
Node
)
bool
{
switch
st
:=
node
.
(
type
)
{
switch
st
:=
node
.
(
type
)
{
...
@@ -59,3 +61,15 @@ func (checker *readOnlyChecker) Enter(in Node) (out Node, skipChildren bool) {
...
@@ -59,3 +61,15 @@ func (checker *readOnlyChecker) Enter(in Node) (out Node, skipChildren bool) {
func
(
checker
*
readOnlyChecker
)
Leave
(
in
Node
)
(
out
Node
,
ok
bool
)
{
func
(
checker
*
readOnlyChecker
)
Leave
(
in
Node
)
(
out
Node
,
ok
bool
)
{
return
in
,
checker
.
readOnly
return
in
,
checker
.
readOnly
}
}
// WriteName append escaped `name` with back quote to `sb`.
func
WriteName
(
sb
*
strings
.
Builder
,
name
string
)
{
sb
.
WriteString
(
"`"
)
sb
.
WriteString
(
EscapeName
(
name
))
sb
.
WriteString
(
"`"
)
}
// EscapeName escape the `name`
func
EscapeName
(
name
string
)
string
{
return
strings
.
Replace
(
name
,
"`"
,
"``"
,
-
1
)
}
vendor/github.com/pingcap/parser/go.mod1
浏览文件 @
6eddefa4
module github.com/pingcap/parser
module github.com/pingcap/parser
require (
require (
github.com/cznic/golex v0.0.0-20181122101858-9c343928389c // indirect
github.com/cznic/mathutil v0.0.0-20181021201202-eba54fb065b7
github.com/cznic/mathutil v0.0.0-20181021201202-eba54fb065b7
github.com/cznic/parser v0.0.0-20160622100904-31edd927e5b1
github.com/cznic/parser v0.0.0-20160622100904-31edd927e5b1
github.com/cznic/sortutil v0.0.0-20150617083342-4c7342852e65
github.com/cznic/sortutil v0.0.0-20150617083342-4c7342852e65
...
@@ -8,7 +9,7 @@ require (
...
@@ -8,7 +9,7 @@ require (
github.com/cznic/y v0.0.0-20170802143616-045f81c6662a
github.com/cznic/y v0.0.0-20170802143616-045f81c6662a
github.com/pingcap/check v0.0.0-20171206051426-1c287c953996
github.com/pingcap/check v0.0.0-20171206051426-1c287c953996
github.com/pingcap/errors v0.11.0
github.com/pingcap/errors v0.11.0
github.com/pingcap/tidb v0.0.0-20181
109062255-f547869f4933
github.com/pingcap/tidb v0.0.0-20181
203021530-741adcee43e2
github.com/pingcap/tipb v0.0.0-20181012112600-11e33c750323
github.com/pingcap/tipb v0.0.0-20181012112600-11e33c750323
github.com/sirupsen/logrus v1.2.0
github.com/sirupsen/logrus v1.2.0
golang.org/x/net v0.0.0-20181029044818-c44066c5c816
golang.org/x/net v0.0.0-20181029044818-c44066c5c816
...
...
vendor/github.com/pingcap/parser/go.sum1
浏览文件 @
6eddefa4
...
@@ -4,15 +4,18 @@ github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ
...
@@ -4,15 +4,18 @@ github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo=
github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo=
github.com/Shopify/toxiproxy v2.1.3+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI=
github.com/Shopify/toxiproxy v2.1.3+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI=
github.com/StackExchange/wmi v0.0.0-20180725035823-b12b22c5341f/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg=
github.com/apache/thrift v0.0.0-20161221203622-b2a4d4ae21c7/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=
github.com/apache/thrift v0.0.0-20161221203622-b2a4d4ae21c7/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973 h1:xJ4a3vCFaGF/jqvzLMYoU8P317H5OQ+Via4RmuPwCS0=
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973 h1:xJ4a3vCFaGF/jqvzLMYoU8P317H5OQ+Via4RmuPwCS0=
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
github.com/blacktear23/go-proxyprotocol v0.0.0-20171102103907-62e368e1c470/go.mod h1:VKt7CNAQxpFpSDz3sXyj9hY/GbVsQCr0sB3w59nE7lU=
github.com/blacktear23/go-proxyprotocol v0.0.0-20171102103907-62e368e1c470/go.mod h1:VKt7CNAQxpFpSDz3sXyj9hY/GbVsQCr0sB3w59nE7lU=
github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps=
github.com/chzyer/readline v0.0.0-20171208011716-f6d7a1f6fbf3/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
github.com/chzyer/readline v0.0.0-20171208011716-f6d7a1f6fbf3/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
github.com/cockroachdb/cmux v0.0.0-20170110192607-30d10be49292/go.mod h1:qRiX68mZX1lGBkTWyp3CLcenw9I94W2dLeRvMzcn9N4=
github.com/cockroachdb/cmux v0.0.0-20170110192607-30d10be49292/go.mod h1:qRiX68mZX1lGBkTWyp3CLcenw9I94W2dLeRvMzcn9N4=
github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd h1:qMd81Ts1T2OTKmB4acZcyKaMtRnY5Y44NuXGX2GFJ1w=
github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd h1:qMd81Ts1T2OTKmB4acZcyKaMtRnY5Y44NuXGX2GFJ1w=
github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI=
github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI=
github.com/coreos/bbolt v1.3.0/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=
github.com/coreos/bbolt v1.3.1-coreos.6 h1:uTXKg9gY70s9jMAKdfljFQcuh4e/BXOM+V+d00KFj3A=
github.com/coreos/bbolt v1.3.1-coreos.6 h1:uTXKg9gY70s9jMAKdfljFQcuh4e/BXOM+V+d00KFj3A=
github.com/coreos/bbolt v1.3.1-coreos.6/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=
github.com/coreos/bbolt v1.3.1-coreos.6/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=
github.com/coreos/etcd v3.3.10+incompatible h1:KjVWqrZ5U0wa3CxY2AxlH6/UcB+PK2td1DcsYhA+HRs=
github.com/coreos/etcd v3.3.10+incompatible h1:KjVWqrZ5U0wa3CxY2AxlH6/UcB+PK2td1DcsYhA+HRs=
...
@@ -25,6 +28,8 @@ github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f h1:lBNOc5arjvs8E5mO2tbp
...
@@ -25,6 +28,8 @@ github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f h1:lBNOc5arjvs8E5mO2tbp
github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
github.com/cznic/golex v0.0.0-20170803123110-4ab7c5e190e4 h1:CVAqftqbj+exlab+8KJQrE+kNIVlQfJt58j4GxCMF1s=
github.com/cznic/golex v0.0.0-20170803123110-4ab7c5e190e4 h1:CVAqftqbj+exlab+8KJQrE+kNIVlQfJt58j4GxCMF1s=
github.com/cznic/golex v0.0.0-20170803123110-4ab7c5e190e4/go.mod h1:+bmmJDNmKlhWNG+gwWCkaBoTy39Fs+bzRxVBzoTQbIc=
github.com/cznic/golex v0.0.0-20170803123110-4ab7c5e190e4/go.mod h1:+bmmJDNmKlhWNG+gwWCkaBoTy39Fs+bzRxVBzoTQbIc=
github.com/cznic/golex v0.0.0-20181122101858-9c343928389c h1:G8zTsaqyVfIHpgMFcGgdbhHSFhlNc77rAKkhVbQ9kQg=
github.com/cznic/golex v0.0.0-20181122101858-9c343928389c/go.mod h1:+bmmJDNmKlhWNG+gwWCkaBoTy39Fs+bzRxVBzoTQbIc=
github.com/cznic/mathutil v0.0.0-20181021201202-eba54fb065b7 h1:y+DH9ARrWiiNBV+6waYP2IPcsRbxdU1qsnycPfShF4c=
github.com/cznic/mathutil v0.0.0-20181021201202-eba54fb065b7 h1:y+DH9ARrWiiNBV+6waYP2IPcsRbxdU1qsnycPfShF4c=
github.com/cznic/mathutil v0.0.0-20181021201202-eba54fb065b7/go.mod h1:e6NPNENfs9mPDVNRekM7lKScauxd5kXTr1Mfyig6TDM=
github.com/cznic/mathutil v0.0.0-20181021201202-eba54fb065b7/go.mod h1:e6NPNENfs9mPDVNRekM7lKScauxd5kXTr1Mfyig6TDM=
github.com/cznic/parser v0.0.0-20160622100904-31edd927e5b1 h1:uWcWCkSP+E1w1z8r082miT+c+9vzg+5UdrgGCo15lMo=
github.com/cznic/parser v0.0.0-20160622100904-31edd927e5b1 h1:uWcWCkSP+E1w1z8r082miT+c+9vzg+5UdrgGCo15lMo=
...
@@ -52,6 +57,7 @@ github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV
...
@@ -52,6 +57,7 @@ github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk=
github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk=
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
github.com/go-ole/go-ole v1.2.1/go.mod h1:7FAglXiTm7HKlQRDeOQ6ZNUHidzCWXuZWq/1dTyBNF8=
github.com/go-sql-driver/mysql v0.0.0-20170715192408-3955978caca4/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=
github.com/go-sql-driver/mysql v0.0.0-20170715192408-3955978caca4/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=
github.com/gogo/protobuf v1.1.1 h1:72R+M5VuhED/KujmZVcIquuo8mBgX4oVda//DQb3PXo=
github.com/gogo/protobuf v1.1.1 h1:72R+M5VuhED/KujmZVcIquuo8mBgX4oVda//DQb3PXo=
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
...
@@ -74,6 +80,7 @@ github.com/gorilla/mux v1.6.2 h1:Pgr17XVTNXAk3q/r4CpKzC5xBM/qW1uVLV+IhRZpIIk=
...
@@ -74,6 +80,7 @@ github.com/gorilla/mux v1.6.2 h1:Pgr17XVTNXAk3q/r4CpKzC5xBM/qW1uVLV+IhRZpIIk=
github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
github.com/gorilla/websocket v1.2.0 h1:VJtLvh6VQym50czpZzx07z/kw9EgAxI3x1ZB8taTMQQ=
github.com/gorilla/websocket v1.2.0 h1:VJtLvh6VQym50czpZzx07z/kw9EgAxI3x1ZB8taTMQQ=
github.com/gorilla/websocket v1.2.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
github.com/gorilla/websocket v1.2.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
github.com/grpc-ecosystem/go-grpc-middleware v1.0.0 h1:BWIsLfhgKhV5g/oF34aRjniBHLTZe5DNekSjbAjIS6c=
github.com/grpc-ecosystem/go-grpc-middleware v1.0.0 h1:BWIsLfhgKhV5g/oF34aRjniBHLTZe5DNekSjbAjIS6c=
github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho=
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho=
...
@@ -102,6 +109,14 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
...
@@ -102,6 +109,14 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/pty v1.1.3/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/pty v1.1.3/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/leoppro/tidb v0.0.0-00000000000000-5791a57a03b7 h1:t9oZ5f5OO46px5blv5m45vFGxT1Ee97BF0fKYrLmj2s=
github.com/leoppro/tidb v0.0.0-00000000000000-5791a57a03b7/go.mod h1:B8fFZPvn+zh0LEJODdc+br1SRRbljoZakm3ATyH0JuY=
github.com/leoppro/tidb v0.0.0-00000000000000-812fd5698f7b h1:RGNCcA7g6cl0x6Dk9FjxLC9XHRggitWe4lH7EvewyaA=
github.com/leoppro/tidb v0.0.0-00000000000000-812fd5698f7b/go.mod h1:B8fFZPvn+zh0LEJODdc+br1SRRbljoZakm3ATyH0JuY=
github.com/leoppro/tidb v0.0.0-00000000000000-aa8ec4ce061f h1:/m009OmMg7sgg2WrdiTfotiLYiZBBRZSHH9ECVD8WMQ=
github.com/leoppro/tidb v0.0.0-00000000000000-aa8ec4ce061f/go.mod h1:B8fFZPvn+zh0LEJODdc+br1SRRbljoZakm3ATyH0JuY=
github.com/leoppro/tidb v0.0.0-00000000000000-f790373f69fa h1:42ueISbhV36GHTYwiWeFAP0WxunRka1BD4z6GtzPglQ=
github.com/leoppro/tidb v0.0.0-00000000000000-f790373f69fa/go.mod h1:B8fFZPvn+zh0LEJODdc+br1SRRbljoZakm3ATyH0JuY=
github.com/mattn/go-shellwords v1.0.3/go.mod h1:3xCvwCdWdlDJUrvuMn7Wuy9eWs4pE8vqg+NOMyg4B2o=
github.com/mattn/go-shellwords v1.0.3/go.mod h1:3xCvwCdWdlDJUrvuMn7Wuy9eWs4pE8vqg+NOMyg4B2o=
github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU=
github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU=
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
...
@@ -116,8 +131,10 @@ github.com/ngaut/sync2 v0.0.0-20141008032647-7a24ed77b2ef h1:K0Fn+DoFqNqktdZtdV3
...
@@ -116,8 +131,10 @@ github.com/ngaut/sync2 v0.0.0-20141008032647-7a24ed77b2ef h1:K0Fn+DoFqNqktdZtdV3
github.com/ngaut/sync2 v0.0.0-20141008032647-7a24ed77b2ef/go.mod h1:7WjlapSfwQyo6LNmIvEWzsW1hbBQfpUO4JWnuQRmva8=
github.com/ngaut/sync2 v0.0.0-20141008032647-7a24ed77b2ef/go.mod h1:7WjlapSfwQyo6LNmIvEWzsW1hbBQfpUO4JWnuQRmva8=
github.com/onsi/ginkgo v1.6.0 h1:Ix8l273rp3QzYgXSR+c8d1fTG7UPgYkOSELPhiY/YGw=
github.com/onsi/ginkgo v1.6.0 h1:Ix8l273rp3QzYgXSR+c8d1fTG7UPgYkOSELPhiY/YGw=
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
github.com/onsi/gomega v1.4.2 h1:3mYCb7aPxS/RU7TI1y4rkEn1oKmPRjNJLNEXgw7MH2I=
github.com/onsi/gomega v1.4.2 h1:3mYCb7aPxS/RU7TI1y4rkEn1oKmPRjNJLNEXgw7MH2I=
github.com/onsi/gomega v1.4.2/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
github.com/onsi/gomega v1.4.2/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
github.com/opentracing/basictracer-go v1.0.0 h1:YyUAhaEfjoWXclZVJ9sGoNct7j4TVk7lZWlQw5UXuoo=
github.com/opentracing/basictracer-go v1.0.0 h1:YyUAhaEfjoWXclZVJ9sGoNct7j4TVk7lZWlQw5UXuoo=
github.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74=
github.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74=
github.com/opentracing/opentracing-go v1.0.2 h1:3jA2P6O1F9UOrWVpwrIo17pu01KWvNWg4X946/Y5Zwg=
github.com/opentracing/opentracing-go v1.0.2 h1:3jA2P6O1F9UOrWVpwrIo17pu01KWvNWg4X946/Y5Zwg=
...
@@ -136,6 +153,8 @@ github.com/pingcap/kvproto v0.0.0-20181028030329-855d2192cdc7 h1:CYssSnPvf90ZSbF
...
@@ -136,6 +153,8 @@ github.com/pingcap/kvproto v0.0.0-20181028030329-855d2192cdc7 h1:CYssSnPvf90ZSbF
github.com/pingcap/kvproto v0.0.0-20181028030329-855d2192cdc7/go.mod h1:0gwbe1F2iBIjuQ9AH0DbQhL+Dpr5GofU8fgYyXk+ykk=
github.com/pingcap/kvproto v0.0.0-20181028030329-855d2192cdc7/go.mod h1:0gwbe1F2iBIjuQ9AH0DbQhL+Dpr5GofU8fgYyXk+ykk=
github.com/pingcap/kvproto v0.0.0-20181105061835-1b5d69cd1d26/go.mod h1:0gwbe1F2iBIjuQ9AH0DbQhL+Dpr5GofU8fgYyXk+ykk=
github.com/pingcap/kvproto v0.0.0-20181105061835-1b5d69cd1d26/go.mod h1:0gwbe1F2iBIjuQ9AH0DbQhL+Dpr5GofU8fgYyXk+ykk=
github.com/pingcap/parser v0.0.0-20181102070703-4acd198f5092/go.mod h1:1FNvfp9+J0wvc4kl8eGNh7Rqrxveg15jJoWo/a0uHwA=
github.com/pingcap/parser v0.0.0-20181102070703-4acd198f5092/go.mod h1:1FNvfp9+J0wvc4kl8eGNh7Rqrxveg15jJoWo/a0uHwA=
github.com/pingcap/parser v0.0.0-20181120072820-10951bcfca73/go.mod h1:1FNvfp9+J0wvc4kl8eGNh7Rqrxveg15jJoWo/a0uHwA=
github.com/pingcap/parser v0.0.0-20181126111651-a38036a60de7/go.mod h1:1FNvfp9+J0wvc4kl8eGNh7Rqrxveg15jJoWo/a0uHwA=
github.com/pingcap/pd v2.1.0-rc.4+incompatible h1:/buwGk04aHO5odk/+O8ZOXGs4qkUjYTJ2UpCJXna8NE=
github.com/pingcap/pd v2.1.0-rc.4+incompatible h1:/buwGk04aHO5odk/+O8ZOXGs4qkUjYTJ2UpCJXna8NE=
github.com/pingcap/pd v2.1.0-rc.4+incompatible/go.mod h1:nD3+EoYes4+aNNODO99ES59V83MZSI+dFbhyr667a0E=
github.com/pingcap/pd v2.1.0-rc.4+incompatible/go.mod h1:nD3+EoYes4+aNNODO99ES59V83MZSI+dFbhyr667a0E=
github.com/pingcap/tidb v0.0.0-20181105182855-379ee5b1915a h1:Qd8qbDnsmAIXxefGBgFrWh4y0GDO6froUNFqZYmC568=
github.com/pingcap/tidb v0.0.0-20181105182855-379ee5b1915a h1:Qd8qbDnsmAIXxefGBgFrWh4y0GDO6froUNFqZYmC568=
...
@@ -144,10 +163,15 @@ github.com/pingcap/tidb v0.0.0-20181106092750-bb6d0a935d70 h1:a71Zzbf3hautypbfre
...
@@ -144,10 +163,15 @@ github.com/pingcap/tidb v0.0.0-20181106092750-bb6d0a935d70 h1:a71Zzbf3hautypbfre
github.com/pingcap/tidb v0.0.0-20181106092750-bb6d0a935d70/go.mod h1:tq1TVnaDUrh46KbB+oJA34Ob3eMbinTopWVzhX5Rj94=
github.com/pingcap/tidb v0.0.0-20181106092750-bb6d0a935d70/go.mod h1:tq1TVnaDUrh46KbB+oJA34Ob3eMbinTopWVzhX5Rj94=
github.com/pingcap/tidb v0.0.0-20181109062255-f547869f4933 h1:YwXtZpzgqq6LymXQXHBpneC7yQpxeXpAO5cuafuFgMQ=
github.com/pingcap/tidb v0.0.0-20181109062255-f547869f4933 h1:YwXtZpzgqq6LymXQXHBpneC7yQpxeXpAO5cuafuFgMQ=
github.com/pingcap/tidb v0.0.0-20181109062255-f547869f4933/go.mod h1:GJ1YwdkgaTo6oaWlg9K8nKZ3RaYaP5qXJl/lCywOQ5I=
github.com/pingcap/tidb v0.0.0-20181109062255-f547869f4933/go.mod h1:GJ1YwdkgaTo6oaWlg9K8nKZ3RaYaP5qXJl/lCywOQ5I=
github.com/pingcap/tidb v0.0.0-20181203021530-741adcee43e2 h1:A95bj50yYZMa1z655BmojZWKAu1zC3FONdSrfN9s8k0=
github.com/pingcap/tidb v0.0.0-20181203021530-741adcee43e2/go.mod h1:xn+3XVdDK//tvavk1V5iNfEDq7dI3klo1xvCiFgBOLs=
github.com/pingcap/tidb v2.0.8+incompatible h1:4G85C71eFTQRJ0Icwul/z3gJfR0u0aWXq1t/f4O8R40=
github.com/pingcap/tidb v2.0.8+incompatible h1:4G85C71eFTQRJ0Icwul/z3gJfR0u0aWXq1t/f4O8R40=
github.com/pingcap/tidb v2.0.8+incompatible/go.mod h1:I8C6jrPINP2rrVunTRd7C9fRRhQrtR43S1/CL5ix/yQ=
github.com/pingcap/tidb v2.0.8+incompatible/go.mod h1:I8C6jrPINP2rrVunTRd7C9fRRhQrtR43S1/CL5ix/yQ=
github.com/pingcap/tidb v2.0.9+incompatible h1:O6vEjpNZfHcO0XBYjMvqozyYrOyJCrzTt/I8wHmBkbw=
github.com/pingcap/tidb v2.0.9+incompatible/go.mod h1:I8C6jrPINP2rrVunTRd7C9fRRhQrtR43S1/CL5ix/yQ=
github.com/pingcap/tidb-tools v0.0.0-20181101090416-cfac1096162e h1:LKGiK9RwOntq4kniQdGM9q1Cg4AGeIyHBeiFc2OIlpo=
github.com/pingcap/tidb-tools v0.0.0-20181101090416-cfac1096162e h1:LKGiK9RwOntq4kniQdGM9q1Cg4AGeIyHBeiFc2OIlpo=
github.com/pingcap/tidb-tools v0.0.0-20181101090416-cfac1096162e/go.mod h1:XGdcy9+yqlDSEMTpOXnwf3hiTeqrV6MN/u1se9N8yIM=
github.com/pingcap/tidb-tools v0.0.0-20181101090416-cfac1096162e/go.mod h1:XGdcy9+yqlDSEMTpOXnwf3hiTeqrV6MN/u1se9N8yIM=
github.com/pingcap/tidb-tools v0.0.0-20181112132202-4860a0d5de03/go.mod h1:XGdcy9+yqlDSEMTpOXnwf3hiTeqrV6MN/u1se9N8yIM=
github.com/pingcap/tipb v0.0.0-20181012112600-11e33c750323 h1:mRKKzRjDNaUNPnAkPAHnRqpNmwNWBX1iA+hxlmvQ93I=
github.com/pingcap/tipb v0.0.0-20181012112600-11e33c750323 h1:mRKKzRjDNaUNPnAkPAHnRqpNmwNWBX1iA+hxlmvQ93I=
github.com/pingcap/tipb v0.0.0-20181012112600-11e33c750323/go.mod h1:RtkHW8WbcNxj8lsbzjaILci01CtYnYbIkQhjyZWrWVI=
github.com/pingcap/tipb v0.0.0-20181012112600-11e33c750323/go.mod h1:RtkHW8WbcNxj8lsbzjaILci01CtYnYbIkQhjyZWrWVI=
github.com/pkg/errors v0.8.0 h1:WdK/asTD0HN+q6hsWO3/vpuAkAr+tw6aNJNDFFf0+qw=
github.com/pkg/errors v0.8.0 h1:WdK/asTD0HN+q6hsWO3/vpuAkAr+tw6aNJNDFFf0+qw=
...
@@ -166,6 +190,10 @@ github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqn
...
@@ -166,6 +190,10 @@ github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqn
github.com/remyoudompheng/bigfft v0.0.0-20170806203942-52369c62f446 h1:/NRJ5vAYoqz+7sG51ubIDHXeWO8DlTSrToPu6q11ziA=
github.com/remyoudompheng/bigfft v0.0.0-20170806203942-52369c62f446 h1:/NRJ5vAYoqz+7sG51ubIDHXeWO8DlTSrToPu6q11ziA=
github.com/remyoudompheng/bigfft v0.0.0-20170806203942-52369c62f446/go.mod h1:uYEyJGbgTkfkS4+E/PavXkNJcbFIpEtjt2B0KDQ5+9M=
github.com/remyoudompheng/bigfft v0.0.0-20170806203942-52369c62f446/go.mod h1:uYEyJGbgTkfkS4+E/PavXkNJcbFIpEtjt2B0KDQ5+9M=
github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0=
github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0=
github.com/shirou/gopsutil v2.18.10+incompatible h1:cy84jW6EVRPa5g9HAHrlbxMSIjBhDSX0OFYyMYminYs=
github.com/shirou/gopsutil v2.18.10+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA=
github.com/shurcooL/httpfs v0.0.0-20171119174359-809beceb2371/go.mod h1:ZY1cvUeJuFPAdZ/B6v7RHavJWZn2YPVFQ1OSXhCGOkg=
github.com/shurcooL/vfsgen v0.0.0-20181020040650-a97a25d856ca/go.mod h1:TrYk7fJVaAttu97ZZKrO9UbRa8izdowaMIZcxYMbVaw=
github.com/siddontang/go v0.0.0-20180604090527-bdc77568d726/go.mod h1:3yhqj7WBBfRhbBlzyOC3gUxftwsU0u8gqevxwIHQpMw=
github.com/siddontang/go v0.0.0-20180604090527-bdc77568d726/go.mod h1:3yhqj7WBBfRhbBlzyOC3gUxftwsU0u8gqevxwIHQpMw=
github.com/sirupsen/logrus v1.2.0 h1:juTguoYk5qI21pwyTXY3B3Y5cOTH3ZUyZCg1v/mihuo=
github.com/sirupsen/logrus v1.2.0 h1:juTguoYk5qI21pwyTXY3B3Y5cOTH3ZUyZCg1v/mihuo=
github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
...
@@ -179,6 +207,7 @@ github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+
...
@@ -179,6 +207,7 @@ github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+
github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w=
github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w=
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/syndtr/goleveldb v0.0.0-20180815032940-ae2bd5eed72d/go.mod h1:Z4AUp2Km+PwemOoO/VB5AOx9XSsIItzFjoJlOSiYmn0=
github.com/syndtr/goleveldb v0.0.0-20180815032940-ae2bd5eed72d/go.mod h1:Z4AUp2Km+PwemOoO/VB5AOx9XSsIItzFjoJlOSiYmn0=
github.com/tiancaiamao/appdash v0.0.0-20181126055449-889f96f722a2/go.mod h1:2PfKggNGDuadAa0LElHrByyrz4JPZ9fFx6Gs7nx7ZZU=
github.com/tmc/grpc-websocket-proxy v0.0.0-20171017195756-830351dc03c6 h1:lYIiVDtZnyTWlNwiAxLj0bbpTcx1BWCFhXjfsvmPdNc=
github.com/tmc/grpc-websocket-proxy v0.0.0-20171017195756-830351dc03c6 h1:lYIiVDtZnyTWlNwiAxLj0bbpTcx1BWCFhXjfsvmPdNc=
github.com/tmc/grpc-websocket-proxy v0.0.0-20171017195756-830351dc03c6/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
github.com/tmc/grpc-websocket-proxy v0.0.0-20171017195756-830351dc03c6/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
github.com/twinj/uuid v1.0.0 h1:fzz7COZnDrXGTAOHGuUGYd6sG+JMq+AoE7+Jlu0przk=
github.com/twinj/uuid v1.0.0 h1:fzz7COZnDrXGTAOHGuUGYd6sG+JMq+AoE7+Jlu0przk=
...
@@ -191,6 +220,7 @@ github.com/uber/jaeger-lib v1.5.0 h1:OHbgr8l656Ub3Fw5k9SWnBfIEwvoHQ+W2y+Aa9D1Uyo
...
@@ -191,6 +220,7 @@ github.com/uber/jaeger-lib v1.5.0 h1:OHbgr8l656Ub3Fw5k9SWnBfIEwvoHQ+W2y+Aa9D1Uyo
github.com/uber/jaeger-lib v1.5.0/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U=
github.com/uber/jaeger-lib v1.5.0/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U=
github.com/ugorji/go v1.1.1 h1:gmervu+jDMvXTbcHQ0pd2wee85nEoE0BsVyEuzkfK8w=
github.com/ugorji/go v1.1.1 h1:gmervu+jDMvXTbcHQ0pd2wee85nEoE0BsVyEuzkfK8w=
github.com/ugorji/go v1.1.1/go.mod h1:hnLbHMwcvSihnDhEfx2/BzKp2xb0Y+ErdfYcrs9tkJQ=
github.com/ugorji/go v1.1.1/go.mod h1:hnLbHMwcvSihnDhEfx2/BzKp2xb0Y+ErdfYcrs9tkJQ=
github.com/ugorji/go/codec v0.0.0-20181127175209-856da096dbdf/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0=
github.com/unrolled/render v0.0.0-20180914162206-b9786414de4d h1:ggUgChAeyge4NZ4QUw6lhHsVymzwSDJOZcE0s2X8S20=
github.com/unrolled/render v0.0.0-20180914162206-b9786414de4d h1:ggUgChAeyge4NZ4QUw6lhHsVymzwSDJOZcE0s2X8S20=
github.com/unrolled/render v0.0.0-20180914162206-b9786414de4d/go.mod h1:tu82oB5W2ykJRVioYsB+IQKcft7ryBr7w12qMBUPyXg=
github.com/unrolled/render v0.0.0-20180914162206-b9786414de4d/go.mod h1:tu82oB5W2ykJRVioYsB+IQKcft7ryBr7w12qMBUPyXg=
github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4=
github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4=
...
@@ -202,6 +232,7 @@ go.uber.org/multierr v1.1.0 h1:HoEmRHQPVSqub6w2z2d2EOVs2fjyFRGyofhKuyDq0QI=
...
@@ -202,6 +232,7 @@ go.uber.org/multierr v1.1.0 h1:HoEmRHQPVSqub6w2z2d2EOVs2fjyFRGyofhKuyDq0QI=
go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
go.uber.org/zap v1.8.0 h1:r6Za1Rii8+EGOYRDLvpooNOF6kP3iyDnkpzbw67gCQ8=
go.uber.org/zap v1.8.0 h1:r6Za1Rii8+EGOYRDLvpooNOF6kP3iyDnkpzbw67gCQ8=
go.uber.org/zap v1.8.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
go.uber.org/zap v1.8.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793 h1:u+LnwYTOOW7Ukr/fppxEb1Nwz0AtPflrblfvUudpo+I=
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793 h1:u+LnwYTOOW7Ukr/fppxEb1Nwz0AtPflrblfvUudpo+I=
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20181030102418-4d3f4d9ffa16 h1:y6ce7gCWtnH+m3dCjzQ1PCuwl28DDIc3VNnvY29DlIA=
golang.org/x/crypto v0.0.0-20181030102418-4d3f4d9ffa16 h1:y6ce7gCWtnH+m3dCjzQ1PCuwl28DDIc3VNnvY29DlIA=
...
@@ -220,6 +251,7 @@ golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJ
...
@@ -220,6 +251,7 @@ golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJ
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33 h1:I6FyU15t786LL7oL/hn43zqTuEGr4PN7F4XJ1p4E3Y8=
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33 h1:I6FyU15t786LL7oL/hn43zqTuEGr4PN7F4XJ1p4E3Y8=
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e h1:o3PsSEY8E4eXWkXrIP9YJALUkVZqzHJT5DOasTyn8Vs=
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20181031143558-9b800f95dbbc h1:SdCq5U4J+PpbSDIl9bM0V1e1Ug1jsnBkAFvTs1htn7U=
golang.org/x/sys v0.0.0-20181031143558-9b800f95dbbc h1:SdCq5U4J+PpbSDIl9bM0V1e1Ug1jsnBkAFvTs1htn7U=
golang.org/x/sys v0.0.0-20181031143558-9b800f95dbbc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20181031143558-9b800f95dbbc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
...
@@ -227,6 +259,7 @@ golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
...
@@ -227,6 +259,7 @@ golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2 h1:+DCIGbF/swA92ohVg0//6X2IVY3KZs6p9mix0ziNYJM=
golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2 h1:+DCIGbF/swA92ohVg0//6X2IVY3KZs6p9mix0ziNYJM=
golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
...
@@ -255,3 +288,5 @@ gopkg.in/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE=
...
@@ -255,3 +288,5 @@ gopkg.in/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE=
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
honnef.co/go/tools v0.0.0-20180920025451-e3ad64cb4ed3/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
honnef.co/go/tools v0.0.0-20180920025451-e3ad64cb4ed3/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
sourcegraph.com/sourcegraph/appdash v0.0.0-20180531100431-4c381bd170b4/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU=
sourcegraph.com/sourcegraph/appdash-data v0.0.0-20151005221446-73f23eafcf67/go.mod h1:L5q+DGLGOQFpo1snNEkLOJT2d1YTW66rWNzatr3He1k=
vendor/github.com/pingcap/parser/lexer.go
浏览文件 @
6eddefa4
...
@@ -195,9 +195,9 @@ func (s *Scanner) GetSQLMode() mysql.SQLMode {
...
@@ -195,9 +195,9 @@ func (s *Scanner) GetSQLMode() mysql.SQLMode {
return
s
.
sqlMode
return
s
.
sqlMode
}
}
// EnableWindowFunc
enables the scanner to
recognize the keywords of window function.
// EnableWindowFunc
controls whether the scanner
recognize the keywords of window function.
func
(
s
*
Scanner
)
EnableWindowFunc
()
{
func
(
s
*
Scanner
)
EnableWindowFunc
(
val
bool
)
{
s
.
supportWindowFunc
=
true
s
.
supportWindowFunc
=
val
}
}
// NewScanner returns a new scanner object.
// NewScanner returns a new scanner object.
...
...
vendor/github.com/pingcap/parser/yy_parser.go
浏览文件 @
6eddefa4
...
@@ -135,9 +135,9 @@ func (parser *Parser) SetSQLMode(mode mysql.SQLMode) {
...
@@ -135,9 +135,9 @@ func (parser *Parser) SetSQLMode(mode mysql.SQLMode) {
parser
.
lexer
.
SetSQLMode
(
mode
)
parser
.
lexer
.
SetSQLMode
(
mode
)
}
}
// EnableWindowFunc
enables
the parser to parse syntax related with window function.
// EnableWindowFunc
controls whether
the parser to parse syntax related with window function.
func
(
parser
*
Parser
)
EnableWindowFunc
()
{
func
(
parser
*
Parser
)
EnableWindowFunc
(
val
bool
)
{
parser
.
lexer
.
EnableWindowFunc
()
parser
.
lexer
.
EnableWindowFunc
(
val
)
}
}
// ParseErrorWith returns "You have a syntax error near..." error message compatible with mysql.
// ParseErrorWith returns "You have a syntax error near..." error message compatible with mysql.
...
...
vendor/github.com/pingcap/tidb/types/time.go
浏览文件 @
6eddefa4
...
@@ -1527,7 +1527,7 @@ func extractSingleTimeValue(unit string, format string) (int64, int64, int64, fl
...
@@ -1527,7 +1527,7 @@ func extractSingleTimeValue(unit string, format string) (int64, int64, int64, fl
if
err
!=
nil
{
if
err
!=
nil
{
return
0
,
0
,
0
,
0
,
ErrIncorrectDatetimeValue
.
GenWithStackByArgs
(
format
)
return
0
,
0
,
0
,
0
,
ErrIncorrectDatetimeValue
.
GenWithStackByArgs
(
format
)
}
}
iv
:=
int64
(
fv
+
0.5
)
iv
:=
int64
(
math
.
Round
(
fv
)
)
switch
strings
.
ToUpper
(
unit
)
{
switch
strings
.
ToUpper
(
unit
)
{
case
"MICROSECOND"
:
case
"MICROSECOND"
:
...
...
vendor/vendor.json
浏览文件 @
6eddefa4
...
@@ -105,106 +105,106 @@
...
@@ -105,106 +105,106 @@
"revisionTime"
:
"2018-10-24T15:10:47Z"
"revisionTime"
:
"2018-10-24T15:10:47Z"
},
},
{
{
"checksumSHA1"
:
"
jBf42FXXePd8z/qP4g5n1K0H2vQ
="
,
"checksumSHA1"
:
"
V/4P8kb4QDozn9w++U8G+Kvt0+g
="
,
"path"
:
"github.com/pingcap/parser"
,
"path"
:
"github.com/pingcap/parser"
,
"revision"
:
"
83f31aa7980adf30ef67a744d599804c4ca67faa
"
,
"revision"
:
"
c563561800a23fd1edeae4a592400cc2d0b47f5f
"
,
"revisionTime"
:
"2018-12-0
4T02:04:44
Z"
"revisionTime"
:
"2018-12-0
5T02:39:50
Z"
},
},
{
{
"checksumSHA1"
:
"
xuDucshl6h8s/D6FVXIiWcgdu9I
="
,
"checksumSHA1"
:
"
Fj3tju6yXL0IHhhu6pYwvU5xzJo
="
,
"path"
:
"github.com/pingcap/parser/ast"
,
"path"
:
"github.com/pingcap/parser/ast"
,
"revision"
:
"
83f31aa7980adf30ef67a744d599804c4ca67faa
"
,
"revision"
:
"
c563561800a23fd1edeae4a592400cc2d0b47f5f
"
,
"revisionTime"
:
"2018-12-0
4T02:04:44
Z"
"revisionTime"
:
"2018-12-0
5T02:39:50
Z"
},
},
{
{
"checksumSHA1"
:
"skWGV4FNvD3vr+5olepaPPnylUw="
,
"checksumSHA1"
:
"skWGV4FNvD3vr+5olepaPPnylUw="
,
"path"
:
"github.com/pingcap/parser/auth"
,
"path"
:
"github.com/pingcap/parser/auth"
,
"revision"
:
"
83f31aa7980adf30ef67a744d599804c4ca67faa
"
,
"revision"
:
"
c563561800a23fd1edeae4a592400cc2d0b47f5f
"
,
"revisionTime"
:
"2018-12-0
4T02:04:44
Z"
"revisionTime"
:
"2018-12-0
5T02:39:50
Z"
},
},
{
{
"checksumSHA1"
:
"grkBf/zf8cTJRtI64P1jV6B+p/4="
,
"checksumSHA1"
:
"grkBf/zf8cTJRtI64P1jV6B+p/4="
,
"path"
:
"github.com/pingcap/parser/charset"
,
"path"
:
"github.com/pingcap/parser/charset"
,
"revision"
:
"
83f31aa7980adf30ef67a744d599804c4ca67faa
"
,
"revision"
:
"
c563561800a23fd1edeae4a592400cc2d0b47f5f
"
,
"revisionTime"
:
"2018-12-0
4T02:04:44
Z"
"revisionTime"
:
"2018-12-0
5T02:39:50
Z"
},
},
{
{
"checksumSHA1"
:
"SInoXbsRe0tnBwmatmtZYfSFbdk="
,
"checksumSHA1"
:
"SInoXbsRe0tnBwmatmtZYfSFbdk="
,
"path"
:
"github.com/pingcap/parser/format"
,
"path"
:
"github.com/pingcap/parser/format"
,
"revision"
:
"
83f31aa7980adf30ef67a744d599804c4ca67faa
"
,
"revision"
:
"
c563561800a23fd1edeae4a592400cc2d0b47f5f
"
,
"revisionTime"
:
"2018-12-0
4T02:04:44
Z"
"revisionTime"
:
"2018-12-0
5T02:39:50
Z"
},
},
{
{
"checksumSHA1"
:
"+rJd1MX+3A1gwbrFZHFWbC8l8ao="
,
"checksumSHA1"
:
"+rJd1MX+3A1gwbrFZHFWbC8l8ao="
,
"path"
:
"github.com/pingcap/parser/model"
,
"path"
:
"github.com/pingcap/parser/model"
,
"revision"
:
"
83f31aa7980adf30ef67a744d599804c4ca67faa
"
,
"revision"
:
"
c563561800a23fd1edeae4a592400cc2d0b47f5f
"
,
"revisionTime"
:
"2018-12-0
4T02:04:44
Z"
"revisionTime"
:
"2018-12-0
5T02:39:50
Z"
},
},
{
{
"checksumSHA1"
:
"QBa9yiMDQNl2cLLwqlRoNTpCPNg="
,
"checksumSHA1"
:
"QBa9yiMDQNl2cLLwqlRoNTpCPNg="
,
"path"
:
"github.com/pingcap/parser/mysql"
,
"path"
:
"github.com/pingcap/parser/mysql"
,
"revision"
:
"
83f31aa7980adf30ef67a744d599804c4ca67faa
"
,
"revision"
:
"
c563561800a23fd1edeae4a592400cc2d0b47f5f
"
,
"revisionTime"
:
"2018-12-0
4T02:04:44
Z"
"revisionTime"
:
"2018-12-0
5T02:39:50
Z"
},
},
{
{
"checksumSHA1"
:
"oNBCSwJRykKuzIKgPCttatB9hAo="
,
"checksumSHA1"
:
"oNBCSwJRykKuzIKgPCttatB9hAo="
,
"path"
:
"github.com/pingcap/parser/opcode"
,
"path"
:
"github.com/pingcap/parser/opcode"
,
"revision"
:
"
83f31aa7980adf30ef67a744d599804c4ca67faa
"
,
"revision"
:
"
c563561800a23fd1edeae4a592400cc2d0b47f5f
"
,
"revisionTime"
:
"2018-12-0
4T02:04:44
Z"
"revisionTime"
:
"2018-12-0
5T02:39:50
Z"
},
},
{
{
"checksumSHA1"
:
"XvnUllvwMYd6HrMvMiKnn4cGN2M="
,
"checksumSHA1"
:
"XvnUllvwMYd6HrMvMiKnn4cGN2M="
,
"path"
:
"github.com/pingcap/parser/terror"
,
"path"
:
"github.com/pingcap/parser/terror"
,
"revision"
:
"
83f31aa7980adf30ef67a744d599804c4ca67faa
"
,
"revision"
:
"
c563561800a23fd1edeae4a592400cc2d0b47f5f
"
,
"revisionTime"
:
"2018-12-0
4T02:04:44
Z"
"revisionTime"
:
"2018-12-0
5T02:39:50
Z"
},
},
{
{
"checksumSHA1"
:
"s96v2EoeGKcWHO3mpMOQk/z2iaI="
,
"checksumSHA1"
:
"s96v2EoeGKcWHO3mpMOQk/z2iaI="
,
"path"
:
"github.com/pingcap/parser/types"
,
"path"
:
"github.com/pingcap/parser/types"
,
"revision"
:
"
83f31aa7980adf30ef67a744d599804c4ca67faa
"
,
"revision"
:
"
c563561800a23fd1edeae4a592400cc2d0b47f5f
"
,
"revisionTime"
:
"2018-12-0
4T02:04:44
Z"
"revisionTime"
:
"2018-12-0
5T02:39:50
Z"
},
},
{
{
"checksumSHA1"
:
"kO63T5plq+V7HWnkzB9WlOnp9Iw="
,
"checksumSHA1"
:
"kO63T5plq+V7HWnkzB9WlOnp9Iw="
,
"path"
:
"github.com/pingcap/tidb/sessionctx/stmtctx"
,
"path"
:
"github.com/pingcap/tidb/sessionctx/stmtctx"
,
"revision"
:
"
8ddeeea939747e2d4634beb792d9d3281c49129d
"
,
"revision"
:
"
350a046975a1f86fa6f05f177e81ae838388f4bb
"
,
"revisionTime"
:
"2018-12-0
3T15:37:39
Z"
"revisionTime"
:
"2018-12-0
4T14:10:08
Z"
},
},
{
{
"checksumSHA1"
:
"
U/Wz15G+PgX5yjPBvxRpTywvvCw
="
,
"checksumSHA1"
:
"
SH/wISM1ueh/ENPJhiq1KssPLDA
="
,
"path"
:
"github.com/pingcap/tidb/types"
,
"path"
:
"github.com/pingcap/tidb/types"
,
"revision"
:
"
8ddeeea939747e2d4634beb792d9d3281c49129d
"
,
"revision"
:
"
350a046975a1f86fa6f05f177e81ae838388f4bb
"
,
"revisionTime"
:
"2018-12-0
3T15:37:39
Z"
"revisionTime"
:
"2018-12-0
4T14:10:08
Z"
},
},
{
{
"checksumSHA1"
:
"DWVD7+ygtT66IQ+cqXmMJ5OVqUk="
,
"checksumSHA1"
:
"DWVD7+ygtT66IQ+cqXmMJ5OVqUk="
,
"path"
:
"github.com/pingcap/tidb/types/json"
,
"path"
:
"github.com/pingcap/tidb/types/json"
,
"revision"
:
"
8ddeeea939747e2d4634beb792d9d3281c49129d
"
,
"revision"
:
"
350a046975a1f86fa6f05f177e81ae838388f4bb
"
,
"revisionTime"
:
"2018-12-0
3T15:37:39
Z"
"revisionTime"
:
"2018-12-0
4T14:10:08
Z"
},
},
{
{
"checksumSHA1"
:
"Zp5ME8OXNTmHnYTwJJUZlydN4/U="
,
"checksumSHA1"
:
"Zp5ME8OXNTmHnYTwJJUZlydN4/U="
,
"path"
:
"github.com/pingcap/tidb/types/parser_driver"
,
"path"
:
"github.com/pingcap/tidb/types/parser_driver"
,
"revision"
:
"
8ddeeea939747e2d4634beb792d9d3281c49129d
"
,
"revision"
:
"
350a046975a1f86fa6f05f177e81ae838388f4bb
"
,
"revisionTime"
:
"2018-12-0
3T15:37:39
Z"
"revisionTime"
:
"2018-12-0
4T14:10:08
Z"
},
},
{
{
"checksumSHA1"
:
"s709bhSrG2Ec35406mGtrySid4s="
,
"checksumSHA1"
:
"s709bhSrG2Ec35406mGtrySid4s="
,
"path"
:
"github.com/pingcap/tidb/util/execdetails"
,
"path"
:
"github.com/pingcap/tidb/util/execdetails"
,
"revision"
:
"
8ddeeea939747e2d4634beb792d9d3281c49129d
"
,
"revision"
:
"
350a046975a1f86fa6f05f177e81ae838388f4bb
"
,
"revisionTime"
:
"2018-12-0
3T15:37:39
Z"
"revisionTime"
:
"2018-12-0
4T14:10:08
Z"
},
},
{
{
"checksumSHA1"
:
"nUC7zVoAMNR2a+z2iGqHoN2AkFE="
,
"checksumSHA1"
:
"nUC7zVoAMNR2a+z2iGqHoN2AkFE="
,
"path"
:
"github.com/pingcap/tidb/util/hack"
,
"path"
:
"github.com/pingcap/tidb/util/hack"
,
"revision"
:
"
8ddeeea939747e2d4634beb792d9d3281c49129d
"
,
"revision"
:
"
350a046975a1f86fa6f05f177e81ae838388f4bb
"
,
"revisionTime"
:
"2018-12-0
3T15:37:39
Z"
"revisionTime"
:
"2018-12-0
4T14:10:08
Z"
},
},
{
{
"checksumSHA1"
:
"xSyepiuqsoaaeDch7cXeumvVHKM="
,
"checksumSHA1"
:
"xSyepiuqsoaaeDch7cXeumvVHKM="
,
"path"
:
"github.com/pingcap/tidb/util/memory"
,
"path"
:
"github.com/pingcap/tidb/util/memory"
,
"revision"
:
"
8ddeeea939747e2d4634beb792d9d3281c49129d
"
,
"revision"
:
"
350a046975a1f86fa6f05f177e81ae838388f4bb
"
,
"revisionTime"
:
"2018-12-0
3T15:37:39
Z"
"revisionTime"
:
"2018-12-0
4T14:10:08
Z"
},
},
{
{
"checksumSHA1"
:
"SmYeIK/fIYXNu8IKxD6HOVQVTuU="
,
"checksumSHA1"
:
"SmYeIK/fIYXNu8IKxD6HOVQVTuU="
,
...
@@ -401,62 +401,62 @@
...
@@ -401,62 +401,62 @@
{
{
"checksumSHA1"
:
"aKn1oKcY74N8TRLm3Ayt7Q4bbI4="
,
"checksumSHA1"
:
"aKn1oKcY74N8TRLm3Ayt7Q4bbI4="
,
"path"
:
"vitess.io/vitess/go/bytes2"
,
"path"
:
"vitess.io/vitess/go/bytes2"
,
"revision"
:
"
63d2180c9442f64cec8f5cc6e5eb43947034e8ef
"
,
"revision"
:
"
5bec5a560c87897b5d973bbced81764f3cf0f330
"
,
"revisionTime"
:
"2018-12-0
3T23:57:47
Z"
"revisionTime"
:
"2018-12-0
5T00:00:15
Z"
},
},
{
{
"checksumSHA1"
:
"JVCEN4UGRmg3TofIBdzZMZ3G0Ww="
,
"checksumSHA1"
:
"JVCEN4UGRmg3TofIBdzZMZ3G0Ww="
,
"path"
:
"vitess.io/vitess/go/hack"
,
"path"
:
"vitess.io/vitess/go/hack"
,
"revision"
:
"
63d2180c9442f64cec8f5cc6e5eb43947034e8ef
"
,
"revision"
:
"
5bec5a560c87897b5d973bbced81764f3cf0f330
"
,
"revisionTime"
:
"2018-12-0
3T23:57:47
Z"
"revisionTime"
:
"2018-12-0
5T00:00:15
Z"
},
},
{
{
"checksumSHA1"
:
"e1WJ7vCnVrlQQQlc6n/FewCDMso="
,
"checksumSHA1"
:
"e1WJ7vCnVrlQQQlc6n/FewCDMso="
,
"path"
:
"vitess.io/vitess/go/sqltypes"
,
"path"
:
"vitess.io/vitess/go/sqltypes"
,
"revision"
:
"
63d2180c9442f64cec8f5cc6e5eb43947034e8ef
"
,
"revision"
:
"
5bec5a560c87897b5d973bbced81764f3cf0f330
"
,
"revisionTime"
:
"2018-12-0
3T23:57:47
Z"
"revisionTime"
:
"2018-12-0
5T00:00:15
Z"
},
},
{
{
"checksumSHA1"
:
"ntFIQYkBS51G6y+FEkjFW40+HOU="
,
"checksumSHA1"
:
"ntFIQYkBS51G6y+FEkjFW40+HOU="
,
"path"
:
"vitess.io/vitess/go/vt/log"
,
"path"
:
"vitess.io/vitess/go/vt/log"
,
"revision"
:
"
63d2180c9442f64cec8f5cc6e5eb43947034e8ef
"
,
"revision"
:
"
5bec5a560c87897b5d973bbced81764f3cf0f330
"
,
"revisionTime"
:
"2018-12-0
3T23:57:47
Z"
"revisionTime"
:
"2018-12-0
5T00:00:15
Z"
},
},
{
{
"checksumSHA1"
:
"tPQFPwbMdjuX0qjNl4Zl8zc37JQ="
,
"checksumSHA1"
:
"tPQFPwbMdjuX0qjNl4Zl8zc37JQ="
,
"path"
:
"vitess.io/vitess/go/vt/proto/query"
,
"path"
:
"vitess.io/vitess/go/vt/proto/query"
,
"revision"
:
"
63d2180c9442f64cec8f5cc6e5eb43947034e8ef
"
,
"revision"
:
"
5bec5a560c87897b5d973bbced81764f3cf0f330
"
,
"revisionTime"
:
"2018-12-0
3T23:57:47
Z"
"revisionTime"
:
"2018-12-0
5T00:00:15
Z"
},
},
{
{
"checksumSHA1"
:
"o0tR/c7lgr0pLkxk7CdvjiNDAKU="
,
"checksumSHA1"
:
"o0tR/c7lgr0pLkxk7CdvjiNDAKU="
,
"path"
:
"vitess.io/vitess/go/vt/proto/topodata"
,
"path"
:
"vitess.io/vitess/go/vt/proto/topodata"
,
"revision"
:
"
63d2180c9442f64cec8f5cc6e5eb43947034e8ef
"
,
"revision"
:
"
5bec5a560c87897b5d973bbced81764f3cf0f330
"
,
"revisionTime"
:
"2018-12-0
3T23:57:47
Z"
"revisionTime"
:
"2018-12-0
5T00:00:15
Z"
},
},
{
{
"checksumSHA1"
:
"77UojBqi0yyeQvR70j7C3kcKclQ="
,
"checksumSHA1"
:
"77UojBqi0yyeQvR70j7C3kcKclQ="
,
"path"
:
"vitess.io/vitess/go/vt/proto/vtgate"
,
"path"
:
"vitess.io/vitess/go/vt/proto/vtgate"
,
"revision"
:
"
63d2180c9442f64cec8f5cc6e5eb43947034e8ef
"
,
"revision"
:
"
5bec5a560c87897b5d973bbced81764f3cf0f330
"
,
"revisionTime"
:
"2018-12-0
3T23:57:47
Z"
"revisionTime"
:
"2018-12-0
5T00:00:15
Z"
},
},
{
{
"checksumSHA1"
:
"QpWGhoVDwM+8+sgYLI/YU+95iGU="
,
"checksumSHA1"
:
"QpWGhoVDwM+8+sgYLI/YU+95iGU="
,
"path"
:
"vitess.io/vitess/go/vt/proto/vtrpc"
,
"path"
:
"vitess.io/vitess/go/vt/proto/vtrpc"
,
"revision"
:
"
63d2180c9442f64cec8f5cc6e5eb43947034e8ef
"
,
"revision"
:
"
5bec5a560c87897b5d973bbced81764f3cf0f330
"
,
"revisionTime"
:
"2018-12-0
3T23:57:47
Z"
"revisionTime"
:
"2018-12-0
5T00:00:15
Z"
},
},
{
{
"checksumSHA1"
:
"CZ0WbR7TBTgF9HoY+aRxzOzVlSs="
,
"checksumSHA1"
:
"CZ0WbR7TBTgF9HoY+aRxzOzVlSs="
,
"path"
:
"vitess.io/vitess/go/vt/sqlparser"
,
"path"
:
"vitess.io/vitess/go/vt/sqlparser"
,
"revision"
:
"
63d2180c9442f64cec8f5cc6e5eb43947034e8ef
"
,
"revision"
:
"
5bec5a560c87897b5d973bbced81764f3cf0f330
"
,
"revisionTime"
:
"2018-12-0
3T23:57:47
Z"
"revisionTime"
:
"2018-12-0
5T00:00:15
Z"
},
},
{
{
"checksumSHA1"
:
"oF4XzuOzwvj1iduX/lYqNSyY/HM="
,
"checksumSHA1"
:
"oF4XzuOzwvj1iduX/lYqNSyY/HM="
,
"path"
:
"vitess.io/vitess/go/vt/vterrors"
,
"path"
:
"vitess.io/vitess/go/vt/vterrors"
,
"revision"
:
"
63d2180c9442f64cec8f5cc6e5eb43947034e8ef
"
,
"revision"
:
"
5bec5a560c87897b5d973bbced81764f3cf0f330
"
,
"revisionTime"
:
"2018-12-0
3T23:57:47
Z"
"revisionTime"
:
"2018-12-0
5T00:00:15
Z"
}
}
],
],
"rootPath"
:
"github.com/XiaoMi/soar"
"rootPath"
:
"github.com/XiaoMi/soar"
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录