From 888f6852261c67a57f21ae80ebb0f3c3f539db7b Mon Sep 17 00:00:00 2001 From: Anel Husakovic Date: Wed, 31 Jul 2019 03:28:38 -0700 Subject: [PATCH] MDEV-20210 If you have an INVISIBLE VIRTUAL column, SHOW CREATE TABLE doesn't list it as INVISIBLE --- mysql-test/main/invisible_field_debug.result | 12 ++++++++++++ mysql-test/main/invisible_field_debug.test | 9 +++++++++ sql/sql_show.cc | 4 ++++ 3 files changed, 25 insertions(+) diff --git a/mysql-test/main/invisible_field_debug.result b/mysql-test/main/invisible_field_debug.result index 0ea8ab12de8..6f85bd6dd88 100644 --- a/mysql-test/main/invisible_field_debug.result +++ b/mysql-test/main/invisible_field_debug.result @@ -376,3 +376,15 @@ SET debug_dbug="+d,test_completely_invisible,test_invisible_index"; CREATE TABLE t2 LIKE t1; SET debug_dbug= DEFAULT; DROP TABLE t1, t2; +# +# MDEV-20210 +# If you have an INVISIBLE VIRTUAL column, SHOW CREATE TABLE doesn't list it as INVISIBLE +# +CREATE TABLE t1 (i INT, v int GENERATED ALWAYS AS (1) VIRTUAL INVISIBLE); +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `i` int(11) DEFAULT NULL, + `v` int(11) GENERATED ALWAYS AS (1) VIRTUAL INVISIBLE +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +DROP TABLE t1; diff --git a/mysql-test/main/invisible_field_debug.test b/mysql-test/main/invisible_field_debug.test index 86252512386..a8e20247090 100644 --- a/mysql-test/main/invisible_field_debug.test +++ b/mysql-test/main/invisible_field_debug.test @@ -278,3 +278,12 @@ SET debug_dbug="+d,test_completely_invisible,test_invisible_index"; CREATE TABLE t2 LIKE t1; SET debug_dbug= DEFAULT; DROP TABLE t1, t2; + +--echo # +--echo # MDEV-20210 +--echo # If you have an INVISIBLE VIRTUAL column, SHOW CREATE TABLE doesn't list it as INVISIBLE +--echo # + +CREATE TABLE t1 (i INT, v int GENERATED ALWAYS AS (1) VIRTUAL INVISIBLE); +SHOW CREATE TABLE t1; +DROP TABLE t1; diff --git a/sql/sql_show.cc b/sql/sql_show.cc index 1170aead53c..77eb51f6368 100644 --- a/sql/sql_show.cc +++ b/sql/sql_show.cc @@ -2256,6 +2256,10 @@ int show_create_table(THD *thd, TABLE_LIST *table_list, String *packet, packet->append(STRING_WITH_LEN(" STORED")); else packet->append(STRING_WITH_LEN(" VIRTUAL")); + if (field->invisible == INVISIBLE_USER) + { + packet->append(STRING_WITH_LEN(" INVISIBLE")); + } } else {