diff options
author | Eugene Kosov <claprix@yandex.ru> | 2017-12-29 16:28:13 +0300 |
---|---|---|
committer | Aleksey Midenkov <midenok@gmail.com> | 2018-01-01 23:37:02 +0300 |
commit | 157150cfcf5b95b19d332cb1373aeb5eb22d4f70 (patch) | |
tree | a1fe42bd3882b48d47a3c52b71fa6f49bde010d0 /sql | |
parent | 7069071d7de774dcf28f73b6a968bcb730a12885 (diff) | |
download | mariadb-git-157150cfcf5b95b19d332cb1373aeb5eb22d4f70.tar.gz |
MDEV-14769 Temporary table can be altered into system versioning + system_versioning_alter_history has no effect
Diffstat (limited to 'sql')
-rw-r--r-- | sql/handler.cc | 6 | ||||
-rw-r--r-- | sql/share/errmsg-utf8.txt | 2 | ||||
-rw-r--r-- | sql/sql_yacc.yy | 2 |
3 files changed, 8 insertions, 2 deletions
diff --git a/sql/handler.cc b/sql/handler.cc index 5cbcd936216..60909ba2299 100644 --- a/sql/handler.cc +++ b/sql/handler.cc @@ -7177,6 +7177,12 @@ bool Vers_parse_info::fix_alter_info(THD *thd, Alter_info *alter_info, if (!need_check(alter_info) && !share->versioned) return false; + if (!thd->variables.vers_force && share->tmp_table && share->tmp_table != INTERNAL_TMP_TABLE) + { + my_error(ER_VERS_TEMPORARY, MYF(0)); + return true; + } + if (alter_info->flags & Alter_info::ALTER_ADD_SYSTEM_VERSIONING && table->versioned()) { my_error(ER_VERS_ALREADY_VERSIONED, MYF(0), table_name); diff --git a/sql/share/errmsg-utf8.txt b/sql/share/errmsg-utf8.txt index 6380305fb0e..ebf149fd6e7 100644 --- a/sql/share/errmsg-utf8.txt +++ b/sql/share/errmsg-utf8.txt @@ -7931,7 +7931,7 @@ ER_VERS_TRUNCATE_VIEW eng "DELETE HISTORY from VIEW is prohibited" ER_VERS_TEMPORARY - eng "%s prohibited for TEMPORARY tables" + eng "System versioning prohibited for TEMPORARY tables" ER_VERS_INPLACE_NOT_IMPLEMENTED eng "Not implemented for system-versioned tables" diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index 4967065d7ee..68cf1e26084 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -6235,7 +6235,7 @@ versioning_option: { if (!thd->variables.vers_force) { - my_error(ER_VERS_TEMPORARY, MYF(0), "WITH SYSTEM VERSIONING"); + my_error(ER_VERS_TEMPORARY, MYF(0)); MYSQL_YYABORT; } } |