提交 4e9b365a 编写于 作者: martianzhang's avatar martianzhang

update vendor

上级 b647d031
......@@ -1399,7 +1399,39 @@ type WindowSpec struct {
// Restore implements Node interface.
func (n *WindowSpec) Restore(ctx *RestoreCtx) error {
return errors.New("Not implemented")
if name := n.Name.String(); name != "" {
ctx.WriteName(name)
ctx.WriteKeyWord(" AS ")
}
ctx.WritePlain("(")
sep := ""
if refName := n.Ref.String(); refName != "" {
ctx.WriteName(refName)
sep = " "
}
if n.PartitionBy != nil {
ctx.WritePlain(sep)
if err := n.PartitionBy.Restore(ctx); err != nil {
return errors.Annotate(err, "An error occurred while restore WindowSpec.PartitionBy")
}
sep = " "
}
if n.OrderBy != nil {
ctx.WritePlain(sep)
if err := n.OrderBy.Restore(ctx); err != nil {
return errors.Annotate(err, "An error occurred while restore WindowSpec.OrderBy")
}
sep = " "
}
if n.Frame != nil {
ctx.WritePlain(sep)
if err := n.Frame.Restore(ctx); err != nil {
return errors.Annotate(err, "An error occurred while restore WindowSpec.Frame")
}
}
ctx.WritePlain(")")
return nil
}
// Accept implements Node Accept interface.
......@@ -1442,7 +1474,16 @@ type PartitionByClause struct {
// Restore implements Node interface.
func (n *PartitionByClause) Restore(ctx *RestoreCtx) error {
return errors.New("Not implemented")
ctx.WriteKeyWord("PARTITION BY ")
for i, v := range n.Items {
if i != 0 {
ctx.WritePlain(", ")
}
if err := v.Restore(ctx); err != nil {
return errors.Annotatef(err, "An error occurred while restore PartitionByClause.Items[%d]", i)
}
}
return nil
}
// Accept implements Node Accept interface.
......@@ -1483,7 +1524,24 @@ type FrameClause struct {
// Restore implements Node interface.
func (n *FrameClause) Restore(ctx *RestoreCtx) error {
return errors.New("Not implemented")
switch n.Type {
case Rows:
ctx.WriteKeyWord("ROWS")
case Ranges:
ctx.WriteKeyWord("RANGE")
default:
return errors.New("Unsupported window function frame type")
}
ctx.WriteKeyWord(" BETWEEN ")
if err := n.Extent.Start.Restore(ctx); err != nil {
return errors.Annotate(err, "An error occurred while restore FrameClause.Extent.Start")
}
ctx.WriteKeyWord(" AND ")
if err := n.Extent.End.Restore(ctx); err != nil {
return errors.Annotate(err, "An error occurred while restore FrameClause.Extent.End")
}
return nil
}
// Accept implements Node Accept interface.
......
......@@ -725,7 +725,31 @@ type WindowFuncExpr struct {
// Restore implements Node interface.
func (n *WindowFuncExpr) Restore(ctx *RestoreCtx) error {
return errors.New("Not implemented")
ctx.WriteKeyWord(n.F)
ctx.WritePlain("(")
for i, v := range n.Args {
if i != 0 {
ctx.WritePlain(", ")
} else if n.Distinct {
ctx.WriteKeyWord("DISTINCT ")
}
if err := v.Restore(ctx); err != nil {
return errors.Annotatef(err, "An error occurred while restore WindowFuncExpr.Args[%d]", i)
}
}
ctx.WritePlain(")")
if n.FromLast {
ctx.WriteKeyWord(" FROM LAST")
}
if n.IgnoreNull {
ctx.WriteKeyWord(" IGNORE NULLS")
}
ctx.WriteKeyWord(" OVER ")
if err := n.Spec.Restore(ctx); err != nil {
return errors.Annotate(err, "An error occurred while restore WindowFuncExpr.Spec")
}
return nil
}
// Format formats the window function expression into a Writer.
......
......@@ -730,6 +730,7 @@ const (
AdminChecksumTable
AdminShowSlow
AdminShowNextRowID
AdminRestoreTable
)
// HandleRange represents a range where handle value >= Begin and < End.
......
......@@ -411,6 +411,7 @@ var tokenMap = map[string]int{
"RESPECT": respect,
"REPLICATION": replication,
"RESTRICT": restrict,
"RESTORE": restore,
"REVERSE": reverse,
"REVOKE": revoke,
"RIGHT": right,
......
......@@ -54,6 +54,7 @@ const (
ActionModifyTableCharsetAndCollate ActionType = 22
ActionTruncateTablePartition ActionType = 23
ActionDropView ActionType = 24
ActionRestoreTable ActionType = 25
)
// AddIndexStr is a string related to the operation of "add index".
......@@ -84,6 +85,7 @@ var actionMap = map[ActionType]string{
ActionModifyTableCharsetAndCollate: "modify table charset and collate",
ActionTruncateTablePartition: "truncate partition",
ActionDropView: "drop view",
ActionRestoreTable: "restore table",
}
// String return current ddl action in string
......
......@@ -482,6 +482,7 @@ import (
tidbHJ "TIDB_HJ"
tidbSMJ "TIDB_SMJ"
tidbINLJ "TIDB_INLJ"
restore "RESTORE"
builtinAddDate
builtinBitAnd
......@@ -2995,7 +2996,7 @@ UnReservedKeyword:
TiDBKeyword:
"ADMIN" | "BUCKETS" | "CANCEL" | "DDL" | "JOBS" | "JOB" | "STATS" | "STATS_META" | "STATS_HISTOGRAMS" | "STATS_BUCKETS" | "STATS_HEALTHY" | "TIDB" | "TIDB_HJ" | "TIDB_SMJ" | "TIDB_INLJ"
"ADMIN" | "BUCKETS" | "CANCEL" | "DDL" | "JOBS" | "JOB" | "STATS" | "STATS_META" | "STATS_HISTOGRAMS" | "STATS_BUCKETS" | "STATS_HEALTHY" | "TIDB" | "TIDB_HJ" | "TIDB_SMJ" | "TIDB_INLJ" | "RESTORE"
NotKeywordToken:
"ADDDATE" | "BIT_AND" | "BIT_OR" | "BIT_XOR" | "CAST" | "COPY" | "COUNT" | "CURTIME" | "DATE_ADD" | "DATE_SUB" | "EXTRACT" | "GET_FORMAT" | "GROUP_CONCAT"
......@@ -5763,6 +5764,13 @@ AdminStmt:
Index: string($5),
}
}
| "ADMIN" "RESTORE" "TABLE" "BY" "JOB" NumList
{
$$ = &ast.AdminStmt{
Tp: ast.AdminRestoreTable,
JobIDs: $6.([]int64),
}
}
| "ADMIN" "CLEANUP" "INDEX" TableName Identifier
{
$$ = &ast.AdminStmt{
......
......@@ -111,106 +111,106 @@
"revisionTime": "2018-10-24T15:10:47Z"
},
{
"checksumSHA1": "/y8A3Ro/qdM6f7XFR0JADJl0sFw=",
"checksumSHA1": "oPVvRBag6XbaB4dN38RkdejKr70=",
"path": "github.com/pingcap/parser",
"revision": "5d5a6dd34655f3d11723db47479541d32d2c76f2",
"revisionTime": "2019-01-03T13:14:33Z"
"revision": "5f15dc90ca5964d59634063e29c22ff6c7d9e49e",
"revisionTime": "2019-01-05T06:04:45Z"
},
{
"checksumSHA1": "TmSk8q5zaa7SI3G9VJpal7z8o+4=",
"checksumSHA1": "+KVexpbQ1kxBZA/iUahnFkIUGsU=",
"path": "github.com/pingcap/parser/ast",
"revision": "5d5a6dd34655f3d11723db47479541d32d2c76f2",
"revisionTime": "2019-01-03T13:14:33Z"
"revision": "5f15dc90ca5964d59634063e29c22ff6c7d9e49e",
"revisionTime": "2019-01-05T06:04:45Z"
},
{
"checksumSHA1": "skWGV4FNvD3vr+5olepaPPnylUw=",
"path": "github.com/pingcap/parser/auth",
"revision": "5d5a6dd34655f3d11723db47479541d32d2c76f2",
"revisionTime": "2019-01-03T13:14:33Z"
"revision": "5f15dc90ca5964d59634063e29c22ff6c7d9e49e",
"revisionTime": "2019-01-05T06:04:45Z"
},
{
"checksumSHA1": "t4UHo966WzU9Z0IJkyGHRp0loOk=",
"path": "github.com/pingcap/parser/charset",
"revision": "5d5a6dd34655f3d11723db47479541d32d2c76f2",
"revisionTime": "2019-01-03T13:14:33Z"
"revision": "5f15dc90ca5964d59634063e29c22ff6c7d9e49e",
"revisionTime": "2019-01-05T06:04:45Z"
},
{
"checksumSHA1": "SInoXbsRe0tnBwmatmtZYfSFbdk=",
"path": "github.com/pingcap/parser/format",
"revision": "5d5a6dd34655f3d11723db47479541d32d2c76f2",
"revisionTime": "2019-01-03T13:14:33Z"
"revision": "5f15dc90ca5964d59634063e29c22ff6c7d9e49e",
"revisionTime": "2019-01-05T06:04:45Z"
},
{
"checksumSHA1": "fMXmawvMELfwCuO/vrNtkUjQN/0=",
"checksumSHA1": "ZADwr2/PcEd9VI3XF9OvN4HkJ+8=",
"path": "github.com/pingcap/parser/model",
"revision": "5d5a6dd34655f3d11723db47479541d32d2c76f2",
"revisionTime": "2019-01-03T13:14:33Z"
"revision": "5f15dc90ca5964d59634063e29c22ff6c7d9e49e",
"revisionTime": "2019-01-05T06:04:45Z"
},
{
"checksumSHA1": "kkqyRzO7TCqnABxjJEo+JclJZLM=",
"path": "github.com/pingcap/parser/mysql",
"revision": "5d5a6dd34655f3d11723db47479541d32d2c76f2",
"revisionTime": "2019-01-03T13:14:33Z"
"revision": "5f15dc90ca5964d59634063e29c22ff6c7d9e49e",
"revisionTime": "2019-01-05T06:04:45Z"
},
{
"checksumSHA1": "mxpiJJ3b08I0o0Sd2rJLYMwz7uw=",
"path": "github.com/pingcap/parser/opcode",
"revision": "5d5a6dd34655f3d11723db47479541d32d2c76f2",
"revisionTime": "2019-01-03T13:14:33Z"
"revision": "5f15dc90ca5964d59634063e29c22ff6c7d9e49e",
"revisionTime": "2019-01-05T06:04:45Z"
},
{
"checksumSHA1": "XvnUllvwMYd6HrMvMiKnn4cGN2M=",
"path": "github.com/pingcap/parser/terror",
"revision": "5d5a6dd34655f3d11723db47479541d32d2c76f2",
"revisionTime": "2019-01-03T13:14:33Z"
"revision": "5f15dc90ca5964d59634063e29c22ff6c7d9e49e",
"revisionTime": "2019-01-05T06:04:45Z"
},
{
"checksumSHA1": "CpuZhpMNeho4tIFPwY2GUDvuEfQ=",
"path": "github.com/pingcap/parser/types",
"revision": "5d5a6dd34655f3d11723db47479541d32d2c76f2",
"revisionTime": "2019-01-03T13:14:33Z"
"revision": "5f15dc90ca5964d59634063e29c22ff6c7d9e49e",
"revisionTime": "2019-01-05T06:04:45Z"
},
{
"checksumSHA1": "MxoLdFWi8nwd0uqTJnYqw+JaDAY=",
"path": "github.com/pingcap/tidb/sessionctx/stmtctx",
"revision": "0147e0cece4481807289cc4cd867cb8d2abd3145",
"revisionTime": "2019-01-03T09:11:14Z"
"revision": "78a51a4626999279749c460f3f42a2e92897c2e3",
"revisionTime": "2019-01-05T13:32:32Z"
},
{
"checksumSHA1": "wlD7aGqTJ5eBQYK0ub4b2Ick1j8=",
"path": "github.com/pingcap/tidb/types",
"revision": "0147e0cece4481807289cc4cd867cb8d2abd3145",
"revisionTime": "2019-01-03T09:11:14Z"
"revision": "78a51a4626999279749c460f3f42a2e92897c2e3",
"revisionTime": "2019-01-05T13:32:32Z"
},
{
"checksumSHA1": "DWVD7+ygtT66IQ+cqXmMJ5OVqUk=",
"path": "github.com/pingcap/tidb/types/json",
"revision": "0147e0cece4481807289cc4cd867cb8d2abd3145",
"revisionTime": "2019-01-03T09:11:14Z"
"revision": "78a51a4626999279749c460f3f42a2e92897c2e3",
"revisionTime": "2019-01-05T13:32:32Z"
},
{
"checksumSHA1": "6vi/eCZXqNTa5eAUpxDZet4LPlY=",
"path": "github.com/pingcap/tidb/types/parser_driver",
"revision": "0147e0cece4481807289cc4cd867cb8d2abd3145",
"revisionTime": "2019-01-03T09:11:14Z"
"revision": "78a51a4626999279749c460f3f42a2e92897c2e3",
"revisionTime": "2019-01-05T13:32:32Z"
},
{
"checksumSHA1": "SS7twHZofFKr8w/pwIKmkp3u5qU=",
"path": "github.com/pingcap/tidb/util/execdetails",
"revision": "0147e0cece4481807289cc4cd867cb8d2abd3145",
"revisionTime": "2019-01-03T09:11:14Z"
"revision": "78a51a4626999279749c460f3f42a2e92897c2e3",
"revisionTime": "2019-01-05T13:32:32Z"
},
{
"checksumSHA1": "nUC7zVoAMNR2a+z2iGqHoN2AkFE=",
"path": "github.com/pingcap/tidb/util/hack",
"revision": "0147e0cece4481807289cc4cd867cb8d2abd3145",
"revisionTime": "2019-01-03T09:11:14Z"
"revision": "78a51a4626999279749c460f3f42a2e92897c2e3",
"revisionTime": "2019-01-05T13:32:32Z"
},
{
"checksumSHA1": "xSyepiuqsoaaeDch7cXeumvVHKM=",
"path": "github.com/pingcap/tidb/util/memory",
"revision": "0147e0cece4481807289cc4cd867cb8d2abd3145",
"revisionTime": "2019-01-03T09:11:14Z"
"revision": "78a51a4626999279749c460f3f42a2e92897c2e3",
"revisionTime": "2019-01-05T13:32:32Z"
},
{
"checksumSHA1": "SmYeIK/fIYXNu8IKxD6HOVQVTuU=",
......@@ -407,62 +407,62 @@
{
"checksumSHA1": "aKn1oKcY74N8TRLm3Ayt7Q4bbI4=",
"path": "vitess.io/vitess/go/bytes2",
"revision": "6cf46db00d35072b69e7dcbec207d99836da0419",
"revisionTime": "2019-01-03T03:49:25Z"
"revision": "ae79dd48f3157c96d083c890f670011cdebf0a2b",
"revisionTime": "2019-01-04T23:32:40Z"
},
{
"checksumSHA1": "JVCEN4UGRmg3TofIBdzZMZ3G0Ww=",
"path": "vitess.io/vitess/go/hack",
"revision": "6cf46db00d35072b69e7dcbec207d99836da0419",
"revisionTime": "2019-01-03T03:49:25Z"
"revision": "ae79dd48f3157c96d083c890f670011cdebf0a2b",
"revisionTime": "2019-01-04T23:32:40Z"
},
{
"checksumSHA1": "F5pcGq+2W1FHEjgktTdKOE6W8mk=",
"path": "vitess.io/vitess/go/sqltypes",
"revision": "6cf46db00d35072b69e7dcbec207d99836da0419",
"revisionTime": "2019-01-03T03:49:25Z"
"revision": "ae79dd48f3157c96d083c890f670011cdebf0a2b",
"revisionTime": "2019-01-04T23:32:40Z"
},
{
"checksumSHA1": "ntFIQYkBS51G6y+FEkjFW40+HOU=",
"path": "vitess.io/vitess/go/vt/log",
"revision": "6cf46db00d35072b69e7dcbec207d99836da0419",
"revisionTime": "2019-01-03T03:49:25Z"
"revision": "ae79dd48f3157c96d083c890f670011cdebf0a2b",
"revisionTime": "2019-01-04T23:32:40Z"
},
{
"checksumSHA1": "HHIcl3lpWkzLARkkNv94fVaObjo=",
"path": "vitess.io/vitess/go/vt/proto/query",
"revision": "6cf46db00d35072b69e7dcbec207d99836da0419",
"revisionTime": "2019-01-03T03:49:25Z"
"revision": "ae79dd48f3157c96d083c890f670011cdebf0a2b",
"revisionTime": "2019-01-04T23:32:40Z"
},
{
"checksumSHA1": "YLWTmL+rvz0htn0niRMrIUI6rKc=",
"path": "vitess.io/vitess/go/vt/proto/topodata",
"revision": "6cf46db00d35072b69e7dcbec207d99836da0419",
"revisionTime": "2019-01-03T03:49:25Z"
"revision": "ae79dd48f3157c96d083c890f670011cdebf0a2b",
"revisionTime": "2019-01-04T23:32:40Z"
},
{
"checksumSHA1": "tNNlcSFFnlOauS2hXnrz/zA/wfk=",
"path": "vitess.io/vitess/go/vt/proto/vtgate",
"revision": "6cf46db00d35072b69e7dcbec207d99836da0419",
"revisionTime": "2019-01-03T03:49:25Z"
"revision": "ae79dd48f3157c96d083c890f670011cdebf0a2b",
"revisionTime": "2019-01-04T23:32:40Z"
},
{
"checksumSHA1": "qz32abYdmm9NfKTc++K0l1EvXXM=",
"path": "vitess.io/vitess/go/vt/proto/vtrpc",
"revision": "6cf46db00d35072b69e7dcbec207d99836da0419",
"revisionTime": "2019-01-03T03:49:25Z"
"revision": "ae79dd48f3157c96d083c890f670011cdebf0a2b",
"revisionTime": "2019-01-04T23:32:40Z"
},
{
"checksumSHA1": "IDe+9Bn42lZVsuoYO/epdguiErk=",
"path": "vitess.io/vitess/go/vt/sqlparser",
"revision": "6cf46db00d35072b69e7dcbec207d99836da0419",
"revisionTime": "2019-01-03T03:49:25Z"
"revision": "ae79dd48f3157c96d083c890f670011cdebf0a2b",
"revisionTime": "2019-01-04T23:32:40Z"
},
{
"checksumSHA1": "Jx+gOh/kiBDSZxEIWHyYn9brjdo=",
"path": "vitess.io/vitess/go/vt/vterrors",
"revision": "6cf46db00d35072b69e7dcbec207d99836da0419",
"revisionTime": "2019-01-03T03:49:25Z"
"revision": "ae79dd48f3157c96d083c890f670011cdebf0a2b",
"revisionTime": "2019-01-04T23:32:40Z"
}
],
"rootPath": "github.com/XiaoMi/soar"
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册