Commit 84be33ab authored by Marko Mäkelä's avatar Marko Mäkelä

Merge 10.0 into 10.1

parents f91eb71e 19d21b93
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
@rowlog_encrypt_1>@rowlog_encrypt_0; @rowlog_encrypt_1>@rowlog_encrypt_0;
sort_balance @merge_encrypt_1>@merge_encrypt_0 @merge_decrypt_1>@merge_decrypt_0 @rowlog_encrypt_1>@rowlog_encrypt_0 sort_balance @merge_encrypt_1>@merge_encrypt_0 @merge_decrypt_1>@merge_decrypt_0 @rowlog_encrypt_1>@rowlog_encrypt_0
-0 0 0 0 -0 0 0 0
+0 1 1 1 +0 0 0 1
SET DEBUG_SYNC = 'now SIGNAL dml2_done'; SET DEBUG_SYNC = 'now SIGNAL dml2_done';
# session con1 # session con1
ERROR HY000: Creating index 'PRIMARY' required more than 'innodb_online_alter_log_max_size' bytes of modification log. Please try again. ERROR HY000: Creating index 'PRIMARY' required more than 'innodb_online_alter_log_max_size' bytes of modification log. Please try again.
......
...@@ -143,7 +143,8 @@ ROLLBACK; ...@@ -143,7 +143,8 @@ ROLLBACK;
# session con1 # session con1
KILL QUERY @id; KILL QUERY @id;
ERROR 70100: Query execution was interrupted ERROR 70100: Query execution was interrupted
SET DEBUG_SYNC = 'row_log_table_apply1_before SIGNAL rebuilt WAIT_FOR kill_done'; SET DEBUG_SYNC = 'row_log_table_apply1_before SIGNAL rebuilt WAIT_FOR dml_done';
SET DEBUG_SYNC = 'row_log_table_apply2_before SIGNAL applied WAIT_FOR kill_done';
ALTER TABLE t1 ROW_FORMAT=REDUNDANT; ALTER TABLE t1 ROW_FORMAT=REDUNDANT;
# session default # session default
SET DEBUG_SYNC = 'now WAIT_FOR rebuilt'; SET DEBUG_SYNC = 'now WAIT_FOR rebuilt';
...@@ -153,6 +154,10 @@ ddl_background_drop_indexes 0 ...@@ -153,6 +154,10 @@ ddl_background_drop_indexes 0
ddl_background_drop_tables 0 ddl_background_drop_tables 0
ddl_online_create_index 1 ddl_online_create_index 1
ddl_pending_alter_table 1 ddl_pending_alter_table 1
BEGIN;
INSERT INTO t1 VALUES(7,4,2);
ROLLBACK;
SET DEBUG_SYNC = 'now SIGNAL dml_done WAIT_FOR applied';
KILL QUERY @id; KILL QUERY @id;
SET DEBUG_SYNC = 'now SIGNAL kill_done'; SET DEBUG_SYNC = 'now SIGNAL kill_done';
# session con1 # session con1
...@@ -195,6 +200,7 @@ t1 CREATE TABLE `t1` ( ...@@ -195,6 +200,7 @@ t1 CREATE TABLE `t1` (
`c3` char(255) NOT NULL, `c3` char(255) NOT NULL,
PRIMARY KEY (`c1`) PRIMARY KEY (`c1`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT ) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT
ALTER TABLE t1 ROW_FORMAT=REDUNDANT;
SET DEBUG_SYNC = 'row_log_table_apply1_before SIGNAL rebuilt2 WAIT_FOR dml2_done'; SET DEBUG_SYNC = 'row_log_table_apply1_before SIGNAL rebuilt2 WAIT_FOR dml2_done';
SET lock_wait_timeout = 10; SET lock_wait_timeout = 10;
ALTER TABLE t1 ROW_FORMAT=COMPACT, ALGORITHM = INPLACE; ALTER TABLE t1 ROW_FORMAT=COMPACT, ALGORITHM = INPLACE;
......
...@@ -158,7 +158,8 @@ let $ID= `SELECT @id := CONNECTION_ID()`; ...@@ -158,7 +158,8 @@ let $ID= `SELECT @id := CONNECTION_ID()`;
--error ER_QUERY_INTERRUPTED --error ER_QUERY_INTERRUPTED
KILL QUERY @id; KILL QUERY @id;
SET DEBUG_SYNC = 'row_log_table_apply1_before SIGNAL rebuilt WAIT_FOR kill_done'; SET DEBUG_SYNC = 'row_log_table_apply1_before SIGNAL rebuilt WAIT_FOR dml_done';
SET DEBUG_SYNC = 'row_log_table_apply2_before SIGNAL applied WAIT_FOR kill_done';
--send --send
ALTER TABLE t1 ROW_FORMAT=REDUNDANT; ALTER TABLE t1 ROW_FORMAT=REDUNDANT;
...@@ -166,6 +167,10 @@ ALTER TABLE t1 ROW_FORMAT=REDUNDANT; ...@@ -166,6 +167,10 @@ ALTER TABLE t1 ROW_FORMAT=REDUNDANT;
connection default; connection default;
SET DEBUG_SYNC = 'now WAIT_FOR rebuilt'; SET DEBUG_SYNC = 'now WAIT_FOR rebuilt';
eval $innodb_metrics_select; eval $innodb_metrics_select;
BEGIN;
INSERT INTO t1 VALUES(7,4,2);
ROLLBACK;
SET DEBUG_SYNC = 'now SIGNAL dml_done WAIT_FOR applied';
let $ignore= `SELECT @id := $ID`; let $ignore= `SELECT @id := $ID`;
KILL QUERY @id; KILL QUERY @id;
SET DEBUG_SYNC = 'now SIGNAL kill_done'; SET DEBUG_SYNC = 'now SIGNAL kill_done';
...@@ -201,6 +206,7 @@ WHERE variable_name = 'innodb_encryption_n_rowlog_blocks_encrypted'); ...@@ -201,6 +206,7 @@ WHERE variable_name = 'innodb_encryption_n_rowlog_blocks_encrypted');
--echo # session con1 --echo # session con1
connection con1; connection con1;
SHOW CREATE TABLE t1; SHOW CREATE TABLE t1;
ALTER TABLE t1 ROW_FORMAT=REDUNDANT;
# Exceed the configured innodb_online_alter_log_max_size. # Exceed the configured innodb_online_alter_log_max_size.
# The actual limit is a multiple of innodb_sort_buf_size, # The actual limit is a multiple of innodb_sort_buf_size,
......
...@@ -350,18 +350,9 @@ ADD_CUSTOM_TARGET( ...@@ -350,18 +350,9 @@ ADD_CUSTOM_TARGET(
SET_TARGET_PROPERTIES(GenServerSource PROPERTIES EXCLUDE_FROM_ALL TRUE) SET_TARGET_PROPERTIES(GenServerSource PROPERTIES EXCLUDE_FROM_ALL TRUE)
IF(WIN32 OR HAVE_DLOPEN AND NOT DISABLE_SHARED) IF(WIN32 OR HAVE_DLOPEN AND NOT DISABLE_SHARED)
ADD_LIBRARY(udf_example MODULE udf_example.c) ADD_LIBRARY(udf_example MODULE udf_example.c udf_example.def)
SET_TARGET_PROPERTIES(udf_example PROPERTIES PREFIX "") SET_TARGET_PROPERTIES(udf_example PROPERTIES PREFIX "")
# udf_example depends on strings
IF(WIN32)
IF(MSVC)
SET_TARGET_PROPERTIES(udf_example PROPERTIES LINK_FLAGS "/DEF:${CMAKE_CURRENT_SOURCE_DIR}/udf_example.def")
ENDIF()
TARGET_LINK_LIBRARIES(udf_example strings) TARGET_LINK_LIBRARIES(udf_example strings)
ELSE()
# udf_example is using safemutex exported by mysqld
TARGET_LINK_LIBRARIES(udf_example mysqld)
ENDIF()
ENDIF() ENDIF()
FOREACH(tool glibtoolize libtoolize aclocal autoconf autoheader automake gtar FOREACH(tool glibtoolize libtoolize aclocal autoconf autoheader automake gtar
......
...@@ -1792,16 +1792,12 @@ PageConverter::update_records( ...@@ -1792,16 +1792,12 @@ PageConverter::update_records(
m_rec_iter.open(block); m_rec_iter.open(block);
while (!m_rec_iter.end()) { if (!page_is_leaf(block->frame)) {
return DB_SUCCESS;
rec_t* rec = m_rec_iter.current();
/* FIXME: Move out of the loop */
if (rec_get_status(rec) == REC_STATUS_NODE_PTR) {
break;
} }
while (!m_rec_iter.end()) {
rec_t* rec = m_rec_iter.current();
ibool deleted = rec_get_deleted_flag(rec, comp); ibool deleted = rec_get_deleted_flag(rec, comp);
/* For the clustered index we have to adjust the BLOB /* For the clustered index we have to adjust the BLOB
......
...@@ -293,6 +293,9 @@ link_directories( ...@@ -293,6 +293,9 @@ link_directories(
if(MRN_BUNDLED) if(MRN_BUNDLED)
target_link_libraries(mroonga ${MRN_LIBRARIES}) target_link_libraries(mroonga ${MRN_LIBRARIES})
if(NOT TARGET mroonga)
return()
endif()
else() else()
add_library(mroonga MODULE ${MRN_ALL_SOURCES}) add_library(mroonga MODULE ${MRN_ALL_SOURCES})
......
...@@ -1793,16 +1793,12 @@ PageConverter::update_records( ...@@ -1793,16 +1793,12 @@ PageConverter::update_records(
m_rec_iter.open(block); m_rec_iter.open(block);
while (!m_rec_iter.end()) { if (!page_is_leaf(block->frame)) {
return DB_SUCCESS;
rec_t* rec = m_rec_iter.current();
/* FIXME: Move out of the loop */
if (rec_get_status(rec) == REC_STATUS_NODE_PTR) {
break;
} }
while (!m_rec_iter.end()) {
rec_t* rec = m_rec_iter.current();
ibool deleted = rec_get_deleted_flag(rec, comp); ibool deleted = rec_get_deleted_flag(rec, comp);
/* For the clustered index we have to adjust the BLOB /* For the clustered index we have to adjust the BLOB
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment