Skip to content

Commit

Permalink
Merge 10.2 into 10.3
Browse files Browse the repository at this point in the history
  • Loading branch information
dr-m committed Sep 11, 2021
2 parents 46cb163 + ac064c2 commit bcd25e1
Show file tree
Hide file tree
Showing 6 changed files with 27 additions and 7 deletions.
4 changes: 4 additions & 0 deletions mysql-test/suite/innodb/r/alter_partitioned.result
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,14 @@ SAVEPOINT sp;
INSERT INTO t1 (pk) VALUES (1);
ROLLBACK TO SAVEPOINT sp;
connection default;
SET @save_timeout=@@lock_wait_timeout;
SET @save_innodb_timeout=@@innodb_lock_wait_timeout;
SET lock_wait_timeout=0;
SET innodb_lock_wait_timeout=0;
ALTER TABLE t1 PARTITION BY HASH(pk);
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
SET lock_wait_timeout=@save_timeout;
SET innodb_lock_wait_timeout=@save_innodb_timeout;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
Expand Down
4 changes: 4 additions & 0 deletions mysql-test/suite/innodb/t/alter_partitioned.test
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,14 @@ INSERT INTO t1 (pk) VALUES (1);
ROLLBACK TO SAVEPOINT sp;

--connection default
SET @save_timeout=@@lock_wait_timeout;
SET @save_innodb_timeout=@@innodb_lock_wait_timeout;
SET lock_wait_timeout=0;
SET innodb_lock_wait_timeout=0;
--error ER_LOCK_WAIT_TIMEOUT
ALTER TABLE t1 PARTITION BY HASH(pk);
SET lock_wait_timeout=@save_timeout;
SET innodb_lock_wait_timeout=@save_innodb_timeout;

SHOW CREATE TABLE t1;
--connection con1
Expand Down
6 changes: 6 additions & 0 deletions mysql-test/suite/innodb/t/check_ibd_filesize.test
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,12 @@ perl;
print "# bytes: ", (-s "$ENV{MYSQLD_DATADIR}/test/t1.ibd"), "\n";
EOF
INSERT INTO t1 SELECT seq,REPEAT('a',30000) FROM seq_1_to_20;
# Ensure that the file will be extended with the last 1024-byte page
# after the file was pre-extended in 4096-byte increments.
--disable_query_log
FLUSH TABLE t1 FOR EXPORT;
UNLOCK TABLES;
--enable_query_log
perl;
print "# bytes: ", (-s "$ENV{MYSQLD_DATADIR}/test/t1.ibd"), "\n";
EOF
Expand Down
11 changes: 8 additions & 3 deletions storage/innobase/fil/fil0fil.cc
Original file line number Diff line number Diff line change
Expand Up @@ -942,10 +942,15 @@ fil_space_extend_must_retry(
const page_size_t pageSize(space->flags);
const ulint page_size = pageSize.physical();

/* fil_read_first_page() expects srv_page_size bytes.
fil_node_open_file() expects at least 4 * srv_page_size bytes.*/
/* fil_read_first_page() expects innodb_page_size bytes.
fil_node_open_file() expects at least 4 * innodb_page_size bytes.
os_file_set_size() expects multiples of 4096 bytes.
For ROW_FORMAT=COMPRESSED tables using 1024-byte or 2048-byte
pages, we will preallocate up to an integer multiple of 4096 bytes,
and let normal writes append 1024, 2048, or 3072 bytes to the file. */
os_offset_t new_size = std::max(
os_offset_t(size - file_start_page_no) * page_size,
(os_offset_t(size - file_start_page_no) * page_size)
& ~os_offset_t(4095),
os_offset_t(FIL_IBD_FILE_INITIAL_SIZE << srv_page_size_shift));

*success = os_file_set_size(node->name, node->handle, new_size,
Expand Down
7 changes: 4 additions & 3 deletions storage/innobase/os/os0file.cc
Original file line number Diff line number Diff line change
Expand Up @@ -5351,6 +5351,8 @@ os_file_set_size(
os_offset_t size,
bool is_sparse)
{
ut_ad(!(size & 4095));

#ifdef _WIN32
/* On Windows, changing file size works well and as expected for both
sparse and normal files.
Expand Down Expand Up @@ -5392,7 +5394,7 @@ os_file_set_size(
if (current_size >= size) {
return true;
}
current_size &= ~os_offset_t(statbuf.st_blksize - 1);
current_size &= ~4095ULL;
err = posix_fallocate(file, current_size,
size - current_size);
}
Expand Down Expand Up @@ -5432,8 +5434,7 @@ os_file_set_size(
if (fstat(file, &statbuf)) {
return false;
}
os_offset_t current_size = statbuf.st_size
& ~os_offset_t(statbuf.st_blksize - 1);
os_offset_t current_size = statbuf.st_size & ~4095ULL;
#endif
if (current_size >= size) {
return true;
Expand Down
2 changes: 1 addition & 1 deletion win/packaging/mysql_server.wxs.in
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
SummaryCodepage='1252'
Platform='@Platform@'/>

<Media Id='1' Cabinet='product.cab' EmbedCab='yes' CompressionLevel='high' />
<MediaTemplate EmbedCab="yes" MaximumUncompressedMediaSize="2" CompressionLevel="high"/>

<!-- Upgrade -->
<Upgrade Id="@CPACK_WIX_UPGRADE_CODE@">
Expand Down

0 comments on commit bcd25e1

Please sign in to comment.