mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
weave merge of mysql-5.1->mysql-5.1-security
This commit is contained in:
@ -1,6 +1,7 @@
|
||||
#
|
||||
# Test of procedure analyse
|
||||
#
|
||||
-- source include/have_innodb.inc
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t1,t2;
|
||||
@ -144,4 +145,15 @@ INSERT INTO t1 VALUES ('e'),('e'),('e-');
|
||||
SELECT * FROM t1 PROCEDURE ANALYSE();
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
--echo # Bug#11756242 48137: PROCEDURE ANALYSE() LEAKS MEMORY WHEN RETURNING NULL
|
||||
--echo #
|
||||
|
||||
CREATE TABLE t1(f1 INT) ENGINE=MYISAM;
|
||||
CREATE TABLE t2(f2 INT) ENGINE=INNODB;
|
||||
INSERT INTO t2 VALUES (1);
|
||||
SELECT DISTINCTROW f1 FROM t1 NATURAL RIGHT OUTER JOIN t2 PROCEDURE ANALYSE();
|
||||
SELECT * FROM t2 LIMIT 1 PROCEDURE ANALYSE();
|
||||
DROP TABLE t1, t2;
|
||||
|
||||
--echo End of 5.1 tests
|
||||
|
@ -4,6 +4,8 @@
|
||||
# Can't test with embedded server that doesn't support grants
|
||||
-- source include/not_embedded.inc
|
||||
|
||||
call mtr.add_suppression("Column count of mysql.event is wrong. Expected .*, found .*\. The table is probably corrupted");
|
||||
|
||||
--disable_warnings
|
||||
drop database if exists events_test;
|
||||
drop database if exists db_x;
|
||||
@ -270,23 +272,28 @@ SHOW EVENTS;
|
||||
--echo Try to alter mysql.event: the server should fail to load
|
||||
--echo event information after mysql.event was tampered with.
|
||||
--echo
|
||||
--echo First, let's add a column to the end and make sure everything
|
||||
--echo works as before
|
||||
--echo First, let's add a column to the end and check the error is emitted.
|
||||
--echo
|
||||
ALTER TABLE mysql.event ADD dummy INT;
|
||||
--replace_column 8 # 9 #
|
||||
--error ER_EVENT_OPEN_TABLE_FAILED
|
||||
SHOW EVENTS;
|
||||
--error ER_EVENT_OPEN_TABLE_FAILED
|
||||
SELECT event_name FROM INFORMATION_SCHEMA.events;
|
||||
--replace_regex /STARTS '[^']+'/STARTS '#'/
|
||||
--error ER_EVENT_OPEN_TABLE_FAILED
|
||||
SHOW CREATE EVENT intact_check;
|
||||
--error ER_EVENT_DOES_NOT_EXIST
|
||||
--error ER_EVENT_OPEN_TABLE_FAILED
|
||||
DROP EVENT no_such_event;
|
||||
--error ER_EVENT_OPEN_TABLE_FAILED
|
||||
CREATE EVENT intact_check_1 ON SCHEDULE EVERY 5 HOUR DO SELECT 5;
|
||||
--error ER_EVENT_OPEN_TABLE_FAILED
|
||||
ALTER EVENT intact_check_1 ON SCHEDULE EVERY 8 HOUR DO SELECT 8;
|
||||
--error ER_EVENT_OPEN_TABLE_FAILED
|
||||
ALTER EVENT intact_check_1 RENAME TO intact_check_2;
|
||||
--error ER_EVENT_DOES_NOT_EXIST
|
||||
--error ER_EVENT_OPEN_TABLE_FAILED
|
||||
DROP EVENT intact_check_1;
|
||||
--error ER_EVENT_OPEN_TABLE_FAILED
|
||||
DROP EVENT intact_check_2;
|
||||
--error ER_EVENT_OPEN_TABLE_FAILED
|
||||
DROP EVENT intact_check;
|
||||
DROP DATABASE IF EXISTS mysqltest_no_such_database;
|
||||
CREATE DATABASE mysqltest_db2;
|
||||
@ -296,6 +303,7 @@ SHOW VARIABLES LIKE 'event_scheduler';
|
||||
SET GLOBAL event_scheduler=OFF;
|
||||
# Clean up
|
||||
ALTER TABLE mysql.event DROP dummy;
|
||||
DROP EVENT intact_check;
|
||||
CREATE EVENT intact_check ON SCHEDULE EVERY 10 HOUR DO SELECT "nothing";
|
||||
--echo
|
||||
--echo Now let's add a column to the first position: the server
|
||||
@ -303,24 +311,26 @@ CREATE EVENT intact_check ON SCHEDULE EVERY 10 HOUR DO SELECT "nothing";
|
||||
--echo
|
||||
ALTER TABLE mysql.event ADD dummy INT FIRST;
|
||||
--error ER_CANNOT_LOAD_FROM_TABLE
|
||||
--error ER_EVENT_OPEN_TABLE_FAILED
|
||||
SHOW EVENTS;
|
||||
--error ER_CANNOT_LOAD_FROM_TABLE
|
||||
--error ER_EVENT_OPEN_TABLE_FAILED
|
||||
SELECT event_name FROM INFORMATION_SCHEMA.events;
|
||||
--error ER_EVENT_DOES_NOT_EXIST
|
||||
--error ER_EVENT_OPEN_TABLE_FAILED
|
||||
SHOW CREATE EVENT intact_check;
|
||||
--error ER_EVENT_DOES_NOT_EXIST
|
||||
--error ER_EVENT_OPEN_TABLE_FAILED
|
||||
DROP EVENT no_such_event;
|
||||
--error ER_EVENT_STORE_FAILED
|
||||
--error ER_EVENT_OPEN_TABLE_FAILED
|
||||
CREATE EVENT intact_check_1 ON SCHEDULE EVERY 5 HOUR DO SELECT 5;
|
||||
--error ER_EVENT_DOES_NOT_EXIST
|
||||
--error ER_EVENT_OPEN_TABLE_FAILED
|
||||
ALTER EVENT intact_check_1 ON SCHEDULE EVERY 8 HOUR DO SELECT 8;
|
||||
--error ER_EVENT_DOES_NOT_EXIST
|
||||
--error ER_EVENT_OPEN_TABLE_FAILED
|
||||
ALTER EVENT intact_check_1 RENAME TO intact_check_2;
|
||||
--error ER_EVENT_DOES_NOT_EXIST
|
||||
--error ER_EVENT_OPEN_TABLE_FAILED
|
||||
DROP EVENT intact_check_1;
|
||||
--error ER_EVENT_DOES_NOT_EXIST
|
||||
--error ER_EVENT_OPEN_TABLE_FAILED
|
||||
DROP EVENT intact_check_2;
|
||||
--error ER_EVENT_DOES_NOT_EXIST
|
||||
--error ER_EVENT_OPEN_TABLE_FAILED
|
||||
DROP EVENT intact_check;
|
||||
# Should work OK
|
||||
DROP DATABASE IF EXISTS mysqltest_no_such_database;
|
||||
@ -341,25 +351,25 @@ INSERT INTO event_like SELECT * FROM mysql.event;
|
||||
--echo
|
||||
--echo
|
||||
ALTER TABLE mysql.event DROP comment, DROP starts;
|
||||
--error ER_CANNOT_LOAD_FROM_TABLE
|
||||
--error ER_EVENT_OPEN_TABLE_FAILED
|
||||
SHOW EVENTS;
|
||||
--error ER_CANNOT_LOAD_FROM_TABLE
|
||||
--error ER_EVENT_OPEN_TABLE_FAILED
|
||||
SELECT event_name FROM INFORMATION_SCHEMA.EVENTS;
|
||||
--error ER_CANNOT_LOAD_FROM_TABLE
|
||||
--error ER_EVENT_OPEN_TABLE_FAILED
|
||||
SHOW CREATE EVENT intact_check;
|
||||
--error ER_EVENT_DOES_NOT_EXIST
|
||||
--error ER_EVENT_OPEN_TABLE_FAILED
|
||||
DROP EVENT no_such_event;
|
||||
--error ER_COL_COUNT_DOESNT_MATCH_CORRUPTED
|
||||
--error ER_EVENT_OPEN_TABLE_FAILED
|
||||
CREATE EVENT intact_check_1 ON SCHEDULE EVERY 5 HOUR DO SELECT 5;
|
||||
--error ER_EVENT_DOES_NOT_EXIST
|
||||
--error ER_EVENT_OPEN_TABLE_FAILED
|
||||
ALTER EVENT intact_check_1 ON SCHEDULE EVERY 8 HOUR DO SELECT 8;
|
||||
--error ER_EVENT_DOES_NOT_EXIST
|
||||
--error ER_EVENT_OPEN_TABLE_FAILED
|
||||
ALTER EVENT intact_check_1 RENAME TO intact_check_2;
|
||||
--error ER_EVENT_DOES_NOT_EXIST
|
||||
--error ER_EVENT_OPEN_TABLE_FAILED
|
||||
DROP EVENT intact_check_1;
|
||||
--error ER_EVENT_DOES_NOT_EXIST
|
||||
--error ER_EVENT_OPEN_TABLE_FAILED
|
||||
DROP EVENT intact_check_2;
|
||||
# Should succeed
|
||||
--error ER_EVENT_OPEN_TABLE_FAILED
|
||||
DROP EVENT intact_check;
|
||||
DROP DATABASE IF EXISTS mysqltest_no_such_database;
|
||||
CREATE DATABASE mysqltest_db2;
|
||||
@ -407,9 +417,54 @@ CREATE TABLE mysql.event like event_like;
|
||||
DROP TABLE event_like;
|
||||
--replace_column 8 # 9 #
|
||||
SHOW EVENTS;
|
||||
#
|
||||
# End of tests
|
||||
#
|
||||
|
||||
--echo
|
||||
--echo #
|
||||
--echo # Bug#12394306: the sever may crash if mysql.event is corrupted
|
||||
--echo #
|
||||
|
||||
--echo
|
||||
CREATE EVENT ev1 ON SCHEDULE EVERY 5 HOUR DO SELECT 5;
|
||||
ALTER EVENT ev1 ON SCHEDULE EVERY 8 HOUR DO SELECT 8;
|
||||
|
||||
--echo
|
||||
CREATE TABLE event_original LIKE mysql.event;
|
||||
INSERT INTO event_original SELECT * FROM mysql.event;
|
||||
|
||||
--echo
|
||||
ALTER TABLE mysql.event MODIFY modified CHAR(1);
|
||||
|
||||
--echo
|
||||
--error ER_EVENT_OPEN_TABLE_FAILED
|
||||
SHOW EVENTS;
|
||||
|
||||
--echo
|
||||
--error ER_EVENT_OPEN_TABLE_FAILED
|
||||
SELECT event_name, created, last_altered FROM information_schema.events;
|
||||
|
||||
--echo
|
||||
--error ER_EVENT_OPEN_TABLE_FAILED
|
||||
CREATE EVENT ev2 ON SCHEDULE EVERY 5 HOUR DO SELECT 5;
|
||||
|
||||
--echo
|
||||
--error ER_EVENT_OPEN_TABLE_FAILED
|
||||
ALTER EVENT ev1 ON SCHEDULE EVERY 9 HOUR DO SELECT 9;
|
||||
|
||||
--echo
|
||||
DROP TABLE mysql.event;
|
||||
RENAME TABLE event_original TO mysql.event;
|
||||
|
||||
--echo
|
||||
DROP EVENT ev1;
|
||||
|
||||
--echo
|
||||
SHOW EVENTS;
|
||||
|
||||
|
||||
--echo
|
||||
--echo #
|
||||
--echo # End of tests
|
||||
--echo #
|
||||
|
||||
let $wait_condition=
|
||||
select count(*) = 0 from information_schema.processlist
|
||||
|
@ -1,6 +1,8 @@
|
||||
# Can't test with embedded server that doesn't support grants
|
||||
-- source include/not_embedded.inc
|
||||
|
||||
call mtr.add_suppression("Column count of mysql.event is wrong. Expected .*, found .*\. The table is probably corrupted");
|
||||
|
||||
#
|
||||
# Test that when the server is restarted, it checks mysql.event table,
|
||||
# and disables the scheduler if it's not up to date.
|
||||
|
@ -1127,6 +1127,18 @@ INSERT INTO t1 VALUES (18446668621106209655);
|
||||
SELECT MAX(LENGTH(a)), LENGTH(MAX(a)), MIN(a), MAX(a), CONCAT(MIN(a)), CONCAT(MAX(a)) FROM t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
--echo # Bug #11766270 59343: YEAR(4): INCORRECT RESULT AND VALGRIND WARNINGS WITH MIN/MAX, UNION
|
||||
--echo #
|
||||
|
||||
CREATE TABLE t1(f1 YEAR(4));
|
||||
INSERT INTO t1 VALUES (0000),(2001);
|
||||
--enable_metadata
|
||||
(SELECT MAX(f1) FROM t1) UNION (SELECT MAX(f1) FROM t1);
|
||||
--disable_metadata
|
||||
DROP TABLE t1;
|
||||
|
||||
|
||||
--echo #
|
||||
--echo End of 5.1 tests
|
||||
|
||||
|
@ -554,6 +554,12 @@ SELECT CASE a WHEN a THEN a END FROM t1 GROUP BY a WITH ROLLUP;
|
||||
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
--echo # Bug #11766212 59270: NOT IN (YEAR( ... ), ... ) PRODUCES MANY VALGRIND WARNINGS
|
||||
--echo #
|
||||
|
||||
SELECT 1 IN (YEAR(FROM_UNIXTIME(NULL)) ,1);
|
||||
|
||||
--echo #
|
||||
|
||||
--echo End of 5.1 tests
|
||||
|
@ -333,4 +333,20 @@ DROP TABLE t1;
|
||||
CREATE TABLE t1 SELECT FLOOR(LINESTRINGFROMWKB(1) DIV NULL);
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
--echo # Bug#11765923 58937: MANY VALGRIND ERRORS AFTER GROUPING BY RESULT OF DECIMAL COLUMN FUNCTION
|
||||
--echo #
|
||||
|
||||
CREATE TABLE t1(f1 DECIMAL(22,1));
|
||||
INSERT INTO t1 VALUES (0),(1);
|
||||
SELECT ROUND(f1, f1) FROM t1;
|
||||
SELECT ROUND(f1, f1) FROM t1 GROUP BY 1;
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
--echo # Bug#11764671 57533: UNINITIALISED VALUES IN COPY_AND_CONVERT (SQL_STRING.CC) WITH CERTAIN CHA
|
||||
--echo #
|
||||
|
||||
SELECT ROUND(LEAST(15, -4939092, 0.2704), STDDEV('a'));
|
||||
|
||||
--echo End of 5.1 tests
|
||||
|
@ -913,4 +913,12 @@ SELECT CAST((MONTH(FROM_UNIXTIME(@@GLOBAL.SQL_MODE))) AS BINARY(1025));
|
||||
|
||||
SELECT ADDDATE(MONTH(FROM_UNIXTIME(NULL)),INTERVAL 1 HOUR);
|
||||
|
||||
--echo #
|
||||
--echo # Bug#11889186 60503: CRASH IN MAKE_DATE_TIME WITH DATE_FORMAT / STR_TO_DATE COMBINATION
|
||||
--echo #
|
||||
|
||||
SELECT DATE_FORMAT('0000-00-11', '%W');
|
||||
SELECT DATE_FORMAT('0000-00-11', '%a');
|
||||
SELECT DATE_FORMAT('0000-00-11', '%w');
|
||||
|
||||
--echo End of 5.1 tests
|
||||
|
@ -564,4 +564,30 @@ HAVING field1 < 7;
|
||||
|
||||
DROP TABLE t1,t2;
|
||||
|
||||
--echo #
|
||||
--echo # Bug#48916 Server incorrectly processing HAVING clauses with an ORDER BY clause
|
||||
--echo #
|
||||
|
||||
CREATE TABLE t1 (f1 INT, f2 INT);
|
||||
INSERT INTO t1 VALUES (1, 0), (2, 1), (3, 2);
|
||||
CREATE TABLE t2 (f1 INT, f2 INT);
|
||||
|
||||
SELECT t1.f1
|
||||
FROM t1
|
||||
HAVING (3, 2) IN (SELECT f1, f2 FROM t2) AND t1.f1 >= 0
|
||||
ORDER BY t1.f1;
|
||||
|
||||
SELECT t1.f1
|
||||
FROM t1
|
||||
HAVING (3, 2) IN (SELECT 4, 2) AND t1.f1 >= 0
|
||||
ORDER BY t1.f1;
|
||||
|
||||
SELECT t1.f1
|
||||
FROM t1
|
||||
HAVING 2 IN (SELECT f2 FROM t2) AND t1.f1 >= 0
|
||||
ORDER BY t1.f1;
|
||||
|
||||
DROP TABLE t1,t2;
|
||||
|
||||
|
||||
--echo End of 5.1 tests
|
||||
|
@ -611,5 +611,33 @@ DROP TABLE t1;
|
||||
let $MYSQLD_DATADIR= `select @@datadir`;
|
||||
remove_file $MYSQLD_DATADIR/test/tmpp2.txt;
|
||||
|
||||
--echo #
|
||||
--echo # Bug#11765139 58069: LOAD DATA INFILE: VALGRIND REPORTS INVALID MEMORY READS AND WRITES WITH U
|
||||
--echo #
|
||||
|
||||
CREATE TABLE t1(f1 INT);
|
||||
EVAL SELECT 0xE1BB30 INTO OUTFILE 't1.dat';
|
||||
--disable_warnings
|
||||
LOAD DATA INFILE 't1.dat' IGNORE INTO TABLE t1 CHARACTER SET utf8;
|
||||
--enable_warnings
|
||||
|
||||
DROP TABLE t1;
|
||||
let $MYSQLD_DATADIR= `select @@datadir`;
|
||||
remove_file $MYSQLD_DATADIR/test/t1.dat;
|
||||
|
||||
--echo #
|
||||
--echo # Bug#11765141 - 58072: LOAD DATA INFILE: LEAKS IO CACHE MEMORY
|
||||
--echo # WHEN ERROR OCCURS
|
||||
--echo #
|
||||
|
||||
--let $file=$MYSQLTEST_VARDIR/tmp/bug11735141.txt
|
||||
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
|
||||
--eval SELECT '1\n' INTO DUMPFILE '$file'
|
||||
|
||||
create table t1(a point);
|
||||
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
|
||||
--error ER_CANT_CREATE_GEOMETRY_OBJECT
|
||||
--eval LOAD DATA INFILE '$file' INTO TABLE t1
|
||||
drop table t1;
|
||||
|
||||
--echo End of 5.1 tests
|
||||
|
@ -71,3 +71,32 @@ select count(*) from t2;
|
||||
--remove_file $MYSQLTEST_VARDIR/tmp/mysqlbinlog_base64.sql
|
||||
drop table t1;
|
||||
drop table t2;
|
||||
|
||||
#
|
||||
# BUG#12354268
|
||||
#
|
||||
# This test verifies that using --start-position with DECODE-ROWS
|
||||
# does not make mysqlbinlog to output an error stating that it
|
||||
# does not contain any FD event.
|
||||
#
|
||||
|
||||
RESET MASTER;
|
||||
USE test;
|
||||
SET @old_binlog_format= @@binlog_format;
|
||||
SET SESSION binlog_format=ROW;
|
||||
CREATE TABLE t1(c1 INT);
|
||||
--let $master_binlog= query_get_value(SHOW MASTER STATUS, File, 1)
|
||||
--let $master_pos= query_get_value(SHOW MASTER STATUS, Position, 1)
|
||||
--let $MYSQLD_DATADIR= `SELECT @@datadir`
|
||||
|
||||
INSERT INTO t1 VALUES (1);
|
||||
|
||||
FLUSH LOGS;
|
||||
|
||||
--disable_result_log
|
||||
--exec $MYSQL_BINLOG --base64-output=DECODE-ROWS --start-position=$master_pos -v $MYSQLD_DATADIR/$master_binlog
|
||||
--enable_result_log
|
||||
|
||||
DROP TABLE t1;
|
||||
SET SESSION binlog_format= @old_binlog_format;
|
||||
RESET MASTER;
|
||||
|
@ -1,5 +1,4 @@
|
||||
-- source include/have_partition.inc
|
||||
-- source include/not_embedded.inc
|
||||
--disable_warnings
|
||||
DROP TABLE IF EXISTS t1, t2;
|
||||
--enable_warnings
|
||||
@ -51,3 +50,13 @@ DROP TABLE t1;
|
||||
--list_files $MYSQLD_DATADIR/test t1*
|
||||
--list_files $MYSQLD_DATADIR/test t2*
|
||||
--echo # End of bug#30102 test.
|
||||
|
||||
--echo # Test of post-push fix for bug#11766249/59316
|
||||
CREATE TABLE t1 (a INT, b VARCHAR(255), PRIMARY KEY (a))
|
||||
ENGINE = MyISAM
|
||||
PARTITION BY RANGE (a)
|
||||
(PARTITION p0 VALUES LESS THAN (0) MAX_ROWS=100,
|
||||
PARTITION p1 VALUES LESS THAN (100) MAX_ROWS=100,
|
||||
PARTITION pMax VALUES LESS THAN MAXVALUE);
|
||||
INSERT INTO t1 VALUES (1, "Partition p1, first row");
|
||||
DROP TABLE t1;
|
@ -3759,3 +3759,25 @@ DROP TABLE t1,t2;
|
||||
--enable_result_log
|
||||
|
||||
--echo End of 5.1 tests
|
||||
|
||||
--echo #
|
||||
--echo # Bug #11765713 58705:
|
||||
--echo # OPTIMIZER LET ENGINE DEPEND ON UNINITIALIZED VALUES
|
||||
--echo # CREATED BY OPT_SUM_QUERY
|
||||
--echo #
|
||||
|
||||
CREATE TABLE t1(a INT NOT NULL, KEY (a));
|
||||
INSERT INTO t1 VALUES (0), (1);
|
||||
|
||||
--error ER_SUBQUERY_NO_1_ROW
|
||||
SELECT 1 as foo FROM t1 WHERE a < SOME
|
||||
(SELECT a FROM t1 WHERE a <=>
|
||||
(SELECT a FROM t1)
|
||||
);
|
||||
|
||||
SELECT 1 as foo FROM t1 WHERE a < SOME
|
||||
(SELECT a FROM t1 WHERE a <=>
|
||||
(SELECT a FROM t1 where a is null)
|
||||
);
|
||||
|
||||
DROP TABLE t1;
|
||||
|
@ -373,4 +373,51 @@ SELECT a FROM t1 WHERE a >= '20000101000000';
|
||||
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
--echo # Bug#50774: failed to get the correct resultset when timestamp values
|
||||
--echo # are appended with .0
|
||||
--echo #
|
||||
CREATE TABLE t1 ( a TIMESTAMP, KEY ( a ) );
|
||||
|
||||
INSERT INTO t1 VALUES( '2010-02-01 09:31:01' );
|
||||
INSERT INTO t1 VALUES( '2010-02-01 09:31:02' );
|
||||
INSERT INTO t1 VALUES( '2010-02-01 09:31:03' );
|
||||
INSERT INTO t1 VALUES( '2010-02-01 09:31:04' );
|
||||
|
||||
SELECT * FROM t1 WHERE a >= '2010-02-01 09:31:02.0';
|
||||
SELECT * FROM t1 WHERE '2010-02-01 09:31:02.0' <= a;
|
||||
SELECT * FROM t1 WHERE a <= '2010-02-01 09:31:02.0';
|
||||
SELECT * FROM t1 WHERE '2010-02-01 09:31:02.0' >= a;
|
||||
|
||||
--replace_column 1 x 2 x 3 x 5 x 6 x 7 x 8 x 9 x 10 x
|
||||
EXPLAIN
|
||||
SELECT * FROM t1 WHERE a >= '2010-02-01 09:31:02.0';
|
||||
SELECT * FROM t1 WHERE a >= '2010-02-01 09:31:02.0';
|
||||
|
||||
CREATE TABLE t2 ( a TIMESTAMP, KEY ( a DESC ) );
|
||||
|
||||
INSERT INTO t2 VALUES( '2010-02-01 09:31:01' );
|
||||
INSERT INTO t2 VALUES( '2010-02-01 09:31:02' );
|
||||
INSERT INTO t2 VALUES( '2010-02-01 09:31:03' );
|
||||
INSERT INTO t2 VALUES( '2010-02-01 09:31:04' );
|
||||
INSERT INTO t2 VALUES( '2010-02-01 09:31:05' );
|
||||
INSERT INTO t2 VALUES( '2010-02-01 09:31:06' );
|
||||
INSERT INTO t2 VALUES( '2010-02-01 09:31:07' );
|
||||
INSERT INTO t2 VALUES( '2010-02-01 09:31:08' );
|
||||
INSERT INTO t2 VALUES( '2010-02-01 09:31:09' );
|
||||
INSERT INTO t2 VALUES( '2010-02-01 09:31:10' );
|
||||
INSERT INTO t2 VALUES( '2010-02-01 09:31:11' );
|
||||
|
||||
--echo # The bug would cause the range optimizer's comparison to use an open
|
||||
--echo # interval here. This reveals itself only in the number of reads
|
||||
--echo # performed.
|
||||
FLUSH STATUS;
|
||||
--replace_column 1 x 2 x 3 x 5 x 6 x 7 x 8 x 9 x 10 x
|
||||
EXPLAIN
|
||||
SELECT * FROM t2 WHERE a < '2010-02-01 09:31:02.0';
|
||||
SELECT * FROM t2 WHERE a < '2010-02-01 09:31:02.0';
|
||||
SHOW STATUS LIKE 'Handler_read_next';
|
||||
|
||||
DROP TABLE t1, t2;
|
||||
|
||||
--echo End of 5.1 tests
|
||||
|
Reference in New Issue
Block a user