Commit 56b97ca0 authored by Marko Mäkelä's avatar Marko Mäkelä

MDEV-29742 heap number overflow

A previous fix in commit efd8af53
failed to cover ALTER TABLE.

PageBulk::isSpaceAvailable(): Check for record heap number overflow.
parent 602124bb
......@@ -1081,9 +1081,11 @@ COMMIT;
drop table t2;
DROP TABLE t1;
#
# MDEV-19526 heap number overflow
# MDEV-19526/MDEV-29742 heap number overflow
#
CREATE TABLE t1(a SMALLINT NOT NULL UNIQUE AUTO_INCREMENT, KEY(a))
ENGINE=InnoDB;
INSERT INTO t1 (a) SELECT seq FROM seq_1_to_8191;
ALTER TABLE t1 FORCE, ALGORITHM=INPLACE;
DROP TABLE t1;
# End of 10.3 tests
......@@ -641,9 +641,12 @@ drop table t2;
DROP TABLE t1;
--echo #
--echo # MDEV-19526 heap number overflow
--echo # MDEV-19526/MDEV-29742 heap number overflow
--echo #
CREATE TABLE t1(a SMALLINT NOT NULL UNIQUE AUTO_INCREMENT, KEY(a))
ENGINE=InnoDB;
INSERT INTO t1 (a) SELECT seq FROM seq_1_to_8191;
ALTER TABLE t1 FORCE, ALGORITHM=INPLACE;
DROP TABLE t1;
--echo # End of 10.3 tests
/*****************************************************************************
Copyright (c) 2014, 2019, Oracle and/or its affiliates. All Rights Reserved.
Copyright (c) 2017, 2021, MariaDB Corporation.
Copyright (c) 2017, 2022, MariaDB Corporation.
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
......@@ -597,6 +597,11 @@ bool
PageBulk::isSpaceAvailable(
ulint rec_size)
{
if (m_rec_no >= 8190) {
ut_ad(srv_page_size == 65536);
return false;
}
ulint slot_size;
ulint required_space;
......
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