mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Merge 10.7 into 10.8
This commit is contained in:
@ -600,7 +600,7 @@ void CorruptedPages::zero_out_free_pages()
|
||||
die("Can't zero out corrupted page " UINT32PF " of tablespace %s",
|
||||
*page_it, space_name.c_str());
|
||||
msg("Corrupted page " UINT32PF
|
||||
" of tablespace %s was successfuly fixed.",
|
||||
" of tablespace %s was successfully fixed.",
|
||||
*page_it, space_name.c_str());
|
||||
}
|
||||
}
|
||||
|
@ -1508,7 +1508,7 @@ select column_get(column_create("1212", 2, "адын", 1, 3, 3), "4" as int);
|
||||
column_get(column_create("1212", 2, "адын", 1, 3, 3), "4" as int)
|
||||
NULL
|
||||
set names latin1;
|
||||
# column existance test (names)
|
||||
# column existence test (names)
|
||||
set names utf8;
|
||||
select column_exists(column_create("адын", 1212), "адын");
|
||||
column_exists(column_create("адын", 1212), "адын")
|
||||
|
@ -689,7 +689,7 @@ select column_get(column_create("1212", 2, "адын", 1, 3, 3), 4 as int);
|
||||
select column_get(column_create("1212", 2, "адын", 1, 3, 3), "4" as int);
|
||||
set names latin1;
|
||||
|
||||
--echo # column existance test (names)
|
||||
--echo # column existence test (names)
|
||||
set names utf8;
|
||||
select column_exists(column_create("адын", 1212), "адын");
|
||||
select column_exists(column_create("адын", 1212), "aады");
|
||||
|
@ -4057,9 +4057,10 @@ KEY `index_t1_on_owner_id_and_foo` (`owner_id`,`foo`)
|
||||
INSERT INTO t1 (owner_id, foo, whatever)
|
||||
VALUES (1, TRUE, "yello"), (1, FALSE, "yello"), (2, TRUE, "yello"),
|
||||
(2, TRUE, "yello"), (2, FALSE, "yello");
|
||||
EXPLAIN SELECT DISTINCT owner_id FROM t1 WHERE foo = true GROUP BY owner_id HAVING (COUNT(*) = 1);
|
||||
EXPLAIN
|
||||
SELECT DISTINCT owner_id FROM t1 WHERE foo = true GROUP BY owner_id HAVING (COUNT(*) = 1);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index NULL index_t1_on_owner_id_and_foo 7 NULL 5 Using where; Using index
|
||||
1 SIMPLE t1 index NULL index_t1_on_owner_id_and_foo 7 NULL # Using where; Using index
|
||||
SELECT DISTINCT owner_id FROM t1 WHERE foo = true GROUP BY owner_id HAVING (COUNT(*) = 1);
|
||||
owner_id
|
||||
1
|
||||
|
@ -1718,7 +1718,9 @@ CREATE TABLE `t1` (
|
||||
INSERT INTO t1 (owner_id, foo, whatever)
|
||||
VALUES (1, TRUE, "yello"), (1, FALSE, "yello"), (2, TRUE, "yello"),
|
||||
(2, TRUE, "yello"), (2, FALSE, "yello");
|
||||
EXPLAIN SELECT DISTINCT owner_id FROM t1 WHERE foo = true GROUP BY owner_id HAVING (COUNT(*) = 1);
|
||||
--replace_column 9 #
|
||||
EXPLAIN
|
||||
SELECT DISTINCT owner_id FROM t1 WHERE foo = true GROUP BY owner_id HAVING (COUNT(*) = 1);
|
||||
SELECT DISTINCT owner_id FROM t1 WHERE foo = true GROUP BY owner_id HAVING (COUNT(*) = 1);
|
||||
DROP TABLE t1;
|
||||
|
||||
|
@ -84,7 +84,7 @@ drop table t1;
|
||||
db.opt
|
||||
t0.ARZ
|
||||
#
|
||||
# discover of table non-existance on drop
|
||||
# discover of table non-existence on drop
|
||||
#
|
||||
select * from t0;
|
||||
a
|
||||
|
@ -67,7 +67,7 @@ drop table t1;
|
||||
--list_files $mysqld_datadir/test
|
||||
|
||||
--echo #
|
||||
--echo # discover of table non-existance on drop
|
||||
--echo # discover of table non-existence on drop
|
||||
--echo #
|
||||
select * from t0;
|
||||
remove_file $mysqld_datadir/test/t0.ARZ;
|
||||
@ -119,7 +119,7 @@ select * from t1;
|
||||
--list_files $mysqld_datadir/test
|
||||
|
||||
#
|
||||
# MDEV-4955 discover of table non-existance on CREATE
|
||||
# MDEV-4955 discover of table non-existence on CREATE
|
||||
#
|
||||
create table t1 (a int) engine=archive;
|
||||
select * from t1;
|
||||
|
@ -58,10 +58,13 @@ CREATE TABLE t(c INT) ENGINE=InnoDB page_compressed=1;
|
||||
DROP TABLE IF EXISTS t;
|
||||
SET GLOBAL innodb_compression_level=1;
|
||||
CREATE TABLE t(a INT)ENGINE=InnoDB ROW_FORMAT=DYNAMIC page_compressed=1;
|
||||
CREATE TEMPORARY TABLE tt(a INT PRIMARY KEY)
|
||||
ROW_FORMAT=DYNAMIC page_compressed=1 ENGINE=InnoDB;
|
||||
SET GLOBAL innodb_compression_level=0;
|
||||
ALTER TABLE t FORCE, ROW_FORMAT=DEFAULT, ALGORITHM=INPLACE;
|
||||
ERROR HY000: Table storage engine 'InnoDB' does not support the create option 'PAGE_COMPRESSED'
|
||||
ALTER TABLE t FORCE, ROW_FORMAT=DEFAULT, ALGORITHM=COPY;
|
||||
ERROR HY000: Can't create table `test`.`t` (errno: 140 "Wrong create options")
|
||||
DROP TABLE t;
|
||||
TRUNCATE tt;
|
||||
SET GLOBAL innodb_compression_level=@save_level;
|
||||
|
@ -69,10 +69,13 @@ DROP TABLE IF EXISTS t;
|
||||
|
||||
SET GLOBAL innodb_compression_level=1;
|
||||
CREATE TABLE t(a INT)ENGINE=InnoDB ROW_FORMAT=DYNAMIC page_compressed=1;
|
||||
CREATE TEMPORARY TABLE tt(a INT PRIMARY KEY)
|
||||
ROW_FORMAT=DYNAMIC page_compressed=1 ENGINE=InnoDB;
|
||||
SET GLOBAL innodb_compression_level=0;
|
||||
--error ER_ILLEGAL_HA_CREATE_OPTION
|
||||
ALTER TABLE t FORCE, ROW_FORMAT=DEFAULT, ALGORITHM=INPLACE;
|
||||
--error ER_CANT_CREATE_TABLE
|
||||
ALTER TABLE t FORCE, ROW_FORMAT=DEFAULT, ALGORITHM=COPY;
|
||||
DROP TABLE t;
|
||||
TRUNCATE tt;
|
||||
SET GLOBAL innodb_compression_level=@save_level;
|
||||
|
@ -98,12 +98,12 @@ test/t3_inc
|
||||
------
|
||||
# Full backup prepare
|
||||
# "innodb_corrupted_pages" file must not exist after successful prepare
|
||||
FOUND 1 /was successfuly fixed.*/ in backup.log
|
||||
FOUND 1 /was successfully fixed.*/ in backup.log
|
||||
# Check that fixed pages are zero-filled
|
||||
# Incremental backup prepare
|
||||
# "innodb_corrupted_pages" file must not exist after successful prepare
|
||||
# do not remove "innodb_corrupted_pages" in incremental dir
|
||||
FOUND 1 /was successfuly fixed.*/ in backup.log
|
||||
FOUND 1 /was successfully fixed.*/ in backup.log
|
||||
# Check that fixed pages are zero-filled
|
||||
# shutdown server
|
||||
# remove datadir
|
||||
|
@ -323,7 +323,7 @@ exec $XTRABACKUP --prepare --target-dir=$targetdir > $backuplog;
|
||||
--echo # "innodb_corrupted_pages" file must not exist after successful prepare
|
||||
--error 1
|
||||
--file_exists $targetdir/innodb_corrupted_pages
|
||||
--let SEARCH_PATTERN=was successfuly fixed.*
|
||||
--let SEARCH_PATTERN=was successfully fixed.*
|
||||
--let SEARCH_FILE=$backuplog
|
||||
--source include/search_pattern_in_file.inc
|
||||
|
||||
@ -347,7 +347,7 @@ exec $XTRABACKUP --prepare --target-dir=$targetdir --incremental-dir=$incdir > $
|
||||
--file_exists $targetdir/innodb_corrupted_pages
|
||||
--echo # do not remove "innodb_corrupted_pages" in incremental dir
|
||||
--file_exists $incdir/innodb_corrupted_pages
|
||||
--let SEARCH_PATTERN=was successfuly fixed.*
|
||||
--let SEARCH_PATTERN=was successfully fixed.*
|
||||
--let SEARCH_FILE=$backuplog
|
||||
--source include/search_pattern_in_file.inc
|
||||
|
||||
|
@ -5367,9 +5367,9 @@ name, then 'TEMPORARY' will be returned.
|
||||
|
||||
##### Parameters
|
||||
|
||||
* in_db (VARCHAR(64)): The database name to check for the existance of the table in.
|
||||
* in_db (VARCHAR(64)): The database name to check for the existence of the table in.
|
||||
|
||||
* in_table (VARCHAR(64)): The name of the table to check the existance of.
|
||||
* in_table (VARCHAR(64)): The name of the table to check the existence of.
|
||||
|
||||
* out_exists ENUM('', 'BASE TABLE', 'VIEW', 'TEMPORARY'): The return value: whether the table exists. The value is one of:
|
||||
- '' - the table does not exist neither as a base table, view, nor temporary table.
|
||||
|
@ -34,10 +34,10 @@ CREATE DEFINER='mariadb.sys'@'localhost' PROCEDURE table_exists (
|
||||
-----------
|
||||
|
||||
in_db (VARCHAR(64)):
|
||||
The database name to check for the existance of the table in.
|
||||
The database name to check for the existence of the table in.
|
||||
|
||||
in_table (VARCHAR(64)):
|
||||
The name of the table to check the existance of.
|
||||
The name of the table to check the existence of.
|
||||
|
||||
out_exists ENUM('''', ''BASE TABLE'', ''VIEW'', ''TEMPORARY''):
|
||||
The return value: whether the table exists. The value is one of:
|
||||
|
@ -183,7 +183,7 @@ public:
|
||||
|
||||
bool listen_on_sockets()
|
||||
{
|
||||
/* Reinitialze the fds with active fds before calling select */
|
||||
/* Reinitialize the fds with active fds before calling select */
|
||||
m_fds= m_init_fds;
|
||||
struct timeval tv= {1,0};
|
||||
/* select requires max fd + 1 for the first argument */
|
||||
|
@ -4497,7 +4497,7 @@ int create_table_impl(THD *thd,
|
||||
else if (options.if_not_exists())
|
||||
{
|
||||
/*
|
||||
We never come here as part of normal create table as table existance
|
||||
We never come here as part of normal create table as table existence
|
||||
is checked in open_and_lock_tables(). We may come here as part of
|
||||
ALTER TABLE when converting a table for a distributed engine to a
|
||||
a local one.
|
||||
|
@ -11712,29 +11712,33 @@ index_bad:
|
||||
zip_ssize = 0;
|
||||
}
|
||||
|
||||
ulint level = 0;
|
||||
|
||||
if (is_temp) {
|
||||
m_flags2 |= DICT_TF2_TEMPORARY;
|
||||
} else if (m_use_file_per_table) {
|
||||
m_flags2 |= DICT_TF2_USE_FILE_PER_TABLE;
|
||||
}
|
||||
} else {
|
||||
if (m_use_file_per_table) {
|
||||
m_flags2 |= DICT_TF2_USE_FILE_PER_TABLE;
|
||||
}
|
||||
|
||||
ulint level = ulint(options->page_compression_level);
|
||||
if (!level) {
|
||||
level = page_zip_level;
|
||||
if (!level && options->page_compressed) {
|
||||
push_warning_printf(
|
||||
m_thd, Sql_condition::WARN_LEVEL_WARN,
|
||||
ER_ILLEGAL_HA_CREATE_OPTION,
|
||||
"InnoDB: PAGE_COMPRESSED requires"
|
||||
" PAGE_COMPRESSION_LEVEL or"
|
||||
" innodb_compression_level > 0");
|
||||
DBUG_RETURN(false);
|
||||
level = ulint(options->page_compression_level);
|
||||
if (!level) {
|
||||
level = page_zip_level;
|
||||
if (!level && options->page_compressed) {
|
||||
push_warning_printf(
|
||||
m_thd, Sql_condition::WARN_LEVEL_WARN,
|
||||
ER_ILLEGAL_HA_CREATE_OPTION,
|
||||
"InnoDB: PAGE_COMPRESSED requires"
|
||||
" PAGE_COMPRESSION_LEVEL or"
|
||||
" innodb_compression_level > 0");
|
||||
DBUG_RETURN(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Set the table flags */
|
||||
dict_tf_set(&m_flags, innodb_row_format, zip_ssize,
|
||||
m_use_data_dir, options->page_compressed, level);
|
||||
m_use_data_dir, level && options->page_compressed, level);
|
||||
|
||||
if (m_form->s->table_type == TABLE_TYPE_SEQUENCE) {
|
||||
m_flags |= DICT_TF_MASK_NO_ROLLBACK;
|
||||
@ -13792,6 +13796,7 @@ int ha_innobase::truncate()
|
||||
|
||||
int err = create(ib_table->name.m_name, table, &info, true,
|
||||
trx);
|
||||
ut_ad(!err);
|
||||
if (!err) {
|
||||
err = open(ib_table->name.m_name, 0, 0);
|
||||
m_prebuilt->stored_select_lock_type = stored_lock;
|
||||
|
@ -789,13 +789,13 @@ static int s3_discover_table(handlerton *hton, THD* thd, TABLE_SHARE *share)
|
||||
@return 1 frm exists
|
||||
*/
|
||||
|
||||
static int s3_discover_table_existance(handlerton *hton, const char *db,
|
||||
static int s3_discover_table_existence(handlerton *hton, const char *db,
|
||||
const char *table_name)
|
||||
{
|
||||
S3_INFO s3_info;
|
||||
ms3_st *s3_client;
|
||||
int res;
|
||||
DBUG_ENTER("s3_discover_table_existance");
|
||||
DBUG_ENTER("s3_discover_table_existence");
|
||||
|
||||
/* Ignore names in "mysql" database to speed up boot */
|
||||
if (!strcmp(db, MYSQL_SCHEMA_NAME.str))
|
||||
@ -1019,7 +1019,7 @@ static int ha_s3_init(void *p)
|
||||
s3_hton->table_options= s3_table_option_list;
|
||||
s3_hton->discover_table= s3_discover_table;
|
||||
s3_hton->discover_table_names= s3_discover_table_names;
|
||||
s3_hton->discover_table_existence= s3_discover_table_existance;
|
||||
s3_hton->discover_table_existence= s3_discover_table_existence;
|
||||
s3_hton->notify_tabledef_changed= s3_notify_tabledef_changed;
|
||||
s3_hton->create_partitioning_metadata= s3_create_partitioning_metadata;
|
||||
s3_hton->tablefile_extensions= no_exts;
|
||||
|
Reference in New Issue
Block a user