diff options
author | Aleksey Midenkov <midenok@gmail.com> | 2017-11-14 15:47:01 +0300 |
---|---|---|
committer | Aleksey Midenkov <midenok@gmail.com> | 2017-11-17 14:28:45 +0300 |
commit | a4439fef961ec97509aab5642070068f87ea8c33 (patch) | |
tree | fd3daf12a6e6bcde215a47d0884eea6061995f60 | |
parent | ecf259cacf46826e5eb8be0c1649d86b3df559ae (diff) | |
download | mariadb-git-a4439fef961ec97509aab5642070068f87ea8c33.tar.gz |
SQL: don't update TRT when altered [#305, #302]
Tests affected: main.mysqlcheck
-rw-r--r-- | mysql-test/r/mysqlcheck.result | 9 | ||||
-rw-r--r-- | sql/sql_table.cc | 2 | ||||
-rw-r--r-- | sql/table.h | 22 |
3 files changed, 27 insertions, 6 deletions
diff --git a/mysql-test/r/mysqlcheck.result b/mysql-test/r/mysqlcheck.result index a2967bd5e5b..d1785626fc5 100644 --- a/mysql-test/r/mysqlcheck.result +++ b/mysql-test/r/mysqlcheck.result @@ -31,6 +31,7 @@ mysql.time_zone_leap_second OK mysql.time_zone_name OK mysql.time_zone_transition OK mysql.time_zone_transition_type OK +mysql.transaction_registry OK mysql.user OK mysql.vtmd_template OK mtr.global_suppressions Table is already up to date @@ -66,6 +67,9 @@ mysql.time_zone_leap_second OK mysql.time_zone_name OK mysql.time_zone_transition OK mysql.time_zone_transition_type OK +mysql.transaction_registry +note : Table does not support optimize, doing recreate + analyze instead +status : OK mysql.user OK mysql.vtmd_template note : Table does not support optimize, doing recreate + analyze instead @@ -97,6 +101,7 @@ mysql.time_zone_leap_second OK mysql.time_zone_name OK mysql.time_zone_transition OK mysql.time_zone_transition_type OK +mysql.transaction_registry OK mysql.user OK mysql.vtmd_template OK mysql.column_stats Table is already up to date @@ -130,6 +135,9 @@ mysql.time_zone_leap_second Table is already up to date mysql.time_zone_name Table is already up to date mysql.time_zone_transition Table is already up to date mysql.time_zone_transition_type Table is already up to date +mysql.transaction_registry +note : Table does not support optimize, doing recreate + analyze instead +status : OK mysql.user Table is already up to date mysql.vtmd_template note : Table does not support optimize, doing recreate + analyze instead @@ -455,6 +463,7 @@ mysql.time_zone_leap_second Table is already up to date mysql.time_zone_name Table is already up to date mysql.time_zone_transition Table is already up to date mysql.time_zone_transition_type Table is already up to date +mysql.transaction_registry OK mysql.user Table is already up to date mysql.vtmd_template OK mysqltest1.t1 diff --git a/sql/sql_table.cc b/sql/sql_table.cc index 30071743371..e96426f4e69 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -7430,7 +7430,7 @@ static bool mysql_inplace_alter_table(THD *thd, { TR_table trt(thd, true); - if (table->file->native_versioned()) + if (table->file->native_versioned() && trt != *table_list) { if (opt_transaction_registry && trt.update()) return true; diff --git a/sql/table.h b/sql/table.h index a7cd29c1bd3..9b8f345c03f 100644 --- a/sql/table.h +++ b/sql/table.h @@ -2961,6 +2961,15 @@ public: ulonglong commit_id1= 0, enum_tx_isolation iso_level1= ISO_READ_UNCOMMITTED, ulonglong commit_id0= 0); + enum_tx_isolation iso_level() const; + void store_iso_level(enum_tx_isolation iso_level) + { + DBUG_ASSERT(iso_level <= ISO_SERIALIZABLE); + store(FLD_ISO_LEVEL, iso_level + 1); + } + bool check(); + +public: TABLE * operator-> () const { return table; @@ -2974,13 +2983,16 @@ public: { return table; } - enum_tx_isolation iso_level() const; - void store_iso_level(enum_tx_isolation iso_level) + bool operator== (TABLE_LIST &subj) const { - DBUG_ASSERT(iso_level <= ISO_SERIALIZABLE); - store(FLD_ISO_LEVEL, iso_level + 1); + if (0 != strcmp(db, subj.db)) + return false; + return (0 == strcmp(table_name, subj.table_name)); + } + bool operator!= (TABLE_LIST &subj) const + { + return !(*this == subj); } - bool check(); }; #endif /* MYSQL_CLIENT */ |