From 53bdc3df3423be5214216b0cd1f497029fbe320c Mon Sep 17 00:00:00 2001 From: pingcap-github-bot <sre-bot@pingcap.com> Date: Thu, 2 Apr 2020 15:46:21 +0800 Subject: [PATCH] info_schema: fix memtable column flag type (#15944) (#16004) --- executor/infoschema_reader_test.go | 5 +++++ infoschema/tables.go | 8 +++----- infoschema/tables_test.go | 6 +++--- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/executor/infoschema_reader_test.go b/executor/infoschema_reader_test.go index d7b0f04d54083..c8d7d5f8ad744 100644 --- a/executor/infoschema_reader_test.go +++ b/executor/infoschema_reader_test.go @@ -756,4 +756,9 @@ func (s *testInfoschemaTableSuite) TestSequences(c *C) { tk := testkit.NewTestKit(c, s.store) tk.MustExec("CREATE SEQUENCE test.seq maxvalue 10000000") tk.MustQuery("SELECT * FROM information_schema.sequences WHERE sequence_schema='test' AND sequence_name='seq'").Check(testkit.Rows("def test seq 1 1000 0 1 10000000 1 0 1 ")) + tk.MustExec("DROP SEQUENCE test.seq") + tk.MustExec("CREATE SEQUENCE test.seq start = -1 minvalue -1 maxvalue 10 increment 1 cache 10") + tk.MustQuery("SELECT * FROM information_schema.sequences WHERE sequence_schema='test' AND sequence_name='seq'").Check(testkit.Rows("def test seq 1 10 0 1 10 -1 0 -1 ")) + tk.MustExec("CREATE SEQUENCE test.seq2 start = -9 minvalue -10 maxvalue 10 increment -1 cache 15") + tk.MustQuery("SELECT * FROM information_schema.sequences WHERE sequence_schema='test' AND sequence_name='seq2'").Check(testkit.Rows("def test seq2 1 15 0 -1 10 -10 0 -9 ")) } diff --git a/infoschema/tables.go b/infoschema/tables.go index ffa351801ccec..c52712643533d 100644 --- a/infoschema/tables.go +++ b/infoschema/tables.go @@ -214,11 +214,9 @@ type columnInfo struct { func buildColumnInfo(col columnInfo) *model.ColumnInfo { mCharset := charset.CharsetBin mCollation := charset.CharsetBin - mFlag := mysql.UnsignedFlag if col.tp == mysql.TypeVarchar || col.tp == mysql.TypeBlob { mCharset = charset.CharsetUTF8MB4 mCollation = charset.CollationUTF8MB4 - mFlag = col.flag } fieldType := types.FieldType{ Charset: mCharset, @@ -226,7 +224,7 @@ func buildColumnInfo(col columnInfo) *model.ColumnInfo { Tp: col.tp, Flen: col.size, Decimal: col.decimal, - Flag: mFlag, + Flag: col.flag, } return &model.ColumnInfo{ Name: model.NewCIStr(col.name), @@ -667,7 +665,7 @@ var tableCollationCharacterSetApplicabilityCols = []columnInfo{ } var tableProcesslistCols = []columnInfo{ - {name: "ID", tp: mysql.TypeLonglong, size: 21, flag: mysql.NotNullFlag, deflt: 0}, + {name: "ID", tp: mysql.TypeLonglong, size: 21, flag: mysql.NotNullFlag | mysql.UnsignedFlag, deflt: 0}, {name: "USER", tp: mysql.TypeVarchar, size: 16, flag: mysql.NotNullFlag, deflt: ""}, {name: "HOST", tp: mysql.TypeVarchar, size: 64, flag: mysql.NotNullFlag, deflt: ""}, {name: "DB", tp: mysql.TypeVarchar, size: 64}, @@ -675,7 +673,7 @@ var tableProcesslistCols = []columnInfo{ {name: "TIME", tp: mysql.TypeLong, size: 7, flag: mysql.NotNullFlag, deflt: 0}, {name: "STATE", tp: mysql.TypeVarchar, size: 7}, {name: "INFO", tp: mysql.TypeString, size: 512}, - {name: "MEM", tp: mysql.TypeLonglong, size: 21}, + {name: "MEM", tp: mysql.TypeLonglong, size: 21, flag: mysql.UnsignedFlag}, {name: "TxnStart", tp: mysql.TypeVarchar, size: 64, flag: mysql.NotNullFlag, deflt: ""}, } diff --git a/infoschema/tables_test.go b/infoschema/tables_test.go index ea84d073bf439..20c04d2cbc4ad 100644 --- a/infoschema/tables_test.go +++ b/infoschema/tables_test.go @@ -273,14 +273,14 @@ func (s *testTableSuite) TestInfoschemaFieldValue(c *C) { tk.MustQuery("show create table information_schema.PROCESSLIST").Check( testkit.Rows("" + "PROCESSLIST CREATE TABLE `PROCESSLIST` (\n" + - " `ID` bigint(21) unsigned DEFAULT '0',\n" + + " `ID` bigint(21) unsigned NOT NULL DEFAULT '0',\n" + " `USER` varchar(16) NOT NULL DEFAULT '',\n" + " `HOST` varchar(64) NOT NULL DEFAULT '',\n" + " `DB` varchar(64) DEFAULT NULL,\n" + " `COMMAND` varchar(16) NOT NULL DEFAULT '',\n" + - " `TIME` int(7) unsigned DEFAULT '0',\n" + + " `TIME` int(7) NOT NULL DEFAULT '0',\n" + " `STATE` varchar(7) DEFAULT NULL,\n" + - " `INFO` binary(512) unsigned DEFAULT NULL,\n" + + " `INFO` binary(512) DEFAULT NULL,\n" + " `MEM` bigint(21) unsigned DEFAULT NULL,\n" + " `TxnStart` varchar(64) NOT NULL DEFAULT ''\n" + ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin"))