Merge 10.3 into 10.4
This commit is contained in:
commit
0bc4260226
@ -1210,6 +1210,7 @@ copy_or_move_file(const char *src_file_path,
|
||||
|
||||
if (!directory_exists(dst_dir, true)) {
|
||||
ret = false;
|
||||
free(link_filepath);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
|
@ -381,6 +381,7 @@ log_online_setup_bitmap_file_range(
|
||||
|
||||
msg("InnoDB: Error: inconsistent bitmap file "
|
||||
"directory");
|
||||
os_file_closedir(bitmap_dir);
|
||||
free(bitmap_files->files);
|
||||
return FALSE;
|
||||
}
|
||||
|
@ -385,6 +385,7 @@ create_worker_threads(uint n)
|
||||
return threads;
|
||||
|
||||
err:
|
||||
my_free(threads);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
@ -5246,6 +5246,7 @@ next_file_item_1:
|
||||
fileinfo.name, NULL))
|
||||
{
|
||||
os_file_closedir(dbdir);
|
||||
os_file_closedir(dir);
|
||||
return(FALSE);
|
||||
}
|
||||
}
|
||||
|
@ -1980,8 +1980,8 @@ FROM t2);
|
||||
MIN(t2.pk)
|
||||
NULL
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: 'j'
|
||||
Warning 1292 Truncated incorrect INTEGER value: 'j'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'j'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'j'
|
||||
|
||||
EXPLAIN
|
||||
SELECT MIN(t2.pk)
|
||||
@ -1994,8 +1994,8 @@ id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE
|
||||
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: 'j'
|
||||
Warning 1292 Truncated incorrect INTEGER value: 'j'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'j'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'j'
|
||||
|
||||
#
|
||||
# 2) Test that subquery materialization is setup for query with
|
||||
|
@ -14,14 +14,6 @@ FROM mysql.slow_log
|
||||
WHERE sql_text NOT LIKE '%debug_dbug%';
|
||||
END
|
||||
$$
|
||||
CREATE PROCEDURE show_slow_log_exclude_ps()
|
||||
BEGIN
|
||||
SELECT CONCAT('[slow] ', sql_text) AS sql_text
|
||||
FROM mysql.slow_log
|
||||
WHERE sql_text NOT LIKE '%debug_dbug%'
|
||||
AND sql_text NOT IN ('Prepare','Close stmt');
|
||||
END
|
||||
$$
|
||||
#
|
||||
# Expect all admin statements in the slow log (ON,DEFAULT)
|
||||
#
|
||||
@ -231,4 +223,3 @@ SET @@global.slow_query_log= @org_slow_query_log;
|
||||
SET @@global.log_output= @org_log_output;
|
||||
SET @@global.log_slow_admin_statements= @org_log_slow_admin_statements;
|
||||
DROP PROCEDURE show_slow_log;
|
||||
DROP PROCEDURE show_slow_log_exclude_ps;
|
||||
|
@ -19,14 +19,6 @@ BEGIN
|
||||
WHERE sql_text NOT LIKE '%debug_dbug%';
|
||||
END
|
||||
$$
|
||||
CREATE PROCEDURE show_slow_log_exclude_ps()
|
||||
BEGIN
|
||||
SELECT CONCAT('[slow] ', sql_text) AS sql_text
|
||||
FROM mysql.slow_log
|
||||
WHERE sql_text NOT LIKE '%debug_dbug%'
|
||||
AND sql_text NOT IN ('Prepare','Close stmt');
|
||||
END
|
||||
$$
|
||||
DELIMITER ;$$
|
||||
|
||||
|
||||
@ -100,4 +92,3 @@ SET @@global.slow_query_log= @org_slow_query_log;
|
||||
SET @@global.log_output= @org_log_output;
|
||||
SET @@global.log_slow_admin_statements= @org_log_slow_admin_statements;
|
||||
DROP PROCEDURE show_slow_log;
|
||||
DROP PROCEDURE show_slow_log_exclude_ps;
|
||||
|
@ -5,9 +5,9 @@ SET SQL_MODE= 'STRICT_ALL_TABLES';
|
||||
CREATE TABLE t1 (a INT);
|
||||
PREPARE stmt FROM "CREATE TABLE tmp AS SELECT * FROM t1 WHERE 'foo' && 0";
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: 'foo'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'foo'
|
||||
EXECUTE stmt;
|
||||
ERROR 22007: Truncated incorrect INTEGER value: 'foo'
|
||||
ERROR 22007: Truncated incorrect DOUBLE value: 'foo'
|
||||
SELECT a FROM t1 GROUP BY NULL WITH ROLLUP;
|
||||
a
|
||||
DROP TABLE t1;
|
||||
@ -16,9 +16,9 @@ SET SQL_MODE= 'STRICT_ALL_TABLES';
|
||||
CREATE TABLE t1 (a INT);
|
||||
PREPARE stmt FROM "CREATE TABLE tmp AS SELECT * FROM t1 WHERE 'foo' && 0";
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: 'foo'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'foo'
|
||||
EXECUTE stmt;
|
||||
ERROR 22007: Truncated incorrect INTEGER value: 'foo'
|
||||
ERROR 22007: Truncated incorrect DOUBLE value: 'foo'
|
||||
SET @a = REPLACE( @@global.optimizer_switch, '=on', '=off' ) ;
|
||||
DROP TABLE t1;
|
||||
SET sql_mode=DEFAULT;
|
||||
@ -28,9 +28,9 @@ SET sql_mode=DEFAULT;
|
||||
SET SQL_MODE='STRICT_ALL_TABLES';
|
||||
PREPARE stmt FROM "CREATE TABLE ps AS SELECT 1 FROM DUAL WHERE 'foo' && 0";
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: 'foo'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'foo'
|
||||
EXECUTE stmt;
|
||||
ERROR 22007: Truncated incorrect INTEGER value: 'foo'
|
||||
ERROR 22007: Truncated incorrect DOUBLE value: 'foo'
|
||||
SELECT 'All done';
|
||||
All done
|
||||
All done
|
||||
@ -38,9 +38,9 @@ SET SQL_MODE=DEFAULT;
|
||||
SET SQL_MODE='STRICT_ALL_TABLES';
|
||||
PREPARE stmt FROM "CREATE TABLE ps AS SELECT 1 FROM DUAL WHERE 'foo' && 0";
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: 'foo'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'foo'
|
||||
EXECUTE stmt;
|
||||
ERROR 22007: Truncated incorrect INTEGER value: 'foo'
|
||||
ERROR 22007: Truncated incorrect DOUBLE value: 'foo'
|
||||
DEALLOCATE PREPARE stmt;
|
||||
SELECT 'All done';
|
||||
All done
|
||||
@ -50,9 +50,9 @@ SET SQL_MODE= 'STRICT_ALL_TABLES';
|
||||
CREATE TABLE t1 (a INT);
|
||||
PREPARE stmt FROM "CREATE TABLE tmp AS SELECT * FROM t1 WHERE 'foo' && 0";
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: 'foo'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'foo'
|
||||
EXECUTE stmt;
|
||||
ERROR 22007: Truncated incorrect INTEGER value: 'foo'
|
||||
ERROR 22007: Truncated incorrect DOUBLE value: 'foo'
|
||||
SELECT a FROM t1 GROUP BY a;
|
||||
a
|
||||
SELECT * FROM t1;
|
||||
@ -63,9 +63,9 @@ SET SQL_MODE= 'STRICT_ALL_TABLES';
|
||||
CREATE TABLE t1 (a INT);
|
||||
PREPARE stmt FROM "CREATE TABLE tmp AS SELECT * FROM t1 WHERE 'foo' && 0";
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect INTEGER value: 'foo'
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'foo'
|
||||
EXECUTE stmt;
|
||||
ERROR 22007: Truncated incorrect INTEGER value: 'foo'
|
||||
ERROR 22007: Truncated incorrect DOUBLE value: 'foo'
|
||||
SELECT a FROM t1 GROUP BY a;
|
||||
a
|
||||
INSERT t1 SELECT * FROM ( SELECT * FROM t1 ) sq;
|
||||
|
@ -1020,6 +1020,26 @@ cast('-0.0' as decimal(5,1)) < 0
|
||||
# End of 5.5 tests
|
||||
#
|
||||
#
|
||||
# Start of 10.1 tests
|
||||
#
|
||||
#
|
||||
# MDEV-18968 Both (WHERE 0.1) and (WHERE NOT 0.1) return empty set
|
||||
#
|
||||
CREATE TABLE t1 (a INT);
|
||||
INSERT INTO t1 VALUES (10);
|
||||
SELECT CASE WHEN 0.1 THEN 'TRUE' ELSE 'FALSE' END FROM t1;
|
||||
CASE WHEN 0.1 THEN 'TRUE' ELSE 'FALSE' END
|
||||
TRUE
|
||||
SELECT * FROM t1 WHERE 0.1;
|
||||
a
|
||||
10
|
||||
SELECT * FROM t1 WHERE NOT 0.1;
|
||||
a
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# End of 10.1 tests
|
||||
#
|
||||
#
|
||||
# Start of 10.2 tests
|
||||
#
|
||||
#
|
||||
|
@ -613,6 +613,27 @@ select cast('-0.0' as decimal(5,1)) < 0;
|
||||
--echo # End of 5.5 tests
|
||||
--echo #
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # Start of 10.1 tests
|
||||
--echo #
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-18968 Both (WHERE 0.1) and (WHERE NOT 0.1) return empty set
|
||||
--echo #
|
||||
|
||||
CREATE TABLE t1 (a INT);
|
||||
INSERT INTO t1 VALUES (10);
|
||||
SELECT CASE WHEN 0.1 THEN 'TRUE' ELSE 'FALSE' END FROM t1;
|
||||
SELECT * FROM t1 WHERE 0.1;
|
||||
SELECT * FROM t1 WHERE NOT 0.1;
|
||||
DROP TABLE t1;
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # End of 10.1 tests
|
||||
--echo #
|
||||
|
||||
--echo #
|
||||
--echo # Start of 10.2 tests
|
||||
--echo #
|
||||
|
@ -1 +1,2 @@
|
||||
--innodb --innodb-data-home-dir= --innodb-data-file-path=$MYSQLTEST_VARDIR/tmp/absolute_path_ibdata1:3M;ibdata_second:1M:autoextend --innodb-undo-tablespaces=2
|
||||
--innodb --innodb-data-home-dir= --innodb-data-file-path=$MYSQLTEST_VARDIR/tmp/absolute_path_ibdata1:6M;ibdata_second:1M:autoextend
|
||||
--innodb-undo-tablespaces=2
|
||||
|
@ -2,12 +2,32 @@
|
||||
# Innodb system tablespace is specified with absolute path in the .opt file
|
||||
CREATE TABLE t(i INT) ENGINE INNODB;
|
||||
INSERT INTO t VALUES(1);
|
||||
|
||||
let INNODB_PAGE_SIZE=`select @@innodb_page_size`;
|
||||
let MYSQLD_DATADIR= `SELECT @@datadir`;
|
||||
--source include/shutdown_mysqld.inc
|
||||
perl;
|
||||
my $file= "$ENV{MYSQLD_DATADIR}/ibdata_second";
|
||||
open(FILE, "+<", $file) or die "Unable to open $file\n";
|
||||
binmode FILE;
|
||||
my $ps= $ENV{INNODB_PAGE_SIZE};
|
||||
my $page;
|
||||
my $pos = $ps * 0;
|
||||
sysseek(FILE, $pos, 0) || die "Unable to seek $file\n";
|
||||
die "Unable to read $file" unless sysread(FILE, $page, $ps) == $ps;
|
||||
substr($page,26,8) = pack("NN", 1, 1);
|
||||
sysseek(FILE, $pos, 0) || die "Unable to rewind $file\n";
|
||||
syswrite(FILE, $page, $ps)==$ps || die "Unable to write $file\n";
|
||||
close(FILE) || die "Unable to close $file\n";
|
||||
EOF
|
||||
|
||||
--source include/start_mysqld.inc
|
||||
|
||||
echo # xtrabackup backup;
|
||||
|
||||
let $targetdir=$MYSQLTEST_VARDIR/tmp/backup;
|
||||
let $_innodb_data_file_path=`select @@innodb_data_file_path`;
|
||||
let $_innodb_data_home_dir=`select @@innodb_data_home_dir`;
|
||||
let $_datadir= `SELECT @@datadir`;
|
||||
|
||||
--disable_result_log
|
||||
exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=$targetdir;
|
||||
@ -16,11 +36,11 @@ exec $XTRABACKUP --prepare --target-dir=$targetdir;
|
||||
|
||||
--source include/shutdown_mysqld.inc
|
||||
echo # remove datadir;
|
||||
rmdir $_datadir;
|
||||
rmdir $MYSQLD_DATADIR;
|
||||
#remove out-of-datadir ibdata1
|
||||
remove_file $MYSQLTEST_VARDIR/tmp/absolute_path_ibdata1;
|
||||
echo # xtrabackup copy back;
|
||||
exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --copy-back --datadir=$_datadir --target-dir=$targetdir "--innodb_data_file_path=$_innodb_data_file_path" --innodb_data_home_dir=$_innodb_data_home_dir;
|
||||
exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --copy-back --datadir=$MYSQLD_DATADIR --target-dir=$targetdir "--innodb_data_file_path=$_innodb_data_file_path" --innodb_data_home_dir=$_innodb_data_home_dir;
|
||||
echo # restart server;
|
||||
--source include/start_mysqld.inc
|
||||
--enable_result_log
|
||||
|
@ -544,5 +544,66 @@ alter table t add check (a > 0);
|
||||
insert into t values (0);
|
||||
ERROR 23000: CONSTRAINT `CONSTRAINT_1` failed for `test`.`t`
|
||||
insert into t values (2);
|
||||
#
|
||||
# MDEV-18869 Assertion `!((field)->vcol_info && (field)->stored_in_db())' failed in innodb_col_no upon altering table with system versioning
|
||||
#
|
||||
set system_versioning_alter_history= keep;
|
||||
create or replace table t1 (a int, b int generated always as (0) stored) engine=innodb with system versioning;
|
||||
insert into t1 (a) values (1);
|
||||
alter table t1 modify a int without system versioning, algorithm=copy;
|
||||
affected rows: 1
|
||||
info: Records: 1 Duplicates: 0 Warnings: 0
|
||||
alter table t1 modify a int with system versioning, algorithm=copy;
|
||||
affected rows: 1
|
||||
info: Records: 1 Duplicates: 0 Warnings: 0
|
||||
alter table t1 modify a int without system versioning;
|
||||
affected rows: 0
|
||||
info: Records: 0 Duplicates: 0 Warnings: 0
|
||||
alter table t1 modify a int with system versioning;
|
||||
affected rows: 0
|
||||
info: Records: 0 Duplicates: 0 Warnings: 0
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL,
|
||||
`b` int(11) GENERATED ALWAYS AS (0) STORED
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 WITH SYSTEM VERSIONING
|
||||
select * from t1;
|
||||
a b
|
||||
1 0
|
||||
alter table t1 modify b int generated always as (0) stored without system versioning;
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'without system versioning' at line 1
|
||||
alter table t1 modify b int generated always as (0) stored with system versioning;
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'system versioning' at line 1
|
||||
alter table t1 modify b int without system versioning;
|
||||
affected rows: 1
|
||||
info: Records: 1 Duplicates: 0 Warnings: 0
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL,
|
||||
`b` int(11) DEFAULT NULL WITHOUT SYSTEM VERSIONING
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 WITH SYSTEM VERSIONING
|
||||
select * from t1;
|
||||
a b
|
||||
1 0
|
||||
create or replace table t1 (a int, b int generated always as (0) virtual) engine=innodb with system versioning;
|
||||
insert into t1 (a) values (1);
|
||||
alter table t1 modify a int without system versioning, algorithm=copy;
|
||||
affected rows: 1
|
||||
info: Records: 1 Duplicates: 0 Warnings: 0
|
||||
alter table t1 modify a int with system versioning, algorithm=copy;
|
||||
affected rows: 1
|
||||
info: Records: 1 Duplicates: 0 Warnings: 0
|
||||
alter table t1 modify a int without system versioning;
|
||||
affected rows: 0
|
||||
info: Records: 0 Duplicates: 0 Warnings: 0
|
||||
alter table t1 modify a int with system versioning;
|
||||
affected rows: 0
|
||||
info: Records: 0 Duplicates: 0 Warnings: 0
|
||||
select * from t1;
|
||||
a b
|
||||
1 0
|
||||
affected rows: 1
|
||||
drop database test;
|
||||
create database test;
|
||||
|
@ -469,5 +469,39 @@ alter table t add check (a > 0);
|
||||
insert into t values (0);
|
||||
insert into t values (2);
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-18869 Assertion `!((field)->vcol_info && (field)->stored_in_db())' failed in innodb_col_no upon altering table with system versioning
|
||||
--echo #
|
||||
set system_versioning_alter_history= keep;
|
||||
create or replace table t1 (a int, b int generated always as (0) stored) engine=innodb with system versioning;
|
||||
insert into t1 (a) values (1);
|
||||
--enable_info
|
||||
alter table t1 modify a int without system versioning, algorithm=copy;
|
||||
alter table t1 modify a int with system versioning, algorithm=copy;
|
||||
alter table t1 modify a int without system versioning;
|
||||
alter table t1 modify a int with system versioning;
|
||||
--disable_info
|
||||
show create table t1;
|
||||
select * from t1;
|
||||
--enable_info
|
||||
--error ER_PARSE_ERROR
|
||||
alter table t1 modify b int generated always as (0) stored without system versioning;
|
||||
--error ER_PARSE_ERROR
|
||||
alter table t1 modify b int generated always as (0) stored with system versioning;
|
||||
alter table t1 modify b int without system versioning;
|
||||
--disable_info
|
||||
show create table t1;
|
||||
select * from t1;
|
||||
|
||||
create or replace table t1 (a int, b int generated always as (0) virtual) engine=innodb with system versioning;
|
||||
insert into t1 (a) values (1);
|
||||
--enable_info
|
||||
alter table t1 modify a int without system versioning, algorithm=copy;
|
||||
alter table t1 modify a int with system versioning, algorithm=copy;
|
||||
alter table t1 modify a int without system versioning;
|
||||
alter table t1 modify a int with system versioning;
|
||||
select * from t1;
|
||||
--disable_info
|
||||
|
||||
drop database test;
|
||||
create database test;
|
||||
|
@ -1449,6 +1449,13 @@ public:
|
||||
}
|
||||
virtual String *val_raw(String*) { return 0; }
|
||||
|
||||
bool eval_const_cond()
|
||||
{
|
||||
DBUG_ASSERT(const_item());
|
||||
DBUG_ASSERT(!is_expensive());
|
||||
return val_bool();
|
||||
}
|
||||
|
||||
/*
|
||||
save_val() is method of val_* family which stores value in the given
|
||||
field.
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Copyright (c) 2000, 2013, Oracle and/or its affiliates.
|
||||
Copyright (c) 2009, 2016, MariaDB
|
||||
Copyright (c) 2009, 2019, MariaDB
|
||||
|
||||
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
|
||||
@ -4770,7 +4770,7 @@ Item_cond::fix_fields(THD *thd, Item **ref)
|
||||
List_iterator<Item> li(list);
|
||||
Item *item;
|
||||
uchar buff[sizeof(char*)]; // Max local vars in function
|
||||
longlong is_and_cond= functype() == Item_func::COND_AND_FUNC;
|
||||
bool is_and_cond= functype() == Item_func::COND_AND_FUNC;
|
||||
not_null_tables_cache= 0;
|
||||
used_tables_and_const_cache_init();
|
||||
|
||||
@ -4834,7 +4834,7 @@ Item_cond::fix_fields(THD *thd, Item **ref)
|
||||
if (item->const_item() && !item->with_param &&
|
||||
!item->is_expensive() && !cond_has_datetime_is_null(item))
|
||||
{
|
||||
if (item->val_int() == is_and_cond && top_level())
|
||||
if (item->eval_const_cond() == is_and_cond && top_level())
|
||||
{
|
||||
/*
|
||||
a. This is "... AND true_cond AND ..."
|
||||
@ -4886,7 +4886,7 @@ bool
|
||||
Item_cond::eval_not_null_tables(void *opt_arg)
|
||||
{
|
||||
Item *item;
|
||||
longlong is_and_cond= functype() == Item_func::COND_AND_FUNC;
|
||||
bool is_and_cond= functype() == Item_func::COND_AND_FUNC;
|
||||
List_iterator<Item> li(list);
|
||||
not_null_tables_cache= (table_map) 0;
|
||||
and_tables_cache= ~(table_map) 0;
|
||||
@ -4896,7 +4896,7 @@ Item_cond::eval_not_null_tables(void *opt_arg)
|
||||
if (item->const_item() && !item->with_param &&
|
||||
!item->is_expensive() && !cond_has_datetime_is_null(item))
|
||||
{
|
||||
if (item->val_int() == is_and_cond && top_level())
|
||||
if (item->eval_const_cond() == is_and_cond && top_level())
|
||||
{
|
||||
/*
|
||||
a. This is "... AND true_cond AND ..."
|
||||
|
@ -70,18 +70,6 @@ bool check_reserved_words(const LEX_CSTRING *name)
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
@return
|
||||
TRUE if item is a constant
|
||||
*/
|
||||
|
||||
bool
|
||||
eval_const_cond(COND *cond)
|
||||
{
|
||||
return ((Item_func*) cond)->val_int() ? TRUE : FALSE;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
Test if the sum of arguments overflows the ulonglong range.
|
||||
*/
|
||||
|
@ -3445,7 +3445,6 @@ Item *get_system_var(THD *thd, enum_var_type var_type,
|
||||
extern bool check_reserved_words(const LEX_CSTRING *name);
|
||||
double my_double_round(double value, longlong dec, bool dec_unsigned,
|
||||
bool truncate);
|
||||
bool eval_const_cond(COND *cond);
|
||||
|
||||
extern bool volatile mqh_used;
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Copyright (c) 2000, 2017, Oracle and/or its affiliates.
|
||||
Copyright (c) 2008, 2019, MariaDB Corporation.
|
||||
Copyright (c) 2008, 2019, MariaDB
|
||||
|
||||
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
|
||||
@ -3864,8 +3864,10 @@ mysql_execute_command(THD *thd)
|
||||
else
|
||||
{
|
||||
WSREP_SYNC_WAIT(thd, WSREP_SYNC_WAIT_BEFORE_SHOW);
|
||||
# ifdef ENABLED_PROFILING
|
||||
if (lex->sql_command == SQLCOM_SHOW_PROFILE)
|
||||
thd->profiling.discard_current_query();
|
||||
# endif
|
||||
}
|
||||
#endif /* WITH_WSREP */
|
||||
|
||||
@ -6725,7 +6727,7 @@ static bool check_rename_table(THD *thd, TABLE_LIST *first_table,
|
||||
0, 0))
|
||||
return 1;
|
||||
|
||||
/* check if these are refering to temporary tables */
|
||||
/* check if these are referring to temporary tables */
|
||||
table->table= find_temporary_table_for_rename(thd, first_table, table);
|
||||
table->next_local->table= table->table;
|
||||
|
||||
|
@ -17066,7 +17066,7 @@ Item::remove_eq_conds(THD *thd, Item::cond_result *cond_value, bool top_level_ar
|
||||
{
|
||||
if (const_item() && !is_expensive())
|
||||
{
|
||||
*cond_value= eval_const_cond(this) ? Item::COND_TRUE : Item::COND_FALSE;
|
||||
*cond_value= eval_const_cond() ? Item::COND_TRUE : Item::COND_FALSE;
|
||||
return (COND*) 0;
|
||||
}
|
||||
*cond_value= Item::COND_OK;
|
||||
@ -17080,7 +17080,7 @@ Item_bool_func2::remove_eq_conds(THD *thd, Item::cond_result *cond_value,
|
||||
{
|
||||
if (const_item() && !is_expensive())
|
||||
{
|
||||
*cond_value= eval_const_cond(this) ? Item::COND_TRUE : Item::COND_FALSE;
|
||||
*cond_value= eval_const_cond() ? Item::COND_TRUE : Item::COND_FALSE;
|
||||
return (COND*) 0;
|
||||
}
|
||||
if ((*cond_value= eq_cmp_result()) != Item::COND_OK)
|
||||
|
@ -1073,26 +1073,28 @@ buf_page_is_corrupted(
|
||||
|
||||
compile_time_assert(!(FIL_PAGE_LSN % 8));
|
||||
|
||||
/* declare empty pages non-corrupted */
|
||||
if (checksum_field1 == 0
|
||||
&& checksum_field2 == 0
|
||||
&& *reinterpret_cast<const ib_uint64_t*>(
|
||||
read_buf + FIL_PAGE_LSN) == 0) {
|
||||
|
||||
/* make sure that the page is really empty */
|
||||
for (ulint i = 0; i < srv_page_size; i++) {
|
||||
if (read_buf[i] != 0) {
|
||||
return(true);
|
||||
/* A page filled with NUL bytes is considered not corrupted.
|
||||
The FIL_PAGE_FILE_FLUSH_LSN field may be written nonzero for
|
||||
the first page of each file of the system tablespace.
|
||||
Ignore it for the system tablespace. */
|
||||
if (!checksum_field1 && !checksum_field2) {
|
||||
ulint i = 0;
|
||||
do {
|
||||
if (read_buf[i]) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
#ifdef UNIV_INNOCHECKSUM
|
||||
if (log_file) {
|
||||
fprintf(log_file, "Page::%llu"
|
||||
" is empty and uncorrupted\n",
|
||||
cur_page_num);
|
||||
}
|
||||
#endif /* UNIV_INNOCHECKSUM */
|
||||
return(false);
|
||||
} while (++i < FIL_PAGE_FILE_FLUSH_LSN_OR_KEY_VERSION);
|
||||
|
||||
/* Ignore FIL_PAGE_FILE_FLUSH_LSN_OR_KEY_VERSION unless
|
||||
innodb_checksum_algorithm=full_crc32. */
|
||||
i += 8;
|
||||
|
||||
do {
|
||||
if (read_buf[i]) {
|
||||
return true;
|
||||
}
|
||||
} while (++i < srv_page_size);
|
||||
return false;
|
||||
}
|
||||
|
||||
switch (curr_algo) {
|
||||
|
@ -9685,7 +9685,7 @@ vers_change_fields_cache(
|
||||
ha_alter_info->alter_info->create_list);
|
||||
|
||||
while (const Create_field* create_field = it++) {
|
||||
if (!create_field->field) {
|
||||
if (!create_field->field || create_field->field->vcol_info) {
|
||||
continue;
|
||||
}
|
||||
dict_col_t* col = dict_table_get_nth_col(
|
||||
|
@ -19710,8 +19710,8 @@ static void test_big_packet()
|
||||
opt_password, current_db, opt_port,
|
||||
opt_unix_socket, 0)))
|
||||
{
|
||||
mysql_close(mysql_local);
|
||||
fprintf(stderr, "\n connection failed(%s)", mysql_error(mysql_local));
|
||||
mysql_close(mysql_local);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user