提交 929165a0 编写于 作者: martianzhang's avatar martianzhang

vendor daily update

上级 f9d7a849
...@@ -588,7 +588,15 @@ type ExistsSubqueryExpr struct { ...@@ -588,7 +588,15 @@ type ExistsSubqueryExpr struct {
// Restore implements Node interface. // Restore implements Node interface.
func (n *ExistsSubqueryExpr) Restore(ctx *RestoreCtx) error { func (n *ExistsSubqueryExpr) Restore(ctx *RestoreCtx) error {
return errors.New("Not implemented") if n.Not {
ctx.WriteKeyWord("NOT EXISTS ")
} else {
ctx.WriteKeyWord("EXISTS ")
}
if err := n.Sel.Restore(ctx); err != nil {
return errors.Annotate(err, "An error occurred while restore ExistsSubqueryExpr.Sel")
}
return nil
} }
// Format the ExprNode into a Writer. // Format the ExprNode into a Writer.
......
...@@ -26,5 +26,5 @@ jobs: ...@@ -26,5 +26,5 @@ jobs:
git clone git@github.com:pingcap/tidb.git git clone git@github.com:pingcap/tidb.git
cd tidb cd tidb
rm go.sum rm go.sum
GO111MODULE=on go mod edit -replace github.com/pingcap/parser=github.com/${CIRCLE_PR_USERNAME:-$CIRCLE_PROJECT_USERNAME}/${CIRCLE_PR_REPONAME:-$CIRCLE_PROJECT_REPONAME}@$CIRCLE_BRANCH GO111MODULE=on go mod edit -replace github.com/pingcap/parser=github.com/${CIRCLE_PR_USERNAME:-$CIRCLE_PROJECT_USERNAME}/${CIRCLE_PR_REPONAME:-$CIRCLE_PROJECT_REPONAME}@$CIRCLE_SHA1
make test make test
...@@ -901,7 +901,7 @@ const ( ...@@ -901,7 +901,7 @@ const (
ErrWindowFrameEndIllegal = 3585 ErrWindowFrameEndIllegal = 3585
ErrWindowFrameIllegal = 3586 ErrWindowFrameIllegal = 3586
ErrWindowRangeFrameOrderType = 3587 ErrWindowRangeFrameOrderType = 3587
ErrWindowRangeFrameTEMPORALType = 3588 ErrWindowRangeFrameTemporalType = 3588
ErrWindowRangeFrameNumericType = 3589 ErrWindowRangeFrameNumericType = 3589
ErrWindowRangeBoundNotConstant = 3590 ErrWindowRangeBoundNotConstant = 3590
ErrWindowDuplicateName = 3591 ErrWindowDuplicateName = 3591
......
...@@ -250,7 +250,7 @@ var MySQLErrName = map[uint16]string{ ...@@ -250,7 +250,7 @@ var MySQLErrName = map[uint16]string{
ErrWrongTypeForVar: "Incorrect argument type to variable '%-.64s'", ErrWrongTypeForVar: "Incorrect argument type to variable '%-.64s'",
ErrVarCantBeRead: "Variable '%-.64s' can only be set, not read", ErrVarCantBeRead: "Variable '%-.64s' can only be set, not read",
ErrCantUseOptionHere: "Incorrect usage/placement of '%s'", ErrCantUseOptionHere: "Incorrect usage/placement of '%s'",
ErrNotSupportedYet: "This version of MySQL doesn't yet support '%s'", ErrNotSupportedYet: "This version of TiDB doesn't yet support '%s'",
ErrMasterFatalErrorReadingBinlog: "Got fatal error %d from master when reading data from binary log: '%-.320s'", ErrMasterFatalErrorReadingBinlog: "Got fatal error %d from master when reading data from binary log: '%-.320s'",
ErrSlaveIgnoredTable: "Slave SQL thread ignored the query because of replicate-*-table rules", ErrSlaveIgnoredTable: "Slave SQL thread ignored the query because of replicate-*-table rules",
ErrIncorrectGlobalLocalVar: "Variable '%-.192s' is a %s variable", ErrIncorrectGlobalLocalVar: "Variable '%-.192s' is a %s variable",
...@@ -898,7 +898,7 @@ var MySQLErrName = map[uint16]string{ ...@@ -898,7 +898,7 @@ var MySQLErrName = map[uint16]string{
ErrWindowFrameEndIllegal: "Window '%s': frame end cannot be UNBOUNDED PRECEDING.", ErrWindowFrameEndIllegal: "Window '%s': frame end cannot be UNBOUNDED PRECEDING.",
ErrWindowFrameIllegal: "Window '%s': frame start or end is negative, NULL or of non-integral type", ErrWindowFrameIllegal: "Window '%s': frame start or end is negative, NULL or of non-integral type",
ErrWindowRangeFrameOrderType: "Window '%s' with RANGE N PRECEDING/FOLLOWING frame requires exactly one ORDER BY expression, of numeric or temporal type", ErrWindowRangeFrameOrderType: "Window '%s' with RANGE N PRECEDING/FOLLOWING frame requires exactly one ORDER BY expression, of numeric or temporal type",
ErrWindowRangeFrameTEMPORALType: "Window '%s' with RANGE frame has ORDER BY expression of datetime type. Only INTERVAL bound value allowed.", ErrWindowRangeFrameTemporalType: "Window '%s' with RANGE frame has ORDER BY expression of datetime type. Only INTERVAL bound value allowed.",
ErrWindowRangeFrameNumericType: "Window '%s' with RANGE frame has ORDER BY expression of numeric type, INTERVAL bound value not allowed.", ErrWindowRangeFrameNumericType: "Window '%s' with RANGE frame has ORDER BY expression of numeric type, INTERVAL bound value not allowed.",
ErrWindowRangeBoundNotConstant: "Window '%s' has a non-constant frame bound.", ErrWindowRangeBoundNotConstant: "Window '%s' has a non-constant frame bound.",
ErrWindowDuplicateName: "Window '%s' is defined twice.", ErrWindowDuplicateName: "Window '%s' is defined twice.",
......
...@@ -10131,7 +10131,7 @@ yynewstate: ...@@ -10131,7 +10131,7 @@ yynewstate:
} }
case 888: case 888:
{ {
parser.yyVAL.item = ast.FrameBound{Type: ast.Preceding, Expr: ast.NewValueExpr(yyS[yypt-2].expr), Unit: ast.NewValueExpr(yyS[yypt-1].ident)} parser.yyVAL.item = ast.FrameBound{Type: ast.Preceding, Expr: yyS[yypt-2].expr, Unit: ast.NewValueExpr(yyS[yypt-1].ident)}
} }
case 889: case 889:
{ {
...@@ -10159,7 +10159,7 @@ yynewstate: ...@@ -10159,7 +10159,7 @@ yynewstate:
} }
case 895: case 895:
{ {
parser.yyVAL.item = ast.FrameBound{Type: ast.Following, Expr: ast.NewValueExpr(yyS[yypt-2].expr), Unit: ast.NewValueExpr(yyS[yypt-1].ident)} parser.yyVAL.item = ast.FrameBound{Type: ast.Following, Expr: yyS[yypt-2].expr, Unit: ast.NewValueExpr(yyS[yypt-1].ident)}
} }
case 896: case 896:
{ {
...@@ -4724,7 +4724,7 @@ WindowFrameStart: ...@@ -4724,7 +4724,7 @@ WindowFrameStart:
} }
| "INTERVAL" Expression TimeUnit "PRECEDING" | "INTERVAL" Expression TimeUnit "PRECEDING"
{ {
$$ = ast.FrameBound{Type: ast.Preceding, Expr: ast.NewValueExpr($2), Unit: ast.NewValueExpr($3),} $$ = ast.FrameBound{Type: ast.Preceding, Expr: $2, Unit: ast.NewValueExpr($3),}
} }
| "CURRENT" "ROW" | "CURRENT" "ROW"
{ {
...@@ -4756,7 +4756,7 @@ WindowFrameBound: ...@@ -4756,7 +4756,7 @@ WindowFrameBound:
} }
| "INTERVAL" Expression TimeUnit "FOLLOWING" | "INTERVAL" Expression TimeUnit "FOLLOWING"
{ {
$$ = ast.FrameBound{Type: ast.Following, Expr: ast.NewValueExpr($2), Unit: ast.NewValueExpr($3),} $$ = ast.FrameBound{Type: ast.Following, Expr: $2, Unit: ast.NewValueExpr($3),}
} }
OptWindowingClause: OptWindowingClause:
......
...@@ -111,106 +111,106 @@ ...@@ -111,106 +111,106 @@
"revisionTime": "2018-10-24T15:10:47Z" "revisionTime": "2018-10-24T15:10:47Z"
}, },
{ {
"checksumSHA1": "cOEqkxoki8WzzrAKFDP1GvSufH4=", "checksumSHA1": "NgMgQFss1kjQUJOhcK/zXD8q8x8=",
"path": "github.com/pingcap/parser", "path": "github.com/pingcap/parser",
"revision": "0321c0fc2a7b5bf3d019ac753e70b808961d4194", "revision": "c02a7ccd3d6bbed56fdd3a6be6f141cb2a32bbc4",
"revisionTime": "2019-01-16T08:50:57Z" "revisionTime": "2019-01-17T10:47:31Z"
}, },
{ {
"checksumSHA1": "jTB3MZ/p6/PeJDX5P0tw7C97J2I=", "checksumSHA1": "byPUPTMBKNbYNrDqojD61S3642s=",
"path": "github.com/pingcap/parser/ast", "path": "github.com/pingcap/parser/ast",
"revision": "0321c0fc2a7b5bf3d019ac753e70b808961d4194", "revision": "c02a7ccd3d6bbed56fdd3a6be6f141cb2a32bbc4",
"revisionTime": "2019-01-16T08:50:57Z" "revisionTime": "2019-01-17T10:47:31Z"
}, },
{ {
"checksumSHA1": "skWGV4FNvD3vr+5olepaPPnylUw=", "checksumSHA1": "skWGV4FNvD3vr+5olepaPPnylUw=",
"path": "github.com/pingcap/parser/auth", "path": "github.com/pingcap/parser/auth",
"revision": "0321c0fc2a7b5bf3d019ac753e70b808961d4194", "revision": "c02a7ccd3d6bbed56fdd3a6be6f141cb2a32bbc4",
"revisionTime": "2019-01-16T08:50:57Z" "revisionTime": "2019-01-17T10:47:31Z"
}, },
{ {
"checksumSHA1": "t4UHo966WzU9Z0IJkyGHRp0loOk=", "checksumSHA1": "t4UHo966WzU9Z0IJkyGHRp0loOk=",
"path": "github.com/pingcap/parser/charset", "path": "github.com/pingcap/parser/charset",
"revision": "0321c0fc2a7b5bf3d019ac753e70b808961d4194", "revision": "c02a7ccd3d6bbed56fdd3a6be6f141cb2a32bbc4",
"revisionTime": "2019-01-16T08:50:57Z" "revisionTime": "2019-01-17T10:47:31Z"
}, },
{ {
"checksumSHA1": "ohLJW2u9NJEzYIJL/AjOqcuKfMY=", "checksumSHA1": "ohLJW2u9NJEzYIJL/AjOqcuKfMY=",
"path": "github.com/pingcap/parser/format", "path": "github.com/pingcap/parser/format",
"revision": "0321c0fc2a7b5bf3d019ac753e70b808961d4194", "revision": "c02a7ccd3d6bbed56fdd3a6be6f141cb2a32bbc4",
"revisionTime": "2019-01-16T08:50:57Z" "revisionTime": "2019-01-17T10:47:31Z"
}, },
{ {
"checksumSHA1": "ZADwr2/PcEd9VI3XF9OvN4HkJ+8=", "checksumSHA1": "ZADwr2/PcEd9VI3XF9OvN4HkJ+8=",
"path": "github.com/pingcap/parser/model", "path": "github.com/pingcap/parser/model",
"revision": "0321c0fc2a7b5bf3d019ac753e70b808961d4194", "revision": "c02a7ccd3d6bbed56fdd3a6be6f141cb2a32bbc4",
"revisionTime": "2019-01-16T08:50:57Z" "revisionTime": "2019-01-17T10:47:31Z"
}, },
{ {
"checksumSHA1": "poSWMsB1ZV4Pi33qMq7Wb1mLmZ0=", "checksumSHA1": "0YvCqsNHKFZEA7vfi3Fq+eYkjW4=",
"path": "github.com/pingcap/parser/mysql", "path": "github.com/pingcap/parser/mysql",
"revision": "0321c0fc2a7b5bf3d019ac753e70b808961d4194", "revision": "c02a7ccd3d6bbed56fdd3a6be6f141cb2a32bbc4",
"revisionTime": "2019-01-16T08:50:57Z" "revisionTime": "2019-01-17T10:47:31Z"
}, },
{ {
"checksumSHA1": "olapD16WCMBU9vrA5PtlERGFfXw=", "checksumSHA1": "olapD16WCMBU9vrA5PtlERGFfXw=",
"path": "github.com/pingcap/parser/opcode", "path": "github.com/pingcap/parser/opcode",
"revision": "0321c0fc2a7b5bf3d019ac753e70b808961d4194", "revision": "c02a7ccd3d6bbed56fdd3a6be6f141cb2a32bbc4",
"revisionTime": "2019-01-16T08:50:57Z" "revisionTime": "2019-01-17T10:47:31Z"
}, },
{ {
"checksumSHA1": "TF2rMYy9ewgZpFsJb+jaGXXqZqc=", "checksumSHA1": "TF2rMYy9ewgZpFsJb+jaGXXqZqc=",
"path": "github.com/pingcap/parser/terror", "path": "github.com/pingcap/parser/terror",
"revision": "0321c0fc2a7b5bf3d019ac753e70b808961d4194", "revision": "c02a7ccd3d6bbed56fdd3a6be6f141cb2a32bbc4",
"revisionTime": "2019-01-16T08:50:57Z" "revisionTime": "2019-01-17T10:47:31Z"
}, },
{ {
"checksumSHA1": "sCYsaxxXBau10NOc5tuYQEtmAu0=", "checksumSHA1": "sCYsaxxXBau10NOc5tuYQEtmAu0=",
"path": "github.com/pingcap/parser/types", "path": "github.com/pingcap/parser/types",
"revision": "0321c0fc2a7b5bf3d019ac753e70b808961d4194", "revision": "c02a7ccd3d6bbed56fdd3a6be6f141cb2a32bbc4",
"revisionTime": "2019-01-16T08:50:57Z" "revisionTime": "2019-01-17T10:47:31Z"
}, },
{ {
"checksumSHA1": "uOrWw9c47zwN6COxonFJ0t2IMcM=", "checksumSHA1": "uOrWw9c47zwN6COxonFJ0t2IMcM=",
"path": "github.com/pingcap/tidb/sessionctx/stmtctx", "path": "github.com/pingcap/tidb/sessionctx/stmtctx",
"revision": "47ea05d01781be5f1e751a68d4b5576f0fc0783d", "revision": "5f8265a8f9bebc6d61c18d1e7c0aabb493ef2c41",
"revisionTime": "2019-01-16T10:02:55Z" "revisionTime": "2019-01-17T12:13:24Z"
}, },
{ {
"checksumSHA1": "SxNV0h7Hb44wjJFvFmQ8daMSHyI=", "checksumSHA1": "SxNV0h7Hb44wjJFvFmQ8daMSHyI=",
"path": "github.com/pingcap/tidb/types", "path": "github.com/pingcap/tidb/types",
"revision": "47ea05d01781be5f1e751a68d4b5576f0fc0783d", "revision": "5f8265a8f9bebc6d61c18d1e7c0aabb493ef2c41",
"revisionTime": "2019-01-16T10:02:55Z" "revisionTime": "2019-01-17T12:13:24Z"
}, },
{ {
"checksumSHA1": "7PiTQPW4ftgZIg8KBGCHZjdc0hE=", "checksumSHA1": "7PiTQPW4ftgZIg8KBGCHZjdc0hE=",
"path": "github.com/pingcap/tidb/types/json", "path": "github.com/pingcap/tidb/types/json",
"revision": "47ea05d01781be5f1e751a68d4b5576f0fc0783d", "revision": "5f8265a8f9bebc6d61c18d1e7c0aabb493ef2c41",
"revisionTime": "2019-01-16T10:02:55Z" "revisionTime": "2019-01-17T12:13:24Z"
}, },
{ {
"checksumSHA1": "yKeU1hJFc7X3afXESYV0Wz5ZPXQ=", "checksumSHA1": "yKeU1hJFc7X3afXESYV0Wz5ZPXQ=",
"path": "github.com/pingcap/tidb/types/parser_driver", "path": "github.com/pingcap/tidb/types/parser_driver",
"revision": "47ea05d01781be5f1e751a68d4b5576f0fc0783d", "revision": "5f8265a8f9bebc6d61c18d1e7c0aabb493ef2c41",
"revisionTime": "2019-01-16T10:02:55Z" "revisionTime": "2019-01-17T12:13:24Z"
}, },
{ {
"checksumSHA1": "OOig47D9TSVOUAYkNj2yJok1Hmo=", "checksumSHA1": "OOig47D9TSVOUAYkNj2yJok1Hmo=",
"path": "github.com/pingcap/tidb/util/execdetails", "path": "github.com/pingcap/tidb/util/execdetails",
"revision": "47ea05d01781be5f1e751a68d4b5576f0fc0783d", "revision": "5f8265a8f9bebc6d61c18d1e7c0aabb493ef2c41",
"revisionTime": "2019-01-16T10:02:55Z" "revisionTime": "2019-01-17T12:13:24Z"
}, },
{ {
"checksumSHA1": "nUC7zVoAMNR2a+z2iGqHoN2AkFE=", "checksumSHA1": "nUC7zVoAMNR2a+z2iGqHoN2AkFE=",
"path": "github.com/pingcap/tidb/util/hack", "path": "github.com/pingcap/tidb/util/hack",
"revision": "47ea05d01781be5f1e751a68d4b5576f0fc0783d", "revision": "5f8265a8f9bebc6d61c18d1e7c0aabb493ef2c41",
"revisionTime": "2019-01-16T10:02:55Z" "revisionTime": "2019-01-17T12:13:24Z"
}, },
{ {
"checksumSHA1": "xSyepiuqsoaaeDch7cXeumvVHKM=", "checksumSHA1": "xSyepiuqsoaaeDch7cXeumvVHKM=",
"path": "github.com/pingcap/tidb/util/memory", "path": "github.com/pingcap/tidb/util/memory",
"revision": "47ea05d01781be5f1e751a68d4b5576f0fc0783d", "revision": "5f8265a8f9bebc6d61c18d1e7c0aabb493ef2c41",
"revisionTime": "2019-01-16T10:02:55Z" "revisionTime": "2019-01-17T12:13:24Z"
}, },
{ {
"checksumSHA1": "SmYeIK/fIYXNu8IKxD6HOVQVTuU=", "checksumSHA1": "SmYeIK/fIYXNu8IKxD6HOVQVTuU=",
...@@ -407,62 +407,62 @@ ...@@ -407,62 +407,62 @@
{ {
"checksumSHA1": "aKn1oKcY74N8TRLm3Ayt7Q4bbI4=", "checksumSHA1": "aKn1oKcY74N8TRLm3Ayt7Q4bbI4=",
"path": "vitess.io/vitess/go/bytes2", "path": "vitess.io/vitess/go/bytes2",
"revision": "360d5cdb70a8fe85321a6ddde39a632883b7b4e3", "revision": "19480ef5cc643591c67ff766755a4634a32be763",
"revisionTime": "2019-01-16T07:27:56Z" "revisionTime": "2019-01-17T03:25:54Z"
}, },
{ {
"checksumSHA1": "JVCEN4UGRmg3TofIBdzZMZ3G0Ww=", "checksumSHA1": "JVCEN4UGRmg3TofIBdzZMZ3G0Ww=",
"path": "vitess.io/vitess/go/hack", "path": "vitess.io/vitess/go/hack",
"revision": "360d5cdb70a8fe85321a6ddde39a632883b7b4e3", "revision": "19480ef5cc643591c67ff766755a4634a32be763",
"revisionTime": "2019-01-16T07:27:56Z" "revisionTime": "2019-01-17T03:25:54Z"
}, },
{ {
"checksumSHA1": "F5pcGq+2W1FHEjgktTdKOE6W8mk=", "checksumSHA1": "F5pcGq+2W1FHEjgktTdKOE6W8mk=",
"path": "vitess.io/vitess/go/sqltypes", "path": "vitess.io/vitess/go/sqltypes",
"revision": "360d5cdb70a8fe85321a6ddde39a632883b7b4e3", "revision": "19480ef5cc643591c67ff766755a4634a32be763",
"revisionTime": "2019-01-16T07:27:56Z" "revisionTime": "2019-01-17T03:25:54Z"
}, },
{ {
"checksumSHA1": "vAIRxI6MHsq3x1hLQwIyw5AvqtI=", "checksumSHA1": "vAIRxI6MHsq3x1hLQwIyw5AvqtI=",
"path": "vitess.io/vitess/go/vt/log", "path": "vitess.io/vitess/go/vt/log",
"revision": "360d5cdb70a8fe85321a6ddde39a632883b7b4e3", "revision": "19480ef5cc643591c67ff766755a4634a32be763",
"revisionTime": "2019-01-16T07:27:56Z" "revisionTime": "2019-01-17T03:25:54Z"
}, },
{ {
"checksumSHA1": "HHIcl3lpWkzLARkkNv94fVaObjo=", "checksumSHA1": "HHIcl3lpWkzLARkkNv94fVaObjo=",
"path": "vitess.io/vitess/go/vt/proto/query", "path": "vitess.io/vitess/go/vt/proto/query",
"revision": "360d5cdb70a8fe85321a6ddde39a632883b7b4e3", "revision": "19480ef5cc643591c67ff766755a4634a32be763",
"revisionTime": "2019-01-16T07:27:56Z" "revisionTime": "2019-01-17T03:25:54Z"
}, },
{ {
"checksumSHA1": "YLWTmL+rvz0htn0niRMrIUI6rKc=", "checksumSHA1": "YLWTmL+rvz0htn0niRMrIUI6rKc=",
"path": "vitess.io/vitess/go/vt/proto/topodata", "path": "vitess.io/vitess/go/vt/proto/topodata",
"revision": "360d5cdb70a8fe85321a6ddde39a632883b7b4e3", "revision": "19480ef5cc643591c67ff766755a4634a32be763",
"revisionTime": "2019-01-16T07:27:56Z" "revisionTime": "2019-01-17T03:25:54Z"
}, },
{ {
"checksumSHA1": "tNNlcSFFnlOauS2hXnrz/zA/wfk=", "checksumSHA1": "tNNlcSFFnlOauS2hXnrz/zA/wfk=",
"path": "vitess.io/vitess/go/vt/proto/vtgate", "path": "vitess.io/vitess/go/vt/proto/vtgate",
"revision": "360d5cdb70a8fe85321a6ddde39a632883b7b4e3", "revision": "19480ef5cc643591c67ff766755a4634a32be763",
"revisionTime": "2019-01-16T07:27:56Z" "revisionTime": "2019-01-17T03:25:54Z"
}, },
{ {
"checksumSHA1": "qz32abYdmm9NfKTc++K0l1EvXXM=", "checksumSHA1": "qz32abYdmm9NfKTc++K0l1EvXXM=",
"path": "vitess.io/vitess/go/vt/proto/vtrpc", "path": "vitess.io/vitess/go/vt/proto/vtrpc",
"revision": "360d5cdb70a8fe85321a6ddde39a632883b7b4e3", "revision": "19480ef5cc643591c67ff766755a4634a32be763",
"revisionTime": "2019-01-16T07:27:56Z" "revisionTime": "2019-01-17T03:25:54Z"
}, },
{ {
"checksumSHA1": "3yiiEdMrUONYMNI84Bs/KONvW94=", "checksumSHA1": "3yiiEdMrUONYMNI84Bs/KONvW94=",
"path": "vitess.io/vitess/go/vt/sqlparser", "path": "vitess.io/vitess/go/vt/sqlparser",
"revision": "360d5cdb70a8fe85321a6ddde39a632883b7b4e3", "revision": "19480ef5cc643591c67ff766755a4634a32be763",
"revisionTime": "2019-01-16T07:27:56Z" "revisionTime": "2019-01-17T03:25:54Z"
}, },
{ {
"checksumSHA1": "Jx+gOh/kiBDSZxEIWHyYn9brjdo=", "checksumSHA1": "Jx+gOh/kiBDSZxEIWHyYn9brjdo=",
"path": "vitess.io/vitess/go/vt/vterrors", "path": "vitess.io/vitess/go/vt/vterrors",
"revision": "360d5cdb70a8fe85321a6ddde39a632883b7b4e3", "revision": "19480ef5cc643591c67ff766755a4634a32be763",
"revisionTime": "2019-01-16T07:27:56Z" "revisionTime": "2019-01-17T03:25:54Z"
} }
], ],
"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.
先完成此消息的编辑!
想要评论请 注册