mirror of
https://github.com/MariaDB/server.git
synced 2025-08-05 13:16:09 +03:00
Merge 10.2 into 10.3
This commit is contained in:
@@ -11,10 +11,14 @@ SAVEPOINT sp;
|
|||||||
INSERT INTO t1 (pk) VALUES (1);
|
INSERT INTO t1 (pk) VALUES (1);
|
||||||
ROLLBACK TO SAVEPOINT sp;
|
ROLLBACK TO SAVEPOINT sp;
|
||||||
connection default;
|
connection default;
|
||||||
|
SET @save_timeout=@@lock_wait_timeout;
|
||||||
|
SET @save_innodb_timeout=@@innodb_lock_wait_timeout;
|
||||||
SET lock_wait_timeout=0;
|
SET lock_wait_timeout=0;
|
||||||
SET innodb_lock_wait_timeout=0;
|
SET innodb_lock_wait_timeout=0;
|
||||||
ALTER TABLE t1 PARTITION BY HASH(pk);
|
ALTER TABLE t1 PARTITION BY HASH(pk);
|
||||||
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
|
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;
|
SHOW CREATE TABLE t1;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
t1 CREATE TABLE `t1` (
|
t1 CREATE TABLE `t1` (
|
||||||
|
@@ -18,10 +18,14 @@ INSERT INTO t1 (pk) VALUES (1);
|
|||||||
ROLLBACK TO SAVEPOINT sp;
|
ROLLBACK TO SAVEPOINT sp;
|
||||||
|
|
||||||
--connection default
|
--connection default
|
||||||
|
SET @save_timeout=@@lock_wait_timeout;
|
||||||
|
SET @save_innodb_timeout=@@innodb_lock_wait_timeout;
|
||||||
SET lock_wait_timeout=0;
|
SET lock_wait_timeout=0;
|
||||||
SET innodb_lock_wait_timeout=0;
|
SET innodb_lock_wait_timeout=0;
|
||||||
--error ER_LOCK_WAIT_TIMEOUT
|
--error ER_LOCK_WAIT_TIMEOUT
|
||||||
ALTER TABLE t1 PARTITION BY HASH(pk);
|
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;
|
SHOW CREATE TABLE t1;
|
||||||
--connection con1
|
--connection con1
|
||||||
|
@@ -46,6 +46,12 @@ perl;
|
|||||||
print "# bytes: ", (-s "$ENV{MYSQLD_DATADIR}/test/t1.ibd"), "\n";
|
print "# bytes: ", (-s "$ENV{MYSQLD_DATADIR}/test/t1.ibd"), "\n";
|
||||||
EOF
|
EOF
|
||||||
INSERT INTO t1 SELECT seq,REPEAT('a',30000) FROM seq_1_to_20;
|
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;
|
perl;
|
||||||
print "# bytes: ", (-s "$ENV{MYSQLD_DATADIR}/test/t1.ibd"), "\n";
|
print "# bytes: ", (-s "$ENV{MYSQLD_DATADIR}/test/t1.ibd"), "\n";
|
||||||
EOF
|
EOF
|
||||||
|
@@ -942,10 +942,15 @@ fil_space_extend_must_retry(
|
|||||||
const page_size_t pageSize(space->flags);
|
const page_size_t pageSize(space->flags);
|
||||||
const ulint page_size = pageSize.physical();
|
const ulint page_size = pageSize.physical();
|
||||||
|
|
||||||
/* fil_read_first_page() expects srv_page_size bytes.
|
/* fil_read_first_page() expects innodb_page_size bytes.
|
||||||
fil_node_open_file() expects at least 4 * srv_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 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));
|
os_offset_t(FIL_IBD_FILE_INITIAL_SIZE << srv_page_size_shift));
|
||||||
|
|
||||||
*success = os_file_set_size(node->name, node->handle, new_size,
|
*success = os_file_set_size(node->name, node->handle, new_size,
|
||||||
|
@@ -5351,6 +5351,8 @@ os_file_set_size(
|
|||||||
os_offset_t size,
|
os_offset_t size,
|
||||||
bool is_sparse)
|
bool is_sparse)
|
||||||
{
|
{
|
||||||
|
ut_ad(!(size & 4095));
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
/* On Windows, changing file size works well and as expected for both
|
/* On Windows, changing file size works well and as expected for both
|
||||||
sparse and normal files.
|
sparse and normal files.
|
||||||
@@ -5392,7 +5394,7 @@ fallback:
|
|||||||
if (current_size >= size) {
|
if (current_size >= size) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
current_size &= ~os_offset_t(statbuf.st_blksize - 1);
|
current_size &= ~4095ULL;
|
||||||
err = posix_fallocate(file, current_size,
|
err = posix_fallocate(file, current_size,
|
||||||
size - current_size);
|
size - current_size);
|
||||||
}
|
}
|
||||||
@@ -5432,8 +5434,7 @@ fallback:
|
|||||||
if (fstat(file, &statbuf)) {
|
if (fstat(file, &statbuf)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
os_offset_t current_size = statbuf.st_size
|
os_offset_t current_size = statbuf.st_size & ~4095ULL;
|
||||||
& ~os_offset_t(statbuf.st_blksize - 1);
|
|
||||||
#endif
|
#endif
|
||||||
if (current_size >= size) {
|
if (current_size >= size) {
|
||||||
return true;
|
return true;
|
||||||
|
@@ -18,7 +18,7 @@
|
|||||||
SummaryCodepage='1252'
|
SummaryCodepage='1252'
|
||||||
Platform='@Platform@'/>
|
Platform='@Platform@'/>
|
||||||
|
|
||||||
<Media Id='1' Cabinet='product.cab' EmbedCab='yes' CompressionLevel='high' />
|
<MediaTemplate EmbedCab="yes" MaximumUncompressedMediaSize="2" CompressionLevel="high"/>
|
||||||
|
|
||||||
<!-- Upgrade -->
|
<!-- Upgrade -->
|
||||||
<Upgrade Id="@CPACK_WIX_UPGRADE_CODE@">
|
<Upgrade Id="@CPACK_WIX_UPGRADE_CODE@">
|
||||||
|
Reference in New Issue
Block a user