"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "storage/innobase/row/row0mysql.cc" between
mariadb-10.2.21.tar.gz and mariadb-10.2.22.tar.gz

About: MariaDB is a relational database management system (a drop-in replacement for MySQL). Stable (GA) release (10.2).

row0mysql.cc  (mariadb-10.2.21):row0mysql.cc  (mariadb-10.2.22)
/***************************************************************************** /*****************************************************************************
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 2000, 2018, Oracle and/or its affiliates. All Rights Reserved.
Copyright (c) 2015, 2018, MariaDB Corporation. Copyright (c) 2015, 2019, MariaDB Corporation.
This program is free software; you can redistribute it and/or modify it under This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software the terms of the GNU General Public License as published by the Free Software
Foundation; version 2 of the License. Foundation; version 2 of the License.
This program is distributed in the hope that it will be useful, but WITHOUT This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with You should have received a copy of the GNU General Public License along with
skipping to change at line 3379 skipping to change at line 3379
adaptive hash index entries. If the tablespace is adaptive hash index entries. If the tablespace is
missing here, delete-marking the record in SYS_INDEXES missing here, delete-marking the record in SYS_INDEXES
would not free any pages in the buffer pool. Thus, would not free any pages in the buffer pool. Thus,
dict_index_remove_from_cache() would hang due to dict_index_remove_from_cache() would hang due to
adaptive hash index entries existing in the buffer adaptive hash index entries existing in the buffer
pool. To prevent this hang, and also to guarantee pool. To prevent this hang, and also to guarantee
that btr_search_drop_page_hash_when_freed() will avoid that btr_search_drop_page_hash_when_freed() will avoid
calling btr_search_drop_page_hash_index() while we calling btr_search_drop_page_hash_index() while we
hold the InnoDB dictionary lock, we will drop any hold the InnoDB dictionary lock, we will drop any
adaptive hash index entries upfront. */ adaptive hash index entries upfront. */
bool immune = is_temp_name
|| strstr(table->name.m_name, "/FTS");
while (buf_LRU_drop_page_hash_for_tablespace(table)) { while (buf_LRU_drop_page_hash_for_tablespace(table)) {
if ((!is_temp_name && trx_is_interrupted(trx)) if ((!immune && trx_is_interrupted(trx))
|| srv_shutdown_state || srv_shutdown_state
!= SRV_SHUTDOWN_NONE) { != SRV_SHUTDOWN_NONE) {
err = DB_INTERRUPTED; err = DB_INTERRUPTED;
table->to_be_dropped = false; table->to_be_dropped = false;
dict_table_close(table, true, false); dict_table_close(table, true, false);
goto funct_exit; goto funct_exit;
} }
} }
#endif /* BTR_CUR_HASH_ADAPT */ #endif /* BTR_CUR_HASH_ADAPT */
skipping to change at line 4450 skipping to change at line 4453
" WHERE ID = foreign_id;\n" " WHERE ID = foreign_id;\n"
" END IF;\n" " END IF;\n"
" END IF;\n" " END IF;\n"
"END LOOP;\n" "END LOOP;\n"
"UPDATE SYS_FOREIGN SET REF_NAME = :new_table_name\n" "UPDATE SYS_FOREIGN SET REF_NAME = :new_table_name\n"
"WHERE REF_NAME = :old_table_name\n" "WHERE REF_NAME = :old_table_name\n"
" AND TO_BINARY(REF_NAME)\n" " AND TO_BINARY(REF_NAME)\n"
" = TO_BINARY(:old_table_name);\n" " = TO_BINARY(:old_table_name);\n"
"END;\n" "END;\n"
, FALSE, trx); , FALSE, trx);
if (err != DB_SUCCESS) {
goto end;
}
} else if (n_constraints_to_drop > 0) { } else if (n_constraints_to_drop > 0) {
/* Drop some constraints of tmp tables. */ /* Drop some constraints of tmp tables. */
ulint db_name_len = dict_get_db_name_len(old_name) + 1; ulint db_name_len = dict_get_db_name_len(old_name) + 1;
char* db_name = mem_heap_strdupl(heap, old_name, char* db_name = mem_heap_strdupl(heap, old_name,
db_name_len); db_name_len);
ulint i; ulint i;
for (i = 0; i < n_constraints_to_drop; i++) { for (i = 0; i < n_constraints_to_drop; i++) {
 End of changes. 4 change blocks. 
5 lines changed or deleted 5 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)