提交 7d37fab7 编写于 作者: martianzhang's avatar martianzhang

update vendor

上级 6c844313
...@@ -321,6 +321,9 @@ const ( ...@@ -321,6 +321,9 @@ const (
JSONDepth = "json_depth" JSONDepth = "json_depth"
JSONKeys = "json_keys" JSONKeys = "json_keys"
JSONLength = "json_length" JSONLength = "json_length"
// TiDB internal function.
TiDBDecodeKey = "tidb_decode_key"
) )
// FuncCallExpr is for function expression. // FuncCallExpr is for function expression.
......
...@@ -47,6 +47,7 @@ type SQLWarn struct { ...@@ -47,6 +47,7 @@ type SQLWarn struct {
// It should be reset before executing a statement. // It should be reset before executing a statement.
type StatementContext struct { type StatementContext struct {
// Set the following variables before execution // Set the following variables before execution
StmtHints
// IsDDLJobInQueue is used to mark whether the DDL job is put into the queue. // IsDDLJobInQueue is used to mark whether the DDL job is put into the queue.
// If IsDDLJobInQueue is true, it means the DDL job is in the queue of storage, and it can be handled by the DDL worker. // If IsDDLJobInQueue is true, it means the DDL job is in the queue of storage, and it can be handled by the DDL worker.
...@@ -137,6 +138,21 @@ type StatementContext struct { ...@@ -137,6 +138,21 @@ type StatementContext struct {
Tables []TableEntry Tables []TableEntry
} }
// StmtHints are SessionVars related sql hints.
type StmtHints struct {
// Hint flags
HasAllowInSubqToJoinAndAggHint bool
HasEnableIndexMergeHint bool
HasMemQuotaHint bool
HasReplicaReadHint bool
// Hint Information
AllowInSubqToJoinAndAgg bool
EnableIndexMerge bool
MemQuotaQuery int64
ReplicaRead byte
}
// GetNowTsCached getter for nowTs, if not set get now time and cache it // GetNowTsCached getter for nowTs, if not set get now time and cache it
func (sc *StatementContext) GetNowTsCached() time.Time { func (sc *StatementContext) GetNowTsCached() time.Time {
if !sc.stmtTimeCached { if !sc.stmtTimeCached {
......
...@@ -341,6 +341,50 @@ func (d *Datum) SetAutoID(id int64, flag uint) { ...@@ -341,6 +341,50 @@ func (d *Datum) SetAutoID(id int64, flag uint) {
} }
} }
// String returns a human-readable description of Datum. It is intended only for debugging.
func (d Datum) String() string {
var t string
switch d.k {
case KindNull:
t = "KindNull"
case KindInt64:
t = "KindInt64"
case KindUint64:
t = "KindUint64"
case KindFloat32:
t = "KindFloat32"
case KindFloat64:
t = "KindFloat64"
case KindString:
t = "KindString"
case KindBytes:
t = "KindBytes"
case KindMysqlDecimal:
t = "KindMysqlDecimal"
case KindMysqlDuration:
t = "KindMysqlDuration"
case KindMysqlEnum:
t = "KindMysqlEnum"
case KindBinaryLiteral:
t = "KindBinaryLiteral"
case KindMysqlBit:
t = "KindMysqlBit"
case KindMysqlSet:
t = "KindMysqlSet"
case KindMysqlJSON:
t = "KindMysqlJSON"
case KindMysqlTime:
t = "KindMysqlTime"
default:
t = "Unknown"
}
v := d.GetValue()
if b, ok := v.([]byte); ok && d.k == KindBytes {
v = string(b)
}
return fmt.Sprintf("%v %v", t, v)
}
// GetValue gets the value of the datum of any kind. // GetValue gets the value of the datum of any kind.
func (d *Datum) GetValue() interface{} { func (d *Datum) GetValue() interface{} {
switch d.k { switch d.k {
......
...@@ -194,10 +194,12 @@ const ( ...@@ -194,10 +194,12 @@ const (
// FromGoTime translates time.Time to mysql time internal representation. // FromGoTime translates time.Time to mysql time internal representation.
func FromGoTime(t gotime.Time) MysqlTime { func FromGoTime(t gotime.Time) MysqlTime {
// Plus 500 nanosecond for rounding of the millisecond part.
t = t.Add(500 * gotime.Nanosecond)
year, month, day := t.Date() year, month, day := t.Date()
hour, minute, second := t.Clock() hour, minute, second := t.Clock()
// Nanosecond plus 500 then divided 1000 means rounding to microseconds. microsecond := t.Nanosecond() / 1000
microsecond := (t.Nanosecond() + 500) / 1000
return FromDate(year, int(month), day, hour, minute, second, microsecond) return FromDate(year, int(month), day, hour, minute, second, microsecond)
} }
......
...@@ -24,8 +24,15 @@ type MutableString string ...@@ -24,8 +24,15 @@ type MutableString string
// String converts slice to MutableString without copy. // String converts slice to MutableString without copy.
// The MutableString can be converts to string without copy. // The MutableString can be converts to string without copy.
// Use it at your own risk. // Use it at your own risk.
func String(b []byte) MutableString { func String(b []byte) (s MutableString) {
return *(*MutableString)(unsafe.Pointer(&b)) if len(b) == 0 {
return ""
}
pbytes := (*reflect.SliceHeader)(unsafe.Pointer(&b))
pstring := (*reflect.StringHeader)(unsafe.Pointer(&s))
pstring.Data = pbytes.Data
pstring.Len = pbytes.Len
return
} }
// Slice converts string to slice without copy. // Slice converts string to slice without copy.
......
...@@ -62,6 +62,12 @@ func NewTracker(label fmt.Stringer, bytesLimit int64) *Tracker { ...@@ -62,6 +62,12 @@ func NewTracker(label fmt.Stringer, bytesLimit int64) *Tracker {
} }
} }
// CheckBytesLimit check whether the bytes limit of the tracker is equal to a value.
// Only used in test.
func (t *Tracker) CheckBytesLimit(val int64) bool {
return t.bytesLimit == val
}
// SetBytesLimit sets the bytes limit for this tracker. // SetBytesLimit sets the bytes limit for this tracker.
// "bytesLimit <= 0" means no limit. // "bytesLimit <= 0" means no limit.
func (t *Tracker) SetBytesLimit(bytesLimit int64) { func (t *Tracker) SetBytesLimit(bytesLimit int64) {
......
...@@ -131,116 +131,116 @@ ...@@ -131,116 +131,116 @@
{ {
"checksumSHA1": "6Q3DjwHqeCoRIxBT+Jy5ctnK6hw=", "checksumSHA1": "6Q3DjwHqeCoRIxBT+Jy5ctnK6hw=",
"path": "github.com/pingcap/parser", "path": "github.com/pingcap/parser",
"revision": "978b8272c04e599620715e8493ca26775e8c0e5f", "revision": "33636bc5e5d6c114f4b443dee71ff72645656d96",
"revisionTime": "2019-09-12T03:26:24Z" "revisionTime": "2019-09-23T03:17:04Z"
}, },
{ {
"checksumSHA1": "QDkkRc/x4HH3FdHZ9pLPgeAw9+A=", "checksumSHA1": "2zFL4KJXdxL9LvQ/HNQhUDNIMd4=",
"path": "github.com/pingcap/parser/ast", "path": "github.com/pingcap/parser/ast",
"revision": "978b8272c04e599620715e8493ca26775e8c0e5f", "revision": "33636bc5e5d6c114f4b443dee71ff72645656d96",
"revisionTime": "2019-09-12T03:26:24Z" "revisionTime": "2019-09-23T03:17:04Z"
}, },
{ {
"checksumSHA1": "xiv40YqnvHcbIhaEzJqjh5K7ehM=", "checksumSHA1": "xiv40YqnvHcbIhaEzJqjh5K7ehM=",
"path": "github.com/pingcap/parser/auth", "path": "github.com/pingcap/parser/auth",
"revision": "978b8272c04e599620715e8493ca26775e8c0e5f", "revision": "33636bc5e5d6c114f4b443dee71ff72645656d96",
"revisionTime": "2019-09-12T03:26:24Z" "revisionTime": "2019-09-23T03:17:04Z"
}, },
{ {
"checksumSHA1": "EvDXpplklIXmKqLclzWzaN/uHKQ=", "checksumSHA1": "EvDXpplklIXmKqLclzWzaN/uHKQ=",
"path": "github.com/pingcap/parser/charset", "path": "github.com/pingcap/parser/charset",
"revision": "978b8272c04e599620715e8493ca26775e8c0e5f", "revision": "33636bc5e5d6c114f4b443dee71ff72645656d96",
"revisionTime": "2019-09-12T03:26:24Z" "revisionTime": "2019-09-23T03:17:04Z"
}, },
{ {
"checksumSHA1": "Aao6Mul/qqogOwPwM2arBKZkYZs=", "checksumSHA1": "Aao6Mul/qqogOwPwM2arBKZkYZs=",
"path": "github.com/pingcap/parser/format", "path": "github.com/pingcap/parser/format",
"revision": "978b8272c04e599620715e8493ca26775e8c0e5f", "revision": "33636bc5e5d6c114f4b443dee71ff72645656d96",
"revisionTime": "2019-09-12T03:26:24Z" "revisionTime": "2019-09-23T03:17:04Z"
}, },
{ {
"checksumSHA1": "GAJ7IUg0t8DCKJbJQxJLkklEj2E=", "checksumSHA1": "GAJ7IUg0t8DCKJbJQxJLkklEj2E=",
"path": "github.com/pingcap/parser/model", "path": "github.com/pingcap/parser/model",
"revision": "978b8272c04e599620715e8493ca26775e8c0e5f", "revision": "33636bc5e5d6c114f4b443dee71ff72645656d96",
"revisionTime": "2019-09-12T03:26:24Z" "revisionTime": "2019-09-23T03:17:04Z"
}, },
{ {
"checksumSHA1": "pN8v8r1syhLlLXw9TOq6bFgJfnY=", "checksumSHA1": "pN8v8r1syhLlLXw9TOq6bFgJfnY=",
"path": "github.com/pingcap/parser/mysql", "path": "github.com/pingcap/parser/mysql",
"revision": "978b8272c04e599620715e8493ca26775e8c0e5f", "revision": "33636bc5e5d6c114f4b443dee71ff72645656d96",
"revisionTime": "2019-09-12T03:26:24Z" "revisionTime": "2019-09-23T03:17:04Z"
}, },
{ {
"checksumSHA1": "olapD16WCMBU9vrA5PtlERGFfXw=", "checksumSHA1": "olapD16WCMBU9vrA5PtlERGFfXw=",
"path": "github.com/pingcap/parser/opcode", "path": "github.com/pingcap/parser/opcode",
"revision": "978b8272c04e599620715e8493ca26775e8c0e5f", "revision": "33636bc5e5d6c114f4b443dee71ff72645656d96",
"revisionTime": "2019-09-12T03:26:24Z" "revisionTime": "2019-09-23T03:17:04Z"
}, },
{ {
"checksumSHA1": "L6rzy3sJU1RPf7AkJN+0zcwW/YY=", "checksumSHA1": "L6rzy3sJU1RPf7AkJN+0zcwW/YY=",
"path": "github.com/pingcap/parser/terror", "path": "github.com/pingcap/parser/terror",
"revision": "978b8272c04e599620715e8493ca26775e8c0e5f", "revision": "33636bc5e5d6c114f4b443dee71ff72645656d96",
"revisionTime": "2019-09-12T03:26:24Z" "revisionTime": "2019-09-23T03:17:04Z"
}, },
{ {
"checksumSHA1": "u1Lmm4Fa3su4ElZMN4w0hPzFZl4=", "checksumSHA1": "u1Lmm4Fa3su4ElZMN4w0hPzFZl4=",
"path": "github.com/pingcap/parser/types", "path": "github.com/pingcap/parser/types",
"revision": "978b8272c04e599620715e8493ca26775e8c0e5f", "revision": "33636bc5e5d6c114f4b443dee71ff72645656d96",
"revisionTime": "2019-09-12T03:26:24Z" "revisionTime": "2019-09-23T03:17:04Z"
}, },
{ {
"checksumSHA1": "ryt2yutvbgdMuS5uvtaiJqqvZXQ=", "checksumSHA1": "MqOvmeZKNG2g9yh3KS7WR18zhnM=",
"path": "github.com/pingcap/tidb/sessionctx/stmtctx", "path": "github.com/pingcap/tidb/sessionctx/stmtctx",
"revision": "4e545cfa580a38dfd31946f2ecad3f459f9ceaee", "revision": "582076b5cc9e0743bdd4aa95fbfd2ca1cc0e86e0",
"revisionTime": "2019-09-16T09:47:52Z" "revisionTime": "2019-09-23T07:09:15Z"
}, },
{ {
"checksumSHA1": "xqDC/XGpST9lvxuOJt4+LkXOvnw=", "checksumSHA1": "E3tVZMdsoBoN+PbIBTd0hqxsHXA=",
"path": "github.com/pingcap/tidb/types", "path": "github.com/pingcap/tidb/types",
"revision": "4e545cfa580a38dfd31946f2ecad3f459f9ceaee", "revision": "582076b5cc9e0743bdd4aa95fbfd2ca1cc0e86e0",
"revisionTime": "2019-09-16T09:47:52Z" "revisionTime": "2019-09-23T07:09:15Z"
}, },
{ {
"checksumSHA1": "OSOQVeP518zWu3RoYSDWoh7DIjg=", "checksumSHA1": "OSOQVeP518zWu3RoYSDWoh7DIjg=",
"path": "github.com/pingcap/tidb/types/json", "path": "github.com/pingcap/tidb/types/json",
"revision": "4e545cfa580a38dfd31946f2ecad3f459f9ceaee", "revision": "582076b5cc9e0743bdd4aa95fbfd2ca1cc0e86e0",
"revisionTime": "2019-09-16T09:47:52Z" "revisionTime": "2019-09-23T07:09:15Z"
}, },
{ {
"checksumSHA1": "45zWX5Q6D6aTEWtc4p/lbD9WD4o=", "checksumSHA1": "45zWX5Q6D6aTEWtc4p/lbD9WD4o=",
"path": "github.com/pingcap/tidb/types/parser_driver", "path": "github.com/pingcap/tidb/types/parser_driver",
"revision": "4e545cfa580a38dfd31946f2ecad3f459f9ceaee", "revision": "582076b5cc9e0743bdd4aa95fbfd2ca1cc0e86e0",
"revisionTime": "2019-09-16T09:47:52Z" "revisionTime": "2019-09-23T07:09:15Z"
}, },
{ {
"checksumSHA1": "oCrNchmOGNQTnrkjk5CxFZpu2rE=", "checksumSHA1": "oCrNchmOGNQTnrkjk5CxFZpu2rE=",
"path": "github.com/pingcap/tidb/util/execdetails", "path": "github.com/pingcap/tidb/util/execdetails",
"revision": "4e545cfa580a38dfd31946f2ecad3f459f9ceaee", "revision": "582076b5cc9e0743bdd4aa95fbfd2ca1cc0e86e0",
"revisionTime": "2019-09-16T09:47:52Z" "revisionTime": "2019-09-23T07:09:15Z"
}, },
{ {
"checksumSHA1": "zw1limoYLowZjRm8wgicyjC72+U=", "checksumSHA1": "QGCTegCx13wJyB0isXsV7mNIljE=",
"path": "github.com/pingcap/tidb/util/hack", "path": "github.com/pingcap/tidb/util/hack",
"revision": "4e545cfa580a38dfd31946f2ecad3f459f9ceaee", "revision": "582076b5cc9e0743bdd4aa95fbfd2ca1cc0e86e0",
"revisionTime": "2019-09-16T09:47:52Z" "revisionTime": "2019-09-23T07:09:15Z"
}, },
{ {
"checksumSHA1": "SZhLPQR66Rd4kWkva6W3sJmSNLY=", "checksumSHA1": "SZhLPQR66Rd4kWkva6W3sJmSNLY=",
"path": "github.com/pingcap/tidb/util/logutil", "path": "github.com/pingcap/tidb/util/logutil",
"revision": "4e545cfa580a38dfd31946f2ecad3f459f9ceaee", "revision": "582076b5cc9e0743bdd4aa95fbfd2ca1cc0e86e0",
"revisionTime": "2019-09-16T09:47:52Z" "revisionTime": "2019-09-23T07:09:15Z"
}, },
{ {
"checksumSHA1": "OveQu0ABBJmMEwmmthqSRQC2Ef0=", "checksumSHA1": "OveQu0ABBJmMEwmmthqSRQC2Ef0=",
"path": "github.com/pingcap/tidb/util/math", "path": "github.com/pingcap/tidb/util/math",
"revision": "4e545cfa580a38dfd31946f2ecad3f459f9ceaee", "revision": "582076b5cc9e0743bdd4aa95fbfd2ca1cc0e86e0",
"revisionTime": "2019-09-16T09:47:52Z" "revisionTime": "2019-09-23T07:09:15Z"
}, },
{ {
"checksumSHA1": "YCueNgfYAVAWPgnLF2tBu7ikN1g=", "checksumSHA1": "wtzRvG5v1M4goFuWvP8ohkcZaT0=",
"path": "github.com/pingcap/tidb/util/memory", "path": "github.com/pingcap/tidb/util/memory",
"revision": "4e545cfa580a38dfd31946f2ecad3f459f9ceaee", "revision": "582076b5cc9e0743bdd4aa95fbfd2ca1cc0e86e0",
"revisionTime": "2019-09-16T09:47:52Z" "revisionTime": "2019-09-23T07:09:15Z"
}, },
{ {
"checksumSHA1": "QPIBwDNUFF5Whrnd41S3mkKa4gQ=", "checksumSHA1": "QPIBwDNUFF5Whrnd41S3mkKa4gQ=",
...@@ -497,68 +497,68 @@ ...@@ -497,68 +497,68 @@
{ {
"checksumSHA1": "aKn1oKcY74N8TRLm3Ayt7Q4bbI4=", "checksumSHA1": "aKn1oKcY74N8TRLm3Ayt7Q4bbI4=",
"path": "vitess.io/vitess/go/bytes2", "path": "vitess.io/vitess/go/bytes2",
"revision": "521e55710e066343d8234470e88601ddf2b169d4", "revision": "909d0c8861b2b1a4a5942f99e7b44bf38e5db503",
"revisionTime": "2019-09-16T06:01:21Z" "revisionTime": "2019-09-23T01:36:26Z"
}, },
{ {
"checksumSHA1": "bhE6CGQgZTIgLPp9lnvlKW/47xc=", "checksumSHA1": "bhE6CGQgZTIgLPp9lnvlKW/47xc=",
"path": "vitess.io/vitess/go/hack", "path": "vitess.io/vitess/go/hack",
"revision": "521e55710e066343d8234470e88601ddf2b169d4", "revision": "909d0c8861b2b1a4a5942f99e7b44bf38e5db503",
"revisionTime": "2019-09-16T06:01:21Z" "revisionTime": "2019-09-23T01:36:26Z"
}, },
{ {
"checksumSHA1": "IpNRu9mF+hsO3XRHzhW2Tz4G81o=", "checksumSHA1": "IpNRu9mF+hsO3XRHzhW2Tz4G81o=",
"path": "vitess.io/vitess/go/sqltypes", "path": "vitess.io/vitess/go/sqltypes",
"revision": "521e55710e066343d8234470e88601ddf2b169d4", "revision": "909d0c8861b2b1a4a5942f99e7b44bf38e5db503",
"revisionTime": "2019-09-16T06:01:21Z" "revisionTime": "2019-09-23T01:36:26Z"
}, },
{ {
"checksumSHA1": "vAIRxI6MHsq3x1hLQwIyw5AvqtI=", "checksumSHA1": "vAIRxI6MHsq3x1hLQwIyw5AvqtI=",
"path": "vitess.io/vitess/go/vt/log", "path": "vitess.io/vitess/go/vt/log",
"revision": "521e55710e066343d8234470e88601ddf2b169d4", "revision": "909d0c8861b2b1a4a5942f99e7b44bf38e5db503",
"revisionTime": "2019-09-16T06:01:21Z" "revisionTime": "2019-09-23T01:36:26Z"
}, },
{ {
"checksumSHA1": "//MHnGEq9xApvIMdwQaRrQf5ZWo=", "checksumSHA1": "//MHnGEq9xApvIMdwQaRrQf5ZWo=",
"path": "vitess.io/vitess/go/vt/proto/binlogdata", "path": "vitess.io/vitess/go/vt/proto/binlogdata",
"revision": "521e55710e066343d8234470e88601ddf2b169d4", "revision": "909d0c8861b2b1a4a5942f99e7b44bf38e5db503",
"revisionTime": "2019-09-16T06:01:21Z" "revisionTime": "2019-09-23T01:36:26Z"
}, },
{ {
"checksumSHA1": "u8uuZWMqaXgQ1MduggrgIHU50FI=", "checksumSHA1": "u8uuZWMqaXgQ1MduggrgIHU50FI=",
"path": "vitess.io/vitess/go/vt/proto/query", "path": "vitess.io/vitess/go/vt/proto/query",
"revision": "521e55710e066343d8234470e88601ddf2b169d4", "revision": "909d0c8861b2b1a4a5942f99e7b44bf38e5db503",
"revisionTime": "2019-09-16T06:01:21Z" "revisionTime": "2019-09-23T01:36:26Z"
}, },
{ {
"checksumSHA1": "rJ1Iqz/lvaKikIUx4oEFfYJtoBQ=", "checksumSHA1": "rJ1Iqz/lvaKikIUx4oEFfYJtoBQ=",
"path": "vitess.io/vitess/go/vt/proto/topodata", "path": "vitess.io/vitess/go/vt/proto/topodata",
"revision": "521e55710e066343d8234470e88601ddf2b169d4", "revision": "909d0c8861b2b1a4a5942f99e7b44bf38e5db503",
"revisionTime": "2019-09-16T06:01:21Z" "revisionTime": "2019-09-23T01:36:26Z"
}, },
{ {
"checksumSHA1": "Bv8lucvoH9AnJSYiWX8MIrJl4zY=", "checksumSHA1": "Bv8lucvoH9AnJSYiWX8MIrJl4zY=",
"path": "vitess.io/vitess/go/vt/proto/vtgate", "path": "vitess.io/vitess/go/vt/proto/vtgate",
"revision": "521e55710e066343d8234470e88601ddf2b169d4", "revision": "909d0c8861b2b1a4a5942f99e7b44bf38e5db503",
"revisionTime": "2019-09-16T06:01:21Z" "revisionTime": "2019-09-23T01:36:26Z"
}, },
{ {
"checksumSHA1": "HeUJu5njPq9iznpAOcrLpLD7f9w=", "checksumSHA1": "HeUJu5njPq9iznpAOcrLpLD7f9w=",
"path": "vitess.io/vitess/go/vt/proto/vtrpc", "path": "vitess.io/vitess/go/vt/proto/vtrpc",
"revision": "521e55710e066343d8234470e88601ddf2b169d4", "revision": "909d0c8861b2b1a4a5942f99e7b44bf38e5db503",
"revisionTime": "2019-09-16T06:01:21Z" "revisionTime": "2019-09-23T01:36:26Z"
}, },
{ {
"checksumSHA1": "QP+KJhlTW4o4uRt2uFFiI9tjriI=", "checksumSHA1": "QP+KJhlTW4o4uRt2uFFiI9tjriI=",
"path": "vitess.io/vitess/go/vt/sqlparser", "path": "vitess.io/vitess/go/vt/sqlparser",
"revision": "521e55710e066343d8234470e88601ddf2b169d4", "revision": "909d0c8861b2b1a4a5942f99e7b44bf38e5db503",
"revisionTime": "2019-09-16T06:01:21Z" "revisionTime": "2019-09-23T01:36:26Z"
}, },
{ {
"checksumSHA1": "z9+F/lA1Xrl5S16LKssUH8VL6hs=", "checksumSHA1": "z9+F/lA1Xrl5S16LKssUH8VL6hs=",
"path": "vitess.io/vitess/go/vt/vterrors", "path": "vitess.io/vitess/go/vt/vterrors",
"revision": "521e55710e066343d8234470e88601ddf2b169d4", "revision": "909d0c8861b2b1a4a5942f99e7b44bf38e5db503",
"revisionTime": "2019-09-16T06:01:21Z" "revisionTime": "2019-09-23T01:36:26Z"
} }
], ],
"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.
先完成此消息的编辑!
想要评论请 注册