mirror of
https://github.com/MariaDB/server.git
synced 2025-07-24 19:42:23 +03:00
Merge branch '10.6' into 10.7
This commit is contained in:
@ -7074,7 +7074,12 @@ int main(int argc, char **argv)
|
|||||||
if (flush_logs || opt_delete_master_logs)
|
if (flush_logs || opt_delete_master_logs)
|
||||||
{
|
{
|
||||||
if (mysql_refresh(mysql, REFRESH_LOG))
|
if (mysql_refresh(mysql, REFRESH_LOG))
|
||||||
|
{
|
||||||
|
fprintf(stderr,
|
||||||
|
"Flush logs or delete master logs failure in server \n");
|
||||||
|
first_error= EX_MYSQLERR;
|
||||||
goto err;
|
goto err;
|
||||||
|
}
|
||||||
verbose_msg("-- main : logs flushed successfully!\n");
|
verbose_msg("-- main : logs flushed successfully!\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
9
debian/rules
vendored
9
debian/rules
vendored
@ -1,8 +1,11 @@
|
|||||||
#!/usr/bin/make -f
|
#!/usr/bin/make -f
|
||||||
|
|
||||||
# Enable Debian Hardening
|
export DH_VERBOSE=1
|
||||||
# https://wiki.debian.org/Hardening
|
export DEB_BUILD_HARDENING=1
|
||||||
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
|
|
||||||
|
# enable Debian Hardening
|
||||||
|
# see: https://wiki.debian.org/Hardening
|
||||||
|
export DEB_BUILD_MAINT_OPTIONS = hardening=+all optimize=-lto
|
||||||
DPKG_EXPORT_BUILDFLAGS = 1
|
DPKG_EXPORT_BUILDFLAGS = 1
|
||||||
# Include all defaults, including buildflags.mk
|
# Include all defaults, including buildflags.mk
|
||||||
include /usr/share/dpkg/default.mk
|
include /usr/share/dpkg/default.mk
|
||||||
|
8
debian/salsa-ci.yml
vendored
8
debian/salsa-ci.yml
vendored
@ -609,7 +609,7 @@ mariadb.org-10.5 to mariadb-10.7 upgrade:
|
|||||||
- *test-prepare-container
|
- *test-prepare-container
|
||||||
- apt install -y curl
|
- apt install -y curl
|
||||||
- curl -sS https://mariadb.org/mariadb_release_signing_key.asc -o /etc/apt/trusted.gpg.d/mariadb.asc
|
- curl -sS https://mariadb.org/mariadb_release_signing_key.asc -o /etc/apt/trusted.gpg.d/mariadb.asc
|
||||||
- echo "deb https://deb.mariadb.org/10.5/debian ${RELEASE} main" > /etc/apt/sources.list.d/mariadb.list
|
- echo "deb https://archive.mariadb.org/mariadb-10.5/repo/debian ${RELEASE} main" > /etc/apt/sources.list.d/mariadb.list
|
||||||
- apt-get update
|
- apt-get update
|
||||||
- apt-get install -y mariadb-server-10.5
|
- apt-get install -y mariadb-server-10.5
|
||||||
- *test-verify-initial
|
- *test-verify-initial
|
||||||
@ -639,7 +639,7 @@ mariadb.org-10.4 to mariadb-10.7 upgrade:
|
|||||||
- *test-prepare-container
|
- *test-prepare-container
|
||||||
- apt install -y curl systemctl # systemctl shim needed on platforms that don't have systemd
|
- apt install -y curl systemctl # systemctl shim needed on platforms that don't have systemd
|
||||||
- curl -sS https://mariadb.org/mariadb_release_signing_key.asc -o /etc/apt/trusted.gpg.d/mariadb.asc
|
- curl -sS https://mariadb.org/mariadb_release_signing_key.asc -o /etc/apt/trusted.gpg.d/mariadb.asc
|
||||||
- echo "deb https://deb.mariadb.org/10.4/debian ${RELEASE} main" > /etc/apt/sources.list.d/mariadb.list
|
- echo "deb https://archive.mariadb.org/mariadb-10.4/repo/debian ${RELEASE} main" > /etc/apt/sources.list.d/mariadb.list
|
||||||
- apt-get update
|
- apt-get update
|
||||||
- *test-install-readline-in-sid-for-backwards-compat
|
- *test-install-readline-in-sid-for-backwards-compat
|
||||||
- apt-get install -y mariadb-server-10.4
|
- apt-get install -y mariadb-server-10.4
|
||||||
@ -672,7 +672,7 @@ mariadb.org-10.3 to mariadb-10.7 upgrade:
|
|||||||
- *test-prepare-container
|
- *test-prepare-container
|
||||||
- apt install -y curl
|
- apt install -y curl
|
||||||
- curl -sS https://mariadb.org/mariadb_release_signing_key.asc -o /etc/apt/trusted.gpg.d/mariadb.asc
|
- curl -sS https://mariadb.org/mariadb_release_signing_key.asc -o /etc/apt/trusted.gpg.d/mariadb.asc
|
||||||
- echo "deb https://deb.mariadb.org/10.3/debian ${RELEASE} main" > /etc/apt/sources.list.d/mariadb.list
|
- echo "deb https://archive.mariadb.org/mariadb-10.3/repo/debian ${RELEASE} main" > /etc/apt/sources.list.d/mariadb.list
|
||||||
- apt-get update
|
- apt-get update
|
||||||
- *test-install-readline-in-sid-for-backwards-compat
|
- *test-install-readline-in-sid-for-backwards-compat
|
||||||
- apt-get install -y mariadb-server-10.3
|
- apt-get install -y mariadb-server-10.3
|
||||||
@ -703,7 +703,7 @@ mariadb.org-10.2 to mariadb-10.7 upgrade:
|
|||||||
- *test-prepare-container
|
- *test-prepare-container
|
||||||
- apt install -y curl
|
- apt install -y curl
|
||||||
- curl -sS https://mariadb.org/mariadb_release_signing_key.asc -o /etc/apt/trusted.gpg.d/mariadb.asc
|
- curl -sS https://mariadb.org/mariadb_release_signing_key.asc -o /etc/apt/trusted.gpg.d/mariadb.asc
|
||||||
- echo "deb https://deb.mariadb.org/10.2/debian ${RELEASE} main" > /etc/apt/sources.list.d/mariadb.list
|
- echo "deb https://archive.mariadb.org/mariadb-10.2/repo/debian ${RELEASE} main" > /etc/apt/sources.list.d/mariadb.list
|
||||||
- apt-get update
|
- apt-get update
|
||||||
- *test-install-readline-in-sid-for-backwards-compat
|
- *test-install-readline-in-sid-for-backwards-compat
|
||||||
- apt-get install -y mariadb-server-10.2
|
- apt-get install -y mariadb-server-10.2
|
||||||
|
@ -278,8 +278,8 @@ enum ha_base_keytype {
|
|||||||
#define HA_GENERATED_KEY 8192U /* Automatically generated key */
|
#define HA_GENERATED_KEY 8192U /* Automatically generated key */
|
||||||
|
|
||||||
/* The combination of the above can be used for key type comparison. */
|
/* The combination of the above can be used for key type comparison. */
|
||||||
#define HA_KEYFLAG_MASK (HA_NOSAME | HA_PACK_KEY | HA_AUTO_KEY | \
|
#define HA_KEYFLAG_MASK (HA_NOSAME | HA_AUTO_KEY | \
|
||||||
HA_BINARY_PACK_KEY | HA_FULLTEXT | HA_UNIQUE_CHECK | \
|
HA_FULLTEXT | HA_UNIQUE_CHECK | \
|
||||||
HA_SPATIAL | HA_NULL_ARE_EQUAL | HA_GENERATED_KEY)
|
HA_SPATIAL | HA_NULL_ARE_EQUAL | HA_GENERATED_KEY)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -34,12 +34,13 @@ extern "C" {
|
|||||||
#ifndef __cplusplus
|
#ifndef __cplusplus
|
||||||
#define inline __inline
|
#define inline __inline
|
||||||
#endif
|
#endif
|
||||||
#elif defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__DragonFly__)
|
|
||||||
#include <stdlib.h>
|
|
||||||
#else
|
#else
|
||||||
|
#include <stdlib.h>
|
||||||
|
#ifdef HAVE_ALLOCA_H
|
||||||
#include <alloca.h>
|
#include <alloca.h>
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
/* returned from encryption_key_get_latest_version() */
|
/* returned from encryption_key_get_latest_version() */
|
||||||
#define ENCRYPTION_KEY_VERSION_INVALID (~(unsigned int)0)
|
#define ENCRYPTION_KEY_VERSION_INVALID (~(unsigned int)0)
|
||||||
|
53
mysql-test/main/alter_table_upgrade_aria.result
Normal file
53
mysql-test/main/alter_table_upgrade_aria.result
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
#
|
||||||
|
# Start of 10.4 tests
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# MDEV-29481 mariadb-upgrade prints confusing statement
|
||||||
|
#
|
||||||
|
SET @debug_key_flags=NULL;
|
||||||
|
SET default_storage_engine=ARIA;
|
||||||
|
CREATE PROCEDURE debug_show_key_flags()
|
||||||
|
BEGIN
|
||||||
|
IF @debug_key_flags IS TRUE
|
||||||
|
THEN
|
||||||
|
FLUSH TABLES;
|
||||||
|
-- Wrap SET into EXECUTE IMMEDIATE to avoid
|
||||||
|
-- parse time "Unknown system variable" errors in release builds.
|
||||||
|
EXECUTE IMMEDIATE "SET debug_dbug='+d,key'";
|
||||||
|
SELECT * FROM t1 LIMIT 0;
|
||||||
|
EXECUTE IMMEDIATE "SET debug_dbug=''";
|
||||||
|
END IF;
|
||||||
|
END;
|
||||||
|
$$
|
||||||
|
SHOW CREATE TABLE t1;
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`d` double(18,7) DEFAULT NULL,
|
||||||
|
KEY `d` (`d`)
|
||||||
|
) ENGINE=Aria DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci PAGE_CHECKSUM=1
|
||||||
|
CHECK TABLE t1 FOR UPGRADE;
|
||||||
|
Table Op Msg_type Msg_text
|
||||||
|
test.t1 check status OK
|
||||||
|
DROP TABLE t1;
|
||||||
|
CALL debug_show_key_flags();
|
||||||
|
ALTER TABLE t1 MODIFY d DOUBLE DEFAULT 10, ALGORITHM=INSTANT;
|
||||||
|
CALL debug_show_key_flags();
|
||||||
|
DROP TABLE t1;
|
||||||
|
CALL debug_show_key_flags();
|
||||||
|
ALTER TABLE t1 MODIFY d DOUBLE DEFAULT 10, ALGORITHM=NOCOPY;
|
||||||
|
CALL debug_show_key_flags();
|
||||||
|
DROP TABLE t1;
|
||||||
|
CALL debug_show_key_flags();
|
||||||
|
REPAIR TABLE t1;
|
||||||
|
Table Op Msg_type Msg_text
|
||||||
|
test.t1 repair status OK
|
||||||
|
CALL debug_show_key_flags();
|
||||||
|
DROP TABLE t1;
|
||||||
|
CALL debug_show_key_flags();
|
||||||
|
ALTER TABLE t1 FORCE;
|
||||||
|
CALL debug_show_key_flags();
|
||||||
|
DROP TABLE t1;
|
||||||
|
DROP PROCEDURE debug_show_key_flags;
|
||||||
|
#
|
||||||
|
# End of 10.4 tests
|
||||||
|
#
|
21
mysql-test/main/alter_table_upgrade_aria.test
Normal file
21
mysql-test/main/alter_table_upgrade_aria.test
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
--source include/have_aria.inc
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # Start of 10.4 tests
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-29481 mariadb-upgrade prints confusing statement
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
let $table= std_data/mysql_upgrade/mdev29481_100104_aria;
|
||||||
|
let $EXT_DAT= MAD;
|
||||||
|
let $EXT_IDX= MAI;
|
||||||
|
SET @debug_key_flags=NULL;
|
||||||
|
SET default_storage_engine=ARIA;
|
||||||
|
--source alter_table_upgrade_mdev29481_myisam_aria.inc
|
||||||
|
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # End of 10.4 tests
|
||||||
|
--echo #
|
@ -0,0 +1,59 @@
|
|||||||
|
let $datadir=`select @@datadir`;
|
||||||
|
|
||||||
|
DELIMITER $$;
|
||||||
|
CREATE PROCEDURE debug_show_key_flags()
|
||||||
|
BEGIN
|
||||||
|
IF @debug_key_flags IS TRUE
|
||||||
|
THEN
|
||||||
|
FLUSH TABLES;
|
||||||
|
-- Wrap SET into EXECUTE IMMEDIATE to avoid
|
||||||
|
-- parse time "Unknown system variable" errors in release builds.
|
||||||
|
EXECUTE IMMEDIATE "SET debug_dbug='+d,key'";
|
||||||
|
SELECT * FROM t1 LIMIT 0;
|
||||||
|
EXECUTE IMMEDIATE "SET debug_dbug=''";
|
||||||
|
END IF;
|
||||||
|
END;
|
||||||
|
$$
|
||||||
|
DELIMITER ;$$
|
||||||
|
|
||||||
|
|
||||||
|
copy_file $table.frm $datadir/test/t1.frm;
|
||||||
|
copy_file $table.$EXT_DAT $datadir/test/t1.$EXT_DAT;
|
||||||
|
copy_file $table.$EXT_IDX $datadir/test/t1.$EXT_IDX;
|
||||||
|
SHOW CREATE TABLE t1;
|
||||||
|
CHECK TABLE t1 FOR UPGRADE;
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
copy_file $table.frm $datadir/test/t1.frm;
|
||||||
|
copy_file $table.$EXT_DAT $datadir/test/t1.$EXT_DAT;
|
||||||
|
copy_file $table.$EXT_IDX $datadir/test/t1.$EXT_IDX;
|
||||||
|
CALL debug_show_key_flags();
|
||||||
|
ALTER TABLE t1 MODIFY d DOUBLE DEFAULT 10, ALGORITHM=INSTANT;
|
||||||
|
CALL debug_show_key_flags();
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
copy_file $table.frm $datadir/test/t1.frm;
|
||||||
|
copy_file $table.$EXT_DAT $datadir/test/t1.$EXT_DAT;
|
||||||
|
copy_file $table.$EXT_IDX $datadir/test/t1.$EXT_IDX;
|
||||||
|
CALL debug_show_key_flags();
|
||||||
|
ALTER TABLE t1 MODIFY d DOUBLE DEFAULT 10, ALGORITHM=NOCOPY;
|
||||||
|
CALL debug_show_key_flags();
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
copy_file $table.frm $datadir/test/t1.frm;
|
||||||
|
copy_file $table.$EXT_DAT $datadir/test/t1.$EXT_DAT;
|
||||||
|
copy_file $table.$EXT_IDX $datadir/test/t1.$EXT_IDX;
|
||||||
|
CALL debug_show_key_flags();
|
||||||
|
REPAIR TABLE t1;
|
||||||
|
CALL debug_show_key_flags();
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
copy_file $table.frm $datadir/test/t1.frm;
|
||||||
|
copy_file $table.$EXT_DAT $datadir/test/t1.$EXT_DAT;
|
||||||
|
copy_file $table.$EXT_IDX $datadir/test/t1.$EXT_IDX;
|
||||||
|
CALL debug_show_key_flags();
|
||||||
|
ALTER TABLE t1 FORCE;
|
||||||
|
CALL debug_show_key_flags();
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
DROP PROCEDURE debug_show_key_flags;
|
52
mysql-test/main/alter_table_upgrade_myisam.result
Normal file
52
mysql-test/main/alter_table_upgrade_myisam.result
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
#
|
||||||
|
# Start of 10.4 tests
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# MDEV-29481 mariadb-upgrade prints confusing statement
|
||||||
|
#
|
||||||
|
SET @debug_key_flags=NULL;
|
||||||
|
CREATE PROCEDURE debug_show_key_flags()
|
||||||
|
BEGIN
|
||||||
|
IF @debug_key_flags IS TRUE
|
||||||
|
THEN
|
||||||
|
FLUSH TABLES;
|
||||||
|
-- Wrap SET into EXECUTE IMMEDIATE to avoid
|
||||||
|
-- parse time "Unknown system variable" errors in release builds.
|
||||||
|
EXECUTE IMMEDIATE "SET debug_dbug='+d,key'";
|
||||||
|
SELECT * FROM t1 LIMIT 0;
|
||||||
|
EXECUTE IMMEDIATE "SET debug_dbug=''";
|
||||||
|
END IF;
|
||||||
|
END;
|
||||||
|
$$
|
||||||
|
SHOW CREATE TABLE t1;
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`d` double(18,7) DEFAULT NULL,
|
||||||
|
KEY `d` (`d`)
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
|
||||||
|
CHECK TABLE t1 FOR UPGRADE;
|
||||||
|
Table Op Msg_type Msg_text
|
||||||
|
test.t1 check status OK
|
||||||
|
DROP TABLE t1;
|
||||||
|
CALL debug_show_key_flags();
|
||||||
|
ALTER TABLE t1 MODIFY d DOUBLE DEFAULT 10, ALGORITHM=INSTANT;
|
||||||
|
CALL debug_show_key_flags();
|
||||||
|
DROP TABLE t1;
|
||||||
|
CALL debug_show_key_flags();
|
||||||
|
ALTER TABLE t1 MODIFY d DOUBLE DEFAULT 10, ALGORITHM=NOCOPY;
|
||||||
|
CALL debug_show_key_flags();
|
||||||
|
DROP TABLE t1;
|
||||||
|
CALL debug_show_key_flags();
|
||||||
|
REPAIR TABLE t1;
|
||||||
|
Table Op Msg_type Msg_text
|
||||||
|
test.t1 repair status OK
|
||||||
|
CALL debug_show_key_flags();
|
||||||
|
DROP TABLE t1;
|
||||||
|
CALL debug_show_key_flags();
|
||||||
|
ALTER TABLE t1 FORCE;
|
||||||
|
CALL debug_show_key_flags();
|
||||||
|
DROP TABLE t1;
|
||||||
|
DROP PROCEDURE debug_show_key_flags;
|
||||||
|
#
|
||||||
|
# End of 10.4 tests
|
||||||
|
#
|
17
mysql-test/main/alter_table_upgrade_myisam.test
Normal file
17
mysql-test/main/alter_table_upgrade_myisam.test
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
--echo #
|
||||||
|
--echo # Start of 10.4 tests
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-29481 mariadb-upgrade prints confusing statement
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
let $table= std_data/mysql_upgrade/mdev29481_100104_myisam;
|
||||||
|
let $EXT_DAT= MYD;
|
||||||
|
let $EXT_IDX= MYI;
|
||||||
|
SET @debug_key_flags=NULL;
|
||||||
|
--source alter_table_upgrade_mdev29481_myisam_aria.inc
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # End of 10.4 tests
|
||||||
|
--echo #
|
92
mysql-test/main/alter_table_upgrade_myisam_debug.result
Normal file
92
mysql-test/main/alter_table_upgrade_myisam_debug.result
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
#
|
||||||
|
# Start of 10.4 tests
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# MDEV-29481 mariadb-upgrade prints confusing statement
|
||||||
|
#
|
||||||
|
SET @debug_key_flags=TRUE;
|
||||||
|
CREATE PROCEDURE debug_show_key_flags()
|
||||||
|
BEGIN
|
||||||
|
IF @debug_key_flags IS TRUE
|
||||||
|
THEN
|
||||||
|
FLUSH TABLES;
|
||||||
|
-- Wrap SET into EXECUTE IMMEDIATE to avoid
|
||||||
|
-- parse time "Unknown system variable" errors in release builds.
|
||||||
|
EXECUTE IMMEDIATE "SET debug_dbug='+d,key'";
|
||||||
|
SELECT * FROM t1 LIMIT 0;
|
||||||
|
EXECUTE IMMEDIATE "SET debug_dbug=''";
|
||||||
|
END IF;
|
||||||
|
END;
|
||||||
|
$$
|
||||||
|
SHOW CREATE TABLE t1;
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`d` double(18,7) DEFAULT NULL,
|
||||||
|
KEY `d` (`d`)
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
|
||||||
|
CHECK TABLE t1 FOR UPGRADE;
|
||||||
|
Table Op Msg_type Msg_text
|
||||||
|
test.t1 check status OK
|
||||||
|
DROP TABLE t1;
|
||||||
|
CALL debug_show_key_flags();
|
||||||
|
d
|
||||||
|
Warnings:
|
||||||
|
Note 1105 DBUG: ha_myisam::open: name=`d` flags=00000068 (HA_NULL_PART_KEY|HA_BINARY_PACK_KEY|HA_VAR_LENGTH_KEY)
|
||||||
|
Note 1105 DBUG: seg[0].type=6 DOUBLE
|
||||||
|
Note 1105 DBUG: seg[0].flag=00000850 (HA_CAN_MEMCMP|HA_SWAP_KEY|HA_NULL_PART)
|
||||||
|
ALTER TABLE t1 MODIFY d DOUBLE DEFAULT 10, ALGORITHM=INSTANT;
|
||||||
|
CALL debug_show_key_flags();
|
||||||
|
d
|
||||||
|
Warnings:
|
||||||
|
Note 1105 DBUG: ha_myisam::open: name=`d` flags=00000068 (HA_NULL_PART_KEY|HA_BINARY_PACK_KEY|HA_VAR_LENGTH_KEY)
|
||||||
|
Note 1105 DBUG: seg[0].type=6 DOUBLE
|
||||||
|
Note 1105 DBUG: seg[0].flag=00000850 (HA_CAN_MEMCMP|HA_SWAP_KEY|HA_NULL_PART)
|
||||||
|
DROP TABLE t1;
|
||||||
|
CALL debug_show_key_flags();
|
||||||
|
d
|
||||||
|
Warnings:
|
||||||
|
Note 1105 DBUG: ha_myisam::open: name=`d` flags=00000068 (HA_NULL_PART_KEY|HA_BINARY_PACK_KEY|HA_VAR_LENGTH_KEY)
|
||||||
|
Note 1105 DBUG: seg[0].type=6 DOUBLE
|
||||||
|
Note 1105 DBUG: seg[0].flag=00000850 (HA_CAN_MEMCMP|HA_SWAP_KEY|HA_NULL_PART)
|
||||||
|
ALTER TABLE t1 MODIFY d DOUBLE DEFAULT 10, ALGORITHM=NOCOPY;
|
||||||
|
CALL debug_show_key_flags();
|
||||||
|
d
|
||||||
|
Warnings:
|
||||||
|
Note 1105 DBUG: ha_myisam::open: name=`d` flags=00000068 (HA_NULL_PART_KEY|HA_BINARY_PACK_KEY|HA_VAR_LENGTH_KEY)
|
||||||
|
Note 1105 DBUG: seg[0].type=6 DOUBLE
|
||||||
|
Note 1105 DBUG: seg[0].flag=00000850 (HA_CAN_MEMCMP|HA_SWAP_KEY|HA_NULL_PART)
|
||||||
|
DROP TABLE t1;
|
||||||
|
CALL debug_show_key_flags();
|
||||||
|
d
|
||||||
|
Warnings:
|
||||||
|
Note 1105 DBUG: ha_myisam::open: name=`d` flags=00000068 (HA_NULL_PART_KEY|HA_BINARY_PACK_KEY|HA_VAR_LENGTH_KEY)
|
||||||
|
Note 1105 DBUG: seg[0].type=6 DOUBLE
|
||||||
|
Note 1105 DBUG: seg[0].flag=00000850 (HA_CAN_MEMCMP|HA_SWAP_KEY|HA_NULL_PART)
|
||||||
|
REPAIR TABLE t1;
|
||||||
|
Table Op Msg_type Msg_text
|
||||||
|
test.t1 repair status OK
|
||||||
|
CALL debug_show_key_flags();
|
||||||
|
d
|
||||||
|
Warnings:
|
||||||
|
Note 1105 DBUG: ha_myisam::open: name=`d` flags=00000068 (HA_NULL_PART_KEY|HA_BINARY_PACK_KEY|HA_VAR_LENGTH_KEY)
|
||||||
|
Note 1105 DBUG: seg[0].type=6 DOUBLE
|
||||||
|
Note 1105 DBUG: seg[0].flag=00000850 (HA_CAN_MEMCMP|HA_SWAP_KEY|HA_NULL_PART)
|
||||||
|
DROP TABLE t1;
|
||||||
|
CALL debug_show_key_flags();
|
||||||
|
d
|
||||||
|
Warnings:
|
||||||
|
Note 1105 DBUG: ha_myisam::open: name=`d` flags=00000068 (HA_NULL_PART_KEY|HA_BINARY_PACK_KEY|HA_VAR_LENGTH_KEY)
|
||||||
|
Note 1105 DBUG: seg[0].type=6 DOUBLE
|
||||||
|
Note 1105 DBUG: seg[0].flag=00000850 (HA_CAN_MEMCMP|HA_SWAP_KEY|HA_NULL_PART)
|
||||||
|
ALTER TABLE t1 FORCE;
|
||||||
|
CALL debug_show_key_flags();
|
||||||
|
d
|
||||||
|
Warnings:
|
||||||
|
Note 1105 DBUG: ha_myisam::open: name=`d` flags=00000048 (HA_NULL_PART_KEY|HA_VAR_LENGTH_KEY)
|
||||||
|
Note 1105 DBUG: seg[0].type=6 DOUBLE
|
||||||
|
Note 1105 DBUG: seg[0].flag=00000850 (HA_CAN_MEMCMP|HA_SWAP_KEY|HA_NULL_PART)
|
||||||
|
DROP TABLE t1;
|
||||||
|
DROP PROCEDURE debug_show_key_flags;
|
||||||
|
#
|
||||||
|
# End of 10.4 tests
|
||||||
|
#
|
19
mysql-test/main/alter_table_upgrade_myisam_debug.test
Normal file
19
mysql-test/main/alter_table_upgrade_myisam_debug.test
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
--source include/have_debug.inc
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # Start of 10.4 tests
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-29481 mariadb-upgrade prints confusing statement
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
let $table= std_data/mysql_upgrade/mdev29481_100104_myisam;
|
||||||
|
let $EXT_DAT= MYD;
|
||||||
|
let $EXT_IDX= MYI;
|
||||||
|
SET @debug_key_flags=TRUE;
|
||||||
|
--source alter_table_upgrade_mdev29481_myisam_aria.inc
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # End of 10.4 tests
|
||||||
|
--echo #
|
@ -5,5 +5,5 @@
|
|||||||
--echo # Bug#47671 - wrong character-set after upgrade from 5.1.34 to 5.1.39
|
--echo # Bug#47671 - wrong character-set after upgrade from 5.1.34 to 5.1.39
|
||||||
--echo #
|
--echo #
|
||||||
--echo # Extract only charset information from 'status' command output using regex
|
--echo # Extract only charset information from 'status' command output using regex
|
||||||
--replace_regex /.*mysql.*// /Connection.*// /Current.*// /SSL.*// /Using.*// /Server version.*// /Protocol.*// /UNIX.*// /Uptime.*// /Threads.*// /TCP.*//
|
--replace_regex /.*mariadb.*// /Connection.*// /Current.*// /SSL.*// /Using.*// /Server version.*// /Protocol.*// /UNIX.*// /Uptime.*// /Threads.*// /TCP.*//
|
||||||
--exec $MYSQL -e "status";
|
--exec $MYSQL -e "status";
|
||||||
|
@ -6398,6 +6398,17 @@ DEALLOCATE PREPARE stmt;
|
|||||||
# End of 10.2 tests
|
# End of 10.2 tests
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
|
# Start of 10.3 tests
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# MDEV-14983 Wrong error message with SET sql_mode=sha2(ucs2_value)
|
||||||
|
#
|
||||||
|
SET sql_mode=sha2(CONVERT('a' USING ucs2),0);
|
||||||
|
ERROR 42000: Variable 'sql_mode' can't be set to the value of '022a6979e6dab7aa5ae4c3e5e45f7e977112a7e63593820dbec1ec738a24f93c'
|
||||||
|
#
|
||||||
|
# End of 10.3 tests
|
||||||
|
#
|
||||||
|
#
|
||||||
# Start of 10.4 tests
|
# Start of 10.4 tests
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
|
@ -1099,6 +1099,21 @@ DEALLOCATE PREPARE stmt;
|
|||||||
--echo # End of 10.2 tests
|
--echo # End of 10.2 tests
|
||||||
--echo #
|
--echo #
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # Start of 10.3 tests
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-14983 Wrong error message with SET sql_mode=sha2(ucs2_value)
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
--error ER_WRONG_VALUE_FOR_VAR
|
||||||
|
SET sql_mode=sha2(CONVERT('a' USING ucs2),0);
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # End of 10.3 tests
|
||||||
|
--echo #
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
--echo # Start of 10.4 tests
|
--echo # Start of 10.4 tests
|
||||||
--echo #
|
--echo #
|
||||||
|
@ -1316,3 +1316,19 @@ a a
|
|||||||
4 4
|
4 4
|
||||||
6 6
|
6 6
|
||||||
drop table t1,t2,t3;
|
drop table t1,t2,t3;
|
||||||
|
#
|
||||||
|
# MDEV-16549: Server crashes in Item_field::fix_fields on query with
|
||||||
|
# view and subquery, Assertion `context' failed, Assertion `field' failed
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (a DECIMAL, b INT);
|
||||||
|
INSERT INTO t1 VALUES (1,1),(2,2);
|
||||||
|
CREATE VIEW v1 AS SELECT * FROM ( SELECT * FROM t1 WHERE a <> RAND() ) sq;
|
||||||
|
SELECT * FROM v1 WHERE b > 0;
|
||||||
|
a b
|
||||||
|
1 1
|
||||||
|
2 2
|
||||||
|
DROP VIEW v1;
|
||||||
|
DROP TABLE t1;
|
||||||
|
#
|
||||||
|
# End of 10.3 tests
|
||||||
|
#
|
||||||
|
@ -1126,3 +1126,23 @@ analyze select * from t1 , ( (select t2.a from t2 order by c) union all (select
|
|||||||
select * from t1 , ( (select t2.a from t2 order by c) union all (select t2.a from t2 order by c) except(select t3.a from t3 order by b))q where t1.a=q.a;
|
select * from t1 , ( (select t2.a from t2 order by c) union all (select t2.a from t2 order by c) except(select t3.a from t3 order by b))q where t1.a=q.a;
|
||||||
|
|
||||||
drop table t1,t2,t3;
|
drop table t1,t2,t3;
|
||||||
|
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-16549: Server crashes in Item_field::fix_fields on query with
|
||||||
|
--echo # view and subquery, Assertion `context' failed, Assertion `field' failed
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
CREATE TABLE t1 (a DECIMAL, b INT);
|
||||||
|
INSERT INTO t1 VALUES (1,1),(2,2); # optional
|
||||||
|
CREATE VIEW v1 AS SELECT * FROM ( SELECT * FROM t1 WHERE a <> RAND() ) sq;
|
||||||
|
|
||||||
|
SELECT * FROM v1 WHERE b > 0;
|
||||||
|
|
||||||
|
# Cleanup
|
||||||
|
DROP VIEW v1;
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # End of 10.3 tests
|
||||||
|
--echo #
|
||||||
|
@ -413,3 +413,48 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
2 SUBQUERY t1 system NULL NULL NULL NULL 1
|
2 SUBQUERY t1 system NULL NULL NULL NULL 1
|
||||||
drop table t1, t2;
|
drop table t1, t2;
|
||||||
# End of 10.1 tests
|
# End of 10.1 tests
|
||||||
|
#
|
||||||
|
# End of 10.2 test
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# MDEV-25564: Server crashed on running some EXPLAIN statements
|
||||||
|
#
|
||||||
|
EXPLAIN (SELECT 1,3) UNION (SELECT 2,1) ORDER BY (SELECT 2);
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||||
|
2 UNION NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||||
|
NULL UNION RESULT <union1,2> ALL NULL NULL NULL NULL NULL Using filesort
|
||||||
|
3 SUBQUERY NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||||
|
#
|
||||||
|
# MDEV-23160: SIGSEGV in Explain_node::print_explain_for_children on UNION SELECT
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (a INT);
|
||||||
|
INSERT INTO t1 VALUES (1),(2),(3);
|
||||||
|
EXPLAIN
|
||||||
|
SELECT *
|
||||||
|
FROM t1
|
||||||
|
WHERE
|
||||||
|
a IN (SELECT a FROM t1
|
||||||
|
UNION
|
||||||
|
SELECT a FROM t1 ORDER BY (SELECT a))
|
||||||
|
UNION
|
||||||
|
SELECT * FROM t1 ORDER BY (SELECT a);
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 Using where
|
||||||
|
2 DEPENDENT SUBQUERY t1 ALL NULL NULL NULL NULL 3 Using where
|
||||||
|
3 DEPENDENT UNION t1 ALL NULL NULL NULL NULL 3 Using where
|
||||||
|
NULL UNION RESULT <union2,3> ALL NULL NULL NULL NULL NULL
|
||||||
|
5 UNION t1 ALL NULL NULL NULL NULL 3
|
||||||
|
NULL UNION RESULT <union1,5> ALL NULL NULL NULL NULL NULL Using filesort
|
||||||
|
6 DEPENDENT SUBQUERY NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||||
|
drop table t1;
|
||||||
|
explain
|
||||||
|
VALUES ( (VALUES (2))) UNION VALUES ( (SELECT 3));
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||||
|
5 SUBQUERY <derived2> ALL NULL NULL NULL NULL 2
|
||||||
|
2 DERIVED NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||||
|
3 UNION NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||||
|
NULL UNION RESULT <union1,3> ALL NULL NULL NULL NULL NULL
|
||||||
|
Warnings:
|
||||||
|
Note 1249 Select 4 was reduced during optimization
|
||||||
|
@ -339,3 +339,36 @@ explain replace into t2 select 100, (select a from t1);
|
|||||||
drop table t1, t2;
|
drop table t1, t2;
|
||||||
|
|
||||||
--echo # End of 10.1 tests
|
--echo # End of 10.1 tests
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # End of 10.2 test
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-25564: Server crashed on running some EXPLAIN statements
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
EXPLAIN (SELECT 1,3) UNION (SELECT 2,1) ORDER BY (SELECT 2);
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-23160: SIGSEGV in Explain_node::print_explain_for_children on UNION SELECT
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
CREATE TABLE t1 (a INT);
|
||||||
|
INSERT INTO t1 VALUES (1),(2),(3);
|
||||||
|
|
||||||
|
EXPLAIN
|
||||||
|
SELECT *
|
||||||
|
FROM t1
|
||||||
|
WHERE
|
||||||
|
a IN (SELECT a FROM t1
|
||||||
|
UNION
|
||||||
|
SELECT a FROM t1 ORDER BY (SELECT a))
|
||||||
|
UNION
|
||||||
|
SELECT * FROM t1 ORDER BY (SELECT a);
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
|
--disable_ps_protocol
|
||||||
|
explain
|
||||||
|
VALUES ( (VALUES (2))) UNION VALUES ( (SELECT 3));
|
||||||
|
--enable_ps_protocol
|
||||||
|
@ -2549,5 +2549,9 @@ Warning 1292 Truncated incorrect DOUBLE value: 'x'
|
|||||||
Warning 1292 Truncated incorrect DOUBLE value: 'x'
|
Warning 1292 Truncated incorrect DOUBLE value: 'x'
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
#
|
#
|
||||||
|
# MDEV-29678 Valgrind/MSAN uninitialised value errors upon PS with ALTER under ONLY_FULL_GROUP_BY
|
||||||
|
#
|
||||||
|
SET STATEMENT sql_mode=ONLY_FULL_GROUP_BY FOR EXECUTE IMMEDIATE 'ALTER TABLE mysql.time_zone_transition ORDER BY Time_zone_id, Transition_time';
|
||||||
|
#
|
||||||
# End of 10.3 tests
|
# End of 10.3 tests
|
||||||
#
|
#
|
||||||
|
@ -1790,6 +1790,12 @@ CREATE TABLE t1 (a BIGINT) AS SELECT 1 AS v3 UNION SELECT FALSE ;
|
|||||||
SELECT DISTINCT a IN ( COLLATION (AVG ('x'))) FROM t1 ;
|
SELECT DISTINCT a IN ( COLLATION (AVG ('x'))) FROM t1 ;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-29678 Valgrind/MSAN uninitialised value errors upon PS with ALTER under ONLY_FULL_GROUP_BY
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
SET STATEMENT sql_mode=ONLY_FULL_GROUP_BY FOR EXECUTE IMMEDIATE 'ALTER TABLE mysql.time_zone_transition ORDER BY Time_zone_id, Transition_time';
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
--echo # End of 10.3 tests
|
--echo # End of 10.3 tests
|
||||||
--echo #
|
--echo #
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
drop table if exists t1, t2;
|
|
||||||
select 1 in (1,2,3);
|
select 1 in (1,2,3);
|
||||||
1 in (1,2,3)
|
1 in (1,2,3)
|
||||||
1
|
1
|
||||||
@ -553,7 +552,7 @@ Warning 1292 Truncated incorrect DECIMAL value: 'a'
|
|||||||
Warning 1292 Truncated incorrect DECIMAL value: 'b'
|
Warning 1292 Truncated incorrect DECIMAL value: 'b'
|
||||||
explain select f2 from t2 where f2 in ('a','b');
|
explain select f2 from t2 where f2 in ('a','b');
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t2 range t2f2 t2f2 5 NULL 1 Using where; Using index
|
1 SIMPLE t2 ref t2f2 t2f2 5 const 1 Using index
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1292 Truncated incorrect DECIMAL value: 'a'
|
Warning 1292 Truncated incorrect DECIMAL value: 'a'
|
||||||
Warning 1292 Truncated incorrect DECIMAL value: 'b'
|
Warning 1292 Truncated incorrect DECIMAL value: 'b'
|
||||||
@ -935,3 +934,228 @@ Warning 1292 Truncated incorrect DECIMAL value: '0x'
|
|||||||
#
|
#
|
||||||
# End of 10.4 tests
|
# End of 10.4 tests
|
||||||
#
|
#
|
||||||
|
#
|
||||||
|
# MDEV-29662 same values in `IN` set vs equal comparison produces
|
||||||
|
# the different performance
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (a INT, PRIMARY KEY(a));
|
||||||
|
INSERT INTO t1 VALUES (1),(2),(3);
|
||||||
|
SELECT * FROM t1 WHERE a IN (1,1);
|
||||||
|
a
|
||||||
|
1
|
||||||
|
# 'const' access since 'a IN (1,1)' is converted to equality 'a=1'
|
||||||
|
EXPLAIN SELECT * FROM t1 WHERE a IN (1,1);
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1 Using index
|
||||||
|
EXPLAIN SELECT * FROM t1 WHERE a = 1;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1 Using index
|
||||||
|
SELECT * FROM t1 WHERE a IN (1,1,2);
|
||||||
|
a
|
||||||
|
1
|
||||||
|
2
|
||||||
|
# Conversion to equality is impossible due to different values
|
||||||
|
EXPLAIN SELECT * FROM t1 WHERE a IN (1,1,2);
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 2 Using where; Using index
|
||||||
|
SELECT * FROM t1 WHERE a IN (1,NULL,1);
|
||||||
|
a
|
||||||
|
1
|
||||||
|
# Conversion to equality is impossible due to NULL in the IN list
|
||||||
|
EXPLAIN SELECT * FROM t1 WHERE a IN (1,NULL,1);
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 1 Using where; Using index
|
||||||
|
SELECT * FROM t1 WHERE a NOT IN (2,2,2,2,2,2);
|
||||||
|
a
|
||||||
|
1
|
||||||
|
3
|
||||||
|
EXPLAIN SELECT * FROM t1 WHERE a NOT IN (2,2,2,2,2,2);
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 index PRIMARY PRIMARY 4 NULL 3 Using where; Using index
|
||||||
|
EXPLAIN SELECT * FROM t1 WHERE a != 3;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 index PRIMARY PRIMARY 4 NULL 3 Using where; Using index
|
||||||
|
SELECT * FROM t1 WHERE a NOT IN (3,3,1,1);
|
||||||
|
a
|
||||||
|
2
|
||||||
|
EXPLAIN SELECT * FROM t1 WHERE a NOT IN (3,3,1,1);
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 index PRIMARY PRIMARY 4 NULL 3 Using where; Using index
|
||||||
|
SELECT * FROM t1 WHERE a NOT IN (1,2,NULL,NULL);
|
||||||
|
a
|
||||||
|
# No conversion is possible since elements are not constant
|
||||||
|
SELECT * FROM t1 WHERE a IN ((SELECT MAX(a) FROM t1), (SELECT MAX(a) FROM t1));
|
||||||
|
a
|
||||||
|
3
|
||||||
|
EXPLAIN SELECT * FROM t1 WHERE a IN
|
||||||
|
((SELECT MAX(a) FROM t1), (SELECT MAX(a) FROM t1));
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 PRIMARY t1 range PRIMARY PRIMARY 4 NULL 1 Using where; Using index
|
||||||
|
3 SUBQUERY NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
|
||||||
|
2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
|
||||||
|
# There must be no conversion here:
|
||||||
|
SELECT * FROM t1 WHERE a IN (3,2,3,3,1,2,3);
|
||||||
|
a
|
||||||
|
1
|
||||||
|
2
|
||||||
|
3
|
||||||
|
# Prepared statement
|
||||||
|
PREPARE stmt FROM "SELECT * FROM t1 WHERE a IN (3,3,3)";
|
||||||
|
EXECUTE stmt;
|
||||||
|
a
|
||||||
|
3
|
||||||
|
EXECUTE stmt;
|
||||||
|
a
|
||||||
|
3
|
||||||
|
DEALLOCATE PREPARE stmt;
|
||||||
|
# Conversion to equality since SELECT 2 is evaluated as const
|
||||||
|
SELECT * FROM t1 WHERE a IN ((SELECT 2), (SELECT 2));
|
||||||
|
a
|
||||||
|
2
|
||||||
|
EXPLAIN SELECT * FROM t1 WHERE a IN ((SELECT 2), (SELECT 2));
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1 Using index
|
||||||
|
CREATE TABLE t2 (a INT, b VARCHAR(10), PRIMARY KEY(a,b));
|
||||||
|
INSERT INTO t2 VALUES (1,'abc'),(2,'def'),(3,'ghi');
|
||||||
|
SELECT * FROM t2 WHERE (a,b) IN ((1,'abc'),(1,'abc'));
|
||||||
|
a b
|
||||||
|
1 abc
|
||||||
|
# 'const' access due to conversion to equality
|
||||||
|
EXPLAIN SELECT * FROM t2 WHERE (a,b) IN ((1,'abc'),(1,'abc'));
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t2 const PRIMARY PRIMARY 16 const,const 1 Using index
|
||||||
|
SELECT * FROM t2 WHERE (a,b) IN ((2,'def'),(2,'def'),(2,'XYZ'));
|
||||||
|
a b
|
||||||
|
2 def
|
||||||
|
# No conversion due to different values
|
||||||
|
EXPLAIN SELECT * FROM t2 WHERE (a,b) IN ((2,'def'),(2,'def'),(2,'XYZ'));
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t2 range PRIMARY PRIMARY 16 NULL 2 Using where; Using index
|
||||||
|
SELECT * FROM t2 WHERE (a,b) IN ((2,'def'),(2,'def'),(2,NULL));
|
||||||
|
a b
|
||||||
|
2 def
|
||||||
|
# No conversion due to NULL
|
||||||
|
EXPLAIN SELECT * FROM t2 WHERE (a,b) IN ((2,'def'),(2,'def'),(2,NULL));
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t2 range PRIMARY PRIMARY 16 NULL 1 Using where; Using index
|
||||||
|
SELECT * FROM t2 WHERE (a,b) NOT IN ((2,'def'),(2,'def'),(2,NULL));
|
||||||
|
a b
|
||||||
|
1 abc
|
||||||
|
3 ghi
|
||||||
|
SELECT * FROM t2 WHERE a IN (1,1,1,1);
|
||||||
|
a b
|
||||||
|
1 abc
|
||||||
|
EXPLAIN SELECT * FROM t2 WHERE a IN (1,1,1,1);
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t2 ref PRIMARY PRIMARY 4 const 1 Using index
|
||||||
|
EXPLAIN SELECT * FROM t2 WHERE a = 1;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t2 ref PRIMARY PRIMARY 4 const 1 Using index
|
||||||
|
SELECT * FROM t2 WHERE b NOT IN ('abc','abc');
|
||||||
|
a b
|
||||||
|
2 def
|
||||||
|
3 ghi
|
||||||
|
EXPLAIN SELECT * FROM t2 WHERE b NOT IN ('abc','abc');
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t2 index NULL PRIMARY 16 NULL 3 Using where; Using index
|
||||||
|
EXPLAIN SELECT * FROM t2 WHERE b != 'abc';
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t2 index NULL PRIMARY 16 NULL 3 Using where; Using index
|
||||||
|
# Prepared statements
|
||||||
|
PREPARE stmt FROM "EXPLAIN SELECT * FROM t2 WHERE (a,b) IN ((1,'abc'),(1,'abc'))";
|
||||||
|
EXECUTE stmt;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t2 const PRIMARY PRIMARY 16 const,const 1 Using index
|
||||||
|
EXECUTE stmt;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t2 const PRIMARY PRIMARY 16 const,const 1 Using index
|
||||||
|
DEALLOCATE PREPARE stmt;
|
||||||
|
CREATE TABLE t3(a INT, PRIMARY KEY(a));
|
||||||
|
INSERT INTO t3 VALUES (1),(2),(3);
|
||||||
|
PREPARE stmt FROM "EXPLAIN SELECT * FROM t3 WHERE a IN (?,?,?)";
|
||||||
|
EXECUTE stmt USING 1,1,1;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t3 const PRIMARY PRIMARY 4 const 1 Using index
|
||||||
|
EXECUTE stmt USING 2,3,4;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t3 range PRIMARY PRIMARY 4 NULL 3 Using where; Using index
|
||||||
|
DEALLOCATE PREPARE stmt;
|
||||||
|
DROP TABLE t1, t2, t3;
|
||||||
|
# Nested joins
|
||||||
|
CREATE TABLE t1 (a INT, b VARCHAR(10), PRIMARY KEY(a));
|
||||||
|
INSERT INTO t1 VALUES (1,'abc'),(2,'def'),(3,'ghi');
|
||||||
|
CREATE TABLE t2 (a INT, b VARCHAR(20), PRIMARY KEY(a));
|
||||||
|
INSERT INTO t2 (a) VALUES (2),(3);
|
||||||
|
CREATE TABLE t3 (a INT, PRIMARY KEY(a));
|
||||||
|
INSERT INTO t3 VALUES (1),(2),(3),(4);
|
||||||
|
CREATE TABLE t4 (a INT);
|
||||||
|
INSERT INTO t4 VALUES (2),(3);
|
||||||
|
# Conversion to equalities
|
||||||
|
EXPLAIN SELECT * FROM (t1,t2) LEFT JOIN (t3,t4) ON t1.a IN (2,2,2)
|
||||||
|
AND t3.a IN (1,1,1);
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 2
|
||||||
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
|
||||||
|
1 SIMPLE t3 const PRIMARY PRIMARY 4 const 1 Using where; Using index
|
||||||
|
1 SIMPLE t4 ALL NULL NULL NULL NULL 2
|
||||||
|
# No conversion to equalities due to different values in IN()
|
||||||
|
EXPLAIN SELECT * FROM (t1,t2) LEFT JOIN (t3,t4) ON t1.a IN (2,3)
|
||||||
|
AND t3.a IN (1,2);
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 2
|
||||||
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
|
||||||
|
1 SIMPLE t3 range PRIMARY PRIMARY 4 NULL 2 Using where; Using index; Using join buffer (incremental, BNL join)
|
||||||
|
1 SIMPLE t4 ALL NULL NULL NULL NULL 2 Using join buffer (incremental, BNL join)
|
||||||
|
# Conversion to equalities
|
||||||
|
EXPLAIN SELECT * FROM t1 LEFT JOIN ((t2, t3) LEFT JOIN t4 ON t2.a = t4.a)
|
||||||
|
ON t1.a = t2.a WHERE t1.a IN (2,2,2);
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
|
||||||
|
1 SIMPLE t2 const PRIMARY PRIMARY 4 const 1
|
||||||
|
1 SIMPLE t4 ALL NULL NULL NULL NULL 2 Using where
|
||||||
|
1 SIMPLE t3 index NULL PRIMARY 4 NULL 4 Using index
|
||||||
|
# No conversion to equalities due to different values in IN()
|
||||||
|
EXPLAIN SELECT * FROM t1 LEFT JOIN ((t2, t3) LEFT JOIN t4 ON t2.a = t4.a)
|
||||||
|
ON t1.a = t2.a WHERE t1.a IN (1,3);
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 2 Using index condition
|
||||||
|
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t1.a 1
|
||||||
|
1 SIMPLE t4 ALL NULL NULL NULL NULL 2 Using where
|
||||||
|
1 SIMPLE t3 index NULL PRIMARY 4 NULL 4 Using index
|
||||||
|
# View
|
||||||
|
CREATE VIEW v1 AS SELECT t1.*, t2.b AS t2_b FROM t1 LEFT JOIN t2
|
||||||
|
ON t1.a = t2.a;
|
||||||
|
EXPLAIN SELECT * FROM v1 WHERE a IN (2,2,2);
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
|
||||||
|
1 SIMPLE t2 const PRIMARY PRIMARY 4 const 1
|
||||||
|
EXPLAIN SELECT * FROM v1 WHERE a IN (1,2,3);
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 3 Using index condition
|
||||||
|
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t1.a 1
|
||||||
|
# Stored procedures
|
||||||
|
CREATE PROCEDURE p1(pa INT, pb INT)
|
||||||
|
EXPLAIN SELECT * FROM t1 WHERE a IN (pa, pb);
|
||||||
|
CALL p1(1,1);
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
|
||||||
|
CALL p1(2,1);
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 2 Using index condition
|
||||||
|
DROP TABLE t1, t2, t3, t4;
|
||||||
|
DROP VIEW v1;
|
||||||
|
DROP PROCEDURE p1;
|
||||||
|
#
|
||||||
|
# MDEV-29895 prepared view crash server (unit.conc_view)
|
||||||
|
#
|
||||||
|
create table t1 (username varchar(12) not null, id int(11) not null);
|
||||||
|
create view v1 as select username from t1 where id = 0;
|
||||||
|
prepare stmt from "select username from v1 where username in (?, ?)";
|
||||||
|
execute stmt using "1", "1";
|
||||||
|
username
|
||||||
|
deallocate prepare stmt;
|
||||||
|
drop view v1;
|
||||||
|
drop table t1;
|
||||||
|
#
|
||||||
|
# End of 10.6 tests
|
||||||
|
#
|
||||||
|
@ -1,7 +1,3 @@
|
|||||||
# Initialise
|
|
||||||
--disable_warnings
|
|
||||||
drop table if exists t1, t2;
|
|
||||||
--enable_warnings
|
|
||||||
#
|
#
|
||||||
# test of IN (NULL)
|
# test of IN (NULL)
|
||||||
#
|
#
|
||||||
@ -712,8 +708,141 @@ SELECT '0x' IN (0,1);
|
|||||||
SELECT ('0x',1) IN ((0,1));
|
SELECT ('0x',1) IN ((0,1));
|
||||||
SELECT ('0x',1) IN ((0,1),(1,1));
|
SELECT ('0x',1) IN ((0,1),(1,1));
|
||||||
|
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
--echo # End of 10.4 tests
|
--echo # End of 10.4 tests
|
||||||
--echo #
|
--echo #
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-29662 same values in `IN` set vs equal comparison produces
|
||||||
|
--echo # the different performance
|
||||||
|
--echo #
|
||||||
|
CREATE TABLE t1 (a INT, PRIMARY KEY(a));
|
||||||
|
INSERT INTO t1 VALUES (1),(2),(3);
|
||||||
|
SELECT * FROM t1 WHERE a IN (1,1);
|
||||||
|
--echo # 'const' access since 'a IN (1,1)' is converted to equality 'a=1'
|
||||||
|
EXPLAIN SELECT * FROM t1 WHERE a IN (1,1);
|
||||||
|
EXPLAIN SELECT * FROM t1 WHERE a = 1;
|
||||||
|
SELECT * FROM t1 WHERE a IN (1,1,2);
|
||||||
|
--echo # Conversion to equality is impossible due to different values
|
||||||
|
EXPLAIN SELECT * FROM t1 WHERE a IN (1,1,2);
|
||||||
|
SELECT * FROM t1 WHERE a IN (1,NULL,1);
|
||||||
|
--echo # Conversion to equality is impossible due to NULL in the IN list
|
||||||
|
EXPLAIN SELECT * FROM t1 WHERE a IN (1,NULL,1);
|
||||||
|
|
||||||
|
SELECT * FROM t1 WHERE a NOT IN (2,2,2,2,2,2);
|
||||||
|
EXPLAIN SELECT * FROM t1 WHERE a NOT IN (2,2,2,2,2,2);
|
||||||
|
EXPLAIN SELECT * FROM t1 WHERE a != 3;
|
||||||
|
SELECT * FROM t1 WHERE a NOT IN (3,3,1,1);
|
||||||
|
EXPLAIN SELECT * FROM t1 WHERE a NOT IN (3,3,1,1);
|
||||||
|
SELECT * FROM t1 WHERE a NOT IN (1,2,NULL,NULL);
|
||||||
|
|
||||||
|
--echo # No conversion is possible since elements are not constant
|
||||||
|
SELECT * FROM t1 WHERE a IN ((SELECT MAX(a) FROM t1), (SELECT MAX(a) FROM t1));
|
||||||
|
EXPLAIN SELECT * FROM t1 WHERE a IN
|
||||||
|
((SELECT MAX(a) FROM t1), (SELECT MAX(a) FROM t1));
|
||||||
|
|
||||||
|
--echo # There must be no conversion here:
|
||||||
|
SELECT * FROM t1 WHERE a IN (3,2,3,3,1,2,3);
|
||||||
|
|
||||||
|
--echo # Prepared statement
|
||||||
|
PREPARE stmt FROM "SELECT * FROM t1 WHERE a IN (3,3,3)";
|
||||||
|
EXECUTE stmt;
|
||||||
|
EXECUTE stmt;
|
||||||
|
DEALLOCATE PREPARE stmt;
|
||||||
|
|
||||||
|
--echo # Conversion to equality since SELECT 2 is evaluated as const
|
||||||
|
--disable_warnings
|
||||||
|
SELECT * FROM t1 WHERE a IN ((SELECT 2), (SELECT 2));
|
||||||
|
EXPLAIN SELECT * FROM t1 WHERE a IN ((SELECT 2), (SELECT 2));
|
||||||
|
--enable_warnings
|
||||||
|
|
||||||
|
CREATE TABLE t2 (a INT, b VARCHAR(10), PRIMARY KEY(a,b));
|
||||||
|
INSERT INTO t2 VALUES (1,'abc'),(2,'def'),(3,'ghi');
|
||||||
|
SELECT * FROM t2 WHERE (a,b) IN ((1,'abc'),(1,'abc'));
|
||||||
|
--echo # 'const' access due to conversion to equality
|
||||||
|
EXPLAIN SELECT * FROM t2 WHERE (a,b) IN ((1,'abc'),(1,'abc'));
|
||||||
|
SELECT * FROM t2 WHERE (a,b) IN ((2,'def'),(2,'def'),(2,'XYZ'));
|
||||||
|
--echo # No conversion due to different values
|
||||||
|
EXPLAIN SELECT * FROM t2 WHERE (a,b) IN ((2,'def'),(2,'def'),(2,'XYZ'));
|
||||||
|
SELECT * FROM t2 WHERE (a,b) IN ((2,'def'),(2,'def'),(2,NULL));
|
||||||
|
--echo # No conversion due to NULL
|
||||||
|
EXPLAIN SELECT * FROM t2 WHERE (a,b) IN ((2,'def'),(2,'def'),(2,NULL));
|
||||||
|
|
||||||
|
SELECT * FROM t2 WHERE (a,b) NOT IN ((2,'def'),(2,'def'),(2,NULL));
|
||||||
|
|
||||||
|
SELECT * FROM t2 WHERE a IN (1,1,1,1);
|
||||||
|
EXPLAIN SELECT * FROM t2 WHERE a IN (1,1,1,1);
|
||||||
|
EXPLAIN SELECT * FROM t2 WHERE a = 1;
|
||||||
|
|
||||||
|
SELECT * FROM t2 WHERE b NOT IN ('abc','abc');
|
||||||
|
EXPLAIN SELECT * FROM t2 WHERE b NOT IN ('abc','abc');
|
||||||
|
EXPLAIN SELECT * FROM t2 WHERE b != 'abc';
|
||||||
|
|
||||||
|
--echo # Prepared statements
|
||||||
|
PREPARE stmt FROM "EXPLAIN SELECT * FROM t2 WHERE (a,b) IN ((1,'abc'),(1,'abc'))";
|
||||||
|
EXECUTE stmt;
|
||||||
|
EXECUTE stmt;
|
||||||
|
DEALLOCATE PREPARE stmt;
|
||||||
|
|
||||||
|
CREATE TABLE t3(a INT, PRIMARY KEY(a));
|
||||||
|
INSERT INTO t3 VALUES (1),(2),(3);
|
||||||
|
PREPARE stmt FROM "EXPLAIN SELECT * FROM t3 WHERE a IN (?,?,?)";
|
||||||
|
EXECUTE stmt USING 1,1,1;
|
||||||
|
EXECUTE stmt USING 2,3,4;
|
||||||
|
DEALLOCATE PREPARE stmt;
|
||||||
|
DROP TABLE t1, t2, t3;
|
||||||
|
|
||||||
|
--echo # Nested joins
|
||||||
|
CREATE TABLE t1 (a INT, b VARCHAR(10), PRIMARY KEY(a));
|
||||||
|
INSERT INTO t1 VALUES (1,'abc'),(2,'def'),(3,'ghi');
|
||||||
|
CREATE TABLE t2 (a INT, b VARCHAR(20), PRIMARY KEY(a));
|
||||||
|
INSERT INTO t2 (a) VALUES (2),(3);
|
||||||
|
CREATE TABLE t3 (a INT, PRIMARY KEY(a));
|
||||||
|
INSERT INTO t3 VALUES (1),(2),(3),(4);
|
||||||
|
CREATE TABLE t4 (a INT);
|
||||||
|
INSERT INTO t4 VALUES (2),(3);
|
||||||
|
--echo # Conversion to equalities
|
||||||
|
EXPLAIN SELECT * FROM (t1,t2) LEFT JOIN (t3,t4) ON t1.a IN (2,2,2)
|
||||||
|
AND t3.a IN (1,1,1);
|
||||||
|
--echo # No conversion to equalities due to different values in IN()
|
||||||
|
EXPLAIN SELECT * FROM (t1,t2) LEFT JOIN (t3,t4) ON t1.a IN (2,3)
|
||||||
|
AND t3.a IN (1,2);
|
||||||
|
--echo # Conversion to equalities
|
||||||
|
EXPLAIN SELECT * FROM t1 LEFT JOIN ((t2, t3) LEFT JOIN t4 ON t2.a = t4.a)
|
||||||
|
ON t1.a = t2.a WHERE t1.a IN (2,2,2);
|
||||||
|
--echo # No conversion to equalities due to different values in IN()
|
||||||
|
EXPLAIN SELECT * FROM t1 LEFT JOIN ((t2, t3) LEFT JOIN t4 ON t2.a = t4.a)
|
||||||
|
ON t1.a = t2.a WHERE t1.a IN (1,3);
|
||||||
|
|
||||||
|
--echo # View
|
||||||
|
CREATE VIEW v1 AS SELECT t1.*, t2.b AS t2_b FROM t1 LEFT JOIN t2
|
||||||
|
ON t1.a = t2.a;
|
||||||
|
EXPLAIN SELECT * FROM v1 WHERE a IN (2,2,2);
|
||||||
|
EXPLAIN SELECT * FROM v1 WHERE a IN (1,2,3);
|
||||||
|
|
||||||
|
--echo # Stored procedures
|
||||||
|
CREATE PROCEDURE p1(pa INT, pb INT)
|
||||||
|
EXPLAIN SELECT * FROM t1 WHERE a IN (pa, pb);
|
||||||
|
CALL p1(1,1);
|
||||||
|
CALL p1(2,1);
|
||||||
|
|
||||||
|
DROP TABLE t1, t2, t3, t4;
|
||||||
|
DROP VIEW v1;
|
||||||
|
DROP PROCEDURE p1;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-29895 prepared view crash server (unit.conc_view)
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
create table t1 (username varchar(12) not null, id int(11) not null);
|
||||||
|
create view v1 as select username from t1 where id = 0;
|
||||||
|
prepare stmt from "select username from v1 where username in (?, ?)";
|
||||||
|
execute stmt using "1", "1";
|
||||||
|
deallocate prepare stmt;
|
||||||
|
drop view v1;
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # End of 10.6 tests
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
@ -707,6 +707,7 @@ a
|
|||||||
#
|
#
|
||||||
SHOW COLUMNS FROM t1;
|
SHOW COLUMNS FROM t1;
|
||||||
Field Type Null Key Default Extra
|
Field Type Null Key Default Extra
|
||||||
|
a int(11) YES NULL
|
||||||
SHOW KEYS FROM t3;
|
SHOW KEYS FROM t3;
|
||||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
|
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
|
||||||
t3 0 PRIMARY 1 a A 0 NULL NULL BTREE NO
|
t3 0 PRIMARY 1 a A 0 NULL NULL BTREE NO
|
||||||
|
@ -246,6 +246,60 @@ connection default;
|
|||||||
disconnect con1;
|
disconnect con1;
|
||||||
drop database db1;
|
drop database db1;
|
||||||
drop user foo@localhost;
|
drop user foo@localhost;
|
||||||
|
#
|
||||||
|
# MDEV-28455: CREATE TEMPORARY TABLES privilege
|
||||||
|
# is insufficient for SHOW COLUMNS
|
||||||
|
#
|
||||||
|
create database db;
|
||||||
|
create user foo@localhost;
|
||||||
|
create user bar@localhost;
|
||||||
|
create user buz@localhost;
|
||||||
|
grant create temporary tables on db.* to foo@localhost;
|
||||||
|
grant create temporary tables on db.* to bar@localhost;
|
||||||
|
connect con1,localhost,foo,,db;
|
||||||
|
create temporary table tmp (a int, key(a));
|
||||||
|
show tables;
|
||||||
|
Tables_in_db
|
||||||
|
show full tables;
|
||||||
|
Tables_in_db Table_type
|
||||||
|
show table status;
|
||||||
|
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment Max_index_length Temporary
|
||||||
|
show index in tmp;
|
||||||
|
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
|
||||||
|
tmp 1 a 1 a A NULL NULL NULL YES BTREE NO
|
||||||
|
show columns in tmp;
|
||||||
|
Field Type Null Key Default Extra
|
||||||
|
a int(11) YES MUL NULL
|
||||||
|
show full columns in tmp;
|
||||||
|
Field Type Collation Null Key Default Extra Privileges Comment
|
||||||
|
a int(11) NULL YES MUL NULL select,insert,update,references
|
||||||
|
# we don't expect to show temporary tables in information_schema.columns
|
||||||
|
select * from information_schema.columns where table_schema='db';
|
||||||
|
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE DATETIME_PRECISION CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT IS_GENERATED GENERATION_EXPRESSION
|
||||||
|
disconnect con1;
|
||||||
|
connect con1,localhost,bar,,db;
|
||||||
|
show full columns in tmp;
|
||||||
|
ERROR 42000: SELECT command denied to user 'bar'@'localhost' for table `db`.`tmp`
|
||||||
|
disconnect con1;
|
||||||
|
connection default;
|
||||||
|
grant select on db.* to bar@localhost;
|
||||||
|
connect con1,localhost,bar,,db;
|
||||||
|
show grants for current_user;
|
||||||
|
Grants for bar@localhost
|
||||||
|
GRANT USAGE ON *.* TO `bar`@`localhost`
|
||||||
|
GRANT SELECT, CREATE TEMPORARY TABLES ON `db`.* TO `bar`@`localhost`
|
||||||
|
show full columns in tmp;
|
||||||
|
ERROR 42S02: Table 'db.tmp' doesn't exist
|
||||||
|
disconnect con1;
|
||||||
|
connect con1,localhost,buz,,;
|
||||||
|
show columns in db.tmp;
|
||||||
|
ERROR 42000: SELECT command denied to user 'buz'@'localhost' for table `db`.`tmp`
|
||||||
|
disconnect con1;
|
||||||
|
connection default;
|
||||||
|
drop database db;
|
||||||
|
drop user foo@localhost;
|
||||||
|
drop user bar@localhost;
|
||||||
|
drop user buz@localhost;
|
||||||
# End of 10.3 tests
|
# End of 10.3 tests
|
||||||
create user u1@h identified with 'mysql_native_password' using 'pwd';
|
create user u1@h identified with 'mysql_native_password' using 'pwd';
|
||||||
ERROR HY000: Password hash should be a 41-digit hexadecimal number
|
ERROR HY000: Password hash should be a 41-digit hexadecimal number
|
||||||
|
@ -209,6 +209,58 @@ show create view t_v;
|
|||||||
--disconnect con1
|
--disconnect con1
|
||||||
drop database db1;
|
drop database db1;
|
||||||
drop user foo@localhost;
|
drop user foo@localhost;
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-28455: CREATE TEMPORARY TABLES privilege
|
||||||
|
--echo # is insufficient for SHOW COLUMNS
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
create database db;
|
||||||
|
create user foo@localhost;
|
||||||
|
create user bar@localhost;
|
||||||
|
create user buz@localhost;
|
||||||
|
grant create temporary tables on db.* to foo@localhost;
|
||||||
|
grant create temporary tables on db.* to bar@localhost;
|
||||||
|
|
||||||
|
--connect (con1,localhost,foo,,db)
|
||||||
|
create temporary table tmp (a int, key(a));
|
||||||
|
show tables;
|
||||||
|
show full tables;
|
||||||
|
show table status;
|
||||||
|
show index in tmp;
|
||||||
|
show columns in tmp;
|
||||||
|
show full columns in tmp;
|
||||||
|
--echo # we don't expect to show temporary tables in information_schema.columns
|
||||||
|
select * from information_schema.columns where table_schema='db';
|
||||||
|
--disconnect con1
|
||||||
|
|
||||||
|
--connect (con1,localhost,bar,,db)
|
||||||
|
# User doesn't have `select` privilege on table
|
||||||
|
--error ER_TABLEACCESS_DENIED_ERROR
|
||||||
|
show full columns in tmp;
|
||||||
|
|
||||||
|
--disconnect con1
|
||||||
|
|
||||||
|
--connection default
|
||||||
|
grant select on db.* to bar@localhost;
|
||||||
|
|
||||||
|
--connect (con1,localhost,bar,,db)
|
||||||
|
# Table doesn't exist for this session
|
||||||
|
show grants for current_user;
|
||||||
|
--error ER_NO_SUCH_TABLE
|
||||||
|
show full columns in tmp;
|
||||||
|
--disconnect con1
|
||||||
|
|
||||||
|
--connect (con1,localhost,buz,,)
|
||||||
|
--error ER_TABLEACCESS_DENIED_ERROR
|
||||||
|
show columns in db.tmp;
|
||||||
|
--disconnect con1
|
||||||
|
|
||||||
|
--connection default
|
||||||
|
# Cleanup
|
||||||
|
drop database db;
|
||||||
|
drop user foo@localhost;
|
||||||
|
drop user bar@localhost;
|
||||||
|
drop user buz@localhost;
|
||||||
|
|
||||||
--echo # End of 10.3 tests
|
--echo # End of 10.3 tests
|
||||||
|
|
||||||
|
@ -2171,44 +2171,6 @@ disconnect con1;
|
|||||||
connection default;
|
connection default;
|
||||||
drop table mysql.global_priv;
|
drop table mysql.global_priv;
|
||||||
rename table mysql.global_priv_bak to mysql.global_priv;
|
rename table mysql.global_priv_bak to mysql.global_priv;
|
||||||
#
|
|
||||||
# MDEV-28727 ALTER TABLE ALGORITHM=NOCOPY does not work after upgrade
|
|
||||||
#
|
|
||||||
create or replace table pet4 (
|
|
||||||
build_time double(18, 7) default null,
|
|
||||||
key idx1 (build_time)
|
|
||||||
) engine innodb;
|
|
||||||
check table pet4;
|
|
||||||
Table Op Msg_type Msg_text
|
|
||||||
test.pet4 check error Table rebuild required. Please do "ALTER TABLE `pet4` FORCE" or dump/reload to fix it!
|
|
||||||
check table pet4 for upgrade;
|
|
||||||
Table Op Msg_type Msg_text
|
|
||||||
test.pet4 check error Table rebuild required. Please do "ALTER TABLE `pet4` FORCE" or dump/reload to fix it!
|
|
||||||
alter table pet4 add i1 int, algorithm=nocopy;
|
|
||||||
ERROR 0A000: ALGORITHM=NOCOPY is not supported for this operation. Try ALGORITHM=INPLACE
|
|
||||||
# Running mysqlcheck
|
|
||||||
test.pet4
|
|
||||||
error : Table rebuild required. Please do "ALTER TABLE `pet4` FORCE" or dump/reload to fix it!
|
|
||||||
|
|
||||||
Repairing tables
|
|
||||||
check table pet4;
|
|
||||||
Table Op Msg_type Msg_text
|
|
||||||
test.pet4 check status OK
|
|
||||||
alter table pet4 add i1 int, algorithm=nocopy;
|
|
||||||
create or replace table pet4 (
|
|
||||||
build_time double(18, 7) default null,
|
|
||||||
key idx1 (build_time)
|
|
||||||
) engine innodb;
|
|
||||||
alter table pet4 add i1 int, algorithm=nocopy;
|
|
||||||
ERROR 0A000: ALGORITHM=NOCOPY is not supported for this operation. Try ALGORITHM=INPLACE
|
|
||||||
# Running mysql_upgrade
|
|
||||||
test.pet4
|
|
||||||
error : Table rebuild required. Please do "ALTER TABLE `pet4` FORCE" or dump/reload to fix it!
|
|
||||||
check table pet4;
|
|
||||||
Table Op Msg_type Msg_text
|
|
||||||
test.pet4 check status OK
|
|
||||||
alter table pet4 add i1 int, algorithm=nocopy;
|
|
||||||
drop table pet4;
|
|
||||||
# End of 10.4 tests
|
# End of 10.4 tests
|
||||||
#
|
#
|
||||||
# Check that mysql_upgrade can be run on mysqldump
|
# Check that mysql_upgrade can be run on mysqldump
|
||||||
|
@ -472,47 +472,6 @@ drop table mysql.global_priv;
|
|||||||
rename table mysql.global_priv_bak to mysql.global_priv;
|
rename table mysql.global_priv_bak to mysql.global_priv;
|
||||||
--remove_file $MYSQLD_DATADIR/mysql_upgrade_info
|
--remove_file $MYSQLD_DATADIR/mysql_upgrade_info
|
||||||
|
|
||||||
--echo #
|
|
||||||
--echo # MDEV-28727 ALTER TABLE ALGORITHM=NOCOPY does not work after upgrade
|
|
||||||
--echo #
|
|
||||||
create or replace table pet4 (
|
|
||||||
build_time double(18, 7) default null,
|
|
||||||
key idx1 (build_time)
|
|
||||||
) engine innodb;
|
|
||||||
|
|
||||||
--remove_file $MYSQLD_DATADIR/test/pet4.frm
|
|
||||||
--copy_file std_data/mdev-28727-pet4.frm $MYSQLD_DATADIR/test/pet4.frm
|
|
||||||
|
|
||||||
check table pet4;
|
|
||||||
check table pet4 for upgrade;
|
|
||||||
--error ER_ALTER_OPERATION_NOT_SUPPORTED
|
|
||||||
alter table pet4 add i1 int, algorithm=nocopy;
|
|
||||||
|
|
||||||
--echo # Running mysqlcheck
|
|
||||||
--exec $MYSQL_CHECK --auto-repair --databases test 2>&1
|
|
||||||
check table pet4;
|
|
||||||
alter table pet4 add i1 int, algorithm=nocopy;
|
|
||||||
|
|
||||||
create or replace table pet4 (
|
|
||||||
build_time double(18, 7) default null,
|
|
||||||
key idx1 (build_time)
|
|
||||||
) engine innodb;
|
|
||||||
|
|
||||||
--remove_file $MYSQLD_DATADIR/test/pet4.frm
|
|
||||||
--copy_file std_data/mdev-28727-pet4.frm $MYSQLD_DATADIR/test/pet4.frm
|
|
||||||
|
|
||||||
--error ER_ALTER_OPERATION_NOT_SUPPORTED
|
|
||||||
alter table pet4 add i1 int, algorithm=nocopy;
|
|
||||||
|
|
||||||
--echo # Running mysql_upgrade
|
|
||||||
--exec $MYSQL_UPGRADE --silent 2>&1
|
|
||||||
file_exists $MYSQLD_DATADIR/mysql_upgrade_info;
|
|
||||||
check table pet4;
|
|
||||||
alter table pet4 add i1 int, algorithm=nocopy;
|
|
||||||
|
|
||||||
--remove_file $MYSQLD_DATADIR/mysql_upgrade_info
|
|
||||||
drop table pet4;
|
|
||||||
|
|
||||||
--echo # End of 10.4 tests
|
--echo # End of 10.4 tests
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
mysqld is alive
|
mysqld is alive
|
||||||
mysqladmin: unknown variable 'database=db1'
|
mariadb-admin: unknown variable 'database=db1'
|
||||||
Warning: mysqladmin: unknown variable 'loose-database=db2'
|
Warning: mariadb-admin: unknown variable 'loose-database=db2'
|
||||||
mysqld is alive
|
mysqld is alive
|
||||||
#
|
#
|
||||||
# Bug#58221 : mysqladmin --sleep=x --count=x keeps looping
|
# Bug#58221 : mysqladmin --sleep=x --count=x keeps looping
|
||||||
|
@ -11,13 +11,13 @@
|
|||||||
# Bug#10608 mysqladmin breaks on "database" variable in my.cnf
|
# Bug#10608 mysqladmin breaks on "database" variable in my.cnf
|
||||||
#
|
#
|
||||||
|
|
||||||
--replace_regex /.*mysqladmin.*: unknown/mysqladmin: unknown/
|
--replace_regex /.*mariadb-admin.*: unknown/mariadb-admin: unknown/
|
||||||
--error 7
|
--error 7
|
||||||
--exec $MYSQLADMIN --database=db1 --default-character-set=latin1 -S $MASTER_MYSOCK -P $MASTER_MYPORT -u root --password= ping 2>&1
|
--exec $MYSQLADMIN --database=db1 --default-character-set=latin1 -S $MASTER_MYSOCK -P $MASTER_MYPORT -u root --password= ping 2>&1
|
||||||
|
|
||||||
# When mysqladmin finds "loose-database" it shall print
|
# When mysqladmin finds "loose-database" it shall print
|
||||||
# a warning and continue
|
# a warning and continue
|
||||||
--replace_regex /Warning: .*mysqladmin.*: unknown/Warning: mysqladmin: unknown/
|
--replace_regex /Warning: .*mariadb-admin.*: unknown/Warning: mariadb-admin: unknown/
|
||||||
--exec $MYSQLADMIN --loose-database=db2 --default-character-set=latin1 -S $MASTER_MYSOCK -P $MASTER_MYPORT -u root --password= ping 2>&1
|
--exec $MYSQLADMIN --loose-database=db2 --default-character-set=latin1 -S $MASTER_MYSOCK -P $MASTER_MYPORT -u root --password= ping 2>&1
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
|
@ -886,7 +886,7 @@ Alternatives are: 'NEVER','AUTO','UNSPEC','DECODE-ROWS'
|
|||||||
#
|
#
|
||||||
# Expect error for incomplete --base64-output argument.
|
# Expect error for incomplete --base64-output argument.
|
||||||
# MYSQL_BINLOG std_data/master-bin.000001 --base64-output 2>&1
|
# MYSQL_BINLOG std_data/master-bin.000001 --base64-output 2>&1
|
||||||
mysqlbinlog: option '--base64-output' requires an argument
|
mariadb-binlog: option '--base64-output' requires an argument
|
||||||
#
|
#
|
||||||
# Ensure --base64-output=auto outputs the same result as unspecified
|
# Ensure --base64-output=auto outputs the same result as unspecified
|
||||||
# MYSQL_BINLOG -v MYSQLD_DATADIR/master-bin.000001 > MYSQLTEST_VARDIR/tmp/mysqlbinlog_nob64spec.out
|
# MYSQL_BINLOG -v MYSQLD_DATADIR/master-bin.000001 > MYSQLTEST_VARDIR/tmp/mysqlbinlog_nob64spec.out
|
||||||
@ -1267,7 +1267,7 @@ DELIMITER ;
|
|||||||
ROLLBACK /* added by mysqlbinlog */;
|
ROLLBACK /* added by mysqlbinlog */;
|
||||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||||
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||||
mysqlbinlog Ver VER for OS at ARCH
|
mariadb-binlog Ver VER for OS at ARCH
|
||||||
#
|
#
|
||||||
# Test --rewrite-db
|
# Test --rewrite-db
|
||||||
#
|
#
|
||||||
|
@ -533,7 +533,7 @@ remove_file $MYSQLTEST_VARDIR/tmp/mysqlbinlog.warn;
|
|||||||
--echo # Expect error for incomplete --base64-output argument.
|
--echo # Expect error for incomplete --base64-output argument.
|
||||||
--echo # MYSQL_BINLOG std_data/master-bin.000001 --base64-output 2>&1
|
--echo # MYSQL_BINLOG std_data/master-bin.000001 --base64-output 2>&1
|
||||||
# The error produces the absolute path of the mysqlbinlog executable, remove it.
|
# The error produces the absolute path of the mysqlbinlog executable, remove it.
|
||||||
--replace_regex /.*mysqlbinlog.*:/mysqlbinlog:/i
|
--replace_regex /.*mariadb-binlog.*:/mariadb-binlog:/i
|
||||||
--error 1
|
--error 1
|
||||||
--exec $MYSQL_BINLOG std_data/master-bin.000001 --base64-output 2>&1
|
--exec $MYSQL_BINLOG std_data/master-bin.000001 --base64-output 2>&1
|
||||||
|
|
||||||
@ -608,7 +608,7 @@ eval SET GLOBAL SERVER_ID = $old_server_id;
|
|||||||
#
|
#
|
||||||
# MDEV-12372 mysqlbinlog --version output is the same on 10.x as on 5.5.x, and contains not only version
|
# MDEV-12372 mysqlbinlog --version output is the same on 10.x as on 5.5.x, and contains not only version
|
||||||
#
|
#
|
||||||
replace_regex /.*mysqlbinlog(\.exe)? Ver .* for .* at [-_a-zA-Z0-9]+/mysqlbinlog Ver VER for OS at ARCH/;
|
replace_regex /.*mariadb-binlog(\.exe)? Ver .* for .* at [-_a-zA-Z0-9]+/mariadb-binlog Ver VER for OS at ARCH/;
|
||||||
exec $MYSQL_BINLOG --version;
|
exec $MYSQL_BINLOG --version;
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
|
@ -1 +1 @@
|
|||||||
mysqldump: Error: Binlogging on server not active
|
mariadb-dump: Error: Binlogging on server not active
|
||||||
|
@ -2,6 +2,6 @@
|
|||||||
--source include/not_embedded.inc
|
--source include/not_embedded.inc
|
||||||
|
|
||||||
--replace_regex /MASTER_LOG_POS=[0-9]+/XX/
|
--replace_regex /MASTER_LOG_POS=[0-9]+/XX/
|
||||||
--replace_result mysqldump.exe mysqldump
|
--replace_result mariadb-dump.exe mariadb-dump
|
||||||
--error 2
|
--error 2
|
||||||
--exec $MYSQL_DUMP --compact --master-data=2 test 2>&1
|
--exec $MYSQL_DUMP --compact --master-data=2 test 2>&1
|
||||||
|
@ -1690,22 +1690,22 @@ create table t2(a varchar(30) primary key, b int not null);
|
|||||||
create table t3(a varchar(30) primary key, b int not null);
|
create table t3(a varchar(30) primary key, b int not null);
|
||||||
test_sequence
|
test_sequence
|
||||||
------ Testing with illegal table names ------
|
------ Testing with illegal table names ------
|
||||||
mysqldump: Couldn't find table: "\d-2-1.sql"
|
mariadb-dump: Couldn't find table: "\d-2-1.sql"
|
||||||
mysqldump: Couldn't find table: "\t1"
|
mariadb-dump: Couldn't find table: "\t1"
|
||||||
mysqldump: Couldn't find table: "\t1"
|
mariadb-dump: Couldn't find table: "\t1"
|
||||||
mysqldump: Couldn't find table: "\\t1"
|
mariadb-dump: Couldn't find table: "\\t1"
|
||||||
mysqldump: Couldn't find table: "t\1"
|
mariadb-dump: Couldn't find table: "t\1"
|
||||||
mysqldump: Couldn't find table: "t\1"
|
mariadb-dump: Couldn't find table: "t\1"
|
||||||
mysqldump: Couldn't find table: "t/1"
|
mariadb-dump: Couldn't find table: "t/1"
|
||||||
mysqldump: Couldn't find table: "T_1"
|
mariadb-dump: Couldn't find table: "T_1"
|
||||||
mysqldump: Couldn't find table: "T%1"
|
mariadb-dump: Couldn't find table: "T%1"
|
||||||
mysqldump: Couldn't find table: "T'1"
|
mariadb-dump: Couldn't find table: "T'1"
|
||||||
mysqldump: Couldn't find table: "T_1"
|
mariadb-dump: Couldn't find table: "T_1"
|
||||||
mysqldump: Couldn't find table: "T_"
|
mariadb-dump: Couldn't find table: "T_"
|
||||||
test_sequence
|
test_sequence
|
||||||
------ Testing with illegal database names ------
|
------ Testing with illegal database names ------
|
||||||
mysqldump: Got error: 1049: "Unknown database 'mysqldump_test_d'" when selecting the database
|
mariadb-dump: Got error: 1049: "Unknown database 'mysqldump_test_d'" when selecting the database
|
||||||
mysqldump: Got error: 1049: "Unknown database 'mysqld\ump_test_db'" when selecting the database
|
mariadb-dump: Got error: 1049: "Unknown database 'mysqld\ump_test_db'" when selecting the database
|
||||||
drop table t1, t2, t3;
|
drop table t1, t2, t3;
|
||||||
drop database mysqldump_test_db;
|
drop database mysqldump_test_db;
|
||||||
use test;
|
use test;
|
||||||
@ -1929,7 +1929,7 @@ drop table `t1`;
|
|||||||
create table t1(a int);
|
create table t1(a int);
|
||||||
create table t2(a int);
|
create table t2(a int);
|
||||||
create table t3(a int);
|
create table t3(a int);
|
||||||
mysqldump: Couldn't find table: "non_existing"
|
mariadb-dump: Couldn't find table: "non_existing"
|
||||||
|
|
||||||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||||
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||||
@ -1977,8 +1977,8 @@ drop table t1, t2, t3;
|
|||||||
# Bug#21288 mysqldump segmentation fault when using --where
|
# Bug#21288 mysqldump segmentation fault when using --where
|
||||||
#
|
#
|
||||||
create table t1 (a int);
|
create table t1 (a int);
|
||||||
mysqldump: Couldn't execute 'SELECT /*!40001 SQL_NO_CACHE */ `a` FROM `t1` WHERE xx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx': 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 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' at line 1 (1064)
|
mariadb-dump: Couldn't execute 'SELECT /*!40001 SQL_NO_CACHE */ `a` FROM `t1` WHERE xx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx': 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 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' at line 1 (1064)
|
||||||
mysqldump: Got error: 1064: "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 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' at line 1" when retrieving data from server
|
mariadb-dump: Got error: 1064: "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 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' at line 1" when retrieving data from server
|
||||||
|
|
||||||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||||
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||||
@ -3550,8 +3550,8 @@ create table t1 ( id serial );
|
|||||||
create view v1 as select * from t1;
|
create view v1 as select * from t1;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
mysqldump {
|
mysqldump {
|
||||||
mysqldump: Got error: 1356: "View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them" when using LOCK TABLES
|
mariadb-dump: Got error: 1356: "View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them" when using LOCK TABLES
|
||||||
mysqldump: Couldn't execute 'SHOW FIELDS FROM `v1`': View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them (1356)
|
mariadb-dump: Couldn't execute 'SHOW FIELDS FROM `v1`': View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them (1356)
|
||||||
|
|
||||||
-- failed on view `v1`: CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `test`.`t1`.`id` AS `id` from `t1`
|
-- failed on view `v1`: CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `test`.`t1`.`id` AS `id` from `t1`
|
||||||
|
|
||||||
@ -3729,11 +3729,11 @@ use test;
|
|||||||
create user mysqltest_1@localhost;
|
create user mysqltest_1@localhost;
|
||||||
create table t1(a int, b varchar(34));
|
create table t1(a int, b varchar(34));
|
||||||
reset master;
|
reset master;
|
||||||
mysqldump: Couldn't execute 'FLUSH /*!40101 LOCAL */ TABLES': Access denied; you need (at least one of) the RELOAD privilege(s) for this operation (1227)
|
mariadb-dump: Couldn't execute 'FLUSH /*!40101 LOCAL */ TABLES': Access denied; you need (at least one of) the RELOAD privilege(s) for this operation (1227)
|
||||||
mysqldump: Couldn't execute 'FLUSH /*!40101 LOCAL */ TABLES': Access denied; you need (at least one of) the RELOAD privilege(s) for this operation (1227)
|
mariadb-dump: Couldn't execute 'FLUSH /*!40101 LOCAL */ TABLES': Access denied; you need (at least one of) the RELOAD privilege(s) for this operation (1227)
|
||||||
grant RELOAD on *.* to mysqltest_1@localhost;
|
grant RELOAD on *.* to mysqltest_1@localhost;
|
||||||
mysqldump: Couldn't execute 'SHOW MASTER STATUS': Access denied; you need (at least one of) the SUPER, BINLOG MONITOR privilege(s) for this operation (1227)
|
mariadb-dump: Couldn't execute 'SHOW MASTER STATUS': Access denied; you need (at least one of) the SUPER, BINLOG MONITOR privilege(s) for this operation (1227)
|
||||||
mysqldump: Couldn't execute 'SHOW MASTER STATUS': Access denied; you need (at least one of) the SUPER, BINLOG MONITOR privilege(s) for this operation (1227)
|
mariadb-dump: Couldn't execute 'SHOW MASTER STATUS': Access denied; you need (at least one of) the SUPER, BINLOG MONITOR privilege(s) for this operation (1227)
|
||||||
grant REPLICATION CLIENT on *.* to mysqltest_1@localhost;
|
grant REPLICATION CLIENT on *.* to mysqltest_1@localhost;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
drop user mysqltest_1@localhost;
|
drop user mysqltest_1@localhost;
|
||||||
@ -3848,10 +3848,10 @@ DROP TABLE t1;
|
|||||||
#
|
#
|
||||||
CREATE TABLE t1(a int);
|
CREATE TABLE t1(a int);
|
||||||
INSERT INTO t1 VALUES (1), (2);
|
INSERT INTO t1 VALUES (1), (2);
|
||||||
mysqldump: Input filename too long: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
mariadb-dump: Input filename too long: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||||
mysqldump: Got error: 1083: "Field separator argument is not what is expected; check the manual" when executing 'SELECT INTO OUTFILE'
|
mariadb-dump: Got error: 1083: "Field separator argument is not what is expected; check the manual" when executing 'SELECT INTO OUTFILE'
|
||||||
mysqldump: Got error: 1083: "Field separator argument is not what is expected; check the manual" when executing 'SELECT INTO OUTFILE'
|
mariadb-dump: Got error: 1083: "Field separator argument is not what is expected; check the manual" when executing 'SELECT INTO OUTFILE'
|
||||||
mysqldump: Got error: 1083: "Field separator argument is not what is expected; check the manual" when executing 'SELECT INTO OUTFILE'
|
mariadb-dump: Got error: 1083: "Field separator argument is not what is expected; check the manual" when executing 'SELECT INTO OUTFILE'
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
CREATE TABLE t2 (a INT) ENGINE=MyISAM;
|
CREATE TABLE t2 (a INT) ENGINE=MyISAM;
|
||||||
CREATE TABLE t3 (a INT) ENGINE=MyISAM;
|
CREATE TABLE t3 (a INT) ENGINE=MyISAM;
|
||||||
@ -3945,7 +3945,7 @@ grant all privileges on mysqldump_test_db.* to user2;
|
|||||||
connect user27293,localhost,user1,,mysqldump_test_db,$MASTER_MYPORT,$MASTER_MYSOCK;
|
connect user27293,localhost,user1,,mysqldump_test_db,$MASTER_MYPORT,$MASTER_MYSOCK;
|
||||||
connection user27293;
|
connection user27293;
|
||||||
create procedure mysqldump_test_db.sp1() select 'hello';
|
create procedure mysqldump_test_db.sp1() select 'hello';
|
||||||
mysqldump: user2 has insufficient privileges to SHOW CREATE PROCEDURE `sp1`!
|
mariadb-dump: user2 has insufficient privileges to SHOW CREATE PROCEDURE `sp1`!
|
||||||
|
|
||||||
-- insufficient privileges to SHOW CREATE PROCEDURE `sp1`
|
-- insufficient privileges to SHOW CREATE PROCEDURE `sp1`
|
||||||
-- does user2 have permissions on mysql.proc?
|
-- does user2 have permissions on mysql.proc?
|
||||||
@ -4178,7 +4178,7 @@ UNLOCK TABLES;
|
|||||||
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
||||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||||
|
|
||||||
mysqldump: Got error: 1146: "Table 'test.???????????????????????' doesn't exist" when using LOCK TABLES
|
mariadb-dump: Got error: 1146: "Table 'test.???????????????????????' doesn't exist" when using LOCK TABLES
|
||||||
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
||||||
/*!40103 SET TIME_ZONE='+00:00' */;
|
/*!40103 SET TIME_ZONE='+00:00' */;
|
||||||
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
||||||
@ -4406,7 +4406,7 @@ Abernathy
|
|||||||
aberrant
|
aberrant
|
||||||
aberration
|
aberration
|
||||||
drop table words;
|
drop table words;
|
||||||
mysqlimport: Error: 1146, Table 'test.words' doesn't exist, when using table: words
|
mariadb-import: Error: 1146, Table 'test.words' doesn't exist, when using table: words
|
||||||
drop table t1;
|
drop table t1;
|
||||||
drop table t2;
|
drop table t2;
|
||||||
drop table words2;
|
drop table words2;
|
||||||
@ -4731,8 +4731,8 @@ CREATE TABLE t1 (a INT, b CHAR(10) CHARSET koi8r, c CHAR(10) CHARSET latin1);
|
|||||||
CREATE TABLE t2 LIKE t1;
|
CREATE TABLE t2 LIKE t1;
|
||||||
INSERT INTO t1 VALUES (1, 'ABC-АБВ', 'DEF-ÂÃÄ'), (2, NULL, NULL);
|
INSERT INTO t1 VALUES (1, 'ABC-АБВ', 'DEF-ÂÃÄ'), (2, NULL, NULL);
|
||||||
# error on multi-character ENCLOSED/ESCAPED BY
|
# error on multi-character ENCLOSED/ESCAPED BY
|
||||||
mysqldump: Got error: 1083: "Field separator argument is not what is expected; check the manual" when executing 'SELECT INTO OUTFILE'
|
mariadb-dump: Got error: 1083: "Field separator argument is not what is expected; check the manual" when executing 'SELECT INTO OUTFILE'
|
||||||
mysqldump: Got error: 1083: "Field separator argument is not what is expected; check the manual" when executing 'SELECT INTO OUTFILE'
|
mariadb-dump: Got error: 1083: "Field separator argument is not what is expected; check the manual" when executing 'SELECT INTO OUTFILE'
|
||||||
# default '--default-charset' (binary):
|
# default '--default-charset' (binary):
|
||||||
##################################################
|
##################################################
|
||||||
1 ABC-<2D><><EFBFBD> DEF-<2D><><EFBFBD>
|
1 ABC-<2D><><EFBFBD> DEF-<2D><><EFBFBD>
|
||||||
@ -5219,7 +5219,7 @@ connection conn_1;
|
|||||||
<field name="c1">3</field>
|
<field name="c1">3</field>
|
||||||
</row>
|
</row>
|
||||||
</table_data>
|
</table_data>
|
||||||
mysqldump: user1 has insufficient privileges to SHOW CREATE FUNCTION `hello1`!
|
mariadb-dump: user1 has insufficient privileges to SHOW CREATE FUNCTION `hello1`!
|
||||||
<triggers name="t2">
|
<triggers name="t2">
|
||||||
<trigger Trigger="trig1" sql_mode="" character_set_client="latin1" collation_connection="latin1_swedish_ci" Database_Collation="latin1_swedish_ci" Created="--TIME--">
|
<trigger Trigger="trig1" sql_mode="" character_set_client="latin1" collation_connection="latin1_swedish_ci" Database_Collation="latin1_swedish_ci" Created="--TIME--">
|
||||||
<![CDATA[
|
<![CDATA[
|
||||||
@ -5523,13 +5523,13 @@ ROUTINE_NAME
|
|||||||
proc
|
proc
|
||||||
one
|
one
|
||||||
DROP DATABASE bug25717383;
|
DROP DATABASE bug25717383;
|
||||||
mysqldump: Got error: 2005: "Unknown server host 'unknownhost'" when trying to connect
|
mariadb-dump: Got error: 2005: "Unknown server host 'unknownhost'" when trying to connect
|
||||||
mysqldump: Couldn't execute 'SHOW SLAVE STATUS': Server has gone away (2006)
|
mariadb-dump: Couldn't execute 'SHOW SLAVE STATUS': Server has gone away (2006)
|
||||||
Usage: mysqldump [OPTIONS] database [tables]
|
Usage: mariadb-dump [OPTIONS] database [tables]
|
||||||
OR mysqldump [OPTIONS] --databases DB1 [DB2 DB3...]
|
OR mariadb-dump [OPTIONS] --databases DB1 [DB2 DB3...]
|
||||||
OR mysqldump [OPTIONS] --all-databases
|
OR mariadb-dump [OPTIONS] --all-databases
|
||||||
OR mysqldump [OPTIONS] --system=[SYSTEMOPTIONS]]
|
OR mariadb-dump [OPTIONS] --system=[SYSTEMOPTIONS]]
|
||||||
For more options, use mysqldump --help
|
For more options, use mariadb-dump --help
|
||||||
#
|
#
|
||||||
# MDEV-9001 - [PATCH] Fix DB name quoting in mysqldump --routine
|
# MDEV-9001 - [PATCH] Fix DB name quoting in mysqldump --routine
|
||||||
#
|
#
|
||||||
@ -5772,7 +5772,7 @@ t1_id int,
|
|||||||
CONSTRAINT fk
|
CONSTRAINT fk
|
||||||
FOREIGN KEY (t1_id) REFERENCES t1 (id)
|
FOREIGN KEY (t1_id) REFERENCES t1 (id)
|
||||||
) ENGINE = InnoDB;
|
) ENGINE = InnoDB;
|
||||||
mysqlimport: Error: 1452, Cannot add or update a child row: a foreign key constraint fails (`test`.`t2`, CONSTRAINT `fk` FOREIGN KEY (`t1_id`) REFERENCES `t1` (`id`)), when using table: t2
|
mariadb-import: Error: 1452, Cannot add or update a child row: a foreign key constraint fails (`test`.`t2`, CONSTRAINT `fk` FOREIGN KEY (`t1_id`) REFERENCES `t1` (`id`)), when using table: t2
|
||||||
select count(*) from t2;
|
select count(*) from t2;
|
||||||
count(*)
|
count(*)
|
||||||
1
|
1
|
||||||
|
@ -597,62 +597,62 @@ create table t3(a varchar(30) primary key, b int not null);
|
|||||||
--disable_query_log
|
--disable_query_log
|
||||||
select '------ Testing with illegal table names ------' as test_sequence ;
|
select '------ Testing with illegal table names ------' as test_sequence ;
|
||||||
--enable_query_log
|
--enable_query_log
|
||||||
--replace_result mysqldump.exe mysqldump
|
--replace_result mariadb-dump.exe mariadb-dump
|
||||||
--error 6
|
--error 6
|
||||||
--exec $MYSQL_DUMP --compact --skip-comments mysqldump_test_db "\d-2-1.sql" 2>&1
|
--exec $MYSQL_DUMP --compact --skip-comments mysqldump_test_db "\d-2-1.sql" 2>&1
|
||||||
|
|
||||||
--replace_result mysqldump.exe mysqldump
|
--replace_result mariadb-dump.exe mariadb-dump
|
||||||
--error 6
|
--error 6
|
||||||
--exec $MYSQL_DUMP --compact --skip-comments mysqldump_test_db "\t1" 2>&1
|
--exec $MYSQL_DUMP --compact --skip-comments mysqldump_test_db "\t1" 2>&1
|
||||||
|
|
||||||
--replace_result mysqldump.exe mysqldump
|
--replace_result mariadb-dump.exe mariadb-dump
|
||||||
--error 6
|
--error 6
|
||||||
--exec $MYSQL_DUMP --compact --skip-comments mysqldump_test_db "\\t1" 2>&1
|
--exec $MYSQL_DUMP --compact --skip-comments mysqldump_test_db "\\t1" 2>&1
|
||||||
|
|
||||||
--replace_result mysqldump.exe mysqldump
|
--replace_result mariadb-dump.exe mariadb-dump
|
||||||
--error 6
|
--error 6
|
||||||
--exec $MYSQL_DUMP --compact --skip-comments mysqldump_test_db "\\\\t1" 2>&1
|
--exec $MYSQL_DUMP --compact --skip-comments mysqldump_test_db "\\\\t1" 2>&1
|
||||||
|
|
||||||
--replace_result mysqldump.exe mysqldump
|
--replace_result mariadb-dump.exe mariadb-dump
|
||||||
--error 6
|
--error 6
|
||||||
--exec $MYSQL_DUMP --compact --skip-comments mysqldump_test_db "t\1" 2>&1
|
--exec $MYSQL_DUMP --compact --skip-comments mysqldump_test_db "t\1" 2>&1
|
||||||
|
|
||||||
--replace_result mysqldump.exe mysqldump
|
--replace_result mariadb-dump.exe mariadb-dump
|
||||||
--error 6
|
--error 6
|
||||||
--exec $MYSQL_DUMP --compact --skip-comments mysqldump_test_db "t\\1" 2>&1
|
--exec $MYSQL_DUMP --compact --skip-comments mysqldump_test_db "t\\1" 2>&1
|
||||||
|
|
||||||
--replace_result mysqldump.exe mysqldump
|
--replace_result mariadb-dump.exe mariadb-dump
|
||||||
--error 6
|
--error 6
|
||||||
--exec $MYSQL_DUMP --compact --skip-comments mysqldump_test_db "t/1" 2>&1
|
--exec $MYSQL_DUMP --compact --skip-comments mysqldump_test_db "t/1" 2>&1
|
||||||
|
|
||||||
--replace_result mysqldump.exe mysqldump
|
--replace_result mariadb-dump.exe mariadb-dump
|
||||||
--error 6
|
--error 6
|
||||||
--exec $MYSQL_DUMP --compact --skip-comments mysqldump_test_db "T_1" 2>&1
|
--exec $MYSQL_DUMP --compact --skip-comments mysqldump_test_db "T_1" 2>&1
|
||||||
|
|
||||||
--replace_result mysqldump.exe mysqldump
|
--replace_result mariadb-dump.exe mariadb-dump
|
||||||
--error 6
|
--error 6
|
||||||
--exec $MYSQL_DUMP --compact --skip-comments mysqldump_test_db "T%1" 2>&1
|
--exec $MYSQL_DUMP --compact --skip-comments mysqldump_test_db "T%1" 2>&1
|
||||||
|
|
||||||
--replace_result mysqldump.exe mysqldump
|
--replace_result mariadb-dump.exe mariadb-dump
|
||||||
--error 6
|
--error 6
|
||||||
--exec $MYSQL_DUMP --compact --skip-comments mysqldump_test_db "T'1" 2>&1
|
--exec $MYSQL_DUMP --compact --skip-comments mysqldump_test_db "T'1" 2>&1
|
||||||
|
|
||||||
--replace_result mysqldump.exe mysqldump
|
--replace_result mariadb-dump.exe mariadb-dump
|
||||||
--error 6
|
--error 6
|
||||||
--exec $MYSQL_DUMP --compact --skip-comments mysqldump_test_db "T_1" 2>&1
|
--exec $MYSQL_DUMP --compact --skip-comments mysqldump_test_db "T_1" 2>&1
|
||||||
|
|
||||||
--replace_result mysqldump.exe mysqldump
|
--replace_result mariadb-dump.exe mariadb-dump
|
||||||
--error 6
|
--error 6
|
||||||
--exec $MYSQL_DUMP --compact --skip-comments mysqldump_test_db "T_" 2>&1
|
--exec $MYSQL_DUMP --compact --skip-comments mysqldump_test_db "T_" 2>&1
|
||||||
|
|
||||||
--disable_query_log
|
--disable_query_log
|
||||||
select '------ Testing with illegal database names ------' as test_sequence ;
|
select '------ Testing with illegal database names ------' as test_sequence ;
|
||||||
--enable_query_log
|
--enable_query_log
|
||||||
--replace_result mysqldump.exe mysqldump
|
--replace_result mariadb-dump.exe mariadb-dump
|
||||||
--error 2
|
--error 2
|
||||||
--exec $MYSQL_DUMP --compact --skip-comments mysqldump_test_d 2>&1
|
--exec $MYSQL_DUMP --compact --skip-comments mysqldump_test_d 2>&1
|
||||||
|
|
||||||
--replace_result mysqldump.exe mysqldump
|
--replace_result mariadb-dump.exe mariadb-dump
|
||||||
--error 2
|
--error 2
|
||||||
--exec $MYSQL_DUMP --compact --skip-comments "mysqld\ump_test_db" 2>&1
|
--exec $MYSQL_DUMP --compact --skip-comments "mysqld\ump_test_db" 2>&1
|
||||||
|
|
||||||
@ -738,7 +738,7 @@ drop table `t1`;
|
|||||||
create table t1(a int);
|
create table t1(a int);
|
||||||
create table t2(a int);
|
create table t2(a int);
|
||||||
create table t3(a int);
|
create table t3(a int);
|
||||||
--replace_result mysqldump.exe mysqldump
|
--replace_result mariadb-dump.exe mariadb-dump
|
||||||
--error 6
|
--error 6
|
||||||
--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-comments --force --no-data test t3 t1 non_existing t2 2>&1
|
--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-comments --force --no-data test t3 t1 non_existing t2 2>&1
|
||||||
drop table t1, t2, t3;
|
drop table t1, t2, t3;
|
||||||
@ -749,7 +749,7 @@ drop table t1, t2, t3;
|
|||||||
--echo #
|
--echo #
|
||||||
|
|
||||||
create table t1 (a int);
|
create table t1 (a int);
|
||||||
--replace_result mysqldump.exe mysqldump
|
--replace_result mariadb-dump.exe mariadb-dump
|
||||||
--error 2
|
--error 2
|
||||||
--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-comments --force test t1 --where="xx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" 2>&1
|
--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-comments --force test t1 --where="xx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" 2>&1
|
||||||
drop table t1;
|
drop table t1;
|
||||||
@ -1289,7 +1289,7 @@ create view v1 as select * from t1;
|
|||||||
drop table t1;
|
drop table t1;
|
||||||
# mysqldump gets 1356 from server, but gives us 2
|
# mysqldump gets 1356 from server, but gives us 2
|
||||||
--echo mysqldump {
|
--echo mysqldump {
|
||||||
--replace_result mysqldump.exe mysqldump
|
--replace_result mariadb-dump.exe mariadb-dump
|
||||||
--error 2
|
--error 2
|
||||||
--exec $MYSQL_DUMP --default-character-set=utf8mb4 --force -N --compact --skip-comments test 2>&1
|
--exec $MYSQL_DUMP --default-character-set=utf8mb4 --force -N --compact --skip-comments test 2>&1
|
||||||
--echo } mysqldump
|
--echo } mysqldump
|
||||||
@ -1387,13 +1387,13 @@ create table t1(a int, b varchar(34));
|
|||||||
reset master;
|
reset master;
|
||||||
|
|
||||||
# Execute mysqldump, will fail on FLUSH TABLES
|
# Execute mysqldump, will fail on FLUSH TABLES
|
||||||
--replace_result mysqldump.exe mysqldump
|
--replace_result mariadb-dump.exe mariadb-dump
|
||||||
--error 2
|
--error 2
|
||||||
--exec $MYSQL_DUMP --default-character-set=utf8mb4 --compact --master-data -u mysqltest_1 test 2>&1
|
--exec $MYSQL_DUMP --default-character-set=utf8mb4 --compact --master-data -u mysqltest_1 test 2>&1
|
||||||
|
|
||||||
# Execute mysqldump, will fail on FLUSH TABLES
|
# Execute mysqldump, will fail on FLUSH TABLES
|
||||||
# use --force, should no affect behaviour
|
# use --force, should no affect behaviour
|
||||||
--replace_result mysqldump.exe mysqldump
|
--replace_result mariadb-dump.exe mariadb-dump
|
||||||
--error 2
|
--error 2
|
||||||
--exec $MYSQL_DUMP --default-character-set=utf8mb4 --compact --force --master-data -u mysqltest_1 test 2>&1
|
--exec $MYSQL_DUMP --default-character-set=utf8mb4 --compact --force --master-data -u mysqltest_1 test 2>&1
|
||||||
|
|
||||||
@ -1401,13 +1401,13 @@ reset master;
|
|||||||
grant RELOAD on *.* to mysqltest_1@localhost;
|
grant RELOAD on *.* to mysqltest_1@localhost;
|
||||||
|
|
||||||
# Execute mysqldump, will fail on SHOW MASTER STATUS
|
# Execute mysqldump, will fail on SHOW MASTER STATUS
|
||||||
--replace_result mysqldump.exe mysqldump
|
--replace_result mariadb-dump.exe mariadb-dump
|
||||||
--error 2
|
--error 2
|
||||||
--exec $MYSQL_DUMP --default-character-set=utf8mb4 --compact --master-data -u mysqltest_1 test 2>&1
|
--exec $MYSQL_DUMP --default-character-set=utf8mb4 --compact --master-data -u mysqltest_1 test 2>&1
|
||||||
|
|
||||||
# Execute mysqldump, will fail on SHOW MASTER STATUS.
|
# Execute mysqldump, will fail on SHOW MASTER STATUS.
|
||||||
# use --force, should not alter behaviour
|
# use --force, should not alter behaviour
|
||||||
--replace_result mysqldump.exe mysqldump
|
--replace_result mariadb-dump.exe mariadb-dump
|
||||||
--error 2
|
--error 2
|
||||||
--exec $MYSQL_DUMP --default-character-set=utf8mb4 --compact --force --master-data -u mysqltest_1 test 2>&1
|
--exec $MYSQL_DUMP --default-character-set=utf8mb4 --compact --force --master-data -u mysqltest_1 test 2>&1
|
||||||
|
|
||||||
@ -1522,18 +1522,18 @@ CREATE TABLE t1(a int);
|
|||||||
INSERT INTO t1 VALUES (1), (2);
|
INSERT INTO t1 VALUES (1), (2);
|
||||||
|
|
||||||
# too long a file path causes an error
|
# too long a file path causes an error
|
||||||
--replace_result mysqldump.exe mysqldump
|
--replace_result mariadb-dump.exe mariadb-dump
|
||||||
--error 1
|
--error 1
|
||||||
--exec $MYSQL_DUMP --default-character-set=utf8mb4 --tab=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa test 2>&1
|
--exec $MYSQL_DUMP --default-character-set=utf8mb4 --tab=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa test 2>&1
|
||||||
|
|
||||||
--exec $MYSQL_DUMP --default-character-set=utf8mb4 --tab=$MYSQLTEST_VARDIR/tmp/ --fields-terminated-by=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa test
|
--exec $MYSQL_DUMP --default-character-set=utf8mb4 --tab=$MYSQLTEST_VARDIR/tmp/ --fields-terminated-by=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa test
|
||||||
--replace_result mysqldump.exe mysqldump
|
--replace_result mariadb-dump.exe mariadb-dump
|
||||||
--error 2
|
--error 2
|
||||||
--exec $MYSQL_DUMP --default-character-set=utf8mb4 --tab=$MYSQLTEST_VARDIR/tmp/ --fields-enclosed-by=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa test 2>&1
|
--exec $MYSQL_DUMP --default-character-set=utf8mb4 --tab=$MYSQLTEST_VARDIR/tmp/ --fields-enclosed-by=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa test 2>&1
|
||||||
--replace_result mysqldump.exe mysqldump
|
--replace_result mariadb-dump.exe mariadb-dump
|
||||||
--error 2
|
--error 2
|
||||||
--exec $MYSQL_DUMP --default-character-set=utf8mb4 --tab=$MYSQLTEST_VARDIR/tmp/ --fields-optionally-enclosed-by=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa test 2>&1
|
--exec $MYSQL_DUMP --default-character-set=utf8mb4 --tab=$MYSQLTEST_VARDIR/tmp/ --fields-optionally-enclosed-by=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa test 2>&1
|
||||||
--replace_result mysqldump.exe mysqldump
|
--replace_result mariadb-dump.exe mariadb-dump
|
||||||
--error 2
|
--error 2
|
||||||
--exec $MYSQL_DUMP --default-character-set=utf8mb4 --tab=$MYSQLTEST_VARDIR/tmp/ --fields-escaped-by=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa test 2>&1
|
--exec $MYSQL_DUMP --default-character-set=utf8mb4 --tab=$MYSQLTEST_VARDIR/tmp/ --fields-escaped-by=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa test 2>&1
|
||||||
--exec $MYSQL_DUMP --default-character-set=utf8mb4 --tab=$MYSQLTEST_VARDIR/tmp/ --lines-terminated-by=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa test
|
--exec $MYSQL_DUMP --default-character-set=utf8mb4 --tab=$MYSQLTEST_VARDIR/tmp/ --lines-terminated-by=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa test
|
||||||
@ -1607,7 +1607,7 @@ connection user27293;
|
|||||||
|
|
||||||
create procedure mysqldump_test_db.sp1() select 'hello';
|
create procedure mysqldump_test_db.sp1() select 'hello';
|
||||||
|
|
||||||
--replace_result mysqldump.exe mysqldump
|
--replace_result mariadb-dump.exe mariadb-dump
|
||||||
--error 2
|
--error 2
|
||||||
--exec $MYSQL_DUMP -f --compact --user=user2 --password= -h 127.0.0.1 -P $MASTER_MYPORT --routines mysqldump_test_db 2>&1
|
--exec $MYSQL_DUMP -f --compact --user=user2 --password= -h 127.0.0.1 -P $MASTER_MYPORT --routines mysqldump_test_db 2>&1
|
||||||
|
|
||||||
@ -1713,7 +1713,7 @@ DROP TABLE `straße`;
|
|||||||
|
|
||||||
CREATE TABLE `כדשגכחךלדגכחשךדגחכךלדגכ` ( f1 INT );
|
CREATE TABLE `כדשגכחךלדגכחשךדגחכךלדגכ` ( f1 INT );
|
||||||
--exec $MYSQL_DUMP --character-sets-dir=$MYSQL_SHAREDIR/charsets --skip-comments --default-character-set=utf8 --compatible=mysql323 test
|
--exec $MYSQL_DUMP --character-sets-dir=$MYSQL_SHAREDIR/charsets --skip-comments --default-character-set=utf8 --compatible=mysql323 test
|
||||||
--replace_result mysqldump.exe mysqldump
|
--replace_result mariadb-dump.exe mariadb-dump
|
||||||
--error 2
|
--error 2
|
||||||
--exec $MYSQL_DUMP --character-sets-dir=$MYSQL_SHAREDIR/charsets --skip-comments --default-character-set=latin1 --compatible=mysql323 test 2>&1
|
--exec $MYSQL_DUMP --character-sets-dir=$MYSQL_SHAREDIR/charsets --skip-comments --default-character-set=latin1 --compatible=mysql323 test 2>&1
|
||||||
DROP TABLE `כדשגכחךלדגכחשךדגחכךלדגכ`;
|
DROP TABLE `כדשגכחךלדגכחשךדגחכךלדגכ`;
|
||||||
@ -1768,7 +1768,7 @@ select * from words2;
|
|||||||
|
|
||||||
# Drop table "words" and run with threads, should fail
|
# Drop table "words" and run with threads, should fail
|
||||||
drop table words;
|
drop table words;
|
||||||
--replace_regex /.*mysqlimport(\.exe)*/mysqlimport/
|
--replace_regex /.*mariadb-import(\.exe)*/mariadb-import/
|
||||||
--error 1
|
--error 1
|
||||||
--exec $MYSQL_IMPORT --silent --use-threads=2 test $MYSQLTEST_VARDIR/tmp/t1.txt $MYSQLTEST_VARDIR/tmp/t2.txt $MYSQLTEST_VARDIR/std_data/words.dat $MYSQLTEST_VARDIR/std_data/words2.dat 2>&1
|
--exec $MYSQL_IMPORT --silent --use-threads=2 test $MYSQLTEST_VARDIR/tmp/t1.txt $MYSQLTEST_VARDIR/tmp/t2.txt $MYSQLTEST_VARDIR/std_data/words.dat $MYSQLTEST_VARDIR/std_data/words2.dat 2>&1
|
||||||
|
|
||||||
@ -2119,12 +2119,12 @@ INSERT INTO t1 VALUES (1, 'ABC-АБВ', 'DEF-ÂÃÄ'), (2, NULL, NULL);
|
|||||||
|
|
||||||
--echo # error on multi-character ENCLOSED/ESCAPED BY
|
--echo # error on multi-character ENCLOSED/ESCAPED BY
|
||||||
|
|
||||||
--replace_result mysqldump.exe mysqldump
|
--replace_result mariadb-dump.exe mariadb-dump
|
||||||
--error 2
|
--error 2
|
||||||
--exec $MYSQL_DUMP --disable-default-character-set --tab=$MYSQLTEST_VARDIR/tmp/ --fields-enclosed-by='12345' test t1 2>&1
|
--exec $MYSQL_DUMP --disable-default-character-set --tab=$MYSQLTEST_VARDIR/tmp/ --fields-enclosed-by='12345' test t1 2>&1
|
||||||
--remove_file $file
|
--remove_file $file
|
||||||
|
|
||||||
--replace_result mysqldump.exe mysqldump
|
--replace_result mariadb-dump.exe mariadb-dump
|
||||||
--error 2
|
--error 2
|
||||||
--exec $MYSQL_DUMP --disable-default-character-set --tab=$MYSQLTEST_VARDIR/tmp/ --fields-escaped-by='12345' test t1 2>&1
|
--exec $MYSQL_DUMP --disable-default-character-set --tab=$MYSQLTEST_VARDIR/tmp/ --fields-escaped-by='12345' test t1 2>&1
|
||||||
--remove_file $file
|
--remove_file $file
|
||||||
@ -2338,7 +2338,7 @@ connection conn_1;
|
|||||||
--echo # Running 'replace_regex on timestamp'
|
--echo # Running 'replace_regex on timestamp'
|
||||||
--replace_regex /[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}(.[0-9]{2})*/--TIME--/
|
--replace_regex /[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}(.[0-9]{2})*/--TIME--/
|
||||||
|
|
||||||
--replace_result mysqldump.exe mysqldump
|
--replace_result mariadb-dump.exe mariadb-dump
|
||||||
--error 2
|
--error 2
|
||||||
--exec $MYSQL_DUMP --user=user1 -R -E --triggers -X BUG52792 2>&1
|
--exec $MYSQL_DUMP --user=user1 -R -E --triggers -X BUG52792 2>&1
|
||||||
|
|
||||||
@ -2531,6 +2531,7 @@ SELECT ROUTINE_NAME FROM INFORMATION_SCHEMA.ROUTINES
|
|||||||
WHERE ROUTINE_SCHEMA='bug25717383' AND ROUTINE_TYPE= 'PROCEDURE'
|
WHERE ROUTINE_SCHEMA='bug25717383' AND ROUTINE_TYPE= 'PROCEDURE'
|
||||||
ORDER BY ROUTINE_NAME;
|
ORDER BY ROUTINE_NAME;
|
||||||
|
|
||||||
|
--replace_result mariadb-dump.exe mariadb-dump
|
||||||
--exec $MYSQL_DUMP --default-character-set=utf8mb4 --triggers --events --routines --add-drop-database --databases bug25717383 > $MYSQLTEST_VARDIR/tmp/bug25717383.sql
|
--exec $MYSQL_DUMP --default-character-set=utf8mb4 --triggers --events --routines --add-drop-database --databases bug25717383 > $MYSQLTEST_VARDIR/tmp/bug25717383.sql
|
||||||
|
|
||||||
SHOW TABLES FROM bug25717383;
|
SHOW TABLES FROM bug25717383;
|
||||||
@ -2548,14 +2549,14 @@ DROP DATABASE bug25717383;
|
|||||||
#
|
#
|
||||||
# MDEV-6091 mysqldump goes in a loop and segfaults if --dump-slave is specified and it cannot connect to the server
|
# MDEV-6091 mysqldump goes in a loop and segfaults if --dump-slave is specified and it cannot connect to the server
|
||||||
#
|
#
|
||||||
--replace_regex /mysqldump\.exe/mysqldump/ /'unknownhost' \(.*\)/'unknownhost'/
|
--replace_regex /mariadb-dump\.exe/mariadb-dump/ /'unknownhost' \(.*\)/'unknownhost'/
|
||||||
--error 2
|
--error 2
|
||||||
--exec $MYSQL_DUMP --default-character-set=utf8mb4 -hunknownhost --dump-slave nulldb 2>&1
|
--exec $MYSQL_DUMP --default-character-set=utf8mb4 -hunknownhost --dump-slave nulldb 2>&1
|
||||||
|
|
||||||
#
|
#
|
||||||
# MDEV-6056 [PATCH] mysqldump writes usage to stdout even when not explicitly requested
|
# MDEV-6056 [PATCH] mysqldump writes usage to stdout even when not explicitly requested
|
||||||
#
|
#
|
||||||
--replace_result mysqldump.exe mysqldump
|
--replace_result mariadb-dump.exe mariadb-dump
|
||||||
--error 1
|
--error 1
|
||||||
--exec $MYSQL_DUMP --default-character-set=utf8mb4 --user=foo 2>&1
|
--exec $MYSQL_DUMP --default-character-set=utf8mb4 --user=foo 2>&1
|
||||||
--exec $MYSQL_DUMP --help 2>&1 > $MYSQLTEST_VARDIR/tmp/bug6056.out
|
--exec $MYSQL_DUMP --help 2>&1 > $MYSQLTEST_VARDIR/tmp/bug6056.out
|
||||||
@ -2678,7 +2679,7 @@ create table t2 (
|
|||||||
0
|
0
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
--replace_regex /.*mysqlimport(\.exe)*/mysqlimport/
|
--replace_regex /.*mariadb-import(\.exe)*/mariadb-import/
|
||||||
--error 1
|
--error 1
|
||||||
--exec $MYSQL_IMPORT --silent test $MYSQLTEST_VARDIR/tmp/t2.txt 2>&1
|
--exec $MYSQL_IMPORT --silent test $MYSQLTEST_VARDIR/tmp/t2.txt 2>&1
|
||||||
--exec $MYSQL_IMPORT --silent -k test $MYSQLTEST_VARDIR/tmp/t2.txt
|
--exec $MYSQL_IMPORT --silent -k test $MYSQLTEST_VARDIR/tmp/t2.txt
|
||||||
|
@ -185,7 +185,7 @@ UNLOCK TABLES;
|
|||||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||||
|
|
||||||
mysqldump: Got error: 2026: "TLS/SSL error: xxxx
|
mariadb-dump: Got error: 2026: "TLS/SSL error: xxxx
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
GRANT SELECT ON test.* TO bug42158@localhost REQUIRE X509;
|
GRANT SELECT ON test.* TO bug42158@localhost REQUIRE X509;
|
||||||
FLUSH PRIVILEGES;
|
FLUSH PRIVILEGES;
|
||||||
|
@ -174,7 +174,7 @@ INSERT INTO t1 VALUES (1), (2);
|
|||||||
--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-create-options --skip-comments --ssl --ssl-ca=$MYSQL_TEST_DIR/std_data/cacert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/client-cert.pem test
|
--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-create-options --skip-comments --ssl --ssl-ca=$MYSQL_TEST_DIR/std_data/cacert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/client-cert.pem test
|
||||||
|
|
||||||
# With wrong parameters
|
# With wrong parameters
|
||||||
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR mysqldump.exe mysqldump
|
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR $MYSQL_DUMP mariadb-dump .\exe ''
|
||||||
--replace_regex /TLS\/SSL error.*/TLS\/SSL error: xxxx/
|
--replace_regex /TLS\/SSL error.*/TLS\/SSL error: xxxx/
|
||||||
--error 2
|
--error 2
|
||||||
--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-create-options --skip-comments --ssl --ssl-cert=$MYSQL_TEST_DIR/std_data/client-cert.pem test 2>&1
|
--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-create-options --skip-comments --ssl --ssl-cert=$MYSQL_TEST_DIR/std_data/client-cert.pem test 2>&1
|
||||||
|
@ -5615,6 +5615,104 @@ a.a a.b
|
|||||||
DEALLOCATE PREPARE stmt;
|
DEALLOCATE PREPARE stmt;
|
||||||
DROP PROCEDURE p1;
|
DROP PROCEDURE p1;
|
||||||
#
|
#
|
||||||
|
# MDEV-16128: Server crash in Item_func::print_op on 2nd execution of PS
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (a varchar(10));
|
||||||
|
CREATE TABLE t2 (b varchar(10) CHARACTER SET utf8 );
|
||||||
|
CREATE TABLE t3 (c varchar(10) CHARACTER SET utf8);
|
||||||
|
INSERT INTO t1 VALUES ('b');
|
||||||
|
INSERT INTO t2 VALUES ('b');
|
||||||
|
INSERT INTO t3 VALUES ('b');
|
||||||
|
PREPARE stmt FROM "SELECT t1.* FROM (t1 JOIN t2 ON (t2.b = t1.a)) WHERE (EXISTS (SELECT 1 FROM t3 WHERE t3.c = t1.a))";
|
||||||
|
EXECUTE stmt;
|
||||||
|
a
|
||||||
|
b
|
||||||
|
# Without the patch second execution of the prepared statement
|
||||||
|
# would lead to server crash.
|
||||||
|
EXECUTE stmt;
|
||||||
|
a
|
||||||
|
b
|
||||||
|
# Clean up
|
||||||
|
DEALLOCATE PREPARE stmt;
|
||||||
|
DROP TABLE t1, t2, t3;
|
||||||
|
CREATE TABLE t1 (a varchar(10));
|
||||||
|
CREATE TABLE t2 (b varchar(10) CHARACTER SET utf8);
|
||||||
|
INSERT INTO t1 VALUES ('b');
|
||||||
|
INSERT INTO t2 VALUES ('b');
|
||||||
|
PREPARE stmt FROM 'SELECT STRAIGHT_JOIN 1 FROM t1 WHERE EXISTS (SELECT 1 FROM t2 WHERE t2.b = t1.a)';
|
||||||
|
EXECUTE stmt;
|
||||||
|
1
|
||||||
|
1
|
||||||
|
# Without the patch second execution of the prepared statement
|
||||||
|
# would lead to server crash.
|
||||||
|
EXECUTE stmt;
|
||||||
|
1
|
||||||
|
1
|
||||||
|
# Clean up
|
||||||
|
DEALLOCATE PREPARE stmt;
|
||||||
|
# Check that EXECUTE USING is run correctly
|
||||||
|
PREPARE stmt FROM 'SELECT 300 FROM t1 WHERE EXISTS (SELECT 100 FROM t2 WHERE t2.b = ?)';
|
||||||
|
EXECUTE stmt USING 'b';
|
||||||
|
300
|
||||||
|
300
|
||||||
|
EXECUTE stmt USING 'b';
|
||||||
|
300
|
||||||
|
300
|
||||||
|
EXECUTE stmt USING 'd';
|
||||||
|
300
|
||||||
|
EXECUTE stmt USING 'd';
|
||||||
|
300
|
||||||
|
EXECUTE stmt USING _binary 'b';
|
||||||
|
300
|
||||||
|
300
|
||||||
|
EXECUTE stmt USING _binary 'b';
|
||||||
|
300
|
||||||
|
300
|
||||||
|
EXECUTE stmt USING _binary 'B';
|
||||||
|
300
|
||||||
|
300
|
||||||
|
EXECUTE stmt USING 'B';
|
||||||
|
300
|
||||||
|
300
|
||||||
|
EXECUTE stmt USING _binary 'd';
|
||||||
|
300
|
||||||
|
EXECUTE stmt USING _binary 'd';
|
||||||
|
300
|
||||||
|
EXECUTE stmt USING _ucs2 'b';
|
||||||
|
300
|
||||||
|
300
|
||||||
|
EXECUTE stmt USING _ucs2 'b';
|
||||||
|
300
|
||||||
|
300
|
||||||
|
EXECUTE stmt USING _ucs2 'd';
|
||||||
|
300
|
||||||
|
EXECUTE stmt USING _ucs2 'd';
|
||||||
|
300
|
||||||
|
EXECUTE stmt USING _latin1 'b';
|
||||||
|
300
|
||||||
|
300
|
||||||
|
EXECUTE stmt USING _latin1 'b';
|
||||||
|
300
|
||||||
|
300
|
||||||
|
EXECUTE stmt USING _latin1 'd';
|
||||||
|
300
|
||||||
|
EXECUTE stmt USING _latin1 'd';
|
||||||
|
300
|
||||||
|
CREATE TABLE t3 (c VARCHAR(10) CHARACTER SET ucs2);
|
||||||
|
INSERT INTO t3 VALUES ('b');
|
||||||
|
PREPARE stmt FROM 'SELECT 300 FROM t1 WHERE EXISTS (SELECT 100 FROM t3 WHERE t3.c = ?)';
|
||||||
|
EXECUTE stmt USING 'b';
|
||||||
|
300
|
||||||
|
300
|
||||||
|
EXECUTE stmt USING 'b';
|
||||||
|
300
|
||||||
|
300
|
||||||
|
EXECUTE stmt USING 'd';
|
||||||
|
300
|
||||||
|
EXECUTE stmt USING 'd';
|
||||||
|
300
|
||||||
|
DROP TABLE t1, t2, t3;
|
||||||
|
#
|
||||||
# MDEV-19263: Server crashes in mysql_handle_single_derived
|
# MDEV-19263: Server crashes in mysql_handle_single_derived
|
||||||
# upon 2nd execution of PS
|
# upon 2nd execution of PS
|
||||||
#
|
#
|
||||||
|
@ -5039,6 +5039,77 @@ DEALLOCATE PREPARE stmt;
|
|||||||
|
|
||||||
DROP PROCEDURE p1;
|
DROP PROCEDURE p1;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-16128: Server crash in Item_func::print_op on 2nd execution of PS
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
CREATE TABLE t1 (a varchar(10));
|
||||||
|
CREATE TABLE t2 (b varchar(10) CHARACTER SET utf8 );
|
||||||
|
CREATE TABLE t3 (c varchar(10) CHARACTER SET utf8);
|
||||||
|
INSERT INTO t1 VALUES ('b');
|
||||||
|
INSERT INTO t2 VALUES ('b');
|
||||||
|
INSERT INTO t3 VALUES ('b');
|
||||||
|
|
||||||
|
PREPARE stmt FROM "SELECT t1.* FROM (t1 JOIN t2 ON (t2.b = t1.a)) WHERE (EXISTS (SELECT 1 FROM t3 WHERE t3.c = t1.a))";
|
||||||
|
EXECUTE stmt;
|
||||||
|
--echo # Without the patch second execution of the prepared statement
|
||||||
|
--echo # would lead to server crash.
|
||||||
|
EXECUTE stmt;
|
||||||
|
--echo # Clean up
|
||||||
|
DEALLOCATE PREPARE stmt;
|
||||||
|
DROP TABLE t1, t2, t3;
|
||||||
|
|
||||||
|
CREATE TABLE t1 (a varchar(10));
|
||||||
|
CREATE TABLE t2 (b varchar(10) CHARACTER SET utf8);
|
||||||
|
INSERT INTO t1 VALUES ('b');
|
||||||
|
INSERT INTO t2 VALUES ('b');
|
||||||
|
PREPARE stmt FROM 'SELECT STRAIGHT_JOIN 1 FROM t1 WHERE EXISTS (SELECT 1 FROM t2 WHERE t2.b = t1.a)';
|
||||||
|
EXECUTE stmt;
|
||||||
|
--echo # Without the patch second execution of the prepared statement
|
||||||
|
--echo # would lead to server crash.
|
||||||
|
EXECUTE stmt;
|
||||||
|
|
||||||
|
--echo # Clean up
|
||||||
|
DEALLOCATE PREPARE stmt;
|
||||||
|
|
||||||
|
--echo # Check that EXECUTE USING is run correctly
|
||||||
|
PREPARE stmt FROM 'SELECT 300 FROM t1 WHERE EXISTS (SELECT 100 FROM t2 WHERE t2.b = ?)';
|
||||||
|
EXECUTE stmt USING 'b';
|
||||||
|
EXECUTE stmt USING 'b';
|
||||||
|
|
||||||
|
EXECUTE stmt USING 'd';
|
||||||
|
EXECUTE stmt USING 'd';
|
||||||
|
|
||||||
|
EXECUTE stmt USING _binary 'b';
|
||||||
|
EXECUTE stmt USING _binary 'b';
|
||||||
|
|
||||||
|
EXECUTE stmt USING _binary 'B';
|
||||||
|
EXECUTE stmt USING 'B';
|
||||||
|
|
||||||
|
EXECUTE stmt USING _binary 'd';
|
||||||
|
EXECUTE stmt USING _binary 'd';
|
||||||
|
|
||||||
|
EXECUTE stmt USING _ucs2 'b';
|
||||||
|
EXECUTE stmt USING _ucs2 'b';
|
||||||
|
|
||||||
|
EXECUTE stmt USING _ucs2 'd';
|
||||||
|
EXECUTE stmt USING _ucs2 'd';
|
||||||
|
|
||||||
|
EXECUTE stmt USING _latin1 'b';
|
||||||
|
EXECUTE stmt USING _latin1 'b';
|
||||||
|
|
||||||
|
EXECUTE stmt USING _latin1 'd';
|
||||||
|
EXECUTE stmt USING _latin1 'd';
|
||||||
|
|
||||||
|
CREATE TABLE t3 (c VARCHAR(10) CHARACTER SET ucs2);
|
||||||
|
INSERT INTO t3 VALUES ('b');
|
||||||
|
PREPARE stmt FROM 'SELECT 300 FROM t1 WHERE EXISTS (SELECT 100 FROM t3 WHERE t3.c = ?)';
|
||||||
|
EXECUTE stmt USING 'b';
|
||||||
|
EXECUTE stmt USING 'b';
|
||||||
|
EXECUTE stmt USING 'd';
|
||||||
|
EXECUTE stmt USING 'd';
|
||||||
|
DROP TABLE t1, t2, t3;
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
--echo # MDEV-19263: Server crashes in mysql_handle_single_derived
|
--echo # MDEV-19263: Server crashes in mysql_handle_single_derived
|
||||||
--echo # upon 2nd execution of PS
|
--echo # upon 2nd execution of PS
|
||||||
|
@ -6,8 +6,8 @@ ERROR 2026 (HY000): TLS/SSL error: certificate revoked
|
|||||||
ERROR 2026 (HY000): TLS/SSL error: certificate revoked
|
ERROR 2026 (HY000): TLS/SSL error: certificate revoked
|
||||||
############ Test mysqladmin ##############
|
############ Test mysqladmin ##############
|
||||||
# Test mysqladmin connecting to a server with a certificate revoked by -crl
|
# Test mysqladmin connecting to a server with a certificate revoked by -crl
|
||||||
mysqladmin: connect to server at 'localhost' failed
|
mariadb-admin: connect to server at 'localhost' failed
|
||||||
error: 'TLS/SSL error: certificate revoked'
|
error: 'TLS/SSL error: certificate revoked'
|
||||||
# Test mysqladmin connecting to a server with a certificate revoked by -crlpath
|
# Test mysqladmin connecting to a server with a certificate revoked by -crlpath
|
||||||
mysqladmin: connect to server at 'localhost' failed
|
mariadb-admin: connect to server at 'localhost' failed
|
||||||
error: 'TLS/SSL error: certificate revoked'
|
error: 'TLS/SSL error: certificate revoked'
|
||||||
|
@ -34,11 +34,11 @@ copy_file $MYSQL_TEST_DIR/std_data/server-cert.crl $MYSQL_TMP_DIR/ed1f42db.r0;
|
|||||||
let $admin_suffix = --default-character-set=latin1 -S $MASTER_MYSOCK -P $MASTER_MYPORT -u root --password= ping;
|
let $admin_suffix = --default-character-set=latin1 -S $MASTER_MYSOCK -P $MASTER_MYPORT -u root --password= ping;
|
||||||
|
|
||||||
--echo # Test mysqladmin connecting to a server with a certificate revoked by -crl
|
--echo # Test mysqladmin connecting to a server with a certificate revoked by -crl
|
||||||
--replace_regex /.*mysqladmin.*:/mysqladmin:/ /TLS\/SSL error: .*CRYPT_E_REVOKED./TLS\/SSL error: certificate revoked/
|
--replace_regex /.*mariadb-admin.*:/mariadb-admin:/ /TLS\/SSL error: .*CRYPT_E_REVOKED./TLS\/SSL error: certificate revoked/
|
||||||
--error 1
|
--error 1
|
||||||
--exec $MYSQLADMIN $ssl_crl $admin_suffix 2>&1
|
--exec $MYSQLADMIN $ssl_crl $admin_suffix 2>&1
|
||||||
|
|
||||||
--echo # Test mysqladmin connecting to a server with a certificate revoked by -crlpath
|
--echo # Test mysqladmin connecting to a server with a certificate revoked by -crlpath
|
||||||
--replace_regex /.*mysqladmin.*:/mysqladmin:/ /TLS\/SSL error: .*CRYPT_E_REVOKED./TLS\/SSL error: certificate revoked/
|
--replace_regex /.*mariadb-admin.*:/mariadb-admin:/ /TLS\/SSL error: .*CRYPT_E_REVOKED./TLS\/SSL error: certificate revoked/
|
||||||
--error 1
|
--error 1
|
||||||
--exec $MYSQLADMIN $ssl_crlpath $admin_suffix 2>&1
|
--exec $MYSQLADMIN $ssl_crlpath $admin_suffix 2>&1
|
||||||
|
@ -1854,9 +1854,9 @@ sub executable_setup () {
|
|||||||
$exe_patch='patch' if `patch -v`;
|
$exe_patch='patch' if `patch -v`;
|
||||||
|
|
||||||
# Look for the client binaries
|
# Look for the client binaries
|
||||||
$exe_mysqladmin= mtr_exe_exists("$path_client_bindir/mysqladmin");
|
$exe_mysqladmin= mtr_exe_exists("$path_client_bindir/mariadb-admin");
|
||||||
$exe_mysql= mtr_exe_exists("$path_client_bindir/mysql");
|
$exe_mysql= mtr_exe_exists("$path_client_bindir/mariadb");
|
||||||
$exe_mysql_plugin= mtr_exe_exists("$path_client_bindir/mysql_plugin");
|
$exe_mysql_plugin= mtr_exe_exists("$path_client_bindir/mariadb-plugin");
|
||||||
$exe_mariadb_conv= mtr_exe_exists("$path_client_bindir/mariadb-conv");
|
$exe_mariadb_conv= mtr_exe_exists("$path_client_bindir/mariadb-conv");
|
||||||
|
|
||||||
$exe_mysql_embedded= mtr_exe_maybe_exists("$bindir/libmysqld/examples/mysql_embedded");
|
$exe_mysql_embedded= mtr_exe_maybe_exists("$bindir/libmysqld/examples/mysql_embedded");
|
||||||
@ -1879,7 +1879,7 @@ sub executable_setup () {
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$exe_mysqltest= mtr_exe_exists("$path_client_bindir/mysqltest");
|
$exe_mysqltest= mtr_exe_exists("$path_client_bindir/mariadb-test");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1890,7 +1890,7 @@ sub client_debug_arg($$) {
|
|||||||
my ($args, $client_name)= @_;
|
my ($args, $client_name)= @_;
|
||||||
|
|
||||||
# Workaround for Bug #50627: drop any debug opt
|
# Workaround for Bug #50627: drop any debug opt
|
||||||
return if $client_name =~ /^mysqlbinlog/;
|
return if $client_name =~ /^mariadb-binlog/;
|
||||||
|
|
||||||
if ( $opt_debug ) {
|
if ( $opt_debug ) {
|
||||||
mtr_add_arg($args,
|
mtr_add_arg($args,
|
||||||
@ -1921,7 +1921,7 @@ sub client_arguments ($;$) {
|
|||||||
|
|
||||||
|
|
||||||
sub mysqlbinlog_arguments () {
|
sub mysqlbinlog_arguments () {
|
||||||
my $exe= mtr_exe_exists("$path_client_bindir/mysqlbinlog");
|
my $exe= mtr_exe_exists("$path_client_bindir/mariadb-binlog");
|
||||||
|
|
||||||
my $args;
|
my $args;
|
||||||
mtr_init_args(\$args);
|
mtr_init_args(\$args);
|
||||||
@ -1933,14 +1933,14 @@ sub mysqlbinlog_arguments () {
|
|||||||
|
|
||||||
|
|
||||||
sub mysqlslap_arguments () {
|
sub mysqlslap_arguments () {
|
||||||
my $exe= mtr_exe_maybe_exists("$path_client_bindir/mysqlslap");
|
my $exe= mtr_exe_maybe_exists("$path_client_bindir/mariadb-slap");
|
||||||
if ( $exe eq "" ) {
|
if ( $exe eq "" ) {
|
||||||
# mysqlap was not found
|
# mysqlap was not found
|
||||||
|
|
||||||
if (defined $mysql_version_id and $mysql_version_id >= 50100 ) {
|
if (defined $mysql_version_id and $mysql_version_id >= 50100 ) {
|
||||||
mtr_error("Could not find the mysqlslap binary");
|
mtr_error("Could not find the mariadb-slap binary");
|
||||||
}
|
}
|
||||||
return ""; # Don't care about mysqlslap
|
return ""; # Don't care about mariadb-slap
|
||||||
}
|
}
|
||||||
|
|
||||||
my $args;
|
my $args;
|
||||||
@ -1953,7 +1953,7 @@ sub mysqlslap_arguments () {
|
|||||||
|
|
||||||
sub mysqldump_arguments ($) {
|
sub mysqldump_arguments ($) {
|
||||||
my($group_suffix) = @_;
|
my($group_suffix) = @_;
|
||||||
my $exe= mtr_exe_exists("$path_client_bindir/mysqldump");
|
my $exe= mtr_exe_exists("$path_client_bindir/mariadb-dump");
|
||||||
|
|
||||||
my $args;
|
my $args;
|
||||||
mtr_init_args(\$args);
|
mtr_init_args(\$args);
|
||||||
@ -2128,17 +2128,17 @@ sub environment_setup {
|
|||||||
# ----------------------------------------------------
|
# ----------------------------------------------------
|
||||||
# mysql clients
|
# mysql clients
|
||||||
# ----------------------------------------------------
|
# ----------------------------------------------------
|
||||||
$ENV{'MYSQL_CHECK'}= client_arguments("mysqlcheck");
|
$ENV{'MYSQL_CHECK'}= client_arguments("mariadb-check");
|
||||||
$ENV{'MYSQL_DUMP'}= mysqldump_arguments(".1");
|
$ENV{'MYSQL_DUMP'}= mysqldump_arguments(".1");
|
||||||
$ENV{'MYSQL_DUMP_SLAVE'}= mysqldump_arguments(".2");
|
$ENV{'MYSQL_DUMP_SLAVE'}= mysqldump_arguments(".2");
|
||||||
$ENV{'MYSQL_SLAP'}= mysqlslap_arguments();
|
$ENV{'MYSQL_SLAP'}= mysqlslap_arguments();
|
||||||
$ENV{'MYSQL_IMPORT'}= client_arguments("mysqlimport");
|
$ENV{'MYSQL_IMPORT'}= client_arguments("mariadb-import");
|
||||||
$ENV{'MYSQL_SHOW'}= client_arguments("mysqlshow");
|
$ENV{'MYSQL_SHOW'}= client_arguments("mariadb-show");
|
||||||
$ENV{'MYSQL_BINLOG'}= mysqlbinlog_arguments();
|
$ENV{'MYSQL_BINLOG'}= mysqlbinlog_arguments();
|
||||||
$ENV{'MYSQL'}= client_arguments("mysql");
|
$ENV{'MYSQL'}= client_arguments("mariadb");
|
||||||
$ENV{'MYSQL_SLAVE'}= client_arguments("mysql", ".2");
|
$ENV{'MYSQL_SLAVE'}= client_arguments("mariadb", ".2");
|
||||||
$ENV{'MYSQL_UPGRADE'}= client_arguments("mysql_upgrade");
|
$ENV{'MYSQL_UPGRADE'}= client_arguments("mariadb-upgrade");
|
||||||
$ENV{'MYSQLADMIN'}= client_arguments("mysqladmin");
|
$ENV{'MYSQLADMIN'}= client_arguments("mariadb-admin");
|
||||||
$ENV{'MYSQL_CLIENT_TEST'}= mysql_client_test_arguments();
|
$ENV{'MYSQL_CLIENT_TEST'}= mysql_client_test_arguments();
|
||||||
$ENV{'EXE_MYSQL'}= $exe_mysql;
|
$ENV{'EXE_MYSQL'}= $exe_mysql;
|
||||||
$ENV{'MYSQL_PLUGIN'}= $exe_mysql_plugin;
|
$ENV{'MYSQL_PLUGIN'}= $exe_mysql_plugin;
|
||||||
@ -2146,8 +2146,8 @@ sub environment_setup {
|
|||||||
$ENV{'MARIADB_CONV'}= "$exe_mariadb_conv --character-sets-dir=$path_charsetsdir";
|
$ENV{'MARIADB_CONV'}= "$exe_mariadb_conv --character-sets-dir=$path_charsetsdir";
|
||||||
if(IS_WINDOWS)
|
if(IS_WINDOWS)
|
||||||
{
|
{
|
||||||
$ENV{'MYSQL_INSTALL_DB_EXE'}= mtr_exe_exists("$bindir/sql$multiconfig/mysql_install_db",
|
$ENV{'MYSQL_INSTALL_DB_EXE'}= mtr_exe_exists("$bindir/sql$multiconfig/mariadb-install-db",
|
||||||
"$bindir/bin/mysql_install_db");
|
"$bindir/bin/mariadb-install-db");
|
||||||
}
|
}
|
||||||
|
|
||||||
my $client_config_exe=
|
my $client_config_exe=
|
||||||
@ -2230,9 +2230,9 @@ sub environment_setup {
|
|||||||
# ----------------------------------------------------
|
# ----------------------------------------------------
|
||||||
# mysql_tzinfo_to_sql
|
# mysql_tzinfo_to_sql
|
||||||
# ----------------------------------------------------
|
# ----------------------------------------------------
|
||||||
my $exe_mysql_tzinfo_to_sql= mtr_exe_exists("$basedir/sql$multiconfig/mysql_tzinfo_to_sql",
|
my $exe_mysql_tzinfo_to_sql= mtr_exe_exists("$basedir/sql$multiconfig/mariadb-tzinfo-to-sql",
|
||||||
"$path_client_bindir/mysql_tzinfo_to_sql",
|
"$path_client_bindir/mariadb-tzinfo-to-sql",
|
||||||
"$bindir/sql$multiconfig/mysql_tzinfo_to_sql");
|
"$bindir/sql$multiconfig/mariadb-tzinfo-to-sql");
|
||||||
$ENV{'MYSQL_TZINFO_TO_SQL'}= native_path($exe_mysql_tzinfo_to_sql);
|
$ENV{'MYSQL_TZINFO_TO_SQL'}= native_path($exe_mysql_tzinfo_to_sql);
|
||||||
|
|
||||||
# ----------------------------------------------------
|
# ----------------------------------------------------
|
||||||
|
BIN
mysql-test/std_data/mysql_upgrade/mdev29481_100104_aria.MAD
Normal file
BIN
mysql-test/std_data/mysql_upgrade/mdev29481_100104_aria.MAD
Normal file
Binary file not shown.
BIN
mysql-test/std_data/mysql_upgrade/mdev29481_100104_aria.MAI
Normal file
BIN
mysql-test/std_data/mysql_upgrade/mdev29481_100104_aria.MAI
Normal file
Binary file not shown.
BIN
mysql-test/std_data/mysql_upgrade/mdev29481_100104_aria.frm
Normal file
BIN
mysql-test/std_data/mysql_upgrade/mdev29481_100104_aria.frm
Normal file
Binary file not shown.
BIN
mysql-test/std_data/mysql_upgrade/mdev29481_100104_myisam.MYI
Normal file
BIN
mysql-test/std_data/mysql_upgrade/mdev29481_100104_myisam.MYI
Normal file
Binary file not shown.
BIN
mysql-test/std_data/mysql_upgrade/mdev29481_100104_myisam.frm
Normal file
BIN
mysql-test/std_data/mysql_upgrade/mdev29481_100104_myisam.frm
Normal file
Binary file not shown.
@ -0,0 +1,17 @@
|
|||||||
|
create table t1(c1 bigint not null, b char(200)) engine=innodb encrypted=yes encryption_key_id=1;
|
||||||
|
show create table t1;
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`c1` bigint(20) NOT NULL,
|
||||||
|
`b` char(200) DEFAULT NULL
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci `encrypted`=yes `encryption_key_id`=1
|
||||||
|
insert t1 values (12345, repeat('1234567890', 20));
|
||||||
|
alter table t1 encryption_key_id=2;
|
||||||
|
show create table t1;
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`c1` bigint(20) NOT NULL,
|
||||||
|
`b` char(200) DEFAULT NULL
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci `encrypted`=yes `encryption_key_id`=2
|
||||||
|
drop table t1;
|
||||||
|
# Test checks if opening an too large secret does not crash the server.
|
@ -0,0 +1,10 @@
|
|||||||
|
call mtr.add_suppression("the filekey is too long");
|
||||||
|
call mtr.add_suppression("Plugin 'file_key_management' init function returned error");
|
||||||
|
call mtr.add_suppression("Plugin 'file_key_management' registration.*failed");
|
||||||
|
FOUND 1 /the filekey is too long/ in mysqld.1.err
|
||||||
|
create table t1(c1 bigint not null, b char(200)) engine=innodb encrypted=yes encryption_key_id=1;
|
||||||
|
ERROR HY000: Can't create table `test`.`t1` (errno: 140 "Wrong create options")
|
||||||
|
select plugin_status from information_schema.plugins
|
||||||
|
where plugin_name = 'file_key_management';
|
||||||
|
plugin_status
|
||||||
|
# Test checks if opening an too large secret does not crash the server.
|
4
mysql-test/suite/encryption/t/filekeys-data-too-long.key
Normal file
4
mysql-test/suite/encryption/t/filekeys-data-too-long.key
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
secretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecret
|
||||||
|
secretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecret
|
||||||
|
secretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecretsecret
|
||||||
|
|
@ -0,0 +1,4 @@
|
|||||||
|
Salted__<EFBFBD><EFBFBD>4<EFBFBD><18>0-6<>L<0F><02><> <09>sK?p\<5C>a<0F>m8<6D><38>N?q <11>n<1C><<3C><>*g<1F><>(<0C><>|F<><46><EFBFBD><EFBFBD>/<2F><12><19><>!
|
||||||
|
<EFBFBD><EFBFBD> kok6<6B><36><EFBFBD><02>y7t67<36>D#<23><>g洄<67>ʗ<EFBFBD><15>ԣ<EFBFBD><D4A3>iyu<1F>*i<>#<23>ƈ82#6<> <20><>.C<>8<7F>;7<>Bԣ<19><16><>
|
||||||
|
0<EFBFBD> /
|
||||||
|
<0F><>w<EFBFBD><77>0w"xԱQu04<30><34>x<EFBFBD>kj<6B>{<7B><><EFBFBD>W<57><CEA2><EFBFBD>3C<33>5՜<35><0B><>ᔪ<EFBFBD><E194AA><EFBFBD><EFBFBD><EFBFBD>P<EFBFBD>$=<3D>Ҳ
|
@ -0,0 +1 @@
|
|||||||
|
c9518399cbec2b5edf773e06d1b934b90ec0f46ae455b8f1e001b5629ef31a513b83e676bf654c08ba98659461410e5e040e46237a7d50b40bd9bb90576f841275506e61523e5e9a0beb7641127ed2d946395b6fee7ff5263a9019cbe71bd907bf1ac6365940fa391086830a4e6c1d2972b99505467ef31cfb46d0cb7ab8f4f1
|
@ -0,0 +1,3 @@
|
|||||||
|
--loose-file-key-management-filekey=FILE:$MTR_SUITE_DIR/t/filekeys_secret_openssl_rand_128bits.key
|
||||||
|
--loose-file-key-management-filename=$MTR_SUITE_DIR/t/filekeys_secret_openssl_rand_128bits.enc
|
||||||
|
|
@ -0,0 +1,13 @@
|
|||||||
|
-- source include/have_innodb.inc
|
||||||
|
-- source filekeys_plugin.inc
|
||||||
|
|
||||||
|
create table t1(c1 bigint not null, b char(200)) engine=innodb encrypted=yes encryption_key_id=1;
|
||||||
|
show create table t1;
|
||||||
|
insert t1 values (12345, repeat('1234567890', 20));
|
||||||
|
|
||||||
|
alter table t1 encryption_key_id=2;
|
||||||
|
show create table t1;
|
||||||
|
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
|
--echo # Test checks if opening an too large secret does not crash the server.
|
@ -0,0 +1,3 @@
|
|||||||
|
--loose-file-key-management-filekey=FILE:$MTR_SUITE_DIR/t/filekeys-data-too-long.key
|
||||||
|
--loose-file-key-management-filename=$MTR_SUITE_DIR/t/filekeys-data.enc
|
||||||
|
|
@ -0,0 +1,4 @@
|
|||||||
|
let SEARCH_PATTERN=the filekey is too long;
|
||||||
|
source filekeys_badtest.inc;
|
||||||
|
|
||||||
|
--echo # Test checks if opening an too large secret does not crash the server.
|
36
mysql-test/suite/innodb/r/alter_table_upgrade.result
Normal file
36
mysql-test/suite/innodb/r/alter_table_upgrade.result
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
#
|
||||||
|
# Start of 10.4 tests
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# MDEV-29481 mariadb-upgrade prints confusing statement
|
||||||
|
#
|
||||||
|
CREATE TABLE pet4 (
|
||||||
|
build_time double(18,7) DEFAULT NULL,
|
||||||
|
KEY idx1 (build_time)) ENGINE=InnoDB;
|
||||||
|
FLUSH TABLES;
|
||||||
|
SHOW CREATE TABLE pet4;
|
||||||
|
Table Create Table
|
||||||
|
pet4 CREATE TABLE `pet4` (
|
||||||
|
`build_time` double(18,7) DEFAULT NULL,
|
||||||
|
KEY `idx1` (`build_time`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci
|
||||||
|
CHECK TABLE pet4 FOR UPGRADE;
|
||||||
|
Table Op Msg_type Msg_text
|
||||||
|
test.pet4 check status OK
|
||||||
|
ALTER TABLE pet4 ADD i1 INTEGER, ALGORITHM=INSTANT;
|
||||||
|
DROP TABLE pet4;
|
||||||
|
CREATE TABLE pet4 (
|
||||||
|
build_time double(18,7) DEFAULT NULL,
|
||||||
|
KEY idx1 (build_time)) ENGINE=InnoDB;
|
||||||
|
FLUSH TABLES;
|
||||||
|
SHOW CREATE TABLE pet4;
|
||||||
|
Table Create Table
|
||||||
|
pet4 CREATE TABLE `pet4` (
|
||||||
|
`build_time` double(18,7) DEFAULT NULL,
|
||||||
|
KEY `idx1` (`build_time`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci
|
||||||
|
ALTER TABLE pet4 ADD i1 INTEGER, ALGORITHM=NOCOPY;
|
||||||
|
DROP TABLE pet4;
|
||||||
|
#
|
||||||
|
# End of 10.4 tests
|
||||||
|
#
|
@ -1,8 +1,5 @@
|
|||||||
connect suspend_purge,localhost,root,,;
|
CREATE TABLE t (a int PRIMARY KEY, b int) engine = InnoDB STATS_PERSISTENT=0;
|
||||||
START TRANSACTION WITH CONSISTENT SNAPSHOT;
|
CREATE TABLE t2 (a int PRIMARY KEY) engine = InnoDB STATS_PERSISTENT=0;
|
||||||
connection default;
|
|
||||||
CREATE TABLE t (a int PRIMARY KEY, b int) engine = InnoDB;
|
|
||||||
CREATE TABLE t2 (a int PRIMARY KEY) engine = InnoDB;
|
|
||||||
INSERT INTO t VALUES (10, 10), (20, 20), (30, 30);
|
INSERT INTO t VALUES (10, 10), (20, 20), (30, 30);
|
||||||
INSERT INTO t2 VALUES (10), (20), (30);
|
INSERT INTO t2 VALUES (10), (20), (30);
|
||||||
BEGIN;
|
BEGIN;
|
||||||
@ -28,4 +25,3 @@ a b
|
|||||||
SET DEBUG_SYNC = 'RESET';
|
SET DEBUG_SYNC = 'RESET';
|
||||||
DROP TABLE t;
|
DROP TABLE t;
|
||||||
DROP TABLE t2;
|
DROP TABLE t2;
|
||||||
disconnect suspend_purge;
|
|
||||||
|
@ -1,8 +1,5 @@
|
|||||||
connect suspend_purge,localhost,root,,;
|
CREATE TABLE t (a int PRIMARY KEY, b int) engine = InnoDB STATS_PERSISTENT=0;
|
||||||
START TRANSACTION WITH CONSISTENT SNAPSHOT;
|
CREATE TABLE t2 (a int PRIMARY KEY) engine = InnoDB STATS_PERSISTENT=0;
|
||||||
connection default;
|
|
||||||
CREATE TABLE t (a int PRIMARY KEY, b int) engine = InnoDB;
|
|
||||||
CREATE TABLE t2 (a int PRIMARY KEY) engine = InnoDB;
|
|
||||||
INSERT INTO t VALUES (10, 10), (20, 20), (30, 30);
|
INSERT INTO t VALUES (10, 10), (20, 20), (30, 30);
|
||||||
INSERT INTO t2 VALUES (10), (20), (30);
|
INSERT INTO t2 VALUES (10), (20), (30);
|
||||||
BEGIN;
|
BEGIN;
|
||||||
@ -34,4 +31,3 @@ a b
|
|||||||
SET DEBUG_SYNC = 'RESET';
|
SET DEBUG_SYNC = 'RESET';
|
||||||
DROP TABLE t;
|
DROP TABLE t;
|
||||||
DROP TABLE t2;
|
DROP TABLE t2;
|
||||||
disconnect suspend_purge;
|
|
||||||
|
@ -2190,7 +2190,7 @@ SELECT 1 FROM (SELECT COUNT(DISTINCT c1)
|
|||||||
FROM t1 WHERE c2 IN (1, 1) AND c3 = 2 GROUP BY c2) x;
|
FROM t1 WHERE c2 IN (1, 1) AND c3 = 2 GROUP BY c2) x;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY <derived2> ALL NULL NULL NULL NULL 2
|
1 PRIMARY <derived2> ALL NULL NULL NULL NULL 2
|
||||||
2 DERIVED t1 ref c3,c2 c3 5 const 2 Using where; Using filesort
|
2 DERIVED t1 ref c3,c2 c3 5 const 2 Using where
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
CREATE TABLE t1 (c1 REAL, c2 REAL, c3 REAL, KEY (c3), KEY (c2, c3))
|
CREATE TABLE t1 (c1 REAL, c2 REAL, c3 REAL, KEY (c3), KEY (c2, c3))
|
||||||
ENGINE=InnoDB;
|
ENGINE=InnoDB;
|
||||||
@ -2204,7 +2204,7 @@ SELECT 1 FROM (SELECT COUNT(DISTINCT c1)
|
|||||||
FROM t1 WHERE c2 IN (1, 1) AND c3 = 2 GROUP BY c2) x;
|
FROM t1 WHERE c2 IN (1, 1) AND c3 = 2 GROUP BY c2) x;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY <derived2> ALL NULL NULL NULL NULL 2
|
1 PRIMARY <derived2> ALL NULL NULL NULL NULL 2
|
||||||
2 DERIVED t1 ref c3,c2 c3 9 const 2 Using where; Using filesort
|
2 DERIVED t1 ref c3,c2 c3 9 const 2 Using where
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
CREATE TABLE t1 (c1 DECIMAL(12,2), c2 DECIMAL(12,2), c3 DECIMAL(12,2),
|
CREATE TABLE t1 (c1 DECIMAL(12,2), c2 DECIMAL(12,2), c3 DECIMAL(12,2),
|
||||||
KEY (c3), KEY (c2, c3))
|
KEY (c3), KEY (c2, c3))
|
||||||
@ -2219,7 +2219,7 @@ SELECT 1 FROM (SELECT COUNT(DISTINCT c1)
|
|||||||
FROM t1 WHERE c2 IN (1, 1) AND c3 = 2 GROUP BY c2) x;
|
FROM t1 WHERE c2 IN (1, 1) AND c3 = 2 GROUP BY c2) x;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY <derived2> ALL NULL NULL NULL NULL 2
|
1 PRIMARY <derived2> ALL NULL NULL NULL NULL 2
|
||||||
2 DERIVED t1 ref c3,c2 c3 7 const 2 Using where; Using filesort
|
2 DERIVED t1 ref c3,c2 c3 7 const 2 Using where
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
End of 5.1 tests
|
End of 5.1 tests
|
||||||
#
|
#
|
||||||
|
@ -183,6 +183,17 @@ INSERT INTO t VALUES (0);
|
|||||||
INSERT INTO t VALUES (1),(0),(1);
|
INSERT INTO t VALUES (1),(0),(1);
|
||||||
DROP TABLE t;
|
DROP TABLE t;
|
||||||
#
|
#
|
||||||
|
# MDEV-28327 InnoDB persistent statistics fail to update
|
||||||
|
# after bulk insert
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (a INT PRIMARY KEY)ENGINE=InnoDB;
|
||||||
|
INSERT INTO t1 SELECT * FROM seq_1_to_4096;
|
||||||
|
# Wait till statistics update after bulk insert operation
|
||||||
|
SELECT n_rows FROM mysql.innodb_table_stats WHERE TABLE_NAME="t1";
|
||||||
|
n_rows
|
||||||
|
4096
|
||||||
|
DROP TABLE t1;
|
||||||
|
#
|
||||||
# MDEV-26947 UNIQUE column checks fail in InnoDB resulting
|
# MDEV-26947 UNIQUE column checks fail in InnoDB resulting
|
||||||
# in table corruption
|
# in table corruption
|
||||||
#
|
#
|
||||||
|
34
mysql-test/suite/innodb/r/lock_update_split_rc.result
Normal file
34
mysql-test/suite/innodb/r/lock_update_split_rc.result
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
CREATE TABLE t (
|
||||||
|
`a` INT NOT NULL,
|
||||||
|
`b` INT NOT NULL,
|
||||||
|
PRIMARY KEY (`a`)
|
||||||
|
) ENGINE=InnoDB;
|
||||||
|
SET GLOBAL innodb_limit_optimistic_insert_debug = 3;
|
||||||
|
INSERT INTO t VALUES(10, 0);
|
||||||
|
INSERT INTO t VALUES(20, 0);
|
||||||
|
INSERT INTO t VALUES(30, 0);
|
||||||
|
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
|
||||||
|
XA START '1';
|
||||||
|
REPLACE INTO t VALUES(10, 1);
|
||||||
|
REPLACE INTO t VALUES(20, 1);
|
||||||
|
SET DEBUG_SYNC= 'ib_after_row_insert SIGNAL inserted WAIT_FOR cont';
|
||||||
|
REPLACE INTO t VALUES(30, 1);
|
||||||
|
connect con1,localhost,root;
|
||||||
|
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
|
||||||
|
XA START '2';
|
||||||
|
SET DEBUG_SYNC= 'now WAIT_FOR inserted';
|
||||||
|
INSERT INTO t VALUES(40, 2);
|
||||||
|
SET DEBUG_SYNC= 'now SIGNAL cont';
|
||||||
|
connection default;
|
||||||
|
XA END '1';
|
||||||
|
XA PREPARE '1';
|
||||||
|
connection default;
|
||||||
|
XA COMMIT '1';
|
||||||
|
connection con1;
|
||||||
|
XA END '2';
|
||||||
|
XA PREPARE '2';
|
||||||
|
XA COMMIT '2';
|
||||||
|
disconnect con1;
|
||||||
|
connection default;
|
||||||
|
SET DEBUG_SYNC= "RESET";
|
||||||
|
DROP TABLE t;
|
@ -775,3 +775,18 @@ INSERT INTO t VALUES (1);
|
|||||||
START TRANSACTION READ ONLY;
|
START TRANSACTION READ ONLY;
|
||||||
UPDATE t SET a = NULL;
|
UPDATE t SET a = NULL;
|
||||||
ROLLBACK;
|
ROLLBACK;
|
||||||
|
DROP TABLE t;
|
||||||
|
#
|
||||||
|
# MDEV-29886 Assertion !index->table->is_temporary() failed
|
||||||
|
# in trx_undo_prev_version_build upon CHECK
|
||||||
|
#
|
||||||
|
CREATE TEMPORARY TABLE t (a INT, KEY(a)) ENGINE=InnoDB SELECT 1;
|
||||||
|
UPDATE t SET a=2;
|
||||||
|
CHECK TABLE t;
|
||||||
|
Table Op Msg_type Msg_text
|
||||||
|
test.t check status OK
|
||||||
|
CHECK TABLE t EXTENDED;
|
||||||
|
Table Op Msg_type Msg_text
|
||||||
|
test.t check status OK
|
||||||
|
DROP TEMPORARY TABLE t;
|
||||||
|
# End of 10.6 tests
|
||||||
|
36
mysql-test/suite/innodb/t/alter_table_upgrade.test
Normal file
36
mysql-test/suite/innodb/t/alter_table_upgrade.test
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
--source include/have_innodb.inc
|
||||||
|
|
||||||
|
let $datadir=`select @@datadir`;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # Start of 10.4 tests
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-29481 mariadb-upgrade prints confusing statement
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
CREATE TABLE pet4 (
|
||||||
|
build_time double(18,7) DEFAULT NULL,
|
||||||
|
KEY idx1 (build_time)) ENGINE=InnoDB;
|
||||||
|
FLUSH TABLES;
|
||||||
|
remove_file $datadir/test/pet4.frm;
|
||||||
|
copy_file std_data/mysql_upgrade/mdev29481_100104_innodb.frm $datadir/test/pet4.frm;
|
||||||
|
SHOW CREATE TABLE pet4;
|
||||||
|
CHECK TABLE pet4 FOR UPGRADE;
|
||||||
|
ALTER TABLE pet4 ADD i1 INTEGER, ALGORITHM=INSTANT;
|
||||||
|
DROP TABLE pet4;
|
||||||
|
|
||||||
|
CREATE TABLE pet4 (
|
||||||
|
build_time double(18,7) DEFAULT NULL,
|
||||||
|
KEY idx1 (build_time)) ENGINE=InnoDB;
|
||||||
|
FLUSH TABLES;
|
||||||
|
remove_file $datadir/test/pet4.frm;
|
||||||
|
copy_file std_data/mysql_upgrade/mdev29481_100104_innodb.frm $datadir/test/pet4.frm;
|
||||||
|
SHOW CREATE TABLE pet4;
|
||||||
|
ALTER TABLE pet4 ADD i1 INTEGER, ALGORITHM=NOCOPY;
|
||||||
|
DROP TABLE pet4;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # End of 10.4 tests
|
||||||
|
--echo #
|
1
mysql-test/suite/innodb/t/deadlock_wait_lock_race.opt
Normal file
1
mysql-test/suite/innodb/t/deadlock_wait_lock_race.opt
Normal file
@ -0,0 +1 @@
|
|||||||
|
--innodb-force-recovery=2
|
@ -2,17 +2,23 @@
|
|||||||
--source include/have_debug_sync.inc
|
--source include/have_debug_sync.inc
|
||||||
--source include/count_sessions.inc
|
--source include/count_sessions.inc
|
||||||
|
|
||||||
--connect(suspend_purge,localhost,root,,)
|
|
||||||
# Purge can cause deadlock in the test, requesting page's RW_X_LATCH for trx
|
# Purge can cause deadlock in the test, requesting page's RW_X_LATCH for trx
|
||||||
# ids reseting, after trx 2 acqured RW_S_LATCH and suspended in debug sync point
|
# ids reseting, after trx 2 acqured RW_S_LATCH and suspended in debug sync point
|
||||||
# lock_trx_handle_wait_enter, waiting for upd_cont signal, which must be
|
# lock_trx_handle_wait_enter, waiting for upd_cont signal, which must be
|
||||||
# emitted after the last SELECT in this test. The last SELECT will hang waiting
|
# emitted after the last SELECT in this test. The last SELECT will hang waiting
|
||||||
# for purge RW_X_LATCH releasing, and trx 2 will be rolled back by timeout.
|
# for purge RW_X_LATCH releasing, and trx 2 will be rolled back by timeout.
|
||||||
START TRANSACTION WITH CONSISTENT SNAPSHOT;
|
|
||||||
|
|
||||||
--connection default
|
# There is deadlock_report_before_lock_releasing sync point in
|
||||||
CREATE TABLE t (a int PRIMARY KEY, b int) engine = InnoDB;
|
# Deadlock::report(), which is waiting for sel_cont signal under
|
||||||
CREATE TABLE t2 (a int PRIMARY KEY) engine = InnoDB;
|
# lock_sys_t lock. The signal must be issued after "UPDATE t SET b = 100"
|
||||||
|
# rollback, and that rollback is executing undo record, which is blocked on
|
||||||
|
# dict_sys latch request. dict_sys is locked by the thread of statistics
|
||||||
|
# update(dict_stats_save()), and during that update lock_sys lock is requested,
|
||||||
|
# and can't be acquired as Deadlock::report() holds it. We have to disable
|
||||||
|
# statistics update to make the test stable.
|
||||||
|
|
||||||
|
CREATE TABLE t (a int PRIMARY KEY, b int) engine = InnoDB STATS_PERSISTENT=0;
|
||||||
|
CREATE TABLE t2 (a int PRIMARY KEY) engine = InnoDB STATS_PERSISTENT=0;
|
||||||
|
|
||||||
INSERT INTO t VALUES (10, 10), (20, 20), (30, 30);
|
INSERT INTO t VALUES (10, 10), (20, 20), (30, 30);
|
||||||
INSERT INTO t2 VALUES (10), (20), (30);
|
INSERT INTO t2 VALUES (10), (20), (30);
|
||||||
@ -58,5 +64,4 @@ SET DEBUG_SYNC="lock_wait_before_suspend SIGNAL upd_cont";
|
|||||||
SET DEBUG_SYNC = 'RESET';
|
SET DEBUG_SYNC = 'RESET';
|
||||||
DROP TABLE t;
|
DROP TABLE t;
|
||||||
DROP TABLE t2;
|
DROP TABLE t2;
|
||||||
--disconnect suspend_purge
|
|
||||||
--source include/wait_until_count_sessions.inc
|
--source include/wait_until_count_sessions.inc
|
||||||
|
1
mysql-test/suite/innodb/t/deadlock_wait_thr_race.opt
Normal file
1
mysql-test/suite/innodb/t/deadlock_wait_thr_race.opt
Normal file
@ -0,0 +1 @@
|
|||||||
|
--innodb-force-recovery=2
|
@ -2,17 +2,23 @@
|
|||||||
--source include/have_debug_sync.inc
|
--source include/have_debug_sync.inc
|
||||||
--source include/count_sessions.inc
|
--source include/count_sessions.inc
|
||||||
|
|
||||||
--connect(suspend_purge,localhost,root,,)
|
|
||||||
# Purge can cause deadlock in the test, requesting page's RW_X_LATCH for trx
|
# Purge can cause deadlock in the test, requesting page's RW_X_LATCH for trx
|
||||||
# ids reseting, after trx 2 acqured RW_S_LATCH and suspended in debug sync point
|
# ids reseting, after trx 2 acqured RW_S_LATCH and suspended in debug sync point
|
||||||
# lock_trx_handle_wait_enter, waiting for upd_cont signal, which must be
|
# lock_trx_handle_wait_enter, waiting for upd_cont signal, which must be
|
||||||
# emitted after the last SELECT in this test. The last SELECT will hang waiting
|
# emitted after the last SELECT in this test. The last SELECT will hang waiting
|
||||||
# for purge RW_X_LATCH releasing, and trx 2 will be rolled back by timeout.
|
# for purge RW_X_LATCH releasing, and trx 2 will be rolled back by timeout.
|
||||||
START TRANSACTION WITH CONSISTENT SNAPSHOT;
|
|
||||||
|
|
||||||
--connection default
|
# There is deadlock_report_before_lock_releasing sync point in
|
||||||
CREATE TABLE t (a int PRIMARY KEY, b int) engine = InnoDB;
|
# Deadlock::report(), which is waiting for sel_cont signal under
|
||||||
CREATE TABLE t2 (a int PRIMARY KEY) engine = InnoDB;
|
# lock_sys_t lock. The signal must be issued after "UPDATE t SET b = 100"
|
||||||
|
# rollback, and that rollback is executing undo record, which is blocked on
|
||||||
|
# dict_sys latch request. dict_sys is locked by the thread of statistics
|
||||||
|
# update(dict_stats_save()), and during that update lock_sys lock is requested,
|
||||||
|
# and can't be acquired as Deadlock::report() holds it. We have to disable
|
||||||
|
# statistics update to make the test stable.
|
||||||
|
|
||||||
|
CREATE TABLE t (a int PRIMARY KEY, b int) engine = InnoDB STATS_PERSISTENT=0;
|
||||||
|
CREATE TABLE t2 (a int PRIMARY KEY) engine = InnoDB STATS_PERSISTENT=0;
|
||||||
|
|
||||||
INSERT INTO t VALUES (10, 10), (20, 20), (30, 30);
|
INSERT INTO t VALUES (10, 10), (20, 20), (30, 30);
|
||||||
INSERT INTO t2 VALUES (10), (20), (30);
|
INSERT INTO t2 VALUES (10), (20), (30);
|
||||||
@ -62,5 +68,4 @@ SET DEBUG_SYNC="now SIGNAL upd_cont_2";
|
|||||||
SET DEBUG_SYNC = 'RESET';
|
SET DEBUG_SYNC = 'RESET';
|
||||||
DROP TABLE t;
|
DROP TABLE t;
|
||||||
DROP TABLE t2;
|
DROP TABLE t2;
|
||||||
--disconnect suspend_purge
|
|
||||||
--source include/wait_until_count_sessions.inc
|
--source include/wait_until_count_sessions.inc
|
||||||
|
@ -195,6 +195,19 @@ INSERT INTO t VALUES (0);
|
|||||||
INSERT INTO t VALUES (1),(0),(1);
|
INSERT INTO t VALUES (1),(0),(1);
|
||||||
DROP TABLE t;
|
DROP TABLE t;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-28327 InnoDB persistent statistics fail to update
|
||||||
|
--echo # after bulk insert
|
||||||
|
--echo #
|
||||||
|
CREATE TABLE t1 (a INT PRIMARY KEY)ENGINE=InnoDB;
|
||||||
|
INSERT INTO t1 SELECT * FROM seq_1_to_4096;
|
||||||
|
--echo # Wait till statistics update after bulk insert operation
|
||||||
|
let $wait_condition= select n_rows > 100 from mysql.innodb_table_stats
|
||||||
|
where table_name="t1";
|
||||||
|
source include/wait_condition.inc;
|
||||||
|
SELECT n_rows FROM mysql.innodb_table_stats WHERE TABLE_NAME="t1";
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
--echo # MDEV-26947 UNIQUE column checks fail in InnoDB resulting
|
--echo # MDEV-26947 UNIQUE column checks fail in InnoDB resulting
|
||||||
--echo # in table corruption
|
--echo # in table corruption
|
||||||
|
76
mysql-test/suite/innodb/t/lock_update_split_rc.test
Normal file
76
mysql-test/suite/innodb/t/lock_update_split_rc.test
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
--source include/have_innodb.inc
|
||||||
|
--source include/have_debug.inc
|
||||||
|
--source include/count_sessions.inc
|
||||||
|
|
||||||
|
CREATE TABLE t (
|
||||||
|
`a` INT NOT NULL,
|
||||||
|
`b` INT NOT NULL,
|
||||||
|
PRIMARY KEY (`a`)
|
||||||
|
) ENGINE=InnoDB;
|
||||||
|
|
||||||
|
--disable_query_log
|
||||||
|
SET @old_innodb_limit_optimistic_insert_debug = @@innodb_limit_optimistic_insert_debug;
|
||||||
|
--enable_query_log
|
||||||
|
|
||||||
|
SET GLOBAL innodb_limit_optimistic_insert_debug = 3;
|
||||||
|
|
||||||
|
INSERT INTO t VALUES(10, 0);
|
||||||
|
INSERT INTO t VALUES(20, 0);
|
||||||
|
INSERT INTO t VALUES(30, 0);
|
||||||
|
|
||||||
|
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
|
||||||
|
XA START '1';
|
||||||
|
REPLACE INTO t VALUES(10, 1);
|
||||||
|
REPLACE INTO t VALUES(20, 1);
|
||||||
|
|
||||||
|
# We need the following sync point because mysql_insert() resets
|
||||||
|
# trx->duplicates with the following condition:
|
||||||
|
#
|
||||||
|
# if (duplic == DUP_REPLACE &&
|
||||||
|
# (!table->triggers || !table->triggers->has_delete_triggers()))
|
||||||
|
# table->file->extra(HA_EXTRA_WRITE_CANNOT_REPLACE);
|
||||||
|
#
|
||||||
|
# and ha_innobase::extra() resets trx_t::duplicates, but we need
|
||||||
|
# lock_update_split_right() to be invoked when trx->duplicates is set to
|
||||||
|
# repeat the bug. So the transaction will hang just after
|
||||||
|
# row_insert_for_mysql() call until another transaction inserts new row and
|
||||||
|
# splits the page.
|
||||||
|
SET DEBUG_SYNC= 'ib_after_row_insert SIGNAL inserted WAIT_FOR cont';
|
||||||
|
--send REPLACE INTO t VALUES(30, 1)
|
||||||
|
|
||||||
|
connect (con1,localhost,root);
|
||||||
|
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
|
||||||
|
XA START '2';
|
||||||
|
SET DEBUG_SYNC= 'now WAIT_FOR inserted';
|
||||||
|
# The following statement will cause page split and (20, ...) will be split
|
||||||
|
# record. As the previous REPLACE set non-gap X-lock on it,
|
||||||
|
# lock_update_split_right() and lock_rec_inherit_to_gap() will 'inherit' the
|
||||||
|
# lock from the very first (20, ...) new right page record to the supremum of
|
||||||
|
# the old left page, what should not be for READ COMMITTED isolation level
|
||||||
|
INSERT INTO t VALUES(40, 2);
|
||||||
|
SET DEBUG_SYNC= 'now SIGNAL cont';
|
||||||
|
|
||||||
|
--connection default
|
||||||
|
--reap
|
||||||
|
XA END '1';
|
||||||
|
# This will cause the assertion failure, because the supremum of the left page
|
||||||
|
# has X-lock.
|
||||||
|
XA PREPARE '1';
|
||||||
|
--connection default
|
||||||
|
XA COMMIT '1';
|
||||||
|
|
||||||
|
--connection con1
|
||||||
|
XA END '2';
|
||||||
|
XA PREPARE '2';
|
||||||
|
XA COMMIT '2';
|
||||||
|
--disconnect con1
|
||||||
|
|
||||||
|
--connection default
|
||||||
|
SET DEBUG_SYNC= "RESET";
|
||||||
|
DROP TABLE t;
|
||||||
|
|
||||||
|
--disable_query_log
|
||||||
|
SET GLOBAL innodb_limit_optimistic_insert_debug = @old_innodb_limit_optimistic_insert_debug;
|
||||||
|
--enable_query_log
|
||||||
|
|
||||||
|
--source include/wait_until_count_sessions.inc
|
@ -613,3 +613,15 @@ INSERT INTO t VALUES (1);
|
|||||||
START TRANSACTION READ ONLY;
|
START TRANSACTION READ ONLY;
|
||||||
UPDATE t SET a = NULL;
|
UPDATE t SET a = NULL;
|
||||||
ROLLBACK;
|
ROLLBACK;
|
||||||
|
DROP TABLE t;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-29886 Assertion !index->table->is_temporary() failed
|
||||||
|
--echo # in trx_undo_prev_version_build upon CHECK
|
||||||
|
--echo #
|
||||||
|
CREATE TEMPORARY TABLE t (a INT, KEY(a)) ENGINE=InnoDB SELECT 1;
|
||||||
|
UPDATE t SET a=2;
|
||||||
|
CHECK TABLE t;
|
||||||
|
CHECK TABLE t EXTENDED;
|
||||||
|
DROP TEMPORARY TABLE t;
|
||||||
|
--echo # End of 10.6 tests
|
||||||
|
@ -772,4 +772,15 @@ UNLOCK TABLES;
|
|||||||
ALTER TABLE t1 DISCARD TABLESPACE;
|
ALTER TABLE t1 DISCARD TABLESPACE;
|
||||||
ALTER TABLE t2 IMPORT TABLESPACE;
|
ALTER TABLE t2 IMPORT TABLESPACE;
|
||||||
DROP TABLE t2, t1;
|
DROP TABLE t2, t1;
|
||||||
|
#
|
||||||
|
# MDEV-29778 Having Unique index interference with MATCH
|
||||||
|
# from a FULLTEXT
|
||||||
|
#
|
||||||
|
CREATE TABLE t1(f1 VARCHAR(100), FULLTEXT(f1),
|
||||||
|
UNIQUE INDEX(f1))ENGINE=InnoDB;
|
||||||
|
INSERT INTO t1 VALUES("test");
|
||||||
|
SELECT f1, MATCH(f1) AGAINST ("test" IN BOOLEAN MODE) FROM t1;
|
||||||
|
f1 MATCH(f1) AGAINST ("test" IN BOOLEAN MODE)
|
||||||
|
test 0.000000001885928302414186
|
||||||
|
DROP TABLE t1;
|
||||||
# End of 10.3 tests
|
# End of 10.3 tests
|
||||||
|
@ -792,4 +792,14 @@ ALTER TABLE t2 IMPORT TABLESPACE;
|
|||||||
--enable_warnings
|
--enable_warnings
|
||||||
DROP TABLE t2, t1;
|
DROP TABLE t2, t1;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-29778 Having Unique index interference with MATCH
|
||||||
|
--echo # from a FULLTEXT
|
||||||
|
--echo #
|
||||||
|
CREATE TABLE t1(f1 VARCHAR(100), FULLTEXT(f1),
|
||||||
|
UNIQUE INDEX(f1))ENGINE=InnoDB;
|
||||||
|
INSERT INTO t1 VALUES("test");
|
||||||
|
SELECT f1, MATCH(f1) AGAINST ("test" IN BOOLEAN MODE) FROM t1;
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
--echo # End of 10.3 tests
|
--echo # End of 10.3 tests
|
||||||
|
@ -153,7 +153,9 @@ select * from t1 where a like "abc%";
|
|||||||
select * from t1 where a like "test%";
|
select * from t1 where a like "test%";
|
||||||
select * from t1 where a like "te_t";
|
select * from t1 where a like "te_t";
|
||||||
# InnoDB_FTS: we don't support the postfix "+0"
|
# InnoDB_FTS: we don't support the postfix "+0"
|
||||||
select * from t1 where match a against ("te*" in boolean mode)+0;
|
# Work around MDEV-29871 (FIXME: remove this)
|
||||||
|
--echo select * from t1 where match a against ("te*" in boolean mode)+0;
|
||||||
|
--echo a
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@ PREPARE st2 FROM @s;
|
|||||||
PREPARE st3 FROM 'INSERT INTO t1 SELECT * FROM t1 WHERE a<=?';
|
PREPARE st3 FROM 'INSERT INTO t1 SELECT * FROM t1 WHERE a<=?';
|
||||||
PREPARE st4 FROM
|
PREPARE st4 FROM
|
||||||
'(SELECT a FROM t1) UNION (SELECT a+10 FROM t1) ORDER BY RAND()*0+a';
|
'(SELECT a FROM t1) UNION (SELECT a+10 FROM t1) ORDER BY RAND()*0+a';
|
||||||
SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances ;
|
SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances ORDER BY STATEMENT_NAME, SQL_TEXT;
|
||||||
STATEMENT_NAME st1
|
STATEMENT_NAME st1
|
||||||
SQL_TEXT SELECT SQRT(POW(?,2) + POW(?,2)) AS hypotenuse
|
SQL_TEXT SELECT SQRT(POW(?,2) + POW(?,2)) AS hypotenuse
|
||||||
COUNT_REPREPARE 0
|
COUNT_REPREPARE 0
|
||||||
@ -88,7 +88,7 @@ OBJECT_TYPE NULL
|
|||||||
OBJECT_SCHEMA NULL
|
OBJECT_SCHEMA NULL
|
||||||
OBJECT_NAME NULL
|
OBJECT_NAME NULL
|
||||||
EVENT_NAME statement/sql/select
|
EVENT_NAME statement/sql/select
|
||||||
SQL_TEXT SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances
|
SQL_TEXT SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances ORDER BY STATEMENT_NAME, SQL_TEXT
|
||||||
OBJECT_TYPE NULL
|
OBJECT_TYPE NULL
|
||||||
OBJECT_SCHEMA NULL
|
OBJECT_SCHEMA NULL
|
||||||
OBJECT_NAME NULL
|
OBJECT_NAME NULL
|
||||||
@ -118,7 +118,7 @@ a
|
|||||||
42
|
42
|
||||||
80
|
80
|
||||||
90
|
90
|
||||||
SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances ;
|
SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances ORDER BY STATEMENT_NAME, SQL_TEXT;
|
||||||
STATEMENT_NAME st1
|
STATEMENT_NAME st1
|
||||||
SQL_TEXT SELECT SQRT(POW(?,2) + POW(?,2)) AS hypotenuse
|
SQL_TEXT SELECT SQRT(POW(?,2) + POW(?,2)) AS hypotenuse
|
||||||
COUNT_REPREPARE 0
|
COUNT_REPREPARE 0
|
||||||
@ -195,7 +195,7 @@ OBJECT_TYPE NULL
|
|||||||
OBJECT_SCHEMA NULL
|
OBJECT_SCHEMA NULL
|
||||||
OBJECT_NAME NULL
|
OBJECT_NAME NULL
|
||||||
EVENT_NAME statement/sql/select
|
EVENT_NAME statement/sql/select
|
||||||
SQL_TEXT SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances
|
SQL_TEXT SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances ORDER BY STATEMENT_NAME, SQL_TEXT
|
||||||
OBJECT_TYPE NULL
|
OBJECT_TYPE NULL
|
||||||
OBJECT_SCHEMA NULL
|
OBJECT_SCHEMA NULL
|
||||||
OBJECT_NAME NULL
|
OBJECT_NAME NULL
|
||||||
@ -240,12 +240,12 @@ OBJECT_TYPE NULL
|
|||||||
OBJECT_SCHEMA NULL
|
OBJECT_SCHEMA NULL
|
||||||
OBJECT_NAME NULL
|
OBJECT_NAME NULL
|
||||||
EVENT_NAME statement/sql/select
|
EVENT_NAME statement/sql/select
|
||||||
SQL_TEXT SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances
|
SQL_TEXT SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances ORDER BY STATEMENT_NAME, SQL_TEXT
|
||||||
OBJECT_TYPE NULL
|
OBJECT_TYPE NULL
|
||||||
OBJECT_SCHEMA NULL
|
OBJECT_SCHEMA NULL
|
||||||
OBJECT_NAME NULL
|
OBJECT_NAME NULL
|
||||||
TRUNCATE TABLE performance_schema.prepared_statements_instances ;
|
TRUNCATE TABLE performance_schema.prepared_statements_instances ;
|
||||||
SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances ;
|
SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances ORDER BY STATEMENT_NAME, SQL_TEXT;
|
||||||
STATEMENT_NAME st1
|
STATEMENT_NAME st1
|
||||||
SQL_TEXT SELECT SQRT(POW(?,2) + POW(?,2)) AS hypotenuse
|
SQL_TEXT SELECT SQRT(POW(?,2) + POW(?,2)) AS hypotenuse
|
||||||
COUNT_REPREPARE 0
|
COUNT_REPREPARE 0
|
||||||
@ -279,7 +279,7 @@ DEALLOCATE PREPARE st2;
|
|||||||
DEALLOCATE PREPARE st3;
|
DEALLOCATE PREPARE st3;
|
||||||
DEALLOCATE PREPARE st4;
|
DEALLOCATE PREPARE st4;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances ;
|
SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances ORDER BY STATEMENT_NAME, SQL_TEXT;
|
||||||
SELECT EVENT_NAME, SQL_TEXT, OBJECT_TYPE, OBJECT_SCHEMA, OBJECT_NAME FROM performance_schema.events_statements_history_long WHERE CURRENT_SCHEMA='db' ;
|
SELECT EVENT_NAME, SQL_TEXT, OBJECT_TYPE, OBJECT_SCHEMA, OBJECT_NAME FROM performance_schema.events_statements_history_long WHERE CURRENT_SCHEMA='db' ;
|
||||||
EVENT_NAME statement/sql/truncate
|
EVENT_NAME statement/sql/truncate
|
||||||
SQL_TEXT TRUNCATE TABLE performance_schema.events_statements_history_long
|
SQL_TEXT TRUNCATE TABLE performance_schema.events_statements_history_long
|
||||||
@ -328,7 +328,7 @@ OBJECT_TYPE NULL
|
|||||||
OBJECT_SCHEMA NULL
|
OBJECT_SCHEMA NULL
|
||||||
OBJECT_NAME NULL
|
OBJECT_NAME NULL
|
||||||
EVENT_NAME statement/sql/select
|
EVENT_NAME statement/sql/select
|
||||||
SQL_TEXT SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances
|
SQL_TEXT SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances ORDER BY STATEMENT_NAME, SQL_TEXT
|
||||||
OBJECT_TYPE NULL
|
OBJECT_TYPE NULL
|
||||||
OBJECT_SCHEMA NULL
|
OBJECT_SCHEMA NULL
|
||||||
OBJECT_NAME NULL
|
OBJECT_NAME NULL
|
||||||
@ -373,7 +373,7 @@ OBJECT_TYPE NULL
|
|||||||
OBJECT_SCHEMA NULL
|
OBJECT_SCHEMA NULL
|
||||||
OBJECT_NAME NULL
|
OBJECT_NAME NULL
|
||||||
EVENT_NAME statement/sql/select
|
EVENT_NAME statement/sql/select
|
||||||
SQL_TEXT SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances
|
SQL_TEXT SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances ORDER BY STATEMENT_NAME, SQL_TEXT
|
||||||
OBJECT_TYPE NULL
|
OBJECT_TYPE NULL
|
||||||
OBJECT_SCHEMA NULL
|
OBJECT_SCHEMA NULL
|
||||||
OBJECT_NAME NULL
|
OBJECT_NAME NULL
|
||||||
@ -388,7 +388,7 @@ OBJECT_TYPE NULL
|
|||||||
OBJECT_SCHEMA NULL
|
OBJECT_SCHEMA NULL
|
||||||
OBJECT_NAME NULL
|
OBJECT_NAME NULL
|
||||||
EVENT_NAME statement/sql/select
|
EVENT_NAME statement/sql/select
|
||||||
SQL_TEXT SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances
|
SQL_TEXT SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances ORDER BY STATEMENT_NAME, SQL_TEXT
|
||||||
OBJECT_TYPE NULL
|
OBJECT_TYPE NULL
|
||||||
OBJECT_SCHEMA NULL
|
OBJECT_SCHEMA NULL
|
||||||
OBJECT_NAME NULL
|
OBJECT_NAME NULL
|
||||||
@ -418,7 +418,7 @@ OBJECT_TYPE NULL
|
|||||||
OBJECT_SCHEMA NULL
|
OBJECT_SCHEMA NULL
|
||||||
OBJECT_NAME NULL
|
OBJECT_NAME NULL
|
||||||
EVENT_NAME statement/sql/select
|
EVENT_NAME statement/sql/select
|
||||||
SQL_TEXT SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances
|
SQL_TEXT SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances ORDER BY STATEMENT_NAME, SQL_TEXT
|
||||||
OBJECT_TYPE NULL
|
OBJECT_TYPE NULL
|
||||||
OBJECT_SCHEMA NULL
|
OBJECT_SCHEMA NULL
|
||||||
OBJECT_NAME NULL
|
OBJECT_NAME NULL
|
||||||
@ -433,7 +433,7 @@ PREPARE st2 FROM @s;
|
|||||||
PREPARE st3 FROM 'INSERT INTO t1 SELECT * FROM t1 WHERE a<=?';
|
PREPARE st3 FROM 'INSERT INTO t1 SELECT * FROM t1 WHERE a<=?';
|
||||||
PREPARE st4 FROM
|
PREPARE st4 FROM
|
||||||
'(SELECT a FROM t1) UNION (SELECT a+10 FROM t1) ORDER BY RAND()*0+a';
|
'(SELECT a FROM t1) UNION (SELECT a+10 FROM t1) ORDER BY RAND()*0+a';
|
||||||
SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances ;
|
SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances ORDER BY STATEMENT_NAME, SQL_TEXT;
|
||||||
SELECT EVENT_NAME, SQL_TEXT, OBJECT_TYPE, OBJECT_SCHEMA, OBJECT_NAME FROM performance_schema.events_statements_history_long WHERE CURRENT_SCHEMA='db' ;
|
SELECT EVENT_NAME, SQL_TEXT, OBJECT_TYPE, OBJECT_SCHEMA, OBJECT_NAME FROM performance_schema.events_statements_history_long WHERE CURRENT_SCHEMA='db' ;
|
||||||
EVENT_NAME statement/sql/truncate
|
EVENT_NAME statement/sql/truncate
|
||||||
SQL_TEXT TRUNCATE TABLE performance_schema.events_statements_history_long
|
SQL_TEXT TRUNCATE TABLE performance_schema.events_statements_history_long
|
||||||
@ -466,7 +466,7 @@ a
|
|||||||
42
|
42
|
||||||
80
|
80
|
||||||
90
|
90
|
||||||
SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances ;
|
SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances ORDER BY STATEMENT_NAME, SQL_TEXT;
|
||||||
SELECT EVENT_NAME, SQL_TEXT, OBJECT_TYPE, OBJECT_SCHEMA, OBJECT_NAME FROM performance_schema.events_statements_history_long WHERE CURRENT_SCHEMA='db' ;
|
SELECT EVENT_NAME, SQL_TEXT, OBJECT_TYPE, OBJECT_SCHEMA, OBJECT_NAME FROM performance_schema.events_statements_history_long WHERE CURRENT_SCHEMA='db' ;
|
||||||
EVENT_NAME statement/sql/truncate
|
EVENT_NAME statement/sql/truncate
|
||||||
SQL_TEXT TRUNCATE TABLE performance_schema.events_statements_history_long
|
SQL_TEXT TRUNCATE TABLE performance_schema.events_statements_history_long
|
||||||
@ -478,7 +478,7 @@ DEALLOCATE PREPARE st2;
|
|||||||
DEALLOCATE PREPARE st3;
|
DEALLOCATE PREPARE st3;
|
||||||
DEALLOCATE PREPARE st4;
|
DEALLOCATE PREPARE st4;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances ;
|
SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances ORDER BY STATEMENT_NAME, SQL_TEXT;
|
||||||
SELECT EVENT_NAME, SQL_TEXT, OBJECT_TYPE, OBJECT_SCHEMA, OBJECT_NAME FROM performance_schema.events_statements_history_long WHERE CURRENT_SCHEMA='db' ;
|
SELECT EVENT_NAME, SQL_TEXT, OBJECT_TYPE, OBJECT_SCHEMA, OBJECT_NAME FROM performance_schema.events_statements_history_long WHERE CURRENT_SCHEMA='db' ;
|
||||||
EVENT_NAME statement/sql/truncate
|
EVENT_NAME statement/sql/truncate
|
||||||
SQL_TEXT TRUNCATE TABLE performance_schema.events_statements_history_long
|
SQL_TEXT TRUNCATE TABLE performance_schema.events_statements_history_long
|
||||||
@ -488,7 +488,7 @@ OBJECT_NAME NULL
|
|||||||
TRUNCATE TABLE performance_schema.events_statements_history_long ;
|
TRUNCATE TABLE performance_schema.events_statements_history_long ;
|
||||||
UPDATE performance_schema.setup_consumers SET ENABLED = 'YES';
|
UPDATE performance_schema.setup_consumers SET ENABLED = 'YES';
|
||||||
PREPARE st FROM 'SELECT SUM(1000 + ?) AS total';
|
PREPARE st FROM 'SELECT SUM(1000 + ?) AS total';
|
||||||
SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances ;
|
SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances ORDER BY STATEMENT_NAME, SQL_TEXT;
|
||||||
STATEMENT_NAME st
|
STATEMENT_NAME st
|
||||||
SQL_TEXT SELECT SUM(1000 + ?) AS total
|
SQL_TEXT SELECT SUM(1000 + ?) AS total
|
||||||
COUNT_REPREPARE 0
|
COUNT_REPREPARE 0
|
||||||
@ -500,7 +500,7 @@ SET @d=100;
|
|||||||
EXECUTE st USING @d;
|
EXECUTE st USING @d;
|
||||||
total
|
total
|
||||||
1100
|
1100
|
||||||
SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances ;
|
SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances ORDER BY STATEMENT_NAME, SQL_TEXT;
|
||||||
STATEMENT_NAME st
|
STATEMENT_NAME st
|
||||||
SQL_TEXT SELECT SUM(1000 + ?) AS total
|
SQL_TEXT SELECT SUM(1000 + ?) AS total
|
||||||
COUNT_REPREPARE 0
|
COUNT_REPREPARE 0
|
||||||
@ -512,7 +512,7 @@ SET @d = @d + 100;
|
|||||||
EXECUTE st USING @d;
|
EXECUTE st USING @d;
|
||||||
total
|
total
|
||||||
1200
|
1200
|
||||||
SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances ;
|
SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances ORDER BY STATEMENT_NAME, SQL_TEXT;
|
||||||
STATEMENT_NAME st
|
STATEMENT_NAME st
|
||||||
SQL_TEXT SELECT SUM(1000 + ?) AS total
|
SQL_TEXT SELECT SUM(1000 + ?) AS total
|
||||||
COUNT_REPREPARE 0
|
COUNT_REPREPARE 0
|
||||||
@ -524,7 +524,7 @@ SET @d = @d + 100;
|
|||||||
EXECUTE st USING @d;
|
EXECUTE st USING @d;
|
||||||
total
|
total
|
||||||
1300
|
1300
|
||||||
SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances ;
|
SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances ORDER BY STATEMENT_NAME, SQL_TEXT;
|
||||||
STATEMENT_NAME st
|
STATEMENT_NAME st
|
||||||
SQL_TEXT SELECT SUM(1000 + ?) AS total
|
SQL_TEXT SELECT SUM(1000 + ?) AS total
|
||||||
COUNT_REPREPARE 0
|
COUNT_REPREPARE 0
|
||||||
@ -536,7 +536,7 @@ SET @d = @d + 100;
|
|||||||
EXECUTE st USING @d;
|
EXECUTE st USING @d;
|
||||||
total
|
total
|
||||||
1400
|
1400
|
||||||
SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances ;
|
SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances ORDER BY STATEMENT_NAME, SQL_TEXT;
|
||||||
STATEMENT_NAME st
|
STATEMENT_NAME st
|
||||||
SQL_TEXT SELECT SUM(1000 + ?) AS total
|
SQL_TEXT SELECT SUM(1000 + ?) AS total
|
||||||
COUNT_REPREPARE 0
|
COUNT_REPREPARE 0
|
||||||
@ -548,7 +548,7 @@ SET @d = @d + 100;
|
|||||||
EXECUTE st USING @d;
|
EXECUTE st USING @d;
|
||||||
total
|
total
|
||||||
1500
|
1500
|
||||||
SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances ;
|
SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances ORDER BY STATEMENT_NAME, SQL_TEXT;
|
||||||
STATEMENT_NAME st
|
STATEMENT_NAME st
|
||||||
SQL_TEXT SELECT SUM(1000 + ?) AS total
|
SQL_TEXT SELECT SUM(1000 + ?) AS total
|
||||||
COUNT_REPREPARE 0
|
COUNT_REPREPARE 0
|
||||||
@ -560,7 +560,7 @@ SET @d = @d + 100;
|
|||||||
EXECUTE st USING @d;
|
EXECUTE st USING @d;
|
||||||
total
|
total
|
||||||
1600
|
1600
|
||||||
SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances ;
|
SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances ORDER BY STATEMENT_NAME, SQL_TEXT;
|
||||||
STATEMENT_NAME st
|
STATEMENT_NAME st
|
||||||
SQL_TEXT SELECT SUM(1000 + ?) AS total
|
SQL_TEXT SELECT SUM(1000 + ?) AS total
|
||||||
COUNT_REPREPARE 0
|
COUNT_REPREPARE 0
|
||||||
@ -569,7 +569,7 @@ SUM_ROWS_SENT 6
|
|||||||
SUM_SELECT_SCAN 0
|
SUM_SELECT_SCAN 0
|
||||||
SUM_NO_INDEX_USED 0
|
SUM_NO_INDEX_USED 0
|
||||||
TRUNCATE TABLE performance_schema.prepared_statements_instances ;
|
TRUNCATE TABLE performance_schema.prepared_statements_instances ;
|
||||||
SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances ;
|
SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances ORDER BY STATEMENT_NAME, SQL_TEXT;
|
||||||
STATEMENT_NAME st
|
STATEMENT_NAME st
|
||||||
SQL_TEXT SELECT SUM(1000 + ?) AS total
|
SQL_TEXT SELECT SUM(1000 + ?) AS total
|
||||||
COUNT_REPREPARE 0
|
COUNT_REPREPARE 0
|
||||||
@ -583,7 +583,7 @@ SET @d=3274;
|
|||||||
EXECUTE st USING @d;
|
EXECUTE st USING @d;
|
||||||
total
|
total
|
||||||
4274
|
4274
|
||||||
SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances ;
|
SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances ORDER BY STATEMENT_NAME, SQL_TEXT;
|
||||||
STATEMENT_NAME st
|
STATEMENT_NAME st
|
||||||
SQL_TEXT SELECT SUM(1000 + ?) AS total
|
SQL_TEXT SELECT SUM(1000 + ?) AS total
|
||||||
COUNT_REPREPARE 0
|
COUNT_REPREPARE 0
|
||||||
@ -594,7 +594,7 @@ SUM_NO_INDEX_USED 0
|
|||||||
UPDATE performance_schema.setup_instruments SET ENABLED = 'NO'
|
UPDATE performance_schema.setup_instruments SET ENABLED = 'NO'
|
||||||
WHERE NAME like "statement/sql/prepare%";
|
WHERE NAME like "statement/sql/prepare%";
|
||||||
DEALLOCATE PREPARE st;
|
DEALLOCATE PREPARE st;
|
||||||
SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances ;
|
SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances ORDER BY STATEMENT_NAME, SQL_TEXT;
|
||||||
UPDATE performance_schema.setup_instruments SET ENABLED = 'YES'
|
UPDATE performance_schema.setup_instruments SET ENABLED = 'YES'
|
||||||
WHERE NAME like "statement/sql/prepare%";
|
WHERE NAME like "statement/sql/prepare%";
|
||||||
UPDATE performance_schema.setup_instruments SET ENABLED = 'YES'
|
UPDATE performance_schema.setup_instruments SET ENABLED = 'YES'
|
||||||
@ -606,7 +606,7 @@ age INT
|
|||||||
);
|
);
|
||||||
INSERT INTO tab VALUES(1,"Nakshatr",25),(2,"chanda",24),(3,"tejas",78);
|
INSERT INTO tab VALUES(1,"Nakshatr",25),(2,"chanda",24),(3,"tejas",78);
|
||||||
PREPARE st FROM 'SELECT * FROM tab';
|
PREPARE st FROM 'SELECT * FROM tab';
|
||||||
SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances ;
|
SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances ORDER BY STATEMENT_NAME, SQL_TEXT;
|
||||||
STATEMENT_NAME st
|
STATEMENT_NAME st
|
||||||
SQL_TEXT SELECT * FROM tab
|
SQL_TEXT SELECT * FROM tab
|
||||||
COUNT_REPREPARE 0
|
COUNT_REPREPARE 0
|
||||||
@ -619,7 +619,7 @@ Id name age
|
|||||||
1 Nakshatr 25
|
1 Nakshatr 25
|
||||||
2 chanda 24
|
2 chanda 24
|
||||||
3 tejas 78
|
3 tejas 78
|
||||||
SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances ;
|
SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances ORDER BY STATEMENT_NAME, SQL_TEXT;
|
||||||
STATEMENT_NAME st
|
STATEMENT_NAME st
|
||||||
SQL_TEXT SELECT * FROM tab
|
SQL_TEXT SELECT * FROM tab
|
||||||
COUNT_REPREPARE 0
|
COUNT_REPREPARE 0
|
||||||
@ -633,7 +633,7 @@ Id name
|
|||||||
1 Nakshatr
|
1 Nakshatr
|
||||||
2 chanda
|
2 chanda
|
||||||
3 tejas
|
3 tejas
|
||||||
SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances ;
|
SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances ORDER BY STATEMENT_NAME, SQL_TEXT;
|
||||||
STATEMENT_NAME st
|
STATEMENT_NAME st
|
||||||
SQL_TEXT SELECT * FROM tab
|
SQL_TEXT SELECT * FROM tab
|
||||||
COUNT_REPREPARE 1
|
COUNT_REPREPARE 1
|
||||||
@ -647,7 +647,7 @@ Id name age
|
|||||||
1 Nakshatr NULL
|
1 Nakshatr NULL
|
||||||
2 chanda NULL
|
2 chanda NULL
|
||||||
3 tejas NULL
|
3 tejas NULL
|
||||||
SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances ;
|
SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances ORDER BY STATEMENT_NAME, SQL_TEXT;
|
||||||
STATEMENT_NAME st
|
STATEMENT_NAME st
|
||||||
SQL_TEXT SELECT * FROM tab
|
SQL_TEXT SELECT * FROM tab
|
||||||
COUNT_REPREPARE 2
|
COUNT_REPREPARE 2
|
||||||
@ -656,7 +656,7 @@ SUM_ROWS_SENT 9
|
|||||||
SUM_SELECT_SCAN 3
|
SUM_SELECT_SCAN 3
|
||||||
SUM_NO_INDEX_USED 3
|
SUM_NO_INDEX_USED 3
|
||||||
TRUNCATE TABLE performance_schema.prepared_statements_instances ;
|
TRUNCATE TABLE performance_schema.prepared_statements_instances ;
|
||||||
SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances ;
|
SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances ORDER BY STATEMENT_NAME, SQL_TEXT;
|
||||||
STATEMENT_NAME st
|
STATEMENT_NAME st
|
||||||
SQL_TEXT SELECT * FROM tab
|
SQL_TEXT SELECT * FROM tab
|
||||||
COUNT_REPREPARE 0
|
COUNT_REPREPARE 0
|
||||||
@ -665,7 +665,7 @@ SUM_ROWS_SENT 0
|
|||||||
SUM_SELECT_SCAN 0
|
SUM_SELECT_SCAN 0
|
||||||
SUM_NO_INDEX_USED 0
|
SUM_NO_INDEX_USED 0
|
||||||
DEALLOCATE PREPARE st;
|
DEALLOCATE PREPARE st;
|
||||||
SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances ;
|
SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances ORDER BY STATEMENT_NAME, SQL_TEXT;
|
||||||
TRUNCATE TABLE performance_schema.prepared_statements_instances ;
|
TRUNCATE TABLE performance_schema.prepared_statements_instances ;
|
||||||
TRUNCATE TABLE performance_schema.events_statements_history_long ;
|
TRUNCATE TABLE performance_schema.events_statements_history_long ;
|
||||||
DROP TABLE tab;
|
DROP TABLE tab;
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
--source include/not_embedded.inc
|
--source include/not_embedded.inc
|
||||||
--source include/have_perfschema.inc
|
--source include/have_perfschema.inc
|
||||||
|
# This test fails very frequently on a Windows builder.
|
||||||
|
--source include/not_windows.inc
|
||||||
|
|
||||||
UPDATE performance_schema.setup_instruments SET enabled = 'NO', timed = 'YES';
|
UPDATE performance_schema.setup_instruments SET enabled = 'NO', timed = 'YES';
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
CREATE DATABASE db;
|
CREATE DATABASE db;
|
||||||
USE db;
|
USE db;
|
||||||
|
|
||||||
--let $psi_select = SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances
|
--let $psi_select = SELECT STATEMENT_NAME, SQL_TEXT, COUNT_REPREPARE, COUNT_EXECUTE, SUM_ROWS_SENT, SUM_SELECT_SCAN, SUM_NO_INDEX_USED FROM performance_schema.prepared_statements_instances ORDER BY STATEMENT_NAME, SQL_TEXT
|
||||||
--let $psi_truncate = TRUNCATE TABLE performance_schema.prepared_statements_instances
|
--let $psi_truncate = TRUNCATE TABLE performance_schema.prepared_statements_instances
|
||||||
--let $eshl_select = SELECT EVENT_NAME, SQL_TEXT, OBJECT_TYPE, OBJECT_SCHEMA, OBJECT_NAME FROM performance_schema.events_statements_history_long WHERE CURRENT_SCHEMA='db'
|
--let $eshl_select = SELECT EVENT_NAME, SQL_TEXT, OBJECT_TYPE, OBJECT_SCHEMA, OBJECT_NAME FROM performance_schema.events_statements_history_long WHERE CURRENT_SCHEMA='db'
|
||||||
--let $eshl_truncate = TRUNCATE TABLE performance_schema.events_statements_history_long
|
--let $eshl_truncate = TRUNCATE TABLE performance_schema.events_statements_history_long
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
# Work around MDEV-29508
|
# Work around MDEV-29508
|
||||||
--source include/not_valgrind.inc
|
|
||||||
|
|
||||||
# Tests for PERFORMANCE_SCHEMA
|
# Tests for PERFORMANCE_SCHEMA
|
||||||
# Check server start for short server start options
|
# Check server start for short server start options
|
||||||
|
@ -1,3 +1,6 @@
|
|||||||
|
#
|
||||||
|
# MDEV-29458 Role grant commands do not propagate all grants
|
||||||
|
#
|
||||||
create user foo;
|
create user foo;
|
||||||
create database some_db;
|
create database some_db;
|
||||||
create table some_db.t1 (a int, b int, secret int);
|
create table some_db.t1 (a int, b int, secret int);
|
||||||
@ -134,3 +137,31 @@ grant select(user) on mysql.user to test_role2;
|
|||||||
drop role test_role1, test_role2;
|
drop role test_role1, test_role2;
|
||||||
create role test_role1;
|
create role test_role1;
|
||||||
drop role test_role1;
|
drop role test_role1;
|
||||||
|
#
|
||||||
|
# MDEV-29851 Cached role privileges are not invalidated when needed
|
||||||
|
#
|
||||||
|
create role admin;
|
||||||
|
create role student;
|
||||||
|
create database crm;
|
||||||
|
grant create on crm.* to admin;
|
||||||
|
grant select on crm.* to student;
|
||||||
|
create user intern@localhost;
|
||||||
|
grant student to intern@localhost;
|
||||||
|
set default role student for intern@localhost;
|
||||||
|
connect con1, localhost, intern;
|
||||||
|
use crm;
|
||||||
|
disconnect con1;
|
||||||
|
connection default;
|
||||||
|
grant admin to student;
|
||||||
|
connect con1, localhost, intern;
|
||||||
|
use crm;
|
||||||
|
create table t1 (a int);
|
||||||
|
disconnect con1;
|
||||||
|
connection default;
|
||||||
|
drop user intern@localhost;
|
||||||
|
drop role student;
|
||||||
|
drop role admin;
|
||||||
|
drop database crm;
|
||||||
|
#
|
||||||
|
# End of 10.3 tests
|
||||||
|
#
|
@ -1,5 +1,9 @@
|
|||||||
--source include/not_embedded.inc
|
--source include/not_embedded.inc
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-29458 Role grant commands do not propagate all grants
|
||||||
|
--echo #
|
||||||
|
|
||||||
create user foo;
|
create user foo;
|
||||||
create database some_db;
|
create database some_db;
|
||||||
create table some_db.t1 (a int, b int, secret int);
|
create table some_db.t1 (a int, b int, secret int);
|
||||||
@ -161,3 +165,37 @@ drop role test_role1, test_role2;
|
|||||||
|
|
||||||
create role test_role1;
|
create role test_role1;
|
||||||
drop role test_role1;
|
drop role test_role1;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-29851 Cached role privileges are not invalidated when needed
|
||||||
|
--echo #
|
||||||
|
create role admin;
|
||||||
|
create role student;
|
||||||
|
create database crm;
|
||||||
|
grant create on crm.* to admin;
|
||||||
|
grant select on crm.* to student;
|
||||||
|
create user intern@localhost;
|
||||||
|
grant student to intern@localhost;
|
||||||
|
set default role student for intern@localhost;
|
||||||
|
|
||||||
|
connect con1, localhost, intern;
|
||||||
|
use crm;
|
||||||
|
disconnect con1;
|
||||||
|
|
||||||
|
connection default;
|
||||||
|
grant admin to student;
|
||||||
|
|
||||||
|
connect con1, localhost, intern;
|
||||||
|
use crm;
|
||||||
|
create table t1 (a int);
|
||||||
|
disconnect con1;
|
||||||
|
|
||||||
|
connection default;
|
||||||
|
drop user intern@localhost;
|
||||||
|
drop role student;
|
||||||
|
drop role admin;
|
||||||
|
drop database crm;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # End of 10.3 tests
|
||||||
|
--echo #
|
@ -193,3 +193,105 @@ INSERT INTO t1 () values ();
|
|||||||
EXECUTE stmt;
|
EXECUTE stmt;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
DROP SEQUENCE s;
|
DROP SEQUENCE s;
|
||||||
|
#
|
||||||
|
# MDEV-29540 Incorrect sequence values in INSERT SELECT
|
||||||
|
#
|
||||||
|
CREATE SEQUENCE s1;
|
||||||
|
CREATE TABLE t1 (
|
||||||
|
a BIGINT UNSIGNED NOT NULL PRIMARY KEY
|
||||||
|
DEFAULT (NEXT VALUE FOR s1),
|
||||||
|
b CHAR(1) NOT NULL
|
||||||
|
);
|
||||||
|
INSERT INTO t1 (b) VALUES ('a');
|
||||||
|
INSERT INTO t1 (b) VALUES ('b'), ('c');
|
||||||
|
INSERT INTO t1 (b) VALUES ('d');
|
||||||
|
INSERT INTO t1 (b) SELECT c FROM (
|
||||||
|
SELECT 'e' as c
|
||||||
|
UNION
|
||||||
|
SELECT 'f'
|
||||||
|
UNION
|
||||||
|
SELECT 'g'
|
||||||
|
) der;
|
||||||
|
SELECT a, b FROM t1;
|
||||||
|
a b
|
||||||
|
1 a
|
||||||
|
2 b
|
||||||
|
3 c
|
||||||
|
4 d
|
||||||
|
5 e
|
||||||
|
6 f
|
||||||
|
7 g
|
||||||
|
ALTER SEQUENCE s1 RESTART;
|
||||||
|
INSERT INTO t1 (b) SELECT c FROM (
|
||||||
|
SELECT 'a' as c
|
||||||
|
UNION
|
||||||
|
SELECT 'b'
|
||||||
|
UNION
|
||||||
|
SELECT 'c'
|
||||||
|
UNION
|
||||||
|
SELECT 'd'
|
||||||
|
UNION
|
||||||
|
SELECT 'e'
|
||||||
|
UNION
|
||||||
|
SELECT 'f'
|
||||||
|
UNION
|
||||||
|
SELECT 'g'
|
||||||
|
) der;
|
||||||
|
ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
|
||||||
|
ALTER SEQUENCE s1 RESTART;
|
||||||
|
INSERT IGNORE INTO t1 (b) SELECT c FROM (
|
||||||
|
SELECT 'a' as c
|
||||||
|
UNION
|
||||||
|
SELECT 'b'
|
||||||
|
UNION
|
||||||
|
SELECT 'c'
|
||||||
|
UNION
|
||||||
|
SELECT 'd'
|
||||||
|
UNION
|
||||||
|
SELECT 'e'
|
||||||
|
UNION
|
||||||
|
SELECT 'f'
|
||||||
|
UNION
|
||||||
|
SELECT 'g'
|
||||||
|
) der;
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '1' for key 'PRIMARY'
|
||||||
|
Warning 1062 Duplicate entry '2' for key 'PRIMARY'
|
||||||
|
Warning 1062 Duplicate entry '3' for key 'PRIMARY'
|
||||||
|
Warning 1062 Duplicate entry '4' for key 'PRIMARY'
|
||||||
|
Warning 1062 Duplicate entry '5' for key 'PRIMARY'
|
||||||
|
Warning 1062 Duplicate entry '6' for key 'PRIMARY'
|
||||||
|
Warning 1062 Duplicate entry '7' for key 'PRIMARY'
|
||||||
|
SELECT a, b FROM t1;
|
||||||
|
a b
|
||||||
|
1 a
|
||||||
|
2 b
|
||||||
|
3 c
|
||||||
|
4 d
|
||||||
|
5 e
|
||||||
|
6 f
|
||||||
|
7 g
|
||||||
|
INSERT IGNORE INTO t1 (b) SELECT c FROM (
|
||||||
|
SELECT 'h' as c
|
||||||
|
UNION
|
||||||
|
SELECT 'i'
|
||||||
|
UNION
|
||||||
|
SELECT 'j'
|
||||||
|
) der;
|
||||||
|
SELECT a, b FROM t1;
|
||||||
|
a b
|
||||||
|
1 a
|
||||||
|
2 b
|
||||||
|
3 c
|
||||||
|
4 d
|
||||||
|
5 e
|
||||||
|
6 f
|
||||||
|
7 g
|
||||||
|
8 h
|
||||||
|
9 i
|
||||||
|
10 j
|
||||||
|
DROP TABLE t1;
|
||||||
|
DROP SEQUENCE s1;
|
||||||
|
#
|
||||||
|
# End of 10.3 tests
|
||||||
|
#
|
||||||
|
@ -135,3 +135,83 @@ EXECUTE stmt;
|
|||||||
# Cleanup
|
# Cleanup
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
DROP SEQUENCE s;
|
DROP SEQUENCE s;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-29540 Incorrect sequence values in INSERT SELECT
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
CREATE SEQUENCE s1;
|
||||||
|
CREATE TABLE t1 (
|
||||||
|
a BIGINT UNSIGNED NOT NULL PRIMARY KEY
|
||||||
|
DEFAULT (NEXT VALUE FOR s1),
|
||||||
|
b CHAR(1) NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
INSERT INTO t1 (b) VALUES ('a');
|
||||||
|
INSERT INTO t1 (b) VALUES ('b'), ('c');
|
||||||
|
INSERT INTO t1 (b) VALUES ('d');
|
||||||
|
INSERT INTO t1 (b) SELECT c FROM (
|
||||||
|
SELECT 'e' as c
|
||||||
|
UNION
|
||||||
|
SELECT 'f'
|
||||||
|
UNION
|
||||||
|
SELECT 'g'
|
||||||
|
) der;
|
||||||
|
|
||||||
|
SELECT a, b FROM t1;
|
||||||
|
|
||||||
|
ALTER SEQUENCE s1 RESTART;
|
||||||
|
|
||||||
|
--error ER_DUP_ENTRY
|
||||||
|
INSERT INTO t1 (b) SELECT c FROM (
|
||||||
|
SELECT 'a' as c
|
||||||
|
UNION
|
||||||
|
SELECT 'b'
|
||||||
|
UNION
|
||||||
|
SELECT 'c'
|
||||||
|
UNION
|
||||||
|
SELECT 'd'
|
||||||
|
UNION
|
||||||
|
SELECT 'e'
|
||||||
|
UNION
|
||||||
|
SELECT 'f'
|
||||||
|
UNION
|
||||||
|
SELECT 'g'
|
||||||
|
) der;
|
||||||
|
|
||||||
|
ALTER SEQUENCE s1 RESTART;
|
||||||
|
|
||||||
|
INSERT IGNORE INTO t1 (b) SELECT c FROM (
|
||||||
|
SELECT 'a' as c
|
||||||
|
UNION
|
||||||
|
SELECT 'b'
|
||||||
|
UNION
|
||||||
|
SELECT 'c'
|
||||||
|
UNION
|
||||||
|
SELECT 'd'
|
||||||
|
UNION
|
||||||
|
SELECT 'e'
|
||||||
|
UNION
|
||||||
|
SELECT 'f'
|
||||||
|
UNION
|
||||||
|
SELECT 'g'
|
||||||
|
) der;
|
||||||
|
|
||||||
|
SELECT a, b FROM t1;
|
||||||
|
|
||||||
|
INSERT IGNORE INTO t1 (b) SELECT c FROM (
|
||||||
|
SELECT 'h' as c
|
||||||
|
UNION
|
||||||
|
SELECT 'i'
|
||||||
|
UNION
|
||||||
|
SELECT 'j'
|
||||||
|
) der;
|
||||||
|
|
||||||
|
SELECT a, b FROM t1;
|
||||||
|
|
||||||
|
DROP TABLE t1;
|
||||||
|
DROP SEQUENCE s1;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # End of 10.3 tests
|
||||||
|
--echo #
|
||||||
|
@ -55,5 +55,5 @@ INSERT INTO `t1` VALUES
|
|||||||
(2),
|
(2),
|
||||||
(3);
|
(3);
|
||||||
#MYSQL_DUMP --compact --as-of="1990-08-04 00:00' where 'abc" test 2>&1
|
#MYSQL_DUMP --compact --as-of="1990-08-04 00:00' where 'abc" test 2>&1
|
||||||
mysqldump: Incorrect DATETIME value: '1990-08-04 00:00' where 'abc'
|
mariadb-dump: Incorrect DATETIME value: '1990-08-04 00:00' where 'abc'
|
||||||
drop tables t1;
|
drop tables t1;
|
||||||
|
27
mysql-test/suite/versioning/r/misc.result
Normal file
27
mysql-test/suite/versioning/r/misc.result
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
set time_zone='+00:00';
|
||||||
|
#
|
||||||
|
# MDEV-29750 triggers can modify history
|
||||||
|
#
|
||||||
|
set sql_mode='', timestamp=unix_timestamp('2010-10-10 10:10:10');
|
||||||
|
create table t (a int, b int as (a+1), s timestamp(6) as row start, e timestamp(6) as row end, period for system_time(s,e)) with system versioning;
|
||||||
|
insert into t values (1,1, '2022-01-01','2023-01-01'),(2,2, '2022-02-02','2023-02-02');
|
||||||
|
Warnings:
|
||||||
|
Warning 1906 The value specified for generated column 'b' in table 't' has been ignored
|
||||||
|
Warning 1906 The value specified for generated column 's' in table 't' has been ignored
|
||||||
|
Warning 1906 The value specified for generated column 'e' in table 't' has been ignored
|
||||||
|
Warning 1906 The value specified for generated column 'b' in table 't' has been ignored
|
||||||
|
Warning 1906 The value specified for generated column 's' in table 't' has been ignored
|
||||||
|
Warning 1906 The value specified for generated column 'e' in table 't' has been ignored
|
||||||
|
create trigger tr before insert on t for each row set new.b=1, new.s = '2022-03-03', new.e = '2023-03-03';
|
||||||
|
insert into t (a) values (3),(4);
|
||||||
|
select * from t for system_time all;
|
||||||
|
a b s e
|
||||||
|
1 2 2010-10-10 10:10:10.000000 2038-01-19 03:14:07.999999
|
||||||
|
2 3 2010-10-10 10:10:10.000000 2038-01-19 03:14:07.999999
|
||||||
|
3 4 2010-10-10 10:10:10.000000 2038-01-19 03:14:07.999999
|
||||||
|
4 5 2010-10-10 10:10:10.000000 2038-01-19 03:14:07.999999
|
||||||
|
drop table t;
|
||||||
|
set sql_mode=default, timestamp=default;
|
||||||
|
#
|
||||||
|
# End of 10.3 tests
|
||||||
|
#
|
@ -1537,6 +1537,108 @@ create trigger tr before insert on t for each row update tcount set c = c + 1;
|
|||||||
insert into t select * from t;
|
insert into t select * from t;
|
||||||
drop table tcount, t;
|
drop table tcount, t;
|
||||||
#
|
#
|
||||||
|
# MDEV-19569 Assertion `table_list->table' failed in find_field_in_table_ref and Assertion `table_ref->table || table_ref->view' in Field_iterator_table_ref::set_field_iterator
|
||||||
|
#
|
||||||
|
set timestamp=unix_timestamp('2000-01-01 00:00:00');
|
||||||
|
create table t1 (i int);
|
||||||
|
create table t2 (i int);
|
||||||
|
alter table t1 partition by system_time
|
||||||
|
interval (select i from t2) day (partition p1 history, partition pn current);
|
||||||
|
ERROR 42000: INTERVAL does not support subqueries or stored functions
|
||||||
|
drop table t1;
|
||||||
|
create table t1 (id int) with system versioning
|
||||||
|
partition by system_time
|
||||||
|
interval (select i from t2) day (partition p1 history, partition pn current);
|
||||||
|
ERROR 42000: INTERVAL does not support subqueries or stored functions
|
||||||
|
create table t1 (id int) with system versioning
|
||||||
|
partition by system_time
|
||||||
|
interval "hello" day (partition p1 history, partition pn current);
|
||||||
|
ERROR HY000: Wrong parameters for partitioned `t1`: wrong value for 'INTERVAL'
|
||||||
|
create table t1 (id int) with system versioning
|
||||||
|
partition by system_time
|
||||||
|
interval 3.893 day (partition p1 history, partition pn current);
|
||||||
|
drop table t1, t2;
|
||||||
|
create table t1 (id int) with system versioning
|
||||||
|
partition by system_time interval "3-11" year_month (partition p1 history, partition pn current);
|
||||||
|
show create table t1;
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`id` int(11) DEFAULT NULL
|
||||||
|
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci WITH SYSTEM VERSIONING
|
||||||
|
PARTITION BY SYSTEM_TIME INTERVAL '3-11' YEAR_MONTH STARTS TIMESTAMP'2000-01-01 00:00:00'
|
||||||
|
(PARTITION `p1` HISTORY ENGINE = DEFAULT_ENGINE,
|
||||||
|
PARTITION `pn` CURRENT ENGINE = DEFAULT_ENGINE)
|
||||||
|
drop table t1;
|
||||||
|
create table t1 (id int) with system versioning
|
||||||
|
partition by system_time interval "3 11" day_hour (partition p1 history, partition pn current);
|
||||||
|
show create table t1;
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`id` int(11) DEFAULT NULL
|
||||||
|
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci WITH SYSTEM VERSIONING
|
||||||
|
PARTITION BY SYSTEM_TIME INTERVAL '3 11' DAY_HOUR STARTS TIMESTAMP'2000-01-01 00:00:00'
|
||||||
|
(PARTITION `p1` HISTORY ENGINE = DEFAULT_ENGINE,
|
||||||
|
PARTITION `pn` CURRENT ENGINE = DEFAULT_ENGINE)
|
||||||
|
drop table t1;
|
||||||
|
create table t1 (id int) with system versioning
|
||||||
|
partition by system_time interval "3 11:12" day_minute (partition p1 history, partition pn current);
|
||||||
|
show create table t1;
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`id` int(11) DEFAULT NULL
|
||||||
|
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci WITH SYSTEM VERSIONING
|
||||||
|
PARTITION BY SYSTEM_TIME INTERVAL '3 11:12' DAY_MINUTE STARTS TIMESTAMP'2000-01-01 00:00:00'
|
||||||
|
(PARTITION `p1` HISTORY ENGINE = DEFAULT_ENGINE,
|
||||||
|
PARTITION `pn` CURRENT ENGINE = DEFAULT_ENGINE)
|
||||||
|
drop table t1;
|
||||||
|
create table t1 (id int) with system versioning
|
||||||
|
partition by system_time interval "3 11:12:13" day_second (partition p1 history, partition pn current);
|
||||||
|
show create table t1;
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`id` int(11) DEFAULT NULL
|
||||||
|
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci WITH SYSTEM VERSIONING
|
||||||
|
PARTITION BY SYSTEM_TIME INTERVAL '3 11:12:13' DAY_SECOND STARTS TIMESTAMP'2000-01-01 00:00:00'
|
||||||
|
(PARTITION `p1` HISTORY ENGINE = DEFAULT_ENGINE,
|
||||||
|
PARTITION `pn` CURRENT ENGINE = DEFAULT_ENGINE)
|
||||||
|
drop table t1;
|
||||||
|
create table t1 (id int) with system versioning
|
||||||
|
partition by system_time interval "11:12" hour_minute (partition p1 history, partition pn current);
|
||||||
|
show create table t1;
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`id` int(11) DEFAULT NULL
|
||||||
|
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci WITH SYSTEM VERSIONING
|
||||||
|
PARTITION BY SYSTEM_TIME INTERVAL '11:12' HOUR_MINUTE STARTS TIMESTAMP'2000-01-01 00:00:00'
|
||||||
|
(PARTITION `p1` HISTORY ENGINE = DEFAULT_ENGINE,
|
||||||
|
PARTITION `pn` CURRENT ENGINE = DEFAULT_ENGINE)
|
||||||
|
drop table t1;
|
||||||
|
create table t1 (id int) with system versioning
|
||||||
|
partition by system_time interval "11:12:13" hour_second (partition p1 history, partition pn current);
|
||||||
|
show create table t1;
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`id` int(11) DEFAULT NULL
|
||||||
|
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci WITH SYSTEM VERSIONING
|
||||||
|
PARTITION BY SYSTEM_TIME INTERVAL '11:12:13' HOUR_SECOND STARTS TIMESTAMP'2000-01-01 00:00:00'
|
||||||
|
(PARTITION `p1` HISTORY ENGINE = DEFAULT_ENGINE,
|
||||||
|
PARTITION `pn` CURRENT ENGINE = DEFAULT_ENGINE)
|
||||||
|
drop table t1;
|
||||||
|
create table t1 (id int) with system versioning
|
||||||
|
partition by system_time interval "12:13" minute_second (partition p1 history, partition pn current);
|
||||||
|
show create table t1;
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`id` int(11) DEFAULT NULL
|
||||||
|
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci WITH SYSTEM VERSIONING
|
||||||
|
PARTITION BY SYSTEM_TIME INTERVAL '12:13' MINUTE_SECOND STARTS TIMESTAMP'2000-01-01 00:00:00'
|
||||||
|
(PARTITION `p1` HISTORY ENGINE = DEFAULT_ENGINE,
|
||||||
|
PARTITION `pn` CURRENT ENGINE = DEFAULT_ENGINE)
|
||||||
|
drop table t1;
|
||||||
|
create table t1 (id int) with system versioning
|
||||||
|
partition by system_time interval "12:13.123" minute_microsecond (partition p1 history, partition pn current);
|
||||||
|
ERROR HY000: Wrong parameters for partitioned `t1`: wrong value for 'INTERVAL'
|
||||||
|
#
|
||||||
# End of 10.3 tests
|
# End of 10.3 tests
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
|
20
mysql-test/suite/versioning/t/misc.test
Normal file
20
mysql-test/suite/versioning/t/misc.test
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
#
|
||||||
|
# simple tests that don't need to be run in multiple various combinations
|
||||||
|
#
|
||||||
|
set time_zone='+00:00';
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-29750 triggers can modify history
|
||||||
|
--echo #
|
||||||
|
set sql_mode='', timestamp=unix_timestamp('2010-10-10 10:10:10');
|
||||||
|
create table t (a int, b int as (a+1), s timestamp(6) as row start, e timestamp(6) as row end, period for system_time(s,e)) with system versioning;
|
||||||
|
insert into t values (1,1, '2022-01-01','2023-01-01'),(2,2, '2022-02-02','2023-02-02');
|
||||||
|
create trigger tr before insert on t for each row set new.b=1, new.s = '2022-03-03', new.e = '2023-03-03';
|
||||||
|
insert into t (a) values (3),(4);
|
||||||
|
select * from t for system_time all;
|
||||||
|
drop table t;
|
||||||
|
set sql_mode=default, timestamp=default;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # End of 10.3 tests
|
||||||
|
--echo #
|
@ -1387,6 +1387,81 @@ insert into t select * from t;
|
|||||||
# cleanup
|
# cleanup
|
||||||
drop table tcount, t;
|
drop table tcount, t;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-19569 Assertion `table_list->table' failed in find_field_in_table_ref and Assertion `table_ref->table || table_ref->view' in Field_iterator_table_ref::set_field_iterator
|
||||||
|
--echo #
|
||||||
|
set timestamp=unix_timestamp('2000-01-01 00:00:00');
|
||||||
|
create table t1 (i int);
|
||||||
|
create table t2 (i int);
|
||||||
|
|
||||||
|
--error ER_SUBQUERIES_NOT_SUPPORTED
|
||||||
|
alter table t1 partition by system_time
|
||||||
|
interval (select i from t2) day (partition p1 history, partition pn current);
|
||||||
|
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
|
--error ER_SUBQUERIES_NOT_SUPPORTED
|
||||||
|
create table t1 (id int) with system versioning
|
||||||
|
partition by system_time
|
||||||
|
interval (select i from t2) day (partition p1 history, partition pn current);
|
||||||
|
|
||||||
|
--error ER_PART_WRONG_VALUE
|
||||||
|
create table t1 (id int) with system versioning
|
||||||
|
partition by system_time
|
||||||
|
interval "hello" day (partition p1 history, partition pn current);
|
||||||
|
|
||||||
|
create table t1 (id int) with system versioning
|
||||||
|
partition by system_time
|
||||||
|
interval 3.893 day (partition p1 history, partition pn current);
|
||||||
|
|
||||||
|
drop table t1, t2;
|
||||||
|
|
||||||
|
create table t1 (id int) with system versioning
|
||||||
|
partition by system_time interval "3-11" year_month (partition p1 history, partition pn current);
|
||||||
|
--replace_result $default_engine DEFAULT_ENGINE
|
||||||
|
show create table t1;
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
|
create table t1 (id int) with system versioning
|
||||||
|
partition by system_time interval "3 11" day_hour (partition p1 history, partition pn current);
|
||||||
|
--replace_result $default_engine DEFAULT_ENGINE
|
||||||
|
show create table t1;
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
|
create table t1 (id int) with system versioning
|
||||||
|
partition by system_time interval "3 11:12" day_minute (partition p1 history, partition pn current);
|
||||||
|
--replace_result $default_engine DEFAULT_ENGINE
|
||||||
|
show create table t1;
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
|
create table t1 (id int) with system versioning
|
||||||
|
partition by system_time interval "3 11:12:13" day_second (partition p1 history, partition pn current);
|
||||||
|
--replace_result $default_engine DEFAULT_ENGINE
|
||||||
|
show create table t1;
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
|
create table t1 (id int) with system versioning
|
||||||
|
partition by system_time interval "11:12" hour_minute (partition p1 history, partition pn current);
|
||||||
|
--replace_result $default_engine DEFAULT_ENGINE
|
||||||
|
show create table t1;
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
|
create table t1 (id int) with system versioning
|
||||||
|
partition by system_time interval "11:12:13" hour_second (partition p1 history, partition pn current);
|
||||||
|
--replace_result $default_engine DEFAULT_ENGINE
|
||||||
|
show create table t1;
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
|
create table t1 (id int) with system versioning
|
||||||
|
partition by system_time interval "12:13" minute_second (partition p1 history, partition pn current);
|
||||||
|
--replace_result $default_engine DEFAULT_ENGINE
|
||||||
|
show create table t1;
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
|
--error ER_PART_WRONG_VALUE
|
||||||
|
create table t1 (id int) with system versioning
|
||||||
|
partition by system_time interval "12:13.123" minute_microsecond (partition p1 history, partition pn current);
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
--echo # End of 10.3 tests
|
--echo # End of 10.3 tests
|
||||||
--echo #
|
--echo #
|
||||||
|
@ -261,7 +261,6 @@ int sigwait(sigset_t *setp, int *sigp)
|
|||||||
pthread_attr_init(&thr_attr);
|
pthread_attr_init(&thr_attr);
|
||||||
pthread_attr_setscope(&thr_attr,PTHREAD_SCOPE_PROCESS);
|
pthread_attr_setscope(&thr_attr,PTHREAD_SCOPE_PROCESS);
|
||||||
pthread_attr_setdetachstate(&thr_attr,PTHREAD_CREATE_DETACHED);
|
pthread_attr_setdetachstate(&thr_attr,PTHREAD_CREATE_DETACHED);
|
||||||
pthread_attr_setstacksize(&thr_attr,8196);
|
|
||||||
pthread_create(&sigwait_thread_id, &thr_attr, sigwait_thread, setp);
|
pthread_create(&sigwait_thread_id, &thr_attr, sigwait_thread, setp);
|
||||||
pthread_attr_destroy(&thr_attr);
|
pthread_attr_destroy(&thr_attr);
|
||||||
}
|
}
|
||||||
|
@ -106,7 +106,6 @@ void init_thr_alarm(uint max_alarms)
|
|||||||
pthread_attr_init(&thr_attr);
|
pthread_attr_init(&thr_attr);
|
||||||
pthread_attr_setscope(&thr_attr,PTHREAD_SCOPE_PROCESS);
|
pthread_attr_setscope(&thr_attr,PTHREAD_SCOPE_PROCESS);
|
||||||
pthread_attr_setdetachstate(&thr_attr,PTHREAD_CREATE_DETACHED);
|
pthread_attr_setdetachstate(&thr_attr,PTHREAD_CREATE_DETACHED);
|
||||||
pthread_attr_setstacksize(&thr_attr,8196);
|
|
||||||
mysql_thread_create(key_thread_alarm,
|
mysql_thread_create(key_thread_alarm,
|
||||||
&alarm_thread, &thr_attr, alarm_handler, NULL);
|
&alarm_thread, &thr_attr, alarm_handler, NULL);
|
||||||
pthread_attr_destroy(&thr_attr);
|
pthread_attr_destroy(&thr_attr);
|
||||||
|
@ -13,10 +13,10 @@
|
|||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */
|
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */
|
||||||
|
|
||||||
|
#include <my_global.h>
|
||||||
#include <mysql/plugin_password_validation.h>
|
#include <mysql/plugin_password_validation.h>
|
||||||
#include <crack.h>
|
#include <crack.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <alloca.h>
|
|
||||||
#include <mysqld_error.h>
|
#include <mysqld_error.h>
|
||||||
|
|
||||||
static char *dictionary;
|
static char *dictionary;
|
||||||
|
@ -102,7 +102,6 @@ static COND* make_cond(THD *thd, TABLE_LIST *tables, LEX_STRING *filter)
|
|||||||
if (!filter->str || !nrc)
|
if (!filter->str || !nrc)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
nrc->init();
|
|
||||||
nrc->resolve_in_table_list_only(tables);
|
nrc->resolve_in_table_list_only(tables);
|
||||||
nrc->select_lex= tables->select_lex;
|
nrc->select_lex= tables->select_lex;
|
||||||
|
|
||||||
|
@ -162,19 +162,28 @@ bool Parser::read_filekey(const char *filekey, char *secret)
|
|||||||
int f= open(filekey, O_RDONLY|O_BINARY);
|
int f= open(filekey, O_RDONLY|O_BINARY);
|
||||||
if (f == -1)
|
if (f == -1)
|
||||||
{
|
{
|
||||||
my_error(EE_FILENOTFOUND,ME_ERROR_LOG, filekey, errno);
|
my_error(EE_FILENOTFOUND, ME_ERROR_LOG, filekey, errno);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int len= read(f, secret, MAX_SECRET_SIZE);
|
int len= read(f, secret, MAX_SECRET_SIZE + 1);
|
||||||
if (len <= 0)
|
if (len <= 0)
|
||||||
{
|
{
|
||||||
my_error(EE_READ,ME_ERROR_LOG, filekey, errno);
|
my_error(EE_READ, ME_ERROR_LOG, filekey, errno);
|
||||||
close(f);
|
close(f);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
close(f);
|
close(f);
|
||||||
|
|
||||||
while (secret[len - 1] == '\r' || secret[len - 1] == '\n') len--;
|
while (secret[len - 1] == '\r' || secret[len - 1] == '\n') len--;
|
||||||
|
if (len > MAX_SECRET_SIZE)
|
||||||
|
{
|
||||||
|
my_printf_error(EE_READ,
|
||||||
|
"Cannot read %s, the filekey is too long, "
|
||||||
|
"max secret size is %dB ",
|
||||||
|
ME_ERROR_LOG, filekey, MAX_SECRET_SIZE);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
secret[len]= '\0';
|
secret[len]= '\0';
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -4929,32 +4929,17 @@ int handler::ha_check(THD *thd, HA_CHECK_OPT *check_opt)
|
|||||||
DBUG_ASSERT(table_share->tmp_table != NO_TMP_TABLE ||
|
DBUG_ASSERT(table_share->tmp_table != NO_TMP_TABLE ||
|
||||||
m_lock_type != F_UNLCK);
|
m_lock_type != F_UNLCK);
|
||||||
|
|
||||||
const ulong v= table->s->mysql_version;
|
if ((table->s->mysql_version >= MYSQL_VERSION_ID) &&
|
||||||
|
|
||||||
if ((v >= MYSQL_VERSION_ID) &&
|
|
||||||
(check_opt->sql_flags & TT_FOR_UPGRADE))
|
(check_opt->sql_flags & TT_FOR_UPGRADE))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (v < MYSQL_VERSION_ID)
|
if (table->s->mysql_version < MYSQL_VERSION_ID)
|
||||||
{
|
{
|
||||||
if (unlikely((error= check_old_types())))
|
if (unlikely((error= check_old_types())))
|
||||||
return error;
|
return error;
|
||||||
error= ha_check_for_upgrade(check_opt);
|
error= ha_check_for_upgrade(check_opt);
|
||||||
if (unlikely(error && (error != HA_ADMIN_NEEDS_CHECK)))
|
if (unlikely(error && (error != HA_ADMIN_NEEDS_CHECK)))
|
||||||
return error;
|
return error;
|
||||||
if (table->s->table_category == TABLE_CATEGORY_USER &&
|
|
||||||
(v < 100142 ||
|
|
||||||
(v >= 100200 && v < 100228) ||
|
|
||||||
(v >= 100300 && v < 100319) ||
|
|
||||||
(v >= 100400 && v < 100409)))
|
|
||||||
{
|
|
||||||
for (const KEY *key= table->key_info,
|
|
||||||
*end= table->key_info + table->s->keys; key < end; key++)
|
|
||||||
{
|
|
||||||
if (key->flags & HA_BINARY_PACK_KEY && key->flags & HA_VAR_LENGTH_KEY)
|
|
||||||
return HA_ADMIN_NEEDS_UPGRADE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (unlikely(!error && (check_opt->sql_flags & TT_FOR_UPGRADE)))
|
if (unlikely(!error && (check_opt->sql_flags & TT_FOR_UPGRADE)))
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -3597,11 +3597,6 @@ void Item_field::fix_after_pullout(st_select_lex *new_parent, Item **ref,
|
|||||||
/* just pull to the upper context */
|
/* just pull to the upper context */
|
||||||
ctx->outer_context= context->outer_context->outer_context;
|
ctx->outer_context= context->outer_context->outer_context;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
/* No upper context (merging Derived/VIEW where context chain ends) */
|
|
||||||
ctx->outer_context= NULL;
|
|
||||||
}
|
|
||||||
ctx->table_list= context->first_name_resolution_table;
|
ctx->table_list= context->first_name_resolution_table;
|
||||||
ctx->select_lex= new_parent;
|
ctx->select_lex= new_parent;
|
||||||
if (context->select_lex == NULL)
|
if (context->select_lex == NULL)
|
||||||
@ -9898,6 +9893,8 @@ bool Item_trigger_field::set_value(THD *thd, sp_rcontext * /*ctx*/, Item **it)
|
|||||||
Item *item= thd->sp_fix_func_item_for_assignment(field, it);
|
Item *item= thd->sp_fix_func_item_for_assignment(field, it);
|
||||||
if (!item)
|
if (!item)
|
||||||
return true;
|
return true;
|
||||||
|
if (field->vers_sys_field())
|
||||||
|
return false;
|
||||||
|
|
||||||
// NOTE: field->table->copy_blobs should be false here, but let's
|
// NOTE: field->table->copy_blobs should be false here, but let's
|
||||||
// remember the value at runtime to avoid subtle bugs.
|
// remember the value at runtime to avoid subtle bugs.
|
||||||
|
48
sql/item.h
48
sql/item.h
@ -214,7 +214,7 @@ struct Name_resolution_context: Sql_alloc
|
|||||||
The name resolution context to search in when an Item cannot be
|
The name resolution context to search in when an Item cannot be
|
||||||
resolved in this context (the context of an outer select)
|
resolved in this context (the context of an outer select)
|
||||||
*/
|
*/
|
||||||
Name_resolution_context *outer_context;
|
Name_resolution_context *outer_context= nullptr;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
List of tables used to resolve the items of this context. Usually these
|
List of tables used to resolve the items of this context. Usually these
|
||||||
@ -224,7 +224,7 @@ struct Name_resolution_context: Sql_alloc
|
|||||||
statements we have to change this member dynamically to ensure correct
|
statements we have to change this member dynamically to ensure correct
|
||||||
name resolution of different parts of the statement.
|
name resolution of different parts of the statement.
|
||||||
*/
|
*/
|
||||||
TABLE_LIST *table_list;
|
TABLE_LIST *table_list= nullptr;
|
||||||
/*
|
/*
|
||||||
In most cases the two table references below replace 'table_list' above
|
In most cases the two table references below replace 'table_list' above
|
||||||
for the purpose of name resolution. The first and last name resolution
|
for the purpose of name resolution. The first and last name resolution
|
||||||
@ -232,62 +232,65 @@ struct Name_resolution_context: Sql_alloc
|
|||||||
join tree in a FROM clause. This is needed for NATURAL JOIN, JOIN ... USING
|
join tree in a FROM clause. This is needed for NATURAL JOIN, JOIN ... USING
|
||||||
and JOIN ... ON.
|
and JOIN ... ON.
|
||||||
*/
|
*/
|
||||||
TABLE_LIST *first_name_resolution_table;
|
TABLE_LIST *first_name_resolution_table= nullptr;
|
||||||
/*
|
/*
|
||||||
Last table to search in the list of leaf table references that begins
|
Last table to search in the list of leaf table references that begins
|
||||||
with first_name_resolution_table.
|
with first_name_resolution_table.
|
||||||
*/
|
*/
|
||||||
TABLE_LIST *last_name_resolution_table;
|
TABLE_LIST *last_name_resolution_table= nullptr;
|
||||||
|
|
||||||
/* Cache first_name_resolution_table in setup_natural_join_row_types */
|
/* Cache first_name_resolution_table in setup_natural_join_row_types */
|
||||||
TABLE_LIST *natural_join_first_table;
|
TABLE_LIST *natural_join_first_table= nullptr;
|
||||||
/*
|
/*
|
||||||
SELECT_LEX item belong to, in case of merged VIEW it can differ from
|
SELECT_LEX item belong to, in case of merged VIEW it can differ from
|
||||||
SELECT_LEX where item was created, so we can't use table_list/field_list
|
SELECT_LEX where item was created, so we can't use table_list/field_list
|
||||||
from there
|
from there
|
||||||
*/
|
*/
|
||||||
st_select_lex *select_lex;
|
st_select_lex *select_lex= nullptr;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Processor of errors caused during Item name resolving, now used only to
|
Processor of errors caused during Item name resolving, now used only to
|
||||||
hide underlying tables in errors about views (i.e. it substitute some
|
hide underlying tables in errors about views (i.e. it substitute some
|
||||||
errors for views)
|
errors for views)
|
||||||
*/
|
*/
|
||||||
void (*error_processor)(THD *, void *);
|
void (*error_processor)(THD *, void *)= &dummy_error_processor;
|
||||||
void *error_processor_data;
|
void *error_processor_data= nullptr;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
When TRUE items are resolved in this context both against the
|
When TRUE items are resolved in this context both against the
|
||||||
SELECT list and this->table_list. If FALSE, items are resolved
|
SELECT list and this->table_list. If FALSE, items are resolved
|
||||||
only against this->table_list.
|
only against this->table_list.
|
||||||
*/
|
*/
|
||||||
bool resolve_in_select_list;
|
bool resolve_in_select_list= false;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Bitmap of tables that should be ignored when doing name resolution.
|
Bitmap of tables that should be ignored when doing name resolution.
|
||||||
Normally it is {0}. Non-zero values are used by table functions.
|
Normally it is {0}. Non-zero values are used by table functions.
|
||||||
*/
|
*/
|
||||||
ignored_tables_list_t ignored_tables;
|
ignored_tables_list_t ignored_tables= nullptr;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Security context of this name resolution context. It's used for views
|
Security context of this name resolution context. It's used for views
|
||||||
and is non-zero only if the view is defined with SQL SECURITY DEFINER.
|
and is non-zero only if the view is defined with SQL SECURITY DEFINER.
|
||||||
*/
|
*/
|
||||||
Security_context *security_ctx;
|
Security_context *security_ctx= nullptr;
|
||||||
|
|
||||||
Name_resolution_context()
|
Name_resolution_context() = default;
|
||||||
:outer_context(0), table_list(0), select_lex(0),
|
|
||||||
error_processor_data(0),
|
/**
|
||||||
ignored_tables(NULL),
|
Name resolution context with resolution in only one table
|
||||||
security_ctx(0)
|
*/
|
||||||
{}
|
Name_resolution_context(TABLE_LIST *table) :
|
||||||
|
first_name_resolution_table(table), last_name_resolution_table(table)
|
||||||
|
{}
|
||||||
|
|
||||||
void init()
|
void init()
|
||||||
{
|
{
|
||||||
resolve_in_select_list= FALSE;
|
resolve_in_select_list= FALSE;
|
||||||
error_processor= &dummy_error_processor;
|
error_processor= &dummy_error_processor;
|
||||||
first_name_resolution_table= NULL;
|
ignored_tables= nullptr;
|
||||||
last_name_resolution_table= NULL;
|
first_name_resolution_table= nullptr;
|
||||||
|
last_name_resolution_table= nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
void resolve_in_table_list_only(TABLE_LIST *tables)
|
void resolve_in_table_list_only(TABLE_LIST *tables)
|
||||||
@ -2119,6 +2122,11 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
virtual Item* transform(THD *thd, Item_transformer transformer, uchar *arg);
|
virtual Item* transform(THD *thd, Item_transformer transformer, uchar *arg);
|
||||||
|
virtual Item* top_level_transform(THD *thd, Item_transformer transformer,
|
||||||
|
uchar *arg)
|
||||||
|
{
|
||||||
|
return transform(thd, transformer, arg);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
This function performs a generic "compilation" of the Item tree.
|
This function performs a generic "compilation" of the Item tree.
|
||||||
@ -2488,6 +2496,8 @@ public:
|
|||||||
{ return this; }
|
{ return this; }
|
||||||
virtual Item *in_predicate_to_in_subs_transformer(THD *thd, uchar *arg)
|
virtual Item *in_predicate_to_in_subs_transformer(THD *thd, uchar *arg)
|
||||||
{ return this; }
|
{ return this; }
|
||||||
|
virtual Item *in_predicate_to_equality_transformer(THD *thd, uchar *arg)
|
||||||
|
{ return this; }
|
||||||
virtual Item *field_transformer_for_having_pushdown(THD *thd, uchar *arg)
|
virtual Item *field_transformer_for_having_pushdown(THD *thd, uchar *arg)
|
||||||
{ return this; }
|
{ return this; }
|
||||||
virtual Item *multiple_equality_transformer(THD *thd, uchar *arg)
|
virtual Item *multiple_equality_transformer(THD *thd, uchar *arg)
|
||||||
|
@ -35,6 +35,7 @@
|
|||||||
|
|
||||||
#define PCRE2_STATIC 1 /* Important on Windows */
|
#define PCRE2_STATIC 1 /* Important on Windows */
|
||||||
#include "pcre2.h" /* pcre2 header file */
|
#include "pcre2.h" /* pcre2 header file */
|
||||||
|
#include "my_json_writer.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Compare row signature of two expressions
|
Compare row signature of two expressions
|
||||||
@ -417,9 +418,18 @@ bool Item_func::setup_args_and_comparator(THD *thd, Arg_comparator *cmp)
|
|||||||
if (args[0]->cmp_type() == STRING_RESULT &&
|
if (args[0]->cmp_type() == STRING_RESULT &&
|
||||||
args[1]->cmp_type() == STRING_RESULT)
|
args[1]->cmp_type() == STRING_RESULT)
|
||||||
{
|
{
|
||||||
|
Query_arena *arena, backup;
|
||||||
|
arena= thd->activate_stmt_arena_if_needed(&backup);
|
||||||
|
|
||||||
DTCollation tmp;
|
DTCollation tmp;
|
||||||
if (agg_arg_charsets_for_comparison(tmp, args, 2))
|
bool ret= agg_arg_charsets_for_comparison(tmp, args, 2);
|
||||||
return true;
|
|
||||||
|
if (arena)
|
||||||
|
thd->restore_active_arena(arena, &backup);
|
||||||
|
|
||||||
|
if (ret)
|
||||||
|
return ret;
|
||||||
|
|
||||||
cmp->m_compare_collation= tmp.collation;
|
cmp->m_compare_collation= tmp.collation;
|
||||||
}
|
}
|
||||||
// Convert constants when compared to int/year field
|
// Convert constants when compared to int/year field
|
||||||
@ -4345,6 +4355,56 @@ Item_func_in::fix_fields(THD *thd, Item **ref)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Item *Item_func_in::in_predicate_to_equality_transformer(THD *thd, uchar *arg)
|
||||||
|
{
|
||||||
|
if (!array || have_null || !all_items_are_consts(args + 1, arg_count - 1))
|
||||||
|
return this; /* Transformation is not applicable */
|
||||||
|
|
||||||
|
/*
|
||||||
|
If all elements in the array of constant values are equal and there are
|
||||||
|
no NULLs in the list then clause
|
||||||
|
- "a IN (e1,..,en)" can be converted to "a = e1"
|
||||||
|
- "a NOT IN (e1,..,en)" can be converted to "a != e1".
|
||||||
|
This means an object of Item_func_in can be replaced with an object of
|
||||||
|
Item_func_eq for IN (e1,..,en) clause or Item_func_ne for
|
||||||
|
NOT IN (e1,...,en).
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
Since the array is sorted it's enough to compare the first and the last
|
||||||
|
elements to tell whether all elements are equal
|
||||||
|
*/
|
||||||
|
if (array->compare_elems(0, array->used_count - 1))
|
||||||
|
{
|
||||||
|
/* Not all elements are equal, transformation is not possible */
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
Json_writer_object trace_wrapper(thd);
|
||||||
|
trace_wrapper.add("transformation", "in_predicate_to_equality")
|
||||||
|
.add("before", this);
|
||||||
|
|
||||||
|
Item *new_item= nullptr;
|
||||||
|
if (negated)
|
||||||
|
new_item= new (thd->mem_root) Item_func_ne(thd, args[0], args[1]);
|
||||||
|
else
|
||||||
|
new_item= new (thd->mem_root) Item_func_eq(thd, args[0], args[1]);
|
||||||
|
if (new_item)
|
||||||
|
{
|
||||||
|
new_item->set_name(thd, name);
|
||||||
|
if (new_item->fix_fields(thd, &new_item))
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
If there are any problems during fixing fields, there is no need to
|
||||||
|
return an error, just discard the transformation
|
||||||
|
*/
|
||||||
|
new_item= this;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
trace_wrapper.add("after", new_item);
|
||||||
|
return new_item;
|
||||||
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
Item_func_in::eval_not_null_tables(void *opt_arg)
|
Item_func_in::eval_not_null_tables(void *opt_arg)
|
||||||
{
|
{
|
||||||
@ -5166,6 +5226,35 @@ Item *Item_cond::transform(THD *thd, Item_transformer transformer, uchar *arg)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Transform an Item_cond object with a transformer callback function.
|
||||||
|
|
||||||
|
This is like transform() but doesn't use change_item_tree(),
|
||||||
|
because top-level expression is stored in prep_where/prep_on anyway and
|
||||||
|
is restored from there, there is no need to use change_item_tree().
|
||||||
|
|
||||||
|
Furthermore, it can be actually harmful to use it, if build_equal_items()
|
||||||
|
had replaced Item_eq with Item_equal and deleted list_node with a pointer
|
||||||
|
to Item_eq. In this case rollback_item_tree_changes() would modify the
|
||||||
|
deleted list_node.
|
||||||
|
*/
|
||||||
|
Item *Item_cond::top_level_transform(THD *thd, Item_transformer transformer, uchar *arg)
|
||||||
|
{
|
||||||
|
DBUG_ASSERT(!thd->stmt_arena->is_stmt_prepare());
|
||||||
|
|
||||||
|
List_iterator<Item> li(list);
|
||||||
|
Item *item;
|
||||||
|
while ((item= li++))
|
||||||
|
{
|
||||||
|
Item *new_item= item->top_level_transform(thd, transformer, arg);
|
||||||
|
if (!new_item)
|
||||||
|
return 0;
|
||||||
|
*li.ref()= new_item;
|
||||||
|
}
|
||||||
|
return Item_func::transform(thd, transformer, arg);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Compile Item_cond object with a processor and a transformer
|
Compile Item_cond object with a processor and a transformer
|
||||||
callback functions.
|
callback functions.
|
||||||
|
@ -2620,6 +2620,7 @@ public:
|
|||||||
bool to_be_transformed_into_in_subq(THD *thd);
|
bool to_be_transformed_into_in_subq(THD *thd);
|
||||||
bool create_value_list_for_tvc(THD *thd, List< List<Item> > *values);
|
bool create_value_list_for_tvc(THD *thd, List< List<Item> > *values);
|
||||||
Item *in_predicate_to_in_subs_transformer(THD *thd, uchar *arg) override;
|
Item *in_predicate_to_in_subs_transformer(THD *thd, uchar *arg) override;
|
||||||
|
Item *in_predicate_to_equality_transformer(THD *thd, uchar *arg) override;
|
||||||
uint32 max_length_of_left_expr();
|
uint32 max_length_of_left_expr();
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -3179,6 +3180,7 @@ public:
|
|||||||
void copy_andor_arguments(THD *thd, Item_cond *item);
|
void copy_andor_arguments(THD *thd, Item_cond *item);
|
||||||
bool walk(Item_processor processor, bool walk_subquery, void *arg) override;
|
bool walk(Item_processor processor, bool walk_subquery, void *arg) override;
|
||||||
Item *transform(THD *thd, Item_transformer transformer, uchar *arg) override;
|
Item *transform(THD *thd, Item_transformer transformer, uchar *arg) override;
|
||||||
|
Item *top_level_transform(THD *thd, Item_transformer transformer, uchar *arg) override;
|
||||||
void traverse_cond(Cond_traverser, void *arg, traverse_order order) override;
|
void traverse_cond(Cond_traverser, void *arg, traverse_order order) override;
|
||||||
void neg_arguments(THD *thd);
|
void neg_arguments(THD *thd);
|
||||||
Item* propagate_equal_fields(THD *, const Context &, COND_EQUAL *) override;
|
Item* propagate_equal_fields(THD *, const Context &, COND_EQUAL *) override;
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user