Merge 10.0 into 10.1

This commit is contained in:
Marko Mäkelä 2018-11-05 17:08:21 +02:00
commit bae21bfb5d
16 changed files with 102 additions and 152 deletions

View File

@ -1,6 +1,6 @@
/*****************************************************************************
Copyright (c) 1996, 2018, Oracle and/or its affiliates. All Rights Reserved.
Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
Copyright (c) 2012, Facebook Inc.
Copyright (c) 2013, 2018, MariaDB Corporation.
@ -3381,10 +3381,7 @@ dict_foreign_find_index(
table, col_names, columns, n_cols,
index, types_idx,
check_charsets, check_null,
error, err_col_no,err_index)
&& (!(index->online_status ==
ONLINE_INDEX_ABORTED_DROPPED
||index->online_status == ONLINE_INDEX_ABORTED))) {
error, err_col_no,err_index)) {
if (error) {
*error = DB_SUCCESS;
}

View File

@ -2357,11 +2357,6 @@ innobase_get_lower_case_table_names(void)
{
return(lower_case_table_names);
}
/** return one of the tmpdir path
@return tmpdir path*/
UNIV_INTERN
char*
innobase_mysql_tmpdir(void) { return (mysql_tmpdir); }
/** Create a temporary file in the location specified by the parameter
path. If the path is null, then it will be created in tmpdir.
@ -12872,8 +12867,7 @@ innobase_rename_table(
row_mysql_lock_data_dictionary(trx);
dict_table_t* table = NULL;
table = dict_table_open_on_name(norm_from, TRUE, FALSE,
dict_table_t* table = dict_table_open_on_name(norm_from, TRUE, FALSE,
DICT_ERR_IGNORE_NONE);
/* Since DICT_BG_YIELD has sleep for 250 milliseconds,
@ -13056,9 +13050,7 @@ ha_innobase::rename_table(
my_error(ER_TABLE_EXISTS_ERROR, MYF(0), to);
error = DB_ERROR;
}
else if (error == DB_LOCK_WAIT_TIMEOUT) {
} else if (error == DB_LOCK_WAIT_TIMEOUT) {
my_error(ER_LOCK_WAIT_TIMEOUT, MYF(0), to);
error = DB_LOCK_WAIT;

View File

@ -4283,24 +4283,12 @@ oom:
table. Either way, we should be seeing and
reporting a bogus duplicate key error. */
dup_key = NULL;
} else if (prebuilt->trx->error_key_num == 0) {
dup_key = &ha_alter_info->key_info_buffer[
prebuilt->trx->error_key_num];
} else {
/* Check if there is generated cluster index column */
if (ctx->num_to_add_index > ha_alter_info->key_count) {
DBUG_ASSERT(prebuilt->trx->error_key_num
<= ha_alter_info->key_count);
dup_key = &ha_alter_info->key_info_buffer[
prebuilt->trx->error_key_num - 1];
}
else {
DBUG_ASSERT(prebuilt->trx->error_key_num
< ha_alter_info->key_count);
dup_key = &ha_alter_info->key_info_buffer[
prebuilt->trx->error_key_num];
}
}
print_keydup_error(altered_table, dup_key, MYF(0));
break;
case DB_ONLINE_LOG_TOO_BIG:
@ -5234,19 +5222,10 @@ commit_try_rebuild(
FTS_DOC_ID. */
dup_key = NULL;
} else {
if (ctx->num_to_add_index > ha_alter_info->key_count) {
DBUG_ASSERT(err_key <=
ha_alter_info->key_count);
dup_key = &ha_alter_info
->key_info_buffer[err_key - 1];
}
else {
DBUG_ASSERT(err_key <
ha_alter_info->key_count);
DBUG_ASSERT(err_key < ha_alter_info->key_count);
dup_key = &ha_alter_info
->key_info_buffer[err_key];
}
}
print_keydup_error(altered_table, dup_key, MYF(0));
DBUG_RETURN(true);

View File

@ -1,6 +1,6 @@
/***********************************************************************
Copyright (c) 1995, 2018, Oracle and/or its affiliates. All Rights Reserved.
Copyright (c) 1995, 2017, Oracle and/or its affiliates. All Rights Reserved.
Copyright (c) 2009, Percona Inc.
Copyright (c) 2013, 2017, MariaDB Corporation.
@ -1323,10 +1323,6 @@ os_file_get_status(
file can be opened in RW mode */
#if !defined(UNIV_HOTBACKUP)
/** return one of the tmpdir path
@return tmpdir path*/
char *innobase_mysql_tmpdir(void);
/** Create a temporary file in the location specified by the parameter
path. If the path is null, then it will be created in tmpdir.
@param[in] path location for creating temporary file

View File

@ -1,6 +1,6 @@
/*****************************************************************************
Copyright (c) 2005, 2018, Oracle and/or its affiliates. All Rights Reserved.
Copyright (c) 2005, 2017, Oracle and/or its affiliates. All Rights Reserved.
Copyright (c) 2014, 2018, MariaDB Corporation.
This program is free software; you can redistribute it and/or modify it under
@ -3339,10 +3339,9 @@ row_merge_file_create_low(
file APIs, add instrumentation to register with
performance schema */
struct PSI_file_locker* locker = NULL;
PSI_file_locker_state state;
if (!path) {
path = innobase_mysql_tmpdir();
path = mysql_tmpdir;
}
static const char label[] = "/Innodb Merge Temp File";
char* name = static_cast<char*>(

View File

@ -1,6 +1,6 @@
/*****************************************************************************
Copyright (c) 1997, 2018, Oracle and/or its affiliates. All Rights Reserved.
Copyright (c) 1997, 2017, Oracle and/or its affiliates. All Rights Reserved.
Copyright (c) 2008, Google Inc.
Copyright (c) 2015, 2018, MariaDB Corporation.
@ -4721,7 +4721,7 @@ no_gap_lock:
prebuilt->new_rec_locks = 1;
}
err = DB_SUCCESS;
break;
/* fall through */
case DB_SUCCESS:
break;
case DB_LOCK_WAIT:

View File

@ -1,6 +1,6 @@
/*****************************************************************************
Copyright (c) 1996, 2018, Oracle and/or its affiliates. All Rights Reserved.
Copyright (c) 1996, 2017, Oracle and/or its affiliates. All Rights Reserved.
Copyright (c) 2012, Facebook Inc.
Copyright (c) 2013, 2018, MariaDB Corporation.
@ -3394,10 +3394,7 @@ dict_foreign_find_index(
table, col_names, columns, n_cols,
index, types_idx,
check_charsets, check_null,
error, err_col_no,err_index)
&& (!(index->online_status ==
ONLINE_INDEX_ABORTED_DROPPED
||index->online_status == ONLINE_INDEX_ABORTED))) {
error, err_col_no,err_index)) {
if (error) {
*error = DB_SUCCESS;
}

View File

@ -13464,8 +13464,7 @@ innobase_rename_table(
row_mysql_lock_data_dictionary(trx);
dict_table_t* table = NULL;
table = dict_table_open_on_name(norm_from, TRUE, FALSE,
dict_table_t* table = dict_table_open_on_name(norm_from, TRUE, FALSE,
DICT_ERR_IGNORE_NONE);
/* Since DICT_BG_YIELD has sleep for 250 milliseconds,
@ -13659,12 +13658,6 @@ ha_innobase::rename_table(
error = DB_LOCK_WAIT;
}
else if (error == DB_LOCK_WAIT_TIMEOUT) {
my_error(ER_LOCK_WAIT_TIMEOUT, MYF(0), to);
error = DB_LOCK_WAIT;
}
DBUG_RETURN(convert_error_code_to_mysql(error, 0, NULL));
}

View File

@ -525,7 +525,7 @@ dtype_get_fixed_size_low(
return(0);
}
#endif /* UNIV_DEBUG */
// fallthrough
/* fall through */
case DATA_CHAR:
case DATA_FIXBINARY:
case DATA_INT:
@ -603,7 +603,7 @@ dtype_get_min_size_low(
return(0);
}
#endif /* UNIV_DEBUG */
// fallthrough
/* fall through */
case DATA_CHAR:
case DATA_FIXBINARY:
case DATA_INT:

View File

@ -378,7 +378,8 @@ dict_mem_table_add_col(
const char* name, /*!< in: column name, or NULL */
ulint mtype, /*!< in: main datatype */
ulint prtype, /*!< in: precise type */
ulint len); /*!< in: precision */
ulint len) /*!< in: precision */
MY_ATTRIBUTE((nonnull(1)));
/**********************************************************************//**
Renames a column of a table in the data dictionary cache. */
UNIV_INTERN

View File

@ -1,6 +1,6 @@
/*****************************************************************************
Copyright (c) 2012, 2018, Oracle and/or its affiliates. All Rights Reserved.
Copyright (c) 2012, 2016, Oracle and/or its affiliates. All Rights Reserved.
Copyright (c) 2015, 2018, MariaDB Corporation.
This program is free software; you can redistribute it and/or modify it under
@ -1949,11 +1949,7 @@ PageConverter::update_index_page(
return(DB_SUCCESS);
}
if (!page_is_leaf(block->frame)) {
return (DB_SUCCESS);
}
return(update_records(block));
return page_is_leaf(block->frame) ? update_records(block) : DB_SUCCESS;
}
/**
@ -4239,4 +4235,3 @@ row_import_for_mysql(
return(row_import_cleanup(prebuilt, trx, err));
}

View File

@ -2738,7 +2738,8 @@ row_sel_field_store_in_mysql_format_func(
case DATA_SYS:
/* These column types should never be shipped to MySQL. */
ut_ad(0);
break;
/* fall through */
case DATA_CHAR:
case DATA_FIXBINARY:
case DATA_FLOAT:
@ -4729,7 +4730,7 @@ no_gap_lock:
prebuilt->new_rec_locks = 1;
}
err = DB_SUCCESS;
break;
/* fall through */
case DB_SUCCESS:
break;
case DB_LOCK_WAIT: