Merge 10.2 into 10.3
This commit is contained in:
commit
99fa7c6c2f
@ -1335,11 +1335,17 @@ UPDATE t6 SET b = "updated by client 2";
|
|||||||
SELECT * FROM t6;
|
SELECT * FROM t6;
|
||||||
a b aa bb
|
a b aa bb
|
||||||
1 inserted by client 1 1 inserted by client 1
|
1 inserted by client 1 1 inserted by client 1
|
||||||
2 updated by client 2 2 inserted by client 1
|
2 inserted by client 1 2 inserted by client 1
|
||||||
3 inserted by client 1 3 inserted by client 1
|
3 inserted by client 1 3 inserted by client 1
|
||||||
4 updated by client 2 4 inserted by client 1
|
4 updated by client 2 4 inserted by client 1
|
||||||
5 updated by client 2 NULL NULL
|
5 updated by client 2 NULL NULL
|
||||||
10 updated by client 2 1 inserted by client 1
|
10 updated by client 2 1 inserted by client 1
|
||||||
|
SELECT * FROM t6 LOCK IN SHARE MODE;
|
||||||
|
a b aa bb
|
||||||
|
2 updated by client 2 2 inserted by client 1
|
||||||
|
4 updated by client 2 4 inserted by client 1
|
||||||
|
5 updated by client 2 NULL NULL
|
||||||
|
10 updated by client 2 1 inserted by client 1
|
||||||
SELECT COUNT(*) FROM t6;
|
SELECT COUNT(*) FROM t6;
|
||||||
COUNT(*)
|
COUNT(*)
|
||||||
6
|
6
|
||||||
|
@ -1701,7 +1701,7 @@ variable_value - @innodb_rows_inserted_orig
|
|||||||
964
|
964
|
||||||
SELECT variable_value - @innodb_rows_updated_orig FROM information_schema.global_status WHERE LOWER(variable_name) = 'innodb_rows_updated';
|
SELECT variable_value - @innodb_rows_updated_orig FROM information_schema.global_status WHERE LOWER(variable_name) = 'innodb_rows_updated';
|
||||||
variable_value - @innodb_rows_updated_orig
|
variable_value - @innodb_rows_updated_orig
|
||||||
866
|
865
|
||||||
SELECT variable_value - @innodb_row_lock_waits_orig FROM information_schema.global_status WHERE LOWER(variable_name) = 'innodb_row_lock_waits';
|
SELECT variable_value - @innodb_row_lock_waits_orig FROM information_schema.global_status WHERE LOWER(variable_name) = 'innodb_row_lock_waits';
|
||||||
variable_value - @innodb_row_lock_waits_orig
|
variable_value - @innodb_row_lock_waits_orig
|
||||||
0
|
0
|
||||||
|
@ -301,6 +301,7 @@ SELECT COUNT(*) FROM t5;
|
|||||||
|
|
||||||
UPDATE t6 SET b = "updated by client 2";
|
UPDATE t6 SET b = "updated by client 2";
|
||||||
SELECT * FROM t6;
|
SELECT * FROM t6;
|
||||||
|
SELECT * FROM t6 LOCK IN SHARE MODE;
|
||||||
SELECT COUNT(*) FROM t6;
|
SELECT COUNT(*) FROM t6;
|
||||||
|
|
||||||
DELETE FROM t7;
|
DELETE FROM t7;
|
||||||
|
@ -1417,12 +1417,13 @@ dict_check_sys_tables(
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* If the table is not a predefined tablespace then it must
|
/* For tables or partitions using .ibd files, the flag
|
||||||
be in a file-per-table tablespace.
|
DICT_TF2_USE_FILE_PER_TABLE was not set in MIX_LEN
|
||||||
Note that flags2 is not available for REDUNDANT tables,
|
before MySQL 5.6.5. The flag should not have been
|
||||||
so don't check those. */
|
introduced in persistent storage. MariaDB will keep
|
||||||
ut_ad(!DICT_TF_GET_COMPACT(flags)
|
setting the flag when writing SYS_TABLES entries for
|
||||||
|| flags2 & DICT_TF2_USE_FILE_PER_TABLE);
|
newly created or rebuilt tables or partitions, but
|
||||||
|
will otherwise ignore the flag. */
|
||||||
|
|
||||||
/* Now that we have the proper name for this tablespace,
|
/* Now that we have the proper name for this tablespace,
|
||||||
look to see if it is already in the tablespace cache. */
|
look to see if it is already in the tablespace cache. */
|
||||||
|
@ -3620,7 +3620,6 @@ innobase_init(
|
|||||||
int err;
|
int err;
|
||||||
char *default_path;
|
char *default_path;
|
||||||
ulong num_pll_degree;
|
ulong num_pll_degree;
|
||||||
ulint srv_buf_pool_size_org = 0;
|
|
||||||
|
|
||||||
DBUG_ENTER("innobase_init");
|
DBUG_ENTER("innobase_init");
|
||||||
handlerton* innobase_hton= (handlerton*) p;
|
handlerton* innobase_hton= (handlerton*) p;
|
||||||
@ -4128,31 +4127,9 @@ innobase_change_buffering_inited_ok:
|
|||||||
mysql_cond_register("innodb", all_innodb_conds, count);
|
mysql_cond_register("innodb", all_innodb_conds, count);
|
||||||
#endif /* HAVE_PSI_INTERFACE */
|
#endif /* HAVE_PSI_INTERFACE */
|
||||||
|
|
||||||
/* Set buffer pool size to default for fast startup when mysqld is
|
|
||||||
run with --help --verbose options. */
|
|
||||||
/* JAN: TODO: MySQL 5.7 has opt_verbose
|
|
||||||
if (opt_help && opt_verbose
|
|
||||||
&& srv_buf_pool_size > srv_buf_pool_def_size) {
|
|
||||||
ib::warn() << "Setting innodb_buf_pool_size to "
|
|
||||||
<< srv_buf_pool_def_size << " for fast startup, "
|
|
||||||
<< "when running with --help --verbose options.";
|
|
||||||
srv_buf_pool_size_org = srv_buf_pool_size;
|
|
||||||
srv_buf_pool_size = srv_buf_pool_def_size;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
err = innobase_start_or_create_for_mysql();
|
err = innobase_start_or_create_for_mysql();
|
||||||
|
|
||||||
if (srv_buf_pool_size_org != 0) {
|
innobase_buffer_pool_size = static_cast<long long>(srv_buf_pool_size);
|
||||||
/* Set the original value back to show in help. */
|
|
||||||
srv_buf_pool_size_org =
|
|
||||||
buf_pool_size_align(srv_buf_pool_size_org);
|
|
||||||
innobase_buffer_pool_size =
|
|
||||||
static_cast<long long>(srv_buf_pool_size_org);
|
|
||||||
} else {
|
|
||||||
innobase_buffer_pool_size =
|
|
||||||
static_cast<long long>(srv_buf_pool_size);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (err != DB_SUCCESS) {
|
if (err != DB_SUCCESS) {
|
||||||
innodb_shutdown();
|
innodb_shutdown();
|
||||||
@ -8822,7 +8799,13 @@ ha_innobase::update_row(
|
|||||||
goto func_exit;
|
goto func_exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
if (!uvect->n_fields) {
|
||||||
|
/* This is the same as success, but instructs
|
||||||
|
MySQL that the row is not really updated and it
|
||||||
|
should not increase the count of updated rows.
|
||||||
|
This is fix for http://bugs.mysql.com/29157 */
|
||||||
|
DBUG_RETURN(HA_ERR_RECORD_IS_THE_SAME);
|
||||||
|
} else {
|
||||||
const bool vers_set_fields = m_prebuilt->versioned_write
|
const bool vers_set_fields = m_prebuilt->versioned_write
|
||||||
&& m_prebuilt->upd_node->update->affects_versioned();
|
&& m_prebuilt->upd_node->update->affects_versioned();
|
||||||
const bool vers_ins_row = vers_set_fields
|
const bool vers_ins_row = vers_set_fields
|
||||||
@ -8879,20 +8862,12 @@ ha_innobase::update_row(
|
|||||||
innobase_srv_conc_exit_innodb(m_prebuilt);
|
innobase_srv_conc_exit_innodb(m_prebuilt);
|
||||||
|
|
||||||
func_exit:
|
func_exit:
|
||||||
|
if (error == DB_FTS_INVALID_DOCID) {
|
||||||
err = convert_error_code_to_mysql(
|
err = HA_FTS_INVALID_DOCID;
|
||||||
error, m_prebuilt->table->flags, m_user_thd);
|
|
||||||
|
|
||||||
/* If success and no columns were updated. */
|
|
||||||
if (err == 0 && uvect->n_fields == 0) {
|
|
||||||
|
|
||||||
/* This is the same as success, but instructs
|
|
||||||
MySQL that the row is not really updated and it
|
|
||||||
should not increase the count of updated rows.
|
|
||||||
This is fix for http://bugs.mysql.com/29157 */
|
|
||||||
err = HA_ERR_RECORD_IS_THE_SAME;
|
|
||||||
} else if (err == HA_FTS_INVALID_DOCID) {
|
|
||||||
my_error(HA_FTS_INVALID_DOCID, MYF(0));
|
my_error(HA_FTS_INVALID_DOCID, MYF(0));
|
||||||
|
} else {
|
||||||
|
err = convert_error_code_to_mysql(
|
||||||
|
error, m_prebuilt->table->flags, m_user_thd);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Tell InnoDB server that there might be work for
|
/* Tell InnoDB server that there might be work for
|
||||||
|
@ -1450,16 +1450,8 @@ bool
|
|||||||
dict_table_is_file_per_table(
|
dict_table_is_file_per_table(
|
||||||
const dict_table_t* table) /*!< in: table to check */
|
const dict_table_t* table) /*!< in: table to check */
|
||||||
{
|
{
|
||||||
bool is_file_per_table = table->space != fil_system.sys_space
|
return table->space != fil_system.sys_space
|
||||||
&& table->space != fil_system.temp_space;
|
&& table->space != fil_system.temp_space;
|
||||||
|
|
||||||
/* If the table is file-per-table and it is not redundant, then
|
|
||||||
it should have the flags2 bit for DICT_TF2_USE_FILE_PER_TABLE. */
|
|
||||||
ut_ad(!is_file_per_table
|
|
||||||
|| !DICT_TF_GET_COMPACT(table->flags)
|
|
||||||
|| DICT_TF2_FLAG_IS_SET(table, DICT_TF2_USE_FILE_PER_TABLE));
|
|
||||||
|
|
||||||
return(is_file_per_table);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Get reference count.
|
/** Get reference count.
|
||||||
|
@ -2104,6 +2104,9 @@ wait_suspend_loop:
|
|||||||
goto loop;
|
goto loop;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Ensure that all buffered changes are written to the
|
||||||
|
redo log before fil_close_all_files(). */
|
||||||
|
fil_flush_file_spaces(FIL_TYPE_LOG);
|
||||||
} else {
|
} else {
|
||||||
lsn = srv_start_lsn;
|
lsn = srv_start_lsn;
|
||||||
}
|
}
|
||||||
|
@ -108,11 +108,6 @@ Created 2/16/1996 Heikki Tuuri
|
|||||||
#include "btr0scrub.h"
|
#include "btr0scrub.h"
|
||||||
#include "ut0new.h"
|
#include "ut0new.h"
|
||||||
|
|
||||||
#ifdef HAVE_LZO1X
|
|
||||||
#include <lzo/lzo1x.h>
|
|
||||||
extern bool srv_lzo_disabled;
|
|
||||||
#endif /* HAVE_LZO1X */
|
|
||||||
|
|
||||||
/** Log sequence number immediately after startup */
|
/** Log sequence number immediately after startup */
|
||||||
lsn_t srv_start_lsn;
|
lsn_t srv_start_lsn;
|
||||||
/** Log sequence number at shutdown */
|
/** Log sequence number at shutdown */
|
||||||
@ -1492,16 +1487,6 @@ innobase_start_or_create_for_mysql()
|
|||||||
srv_use_doublewrite_buf = FALSE;
|
srv_use_doublewrite_buf = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef HAVE_LZO1X
|
|
||||||
if (lzo_init() != LZO_E_OK) {
|
|
||||||
ib::warn() << "lzo_init() failed, support disabled";
|
|
||||||
srv_lzo_disabled = true;
|
|
||||||
} else {
|
|
||||||
ib::info() << "LZO1X support available";
|
|
||||||
srv_lzo_disabled = false;
|
|
||||||
}
|
|
||||||
#endif /* HAVE_LZO1X */
|
|
||||||
|
|
||||||
compile_time_assert(sizeof(ulint) == sizeof(void*));
|
compile_time_assert(sizeof(ulint) == sizeof(void*));
|
||||||
|
|
||||||
#ifdef UNIV_DEBUG
|
#ifdef UNIV_DEBUG
|
||||||
|
Loading…
x
Reference in New Issue
Block a user