提交 66b7f102 编写于 作者: martianzhang's avatar martianzhang

vendor daily update

上级 4523e993
......@@ -407,6 +407,11 @@ func (n *ColumnOption) Restore(ctx *RestoreCtx) error {
return errors.Annotate(err, "An error occurred while splicing ColumnOption GENERATED ALWAYS Expr")
}
ctx.WritePlain(")")
if n.Stored {
ctx.WriteKeyWord(" STORED")
} else {
ctx.WriteKeyWord(" VIRTUAL")
}
case ColumnOptionReference:
if err := n.Refer.Restore(ctx); err != nil {
return errors.Annotate(err, "An error occurred while splicing ColumnOption ReferenceDef")
......
......@@ -42,7 +42,15 @@ func DigestHash(sql string) (result string) {
// for example: Normalize('select 1 from b where a = 1') => 'select ? from b where a = ?'
func Normalize(sql string) (result string) {
d := digesterPool.Get().(*sqlDigester)
result = d.doDigestText(sql)
result = d.doNormalize(sql)
digesterPool.Put(d)
return
}
// NormalizeDigest combines Normalize and DigestHash into one method.
func NormalizeDigest(sql string) (normalized, digest string) {
d := digesterPool.Get().(*sqlDigester)
normalized, digest = d.doNormalizeDigest(sql)
digesterPool.Put(d)
return
}
......@@ -73,14 +81,23 @@ func (d *sqlDigester) doDigest(sql string) (result string) {
return
}
func (d *sqlDigester) doDigestText(sql string) (result string) {
func (d *sqlDigester) doNormalize(sql string) (result string) {
d.normalize(sql)
result = string(d.buffer.Bytes())
d.lexer.reset("")
d.buffer.Reset()
return
}
func (d *sqlDigester) doNormalizeDigest(sql string) (normalized, digest string) {
d.normalize(sql)
normalized = string(d.buffer.Bytes())
d.hasher.Write(d.buffer.Bytes())
d.buffer.Reset()
digest = fmt.Sprintf("%x", d.hasher.Sum(nil))
d.hasher.Reset()
return
}
const (
// genericSymbol presents parameter holder ("?") in statement
// it can be any value as long as it is not repeated with other tokens.
......
......@@ -17,8 +17,8 @@ import (
"fmt"
"strings"
"github.com/pingcap/errors"
. "github.com/pingcap/parser/format"
"github.com/pkg/errors"
)
func newInvalidModeErr(s string) error {
......@@ -225,6 +225,10 @@ const (
CreateViewPriv
// ShowViewPriv is the privilege to show create view.
ShowViewPriv
// CreateRolePriv the privilege to create a role.
CreateRolePriv
// DropRolePriv is the privilege to drop a role.
DropRolePriv
// AllPriv is the privilege for all actions.
AllPriv
)
......@@ -286,6 +290,8 @@ var Priv2UserCol = map[PrivilegeType]string{
IndexPriv: "Index_priv",
CreateViewPriv: "Create_view_priv",
ShowViewPriv: "Show_view_priv",
CreateRolePriv: "Create_role_priv",
DropRolePriv: "Drop_role_priv",
}
// Command2Str is the command information to command name.
......@@ -344,10 +350,12 @@ var Col2PrivType = map[string]PrivilegeType{
"Index_priv": IndexPriv,
"Create_view_priv": CreateViewPriv,
"Show_view_priv": ShowViewPriv,
"Create_role_priv": CreateRolePriv,
"Drop_role_priv": DropRolePriv,
}
// AllGlobalPrivs is all the privileges in global scope.
var AllGlobalPrivs = []PrivilegeType{SelectPriv, InsertPriv, UpdatePriv, DeletePriv, CreatePriv, DropPriv, ProcessPriv, GrantPriv, ReferencesPriv, AlterPriv, ShowDBPriv, SuperPriv, ExecutePriv, IndexPriv, CreateUserPriv, TriggerPriv, CreateViewPriv, ShowViewPriv}
var AllGlobalPrivs = []PrivilegeType{SelectPriv, InsertPriv, UpdatePriv, DeletePriv, CreatePriv, DropPriv, ProcessPriv, GrantPriv, ReferencesPriv, AlterPriv, ShowDBPriv, SuperPriv, ExecutePriv, IndexPriv, CreateUserPriv, TriggerPriv, CreateViewPriv, ShowViewPriv, CreateRolePriv, DropRolePriv}
// Priv2Str is the map for privilege to string.
var Priv2Str = map[PrivilegeType]string{
......@@ -369,6 +377,8 @@ var Priv2Str = map[PrivilegeType]string{
IndexPriv: "Index",
CreateViewPriv: "Create View",
ShowViewPriv: "Show View",
CreateRolePriv: "Create Role",
DropRolePriv: "Drop Role",
}
// Priv2SetStr is the map for privilege to string.
......@@ -385,6 +395,8 @@ var Priv2SetStr = map[PrivilegeType]string{
IndexPriv: "Index",
CreateViewPriv: "Create View",
ShowViewPriv: "Show View",
CreateRolePriv: "Create Role",
DropRolePriv: "Drop Role",
}
// SetStr2Priv is the map for privilege set string to privilege type.
......
......@@ -7739,6 +7739,14 @@ PrivType:
{
$$ = mysql.ShowViewPriv
}
| "CREATE" "ROLE"
{
$$ = mysql.CreateRolePriv
}
| "DROP" "ROLE"
{
$$ = mysql.DropRolePriv
}
| "CREATE" "ROUTINE"
{
$$ = mysql.PrivilegeType(0)
......
......@@ -111,106 +111,106 @@
"revisionTime": "2018-10-24T15:10:47Z"
},
{
"checksumSHA1": "SEiIj/X95cyoI8/a0z2XBpzE+CI=",
"checksumSHA1": "w2ovuDiVpyUmQcUbj2YxcsTpXvQ=",
"path": "github.com/pingcap/parser",
"revision": "f7d75264dcc6bc53a720eeffeb47ab8db9fb3801",
"revisionTime": "2019-02-21T06:24:14Z"
"revision": "9aec15dc380e02d431959b4d6ecc9ea6a7857929",
"revisionTime": "2019-02-27T06:31:08Z"
},
{
"checksumSHA1": "saYDWHgFCkZAYZeOGfowg2TEAss=",
"checksumSHA1": "6zdPzVXS7qRwXub201Wry93H350=",
"path": "github.com/pingcap/parser/ast",
"revision": "f7d75264dcc6bc53a720eeffeb47ab8db9fb3801",
"revisionTime": "2019-02-21T06:24:14Z"
"revision": "9aec15dc380e02d431959b4d6ecc9ea6a7857929",
"revisionTime": "2019-02-27T06:31:08Z"
},
{
"checksumSHA1": "40q2uTuOqgcdXxoauVNVO+FCxe8=",
"path": "github.com/pingcap/parser/auth",
"revision": "f7d75264dcc6bc53a720eeffeb47ab8db9fb3801",
"revisionTime": "2019-02-21T06:24:14Z"
"revision": "9aec15dc380e02d431959b4d6ecc9ea6a7857929",
"revisionTime": "2019-02-27T06:31:08Z"
},
{
"checksumSHA1": "t4UHo966WzU9Z0IJkyGHRp0loOk=",
"path": "github.com/pingcap/parser/charset",
"revision": "f7d75264dcc6bc53a720eeffeb47ab8db9fb3801",
"revisionTime": "2019-02-21T06:24:14Z"
"revision": "9aec15dc380e02d431959b4d6ecc9ea6a7857929",
"revisionTime": "2019-02-27T06:31:08Z"
},
{
"checksumSHA1": "ohLJW2u9NJEzYIJL/AjOqcuKfMY=",
"path": "github.com/pingcap/parser/format",
"revision": "f7d75264dcc6bc53a720eeffeb47ab8db9fb3801",
"revisionTime": "2019-02-21T06:24:14Z"
"revision": "9aec15dc380e02d431959b4d6ecc9ea6a7857929",
"revisionTime": "2019-02-27T06:31:08Z"
},
{
"checksumSHA1": "AqNgtzIGY8g7Ojd9ofE8EtKW2mk=",
"path": "github.com/pingcap/parser/model",
"revision": "f7d75264dcc6bc53a720eeffeb47ab8db9fb3801",
"revisionTime": "2019-02-21T06:24:14Z"
"revision": "9aec15dc380e02d431959b4d6ecc9ea6a7857929",
"revisionTime": "2019-02-27T06:31:08Z"
},
{
"checksumSHA1": "SrliCbNvJrQExC1gULpw7FAiE6s=",
"checksumSHA1": "VTENSvegjPoIFuTjrha5taOkElk=",
"path": "github.com/pingcap/parser/mysql",
"revision": "f7d75264dcc6bc53a720eeffeb47ab8db9fb3801",
"revisionTime": "2019-02-21T06:24:14Z"
"revision": "9aec15dc380e02d431959b4d6ecc9ea6a7857929",
"revisionTime": "2019-02-27T06:31:08Z"
},
{
"checksumSHA1": "olapD16WCMBU9vrA5PtlERGFfXw=",
"path": "github.com/pingcap/parser/opcode",
"revision": "f7d75264dcc6bc53a720eeffeb47ab8db9fb3801",
"revisionTime": "2019-02-21T06:24:14Z"
"revision": "9aec15dc380e02d431959b4d6ecc9ea6a7857929",
"revisionTime": "2019-02-27T06:31:08Z"
},
{
"checksumSHA1": "TF2rMYy9ewgZpFsJb+jaGXXqZqc=",
"path": "github.com/pingcap/parser/terror",
"revision": "f7d75264dcc6bc53a720eeffeb47ab8db9fb3801",
"revisionTime": "2019-02-21T06:24:14Z"
"revision": "9aec15dc380e02d431959b4d6ecc9ea6a7857929",
"revisionTime": "2019-02-27T06:31:08Z"
},
{
"checksumSHA1": "dxjAHfRcmXkQdf0HeueDrUO+BcM=",
"path": "github.com/pingcap/parser/types",
"revision": "f7d75264dcc6bc53a720eeffeb47ab8db9fb3801",
"revisionTime": "2019-02-21T06:24:14Z"
"revision": "9aec15dc380e02d431959b4d6ecc9ea6a7857929",
"revisionTime": "2019-02-27T06:31:08Z"
},
{
"checksumSHA1": "uOrWw9c47zwN6COxonFJ0t2IMcM=",
"path": "github.com/pingcap/tidb/sessionctx/stmtctx",
"revision": "38a453d29c8cb6644c6bfd28be4efe243e10c161",
"revisionTime": "2019-02-21T13:18:03Z"
"revision": "839772b528a01c5e9ba1a9a48a02434efb6485c6",
"revisionTime": "2019-02-27T06:33:03Z"
},
{
"checksumSHA1": "IJSv0YocnSmIZRpgQJ1pLtHL8vY=",
"path": "github.com/pingcap/tidb/types",
"revision": "38a453d29c8cb6644c6bfd28be4efe243e10c161",
"revisionTime": "2019-02-21T13:18:03Z"
"revision": "839772b528a01c5e9ba1a9a48a02434efb6485c6",
"revisionTime": "2019-02-27T06:33:03Z"
},
{
"checksumSHA1": "fPdBwAtPVKOr7YAyOMnRxyHixoM=",
"path": "github.com/pingcap/tidb/types/json",
"revision": "38a453d29c8cb6644c6bfd28be4efe243e10c161",
"revisionTime": "2019-02-21T13:18:03Z"
"revision": "839772b528a01c5e9ba1a9a48a02434efb6485c6",
"revisionTime": "2019-02-27T06:33:03Z"
},
{
"checksumSHA1": "tY4KSNzuTGm+dgV6ByZEGa6mv5E=",
"path": "github.com/pingcap/tidb/types/parser_driver",
"revision": "38a453d29c8cb6644c6bfd28be4efe243e10c161",
"revisionTime": "2019-02-21T13:18:03Z"
"revision": "839772b528a01c5e9ba1a9a48a02434efb6485c6",
"revisionTime": "2019-02-27T06:33:03Z"
},
{
"checksumSHA1": "oSpVUrmVZl6RPxrpwtKgeNodckQ=",
"path": "github.com/pingcap/tidb/util/execdetails",
"revision": "38a453d29c8cb6644c6bfd28be4efe243e10c161",
"revisionTime": "2019-02-21T13:18:03Z"
"revision": "839772b528a01c5e9ba1a9a48a02434efb6485c6",
"revisionTime": "2019-02-27T06:33:03Z"
},
{
"checksumSHA1": "RdbHgQWMHjRtKjqPcTX81k1V3sw=",
"path": "github.com/pingcap/tidb/util/hack",
"revision": "38a453d29c8cb6644c6bfd28be4efe243e10c161",
"revisionTime": "2019-02-21T13:18:03Z"
"revision": "839772b528a01c5e9ba1a9a48a02434efb6485c6",
"revisionTime": "2019-02-27T06:33:03Z"
},
{
"checksumSHA1": "xSyepiuqsoaaeDch7cXeumvVHKM=",
"path": "github.com/pingcap/tidb/util/memory",
"revision": "38a453d29c8cb6644c6bfd28be4efe243e10c161",
"revisionTime": "2019-02-21T13:18:03Z"
"revision": "839772b528a01c5e9ba1a9a48a02434efb6485c6",
"revisionTime": "2019-02-27T06:33:03Z"
},
{
"checksumSHA1": "QPIBwDNUFF5Whrnd41S3mkKa4gQ=",
......@@ -413,62 +413,62 @@
{
"checksumSHA1": "aKn1oKcY74N8TRLm3Ayt7Q4bbI4=",
"path": "vitess.io/vitess/go/bytes2",
"revision": "b7e5a982740b1bc49dc8129605b9f037370829ae",
"revisionTime": "2019-02-20T22:32:46Z"
"revision": "667eb19a2d4d50c973732ff3b8199c06df35db92",
"revisionTime": "2019-02-26T20:54:22Z"
},
{
"checksumSHA1": "bhE6CGQgZTIgLPp9lnvlKW/47xc=",
"path": "vitess.io/vitess/go/hack",
"revision": "b7e5a982740b1bc49dc8129605b9f037370829ae",
"revisionTime": "2019-02-20T22:32:46Z"
"revision": "667eb19a2d4d50c973732ff3b8199c06df35db92",
"revisionTime": "2019-02-26T20:54:22Z"
},
{
"checksumSHA1": "w4BH8HL/CgT6aBWojJeZHOj5DZg=",
"path": "vitess.io/vitess/go/sqltypes",
"revision": "b7e5a982740b1bc49dc8129605b9f037370829ae",
"revisionTime": "2019-02-20T22:32:46Z"
"revision": "667eb19a2d4d50c973732ff3b8199c06df35db92",
"revisionTime": "2019-02-26T20:54:22Z"
},
{
"checksumSHA1": "vAIRxI6MHsq3x1hLQwIyw5AvqtI=",
"path": "vitess.io/vitess/go/vt/log",
"revision": "b7e5a982740b1bc49dc8129605b9f037370829ae",
"revisionTime": "2019-02-20T22:32:46Z"
"revision": "667eb19a2d4d50c973732ff3b8199c06df35db92",
"revisionTime": "2019-02-26T20:54:22Z"
},
{
"checksumSHA1": "nRmynSAD/uvTjH0/Ftr9Iz/VsN4=",
"checksumSHA1": "1LYIGRrGbMt8LrzFEzH1iUQ5u5M=",
"path": "vitess.io/vitess/go/vt/proto/query",
"revision": "b7e5a982740b1bc49dc8129605b9f037370829ae",
"revisionTime": "2019-02-20T22:32:46Z"
"revision": "667eb19a2d4d50c973732ff3b8199c06df35db92",
"revisionTime": "2019-02-26T20:54:22Z"
},
{
"checksumSHA1": "YLWTmL+rvz0htn0niRMrIUI6rKc=",
"path": "vitess.io/vitess/go/vt/proto/topodata",
"revision": "b7e5a982740b1bc49dc8129605b9f037370829ae",
"revisionTime": "2019-02-20T22:32:46Z"
"revision": "667eb19a2d4d50c973732ff3b8199c06df35db92",
"revisionTime": "2019-02-26T20:54:22Z"
},
{
"checksumSHA1": "1gA4wbQ2DiVjeLJauYSQiuBJiE0=",
"path": "vitess.io/vitess/go/vt/proto/vtgate",
"revision": "b7e5a982740b1bc49dc8129605b9f037370829ae",
"revisionTime": "2019-02-20T22:32:46Z"
"revision": "667eb19a2d4d50c973732ff3b8199c06df35db92",
"revisionTime": "2019-02-26T20:54:22Z"
},
{
"checksumSHA1": "qz32abYdmm9NfKTc++K0l1EvXXM=",
"path": "vitess.io/vitess/go/vt/proto/vtrpc",
"revision": "b7e5a982740b1bc49dc8129605b9f037370829ae",
"revisionTime": "2019-02-20T22:32:46Z"
"revision": "667eb19a2d4d50c973732ff3b8199c06df35db92",
"revisionTime": "2019-02-26T20:54:22Z"
},
{
"checksumSHA1": "lpx8L51nDqrhQis64dEBk7RI32k=",
"path": "vitess.io/vitess/go/vt/sqlparser",
"revision": "b7e5a982740b1bc49dc8129605b9f037370829ae",
"revisionTime": "2019-02-20T22:32:46Z"
"revision": "667eb19a2d4d50c973732ff3b8199c06df35db92",
"revisionTime": "2019-02-26T20:54:22Z"
},
{
"checksumSHA1": "Jx+gOh/kiBDSZxEIWHyYn9brjdo=",
"path": "vitess.io/vitess/go/vt/vterrors",
"revision": "b7e5a982740b1bc49dc8129605b9f037370829ae",
"revisionTime": "2019-02-20T22:32:46Z"
"revision": "667eb19a2d4d50c973732ff3b8199c06df35db92",
"revisionTime": "2019-02-26T20:54:22Z"
}
],
"rootPath": "github.com/XiaoMi/soar"
......
......@@ -225,7 +225,7 @@ const (
// SET specifies a SET type.
// Properties: 27, IsQuoted.
Type_SET Type = 2075
// TUPLE specifies a a tuple. This cannot
// TUPLE specifies a tuple. This cannot
// be returned in a QueryResult, but it can
// be sent as a bind var.
// Properties: 28, None.
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册