Unverified Commit b2cb2e39 authored by wjHuang's avatar wjHuang Committed by GitHub
Browse files

cmd/explaintest: migrate some collation tests (#31988)

ref pingcap/tidb#31625
parent ebf5961b
Showing with 538 additions and 180 deletions
+538 -180
create database collation_point_get;
use collation_point_get;
drop table if exists t;
create table t(a char(2), b char(2), index idx_1(a));
insert into t values("aa", "bb");
select * from t where a = "aa";
a b
aa bb
select * from t where a = "aab";
a b
select * from t tmp where a = "aa";
a b
aa bb
select * from t tmp where a = "aab";
a b
truncate table t;
insert into t values("a ", "b ");
select * from t where a = "a";
a b
a b
select * from t where a = "a ";
a b
select * from t where a = "a ";
a b
drop table if exists t;
create table t(a char(2) binary, b char(2), index idx_1(a));
insert into t values(" ", " ");
insert into t values("a ", "b ");
select * from t where a = "a";
a b
a b
select * from t where a = "a ";
a b
select * from t where a = "a ";
a b
select * from t where a = "";
a b
select * from t where a = " ";
a b
select * from t where a = " ";
a b
select * from t where a = " ";
a b
drop table if exists t;
create table t(a char(2) primary key, b char(2));
insert into t values("aa", "bb");
select * from t tmp where a = "aa";
a b
aa bb
select * from t tmp where a = "aab";
a b
truncate table t;
insert into t values("a ", "b ");
select * from t tmp where a = "a";
a b
a b
select * from t tmp where a = "a ";
a b
select * from t tmp where a = "a ";
a b
drop table if exists t;
create table t(a char(2) binary primary key, b char(2));
insert into t values(" ", " ");
insert into t values("a ", "b ");
select * from t tmp where a = "a";
a b
a b
select * from t tmp where a = "a ";
a b
select * from t tmp where a = "a ";
a b
select * from t tmp where a = "";
a b
select * from t tmp where a = " ";
a b
select * from t tmp where a = " ";
a b
drop table if exists t;
create table t(a char(2) primary key, b char(2));
insert into t values("aa", "bb");
select *, a from t tmp where a = "aa";
a b a
aa bb aa
select tmp.* from t tmp where a = "aa";
a b
aa bb
select tmp.a, tmp.b from t tmp where a = "aa";
a b
aa bb
select tmp.*, tmp.a, tmp.b from t tmp where a = "aa";
a b a b
aa bb aa bb
select tmp.* from t tmp where a = "aab";
a b
select tmp.a, tmp.b from t tmp where a = "aab";
a b
select tmp.*, tmp.a, tmp.b from t tmp where a = "aab";
a b a b
select tmp.*, tmp.a, tmp.b from t tmp where a = "aab";
a b a b
select * from t tmp where tmp.a = "aa";
a b
aa bb
select a, b from t tmp where tmp.a = "aa";
a b
aa bb
select *, a, b from t tmp where tmp.a = "aa";
a b a b
aa bb aa bb
select a from t where xxxxx.a = "aa";
Error 1054: Unknown column 'xxxxx.a' in 'where clause'
select xxxxx.a from t where a = "aa";
Error 1054: Unknown column 'xxxxx.a' in 'field list'
select a from t tmp where t.a = "aa";
Error 1054: Unknown column 't.a' in 'where clause'
select t.a from t tmp where a = "aa";
Error 1054: Unknown column 't.a' in 'field list'
select t.* from t tmp where a = "aa";
Error 1051: Unknown table 't'
drop table if exists t;
create table t(a char(4) primary key, b char(4));
insert into t values("aa", "bb");
select * from t where a = "aa";
a b
aa bb
select * from t where a = "aab";
a b
truncate table t;
insert into t values("a ", "b ");
select * from t where a = "a";
a b
a b
select * from t where a = "a ";
a b
select * from t where a = "a ";
a b
drop table if exists t;
create table t(a char(2) binary primary key, b char(2));
insert into t values(" ", " ");
insert into t values("a ", "b ");
select * from t where a = "a";
a b
a b
select * from t where a = "a ";
a b
select * from t where a = "a ";
a b
select * from t where a = "";
a b
select * from t where a = " ";
a b
select * from t where a = " ";
a b
drop table if exists t;
create table t(a varchar(2) primary key, b varchar(2));
insert into t values("aa", "bb");
select * from t where a = "aa";
a b
aa bb
select * from t where a = "aab";
a b
truncate table t;
insert into t values("a ", "b ");
select * from t where a = "a";
a b
select * from t where a = "a ";
a b
a b
select * from t where a = "a ";
a b
drop table if exists t;
create table t(a varchar(2) binary primary key, b varchar(2));
insert into t values(" ", " ");
insert into t values("a ", "b ");
select * from t where a = "a";
a b
select * from t where a = "a ";
a b
a b
select * from t where a = "a ";
a b
select * from t where a = "";
a b
select * from t where a = " ";
a b
select * from t where a = " ";
a b
use mysql;
create database collation_point_get;
use collation_point_get;
drop table if exists t;
create table t(a char(2), b char(2), index idx_1(a));
insert into t values("aa", "bb");
select * from t where a = "aa";
a b
aa bb
select * from t where a = "aab";
a b
select * from t tmp where a = "aa";
a b
aa bb
select * from t tmp where a = "aab";
a b
truncate table t;
insert into t values("a ", "b ");
select * from t where a = "a";
a b
a b
select * from t where a = "a ";
a b
a b
select * from t where a = "a ";
a b
a b
drop table if exists t;
create table t(a char(2) binary, b char(2), index idx_1(a));
insert into t values(" ", " ");
insert into t values("a ", "b ");
select * from t where a = "a";
a b
a b
select * from t where a = "a ";
a b
a b
select * from t where a = "a ";
a b
a b
select * from t where a = "";
a b
select * from t where a = " ";
a b
select * from t where a = " ";
a b
select * from t where a = " ";
a b
drop table if exists t;
create table t(a char(2) primary key, b char(2));
insert into t values("aa", "bb");
select * from t tmp where a = "aa";
a b
aa bb
select * from t tmp where a = "aab";
a b
truncate table t;
insert into t values("a ", "b ");
select * from t tmp where a = "a";
a b
a b
select * from t tmp where a = "a ";
a b
a b
select * from t tmp where a = "a ";
a b
a b
drop table if exists t;
create table t(a char(2) binary primary key, b char(2));
insert into t values(" ", " ");
insert into t values("a ", "b ");
select * from t tmp where a = "a";
a b
a b
select * from t tmp where a = "a ";
a b
a b
select * from t tmp where a = "a ";
a b
a b
select * from t tmp where a = "";
a b
select * from t tmp where a = " ";
a b
select * from t tmp where a = " ";
a b
drop table if exists t;
create table t(a char(2) primary key, b char(2));
insert into t values("aa", "bb");
select *, a from t tmp where a = "aa";
a b a
aa bb aa
select tmp.* from t tmp where a = "aa";
a b
aa bb
select tmp.a, tmp.b from t tmp where a = "aa";
a b
aa bb
select tmp.*, tmp.a, tmp.b from t tmp where a = "aa";
a b a b
aa bb aa bb
select tmp.* from t tmp where a = "aab";
a b
select tmp.a, tmp.b from t tmp where a = "aab";
a b
select tmp.*, tmp.a, tmp.b from t tmp where a = "aab";
a b a b
select tmp.*, tmp.a, tmp.b from t tmp where a = "aab";
a b a b
select * from t tmp where tmp.a = "aa";
a b
aa bb
select a, b from t tmp where tmp.a = "aa";
a b
aa bb
select *, a, b from t tmp where tmp.a = "aa";
a b a b
aa bb aa bb
select a from t where xxxxx.a = "aa";
Error 1054: Unknown column 'xxxxx.a' in 'where clause'
select xxxxx.a from t where a = "aa";
Error 1054: Unknown column 'xxxxx.a' in 'field list'
select a from t tmp where t.a = "aa";
Error 1054: Unknown column 't.a' in 'where clause'
select t.a from t tmp where a = "aa";
Error 1054: Unknown column 't.a' in 'field list'
select t.* from t tmp where a = "aa";
Error 1051: Unknown table 't'
drop table if exists t;
create table t(a char(4) primary key, b char(4));
insert into t values("aa", "bb");
select * from t where a = "aa";
a b
aa bb
select * from t where a = "aab";
a b
truncate table t;
insert into t values("a ", "b ");
select * from t where a = "a";
a b
a b
select * from t where a = "a ";
a b
a b
select * from t where a = "a ";
a b
a b
drop table if exists t;
create table t(a char(2) binary primary key, b char(2));
insert into t values(" ", " ");
insert into t values("a ", "b ");
select * from t where a = "a";
a b
a b
select * from t where a = "a ";
a b
a b
select * from t where a = "a ";
a b
a b
select * from t where a = "";
a b
select * from t where a = " ";
a b
select * from t where a = " ";
a b
drop table if exists t;
create table t(a varchar(2) primary key, b varchar(2));
insert into t values("aa", "bb");
select * from t where a = "aa";
a b
aa bb
select * from t where a = "aab";
a b
truncate table t;
insert into t values("a ", "b ");
select * from t where a = "a";
a b
a b
select * from t where a = "a ";
a b
a b
select * from t where a = "a ";
a b
a b
drop table if exists t;
create table t(a varchar(2) binary primary key, b varchar(2));
insert into t values(" ", " ");
insert into t values("a ", "b ");
select * from t where a = "a";
a b
a b
select * from t where a = "a ";
a b
a b
select * from t where a = "a ";
a b
a b
select * from t where a = "";
a b
select * from t where a = " ";
a b
select * from t where a = " ";
a b
use mysql;
# prepare database
create database collation_point_get;
use collation_point_get;
# pointGet IndexLookupChar
drop table if exists t;
create table t(a char(2), b char(2), index idx_1(a));
insert into t values("aa", "bb");
select * from t where a = "aa";
select * from t where a = "aab";
# Test query with table alias
select * from t tmp where a = "aa";
select * from t tmp where a = "aab";
truncate table t;
insert into t values("a ", "b ");
select * from t where a = "a";
select * from t where a = "a ";
select * from t where a = "a ";
drop table if exists t;
create table t(a char(2) binary, b char(2), index idx_1(a));
insert into t values(" ", " ");
insert into t values("a ", "b ");
select * from t where a = "a";
select * from t where a = "a ";
select * from t where a = "a ";
select * from t where a = "";
select * from t where a = " ";
select * from t where a = " ";
select * from t where a = " ";
# pointGet AliasTableCharPK
drop table if exists t;
create table t(a char(2) primary key, b char(2));
insert into t values("aa", "bb");
select * from t tmp where a = "aa";
select * from t tmp where a = "aab";
truncate table t;
insert into t values("a ", "b ");
select * from t tmp where a = "a";
select * from t tmp where a = "a ";
select * from t tmp where a = "a ";
# Test CHAR BINARY.
drop table if exists t;
create table t(a char(2) binary primary key, b char(2));
insert into t values(" ", " ");
insert into t values("a ", "b ");
select * from t tmp where a = "a";
select * from t tmp where a = "a ";
select * from t tmp where a = "a ";
select * from t tmp where a = "";
select * from t tmp where a = " ";
select * from t tmp where a = " ";
# Test both wildcard and column name exist in select field list
drop table if exists t;
create table t(a char(2) primary key, b char(2));
insert into t values("aa", "bb");
select *, a from t tmp where a = "aa";
# Test using table alias in field list
select tmp.* from t tmp where a = "aa";
select tmp.a, tmp.b from t tmp where a = "aa";
select tmp.*, tmp.a, tmp.b from t tmp where a = "aa";
select tmp.* from t tmp where a = "aab";
select tmp.a, tmp.b from t tmp where a = "aab";
select tmp.*, tmp.a, tmp.b from t tmp where a = "aab";
select tmp.*, tmp.a, tmp.b from t tmp where a = "aab";
# Test using table alias in where clause
select * from t tmp where tmp.a = "aa";
select a, b from t tmp where tmp.a = "aa";
select *, a, b from t tmp where tmp.a = "aa";
# Unknown table name in where clause and field list
--error 1054
select a from t where xxxxx.a = "aa";
--error 1054
select xxxxx.a from t where a = "aa";
# When an alias is provided, it completely hides the actual name of the table.
--error 1054
select a from t tmp where t.a = "aa";
--error 1054
select t.a from t tmp where a = "aa";
--error 1051
select t.* from t tmp where a = "aa";
# PointGetCharPK
drop table if exists t;
create table t(a char(4) primary key, b char(4));
insert into t values("aa", "bb");
select * from t where a = "aa";
select * from t where a = "aab";
truncate table t;
insert into t values("a ", "b ");
select * from t where a = "a";
select * from t where a = "a ";
select * from t where a = "a ";
# Test CHAR BINARY.
drop table if exists t;
create table t(a char(2) binary primary key, b char(2));
insert into t values(" ", " ");
insert into t values("a ", "b ");
select * from t where a = "a";
select * from t where a = "a ";
select * from t where a = "a ";
select * from t where a = "";
select * from t where a = " ";
select * from t where a = " ";
# PointGetVarcharPK
drop table if exists t;
create table t(a varchar(2) primary key, b varchar(2));
insert into t values("aa", "bb");
select * from t where a = "aa";
select * from t where a = "aab";
truncate table t;
insert into t values("a ", "b ");
select * from t where a = "a";
select * from t where a = "a ";
select * from t where a = "a ";
# Test VARCHAR BINARY.
drop table if exists t;
create table t(a varchar(2) binary primary key, b varchar(2));
insert into t values(" ", " ");
insert into t values("a ", "b ");
select * from t where a = "a";
select * from t where a = "a ";
select * from t where a = "a ";
select * from t where a = "";
select * from t where a = " ";
select * from t where a = " ";
use mysql;
......@@ -223,186 +223,6 @@ func (s *testPointGetSuite) TestDistinctPlan(c *C) {
tk.MustQuery("select distinct b from test_distinct where id in (123456789101112131,123456789101112132);").Check(testkit.Rows("223456789101112131"))
}
func (s *testPointGetSuite) TestPointGetCharPK(c *C) {
tk := testkit.NewTestKit(c, s.store)
tk.MustExec(`use test;`)
tk.MustExec(`drop table if exists t;`)
tk.MustExec(`create table t(a char(4) primary key, b char(4));`)
tk.MustExec(`insert into t values("aa", "bb");`)
// Test CHAR type.
tk.MustExec(`set @@sql_mode="";`)
tk.MustPointGet(`select * from t where a = "aa";`).Check(testkit.Rows(`aa bb`))
tk.MustPointGet(`select * from t where a = "aab";`).Check(testkit.Rows())
tk.MustExec(`truncate table t;`)
tk.MustExec(`insert into t values("a ", "b ");`)
tk.MustExec(`set @@sql_mode="";`)
tk.MustPointGet(`select * from t where a = "a";`).Check(testkit.Rows(`a b`))
tk.MustPointGet(`select * from t where a = "a ";`).Check(testkit.Rows())
tk.MustPointGet(`select * from t where a = "a ";`).Check(testkit.Rows())
// Test CHAR BINARY.
tk.MustExec(`drop table if exists t;`)
tk.MustExec(`create table t(a char(2) binary primary key, b char(2));`)
tk.MustExec(`insert into t values(" ", " ");`)
tk.MustExec(`insert into t values("a ", "b ");`)
tk.MustExec(`set @@sql_mode="";`)
tk.MustPointGet(`select * from t where a = "a";`).Check(testkit.Rows(`a b`))
tk.MustPointGet(`select * from t where a = "a ";`).Check(testkit.Rows())
tk.MustPointGet(`select * from t where a = "a ";`).Check(testkit.Rows())
tk.MustPointGet(`select * from t where a = "";`).Check(testkit.Rows(` `))
tk.MustPointGet(`select * from t where a = " ";`).Check(testkit.Rows())
tk.MustPointGet(`select * from t where a = " ";`).Check(testkit.Rows())
}
func (s *testPointGetSuite) TestPointGetAliasTableCharPK(c *C) {
tk := testkit.NewTestKit(c, s.store)
tk.MustExec(`use test;`)
tk.MustExec(`drop table if exists t;`)
tk.MustExec(`create table t(a char(2) primary key, b char(2));`)
tk.MustExec(`insert into t values("aa", "bb");`)
tk.MustExec(`set @@sql_mode="";`)
tk.MustPointGet(`select * from t tmp where a = "aa";`).Check(testkit.Rows(`aa bb`))
tk.MustPointGet(`select * from t tmp where a = "aab";`).Check(testkit.Rows())
tk.MustExec(`truncate table t;`)
tk.MustExec(`insert into t values("a ", "b ");`)
tk.MustExec(`set @@sql_mode="";`)
tk.MustPointGet(`select * from t tmp where a = "a";`).Check(testkit.Rows(`a b`))
tk.MustPointGet(`select * from t tmp where a = "a ";`).Check(testkit.Rows())
tk.MustPointGet(`select * from t tmp where a = "a ";`).Check(testkit.Rows())
// Test CHAR BINARY.
tk.MustExec(`drop table if exists t;`)
tk.MustExec(`create table t(a char(2) binary primary key, b char(2));`)
tk.MustExec(`insert into t values(" ", " ");`)
tk.MustExec(`insert into t values("a ", "b ");`)
tk.MustExec(`set @@sql_mode="";`)
tk.MustPointGet(`select * from t tmp where a = "a";`).Check(testkit.Rows(`a b`))
tk.MustPointGet(`select * from t tmp where a = "a ";`).Check(testkit.Rows())
tk.MustPointGet(`select * from t tmp where a = "a ";`).Check(testkit.Rows())
tk.MustPointGet(`select * from t tmp where a = "";`).Check(testkit.Rows(` `))
tk.MustPointGet(`select * from t tmp where a = " ";`).Check(testkit.Rows())
tk.MustPointGet(`select * from t tmp where a = " ";`).Check(testkit.Rows())
// Test both wildcard and column name exist in select field list
tk.MustExec(`set @@sql_mode="";`)
tk.MustExec(`drop table if exists t;`)
tk.MustExec(`create table t(a char(2) primary key, b char(2));`)
tk.MustExec(`insert into t values("aa", "bb");`)
tk.MustPointGet(`select *, a from t tmp where a = "aa";`).Check(testkit.Rows(`aa bb aa`))
// Test using table alias in field list
tk.MustPointGet(`select tmp.* from t tmp where a = "aa";`).Check(testkit.Rows(`aa bb`))
tk.MustPointGet(`select tmp.a, tmp.b from t tmp where a = "aa";`).Check(testkit.Rows(`aa bb`))
tk.MustPointGet(`select tmp.*, tmp.a, tmp.b from t tmp where a = "aa";`).Check(testkit.Rows(`aa bb aa bb`))
tk.MustPointGet(`select tmp.* from t tmp where a = "aab";`).Check(testkit.Rows())
tk.MustPointGet(`select tmp.a, tmp.b from t tmp where a = "aab";`).Check(testkit.Rows())
tk.HasPlan(`select tmp.*, tmp.a, tmp.b from t tmp where a = "aab";`, "Point_Get")
tk.MustQuery(`select tmp.*, tmp.a, tmp.b from t tmp where a = "aab";`).Check(testkit.Rows())
// Test using table alias in where clause
tk.MustPointGet(`select * from t tmp where tmp.a = "aa";`).Check(testkit.Rows(`aa bb`))
tk.MustPointGet(`select a, b from t tmp where tmp.a = "aa";`).Check(testkit.Rows(`aa bb`))
tk.MustPointGet(`select *, a, b from t tmp where tmp.a = "aa";`).Check(testkit.Rows(`aa bb aa bb`))
// Unknown table name in where clause and field list
err := tk.ExecToErr(`select a from t where xxxxx.a = "aa"`)
c.Assert(err, ErrorMatches, ".*Unknown column 'xxxxx.a' in 'where clause'")
err = tk.ExecToErr(`select xxxxx.a from t where a = "aa"`)
c.Assert(err, ErrorMatches, ".*Unknown column 'xxxxx.a' in 'field list'")
// When an alias is provided, it completely hides the actual name of the table.
err = tk.ExecToErr(`select a from t tmp where t.a = "aa"`)
c.Assert(err, ErrorMatches, ".*Unknown column 't.a' in 'where clause'")
err = tk.ExecToErr(`select t.a from t tmp where a = "aa"`)
c.Assert(err, ErrorMatches, ".*Unknown column 't.a' in 'field list'")
err = tk.ExecToErr(`select t.* from t tmp where a = "aa"`)
c.Assert(err, ErrorMatches, ".*Unknown table 't'")
}
func (s *testPointGetSuite) TestIndexLookupChar(c *C) {
tk := testkit.NewTestKit(c, s.store)
tk.MustExec(`use test;`)
tk.MustExec(`drop table if exists t;`)
tk.MustExec(`create table t(a char(2), b char(2), index idx_1(a));`)
tk.MustExec(`insert into t values("aa", "bb");`)
tk.MustExec(`set @@sql_mode="";`)
tk.MustIndexLookup(`select * from t where a = "aa";`).Check(testkit.Rows(`aa bb`))
tk.MustIndexLookup(`select * from t where a = "aab";`).Check(testkit.Rows())
// Test query with table alias
tk.MustIndexLookup(`select * from t tmp where a = "aa";`).Check(testkit.Rows(`aa bb`))
tk.MustIndexLookup(`select * from t tmp where a = "aab";`).Check(testkit.Rows())
tk.MustExec(`truncate table t;`)
tk.MustExec(`insert into t values("a ", "b ");`)
tk.MustExec(`set @@sql_mode="";`)
tk.MustIndexLookup(`select * from t where a = "a";`).Check(testkit.Rows(`a b`))
tk.MustIndexLookup(`select * from t where a = "a ";`).Check(testkit.Rows())
tk.MustIndexLookup(`select * from t where a = "a ";`).Check(testkit.Rows())
// Test CHAR BINARY.
tk.MustExec(`drop table if exists t;`)
tk.MustExec(`create table t(a char(2) binary, b char(2), index idx_1(a));`)
tk.MustExec(`insert into t values(" ", " ");`)
tk.MustExec(`insert into t values("a ", "b ");`)
tk.MustExec(`set @@sql_mode="";`)
tk.MustIndexLookup(`select * from t where a = "a";`).Check(testkit.Rows(`a b`))
tk.MustIndexLookup(`select * from t where a = "a ";`).Check(testkit.Rows())
tk.MustIndexLookup(`select * from t where a = "a ";`).Check(testkit.Rows())
tk.MustIndexLookup(`select * from t where a = "";`).Check(testkit.Rows(` `))
tk.MustIndexLookup(`select * from t where a = " ";`).Check(testkit.Rows())
tk.MustIndexLookup(`select * from t where a = " ";`).Check(testkit.Rows())
tk.MustIndexLookup(`select * from t where a = " ";`).Check(testkit.Rows())
}
func (s *testPointGetSuite) TestPointGetVarcharPK(c *C) {
tk := testkit.NewTestKit(c, s.store)
tk.MustExec(`use test;`)
tk.MustExec(`drop table if exists t;`)
tk.MustExec(`create table t(a varchar(2) primary key, b varchar(2));`)
tk.MustExec(`insert into t values("aa", "bb");`)
tk.MustExec(`set @@sql_mode="";`)
tk.MustPointGet(`select * from t where a = "aa";`).Check(testkit.Rows(`aa bb`))
tk.MustPointGet(`select * from t where a = "aab";`).Check(testkit.Rows())
tk.MustExec(`truncate table t;`)
tk.MustExec(`insert into t values("a ", "b ");`)
tk.MustExec(`set @@sql_mode="";`)
tk.MustPointGet(`select * from t where a = "a";`).Check(testkit.Rows())
tk.MustPointGet(`select * from t where a = "a ";`).Check(testkit.Rows(`a b `))
tk.MustPointGet(`select * from t where a = "a ";`).Check(testkit.Rows())
// // Test VARCHAR BINARY.
tk.MustExec(`drop table if exists t;`)
tk.MustExec(`create table t(a varchar(2) binary primary key, b varchar(2));`)
tk.MustExec(`insert into t values(" ", " ");`)
tk.MustExec(`insert into t values("a ", "b ");`)
tk.MustExec(`set @@sql_mode="";`)
tk.MustPointGet(`select * from t where a = "a";`).Check(testkit.Rows())
tk.MustPointGet(`select * from t where a = "a ";`).Check(testkit.Rows(`a b `))
tk.MustPointGet(`select * from t where a = "a ";`).Check(testkit.Rows())
tk.MustPointGet(`select * from t where a = " ";`).Check(testkit.Rows())
tk.MustPointGet(`select * from t where a = " ";`).Check(testkit.Rows(` `))
tk.MustPointGet(`select * from t where a = " ";`).Check(testkit.Rows())
}
func (s *testPointGetSuite) TestPointGetBinaryPK(c *C) {
tk := testkit.NewTestKit(c, s.store)
tk.MustExec(`use test;`)
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment