summaryrefslogtreecommitdiff
path: root/sql/sql_table.cc
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2018-07-03 10:22:43 +0300
committerMarko Mäkelä <marko.makela@mariadb.com>2018-07-03 10:22:43 +0300
commitc3289d27eef39a47fed2ce1ff239013ed6870f39 (patch)
tree2a6e2434287921eb6f5f7c7877e8da061803ed9e /sql/sql_table.cc
parent358ae4b46dd52b329154cff901b58e96fd223773 (diff)
parenteaab98f7022732b26b4ea590e1bb44308e253be8 (diff)
downloadmariadb-git-c3289d27eef39a47fed2ce1ff239013ed6870f39.tar.gz
Merge mariadb-10.3.8 into 10.3
Diffstat (limited to 'sql/sql_table.cc')
-rw-r--r--sql/sql_table.cc15
1 files changed, 6 insertions, 9 deletions
diff --git a/sql/sql_table.cc b/sql/sql_table.cc
index 0473561fd9e..dbf400b53d7 100644
--- a/sql/sql_table.cc
+++ b/sql/sql_table.cc
@@ -6237,8 +6237,11 @@ drop_create_field:
continue;
/* Check if the table already has a PRIMARY KEY */
- bool dup_primary_key= key->type == Key::PRIMARY &&
- table->s->primary_key != MAX_KEY;
+ bool dup_primary_key=
+ key->type == Key::PRIMARY &&
+ table->s->primary_key != MAX_KEY &&
+ (keyname= table->s->key_info[table->s->primary_key].name.str) &&
+ my_strcasecmp(system_charset_info, keyname, primary_key_name) == 0;
if (dup_primary_key)
goto remove_key;
@@ -6337,7 +6340,6 @@ remove_key:
}
#ifdef WITH_PARTITION_STORAGE_ENGINE
- DBUG_ASSERT(thd->work_part_info == 0);
partition_info *tab_part_info= table->part_info;
thd->work_part_info= thd->lex->part_info;
if (tab_part_info)
@@ -9054,10 +9056,6 @@ bool mysql_alter_table(THD *thd, const LEX_CSTRING *new_db,
{
DBUG_ENTER("mysql_alter_table");
-#ifdef WITH_PARTITION_STORAGE_ENGINE
- thd->work_part_info= 0; // Used by partitioning
-#endif
-
/*
Check if we attempt to alter mysql.slow_log or
mysql.general_log table and return an error if
@@ -9130,8 +9128,7 @@ bool mysql_alter_table(THD *thd, const LEX_CSTRING *new_db,
DBUG_RETURN(true);
}
}
- if (alter_info->data_modifying() && !thd->slave_thread &&
- thd->variables.vers_alter_history == VERS_ALTER_HISTORY_ERROR)
+ if (alter_info->vers_prohibited(thd))
{
my_error(ER_VERS_ALTER_NOT_ALLOWED, MYF(0),
table_list->db.str, table_list->table_name.str);