mirror of
https://github.com/MariaDB/server.git
synced 2025-02-13 17:05:35 +01:00
Merge branch '10.7' into 10.8
This commit is contained in:
commit
5566cbadb0
5 changed files with 27 additions and 15 deletions
mysql-test/suite/innodb
storage
|
@ -10,3 +10,11 @@ ALTER TABLE imp_t1 IMPORT TABLESPACE;
|
||||||
ERROR HY000: Schema mismatch (ROW_FORMAT mismatch)
|
ERROR HY000: Schema mismatch (ROW_FORMAT mismatch)
|
||||||
DROP TABLE imp_t1, t1;
|
DROP TABLE imp_t1, t1;
|
||||||
SET GLOBAL innodb_checksum_algorithm=@save_innodb_checksum_algorithm;
|
SET GLOBAL innodb_checksum_algorithm=@save_innodb_checksum_algorithm;
|
||||||
|
#
|
||||||
|
# MDEV-27006 Assertion `!lock_trx_has_sys_table_locks(trx)' --echo # failed in dberr_t row_discard_tablespace_for_mysql
|
||||||
|
# (dict_table_t*, trx_t*)
|
||||||
|
CREATE TABLE t1 (c INT KEY) ENGINE=INNODB;
|
||||||
|
CREATE TABLE t2 (c INT KEY,FOREIGN KEY(c) REFERENCES t1 (c)) ENGINE=INNODB;
|
||||||
|
ALTER TABLE t1 DISCARD TABLESPACE;
|
||||||
|
ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails
|
||||||
|
DROP TABLE t2, t1;
|
||||||
|
|
|
@ -18,3 +18,12 @@ DROP TABLE imp_t1, t1;
|
||||||
--remove_file $datadir/test/imp_t1.ibd
|
--remove_file $datadir/test/imp_t1.ibd
|
||||||
|
|
||||||
SET GLOBAL innodb_checksum_algorithm=@save_innodb_checksum_algorithm;
|
SET GLOBAL innodb_checksum_algorithm=@save_innodb_checksum_algorithm;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-27006 Assertion `!lock_trx_has_sys_table_locks(trx)' --echo # failed in dberr_t row_discard_tablespace_for_mysql
|
||||||
|
--echo # (dict_table_t*, trx_t*)
|
||||||
|
CREATE TABLE t1 (c INT KEY) ENGINE=INNODB;
|
||||||
|
CREATE TABLE t2 (c INT KEY,FOREIGN KEY(c) REFERENCES t1 (c)) ENGINE=INNODB;
|
||||||
|
--error ER_ROW_IS_REFERENCED_2
|
||||||
|
ALTER TABLE t1 DISCARD TABLESPACE;
|
||||||
|
DROP TABLE t2, t1;
|
||||||
|
|
|
@ -1709,18 +1709,7 @@ fseg_create(fil_space_t *space, ulint byte_offset, mtr_t *mtr,
|
||||||
mtr->x_lock_space(space);
|
mtr->x_lock_space(space);
|
||||||
ut_d(space->modify_check(*mtr));
|
ut_d(space->modify_check(*mtr));
|
||||||
|
|
||||||
if (block) {
|
ut_ad(!block || block->page.id().space() == space->id);
|
||||||
ut_ad(block->page.id().space() == space->id);
|
|
||||||
|
|
||||||
if (!space->full_crc32()) {
|
|
||||||
fil_block_check_type(*block, block->page.id()
|
|
||||||
== page_id_t(TRX_SYS_SPACE,
|
|
||||||
TRX_SYS_PAGE_NO)
|
|
||||||
? FIL_PAGE_TYPE_TRX_SYS
|
|
||||||
: FIL_PAGE_TYPE_SYS,
|
|
||||||
mtr);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!has_done_reservation
|
if (!has_done_reservation
|
||||||
&& !fsp_reserve_free_extents(&n_reserved, space, 2,
|
&& !fsp_reserve_free_extents(&n_reserved, space, 2,
|
||||||
|
|
|
@ -2495,6 +2495,7 @@ rollback:
|
||||||
fts_optimize_add_table(table);
|
fts_optimize_add_table(table);
|
||||||
}
|
}
|
||||||
trx->rollback();
|
trx->rollback();
|
||||||
|
row_mysql_unlock_data_dictionary(trx);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2508,10 +2509,7 @@ rollback:
|
||||||
|
|
||||||
err= row_discard_tablespace_foreign_key_checks(trx, table);
|
err= row_discard_tablespace_foreign_key_checks(trx, table);
|
||||||
if (err != DB_SUCCESS)
|
if (err != DB_SUCCESS)
|
||||||
{
|
|
||||||
row_mysql_unlock_data_dictionary(trx);
|
|
||||||
goto rollback;
|
goto rollback;
|
||||||
}
|
|
||||||
|
|
||||||
/* Note: The following cannot be rolled back. Rollback would see the
|
/* Note: The following cannot be rolled back. Rollback would see the
|
||||||
UPDATE of SYS_INDEXES.TABLE_ID as two operations: DELETE and INSERT.
|
UPDATE of SYS_INDEXES.TABLE_ID as two operations: DELETE and INSERT.
|
||||||
|
|
|
@ -767,6 +767,10 @@ err:
|
||||||
returns how many chars was removed or 0 on error
|
returns how many chars was removed or 0 on error
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#if defined(_MSC_VER) && defined(_M_X64) && _MSC_VER >= 1930
|
||||||
|
#pragma optimize("g", off)
|
||||||
|
#endif
|
||||||
|
|
||||||
static uint remove_key(MI_KEYDEF *keyinfo, uint nod_flag,
|
static uint remove_key(MI_KEYDEF *keyinfo, uint nod_flag,
|
||||||
uchar *keypos, /* Where key starts */
|
uchar *keypos, /* Where key starts */
|
||||||
uchar *lastkey, /* key to be removed */
|
uchar *lastkey, /* key to be removed */
|
||||||
|
@ -891,3 +895,7 @@ static uint remove_key(MI_KEYDEF *keyinfo, uint nod_flag,
|
||||||
(uint) (page_end-start-s_length));
|
(uint) (page_end-start-s_length));
|
||||||
DBUG_RETURN((uint) s_length);
|
DBUG_RETURN((uint) s_length);
|
||||||
} /* remove_key */
|
} /* remove_key */
|
||||||
|
|
||||||
|
#if defined(_MSC_VER) && defined(_M_X64) && _MSC_VER >= 1930
|
||||||
|
#pragma optimize("",on)
|
||||||
|
#endif
|
||||||
|
|
Loading…
Add table
Reference in a new issue