mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Merge from mysql-5.5-bugteam to mysql-5.5-runtime.
This commit is contained in:
@ -494,6 +494,32 @@ remove_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql;
|
||||
--error 1
|
||||
--exec echo "--disable_query_log;" | $MYSQL_TEST 2>&1
|
||||
|
||||
#
|
||||
# Extra text after ``
|
||||
#
|
||||
# Cannot use exec echo here as ` may or may not need to be escaped
|
||||
--write_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql
|
||||
let $x= `select 1` BOO ;
|
||||
EOF
|
||||
--error 1
|
||||
--exec $MYSQL_TEST < $MYSQLTEST_VARDIR/tmp/mysqltest.sql 2>&1
|
||||
remove_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql;
|
||||
--write_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql
|
||||
--let $x= `select 1`;
|
||||
EOF
|
||||
--error 1
|
||||
--exec $MYSQL_TEST < $MYSQLTEST_VARDIR/tmp/mysqltest.sql 2>&1
|
||||
remove_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql;
|
||||
--write_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql
|
||||
# Missing ; in next line should be detected and cause failure
|
||||
let $x= `select 1`
|
||||
let $x= 2;
|
||||
echo $x;
|
||||
EOF
|
||||
--error 1
|
||||
--exec $MYSQL_TEST < $MYSQLTEST_VARDIR/tmp/mysqltest.sql 2>&1
|
||||
remove_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql;
|
||||
|
||||
|
||||
# Allow trailing # comment
|
||||
--sleep 1 # Wait for insert delayed to be executed.
|
||||
@ -980,16 +1006,13 @@ EOF
|
||||
# ----------------------------------------------------------------------------
|
||||
# Test inc
|
||||
# ----------------------------------------------------------------------------
|
||||
inc $i;
|
||||
echo $i;
|
||||
let $i= 0;
|
||||
inc $i;
|
||||
echo $i;
|
||||
let $i=100;
|
||||
inc $i;
|
||||
echo $i;
|
||||
|
||||
let $i=hej;
|
||||
echo $i;
|
||||
let $i= -100;
|
||||
inc $i;
|
||||
echo $i;
|
||||
|
||||
@ -998,7 +1021,13 @@ echo $i;
|
||||
--error 1
|
||||
--exec echo "inc i;" | $MYSQL_TEST 2>&1
|
||||
--error 1
|
||||
--exec echo "inc \$i;" | $MYSQL_TEST 2>&1
|
||||
--error 1
|
||||
--exec echo "let \$i=100; inc \$i 1000; echo \$i;" | $MYSQL_TEST 2>&1
|
||||
--error 1
|
||||
--exec echo "let \$i=text; inc \$i; echo \$i;" | $MYSQL_TEST 2>&1
|
||||
--error 1
|
||||
--exec echo "let \$i=10cc; inc \$i; echo \$i;" | $MYSQL_TEST 2>&1
|
||||
|
||||
inc $i; inc $i; inc $i; --echo $i
|
||||
echo $i;
|
||||
@ -1008,25 +1037,25 @@ echo $i;
|
||||
# Test dec
|
||||
# ----------------------------------------------------------------------------
|
||||
|
||||
dec $d;
|
||||
echo $d;
|
||||
let $d= 0;
|
||||
dec $d;
|
||||
echo $d;
|
||||
let $d=100;
|
||||
dec $d;
|
||||
echo $d;
|
||||
|
||||
let $d=hej;
|
||||
echo $d;
|
||||
dec $d;
|
||||
echo $d;
|
||||
|
||||
--error 1
|
||||
--exec echo "dec;" | $MYSQL_TEST 2>&1
|
||||
--error 1
|
||||
--exec echo "dec i;" | $MYSQL_TEST 2>&1
|
||||
--error 1
|
||||
--exec echo "dec \$i;" | $MYSQL_TEST 2>&1
|
||||
--error 1
|
||||
--exec echo "let \$i=100; dec \$i 1000; echo \$i;" | $MYSQL_TEST 2>&1
|
||||
--error 1
|
||||
--exec echo "let \$i=text; dec \$i; echo \$i;" | $MYSQL_TEST 2>&1
|
||||
--error 1
|
||||
--exec echo "let \$i=10cc; dec \$i; echo \$i;" | $MYSQL_TEST 2>&1
|
||||
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
@ -1439,19 +1468,6 @@ eval select "$long_rep" as x;
|
||||
--error 1
|
||||
--exec echo "connect (con1,localhost,root,,,,,SMTP POP);" | $MYSQL_TEST 2>&1
|
||||
|
||||
# Repeat connect/disconnect
|
||||
--write_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql
|
||||
let $i=100;
|
||||
while ($i)
|
||||
{
|
||||
connect (test_con1,localhost,root,,);
|
||||
disconnect test_con1;
|
||||
dec $i;
|
||||
}
|
||||
EOF
|
||||
--exec echo "source $MYSQLTEST_VARDIR/tmp/mysqltest.sql; echo OK; exit;" | $MYSQL_TEST 2>&1
|
||||
remove_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql;
|
||||
|
||||
# Repeat connect/disconnect
|
||||
--write_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql
|
||||
let $i=200;
|
||||
@ -1461,9 +1477,8 @@ while ($i)
|
||||
disconnect test_con1;
|
||||
dec $i;
|
||||
}
|
||||
echo 200 connects succeeded;
|
||||
EOF
|
||||
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
|
||||
--error 1
|
||||
--exec echo "source $MYSQLTEST_VARDIR/tmp/mysqltest.sql;" | $MYSQL_TEST 2>&1
|
||||
remove_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql;
|
||||
|
||||
@ -1504,6 +1519,22 @@ show tables;
|
||||
disconnect con2;
|
||||
connection default;
|
||||
|
||||
# Test enable_connect_log
|
||||
--enable_connect_log
|
||||
connect (con1,localhost,root,,);
|
||||
connection default;
|
||||
connection con1;
|
||||
--disable_query_log
|
||||
# These should not be logged
|
||||
connect (con2,localhost,root,,*NO-ONE*);
|
||||
connection con2;
|
||||
disconnect con2;
|
||||
connection con1;
|
||||
--enable_query_log
|
||||
disconnect con1;
|
||||
connection default;
|
||||
--disable_connect_log
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
# Test mysqltest arguments
|
||||
# ----------------------------------------------------------------------------
|
||||
|
@ -14,6 +14,28 @@
|
||||
drop table if exists t1, t2;
|
||||
--enable_warnings
|
||||
|
||||
--echo #
|
||||
--echo # Bug#57113: ha_partition::extra(ha_extra_function):
|
||||
--echo # Assertion `m_extra_cache' failed
|
||||
CREATE TABLE t1
|
||||
(id INT NOT NULL PRIMARY KEY,
|
||||
name VARCHAR(16) NOT NULL,
|
||||
year YEAR,
|
||||
INDEX name (name(8))
|
||||
)
|
||||
PARTITION BY HASH(id) PARTITIONS 2;
|
||||
|
||||
INSERT INTO t1 VALUES ( 1, 'FooBar', '1924' );
|
||||
|
||||
CREATE TABLE t2 (id INT);
|
||||
|
||||
INSERT INTO t2 VALUES (1),(2);
|
||||
|
||||
UPDATE t1, t2 SET t1.year = '1955' WHERE t1.name = 'FooBar';
|
||||
|
||||
DROP TABLE t1, t2;
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # Bug#55458: Partitioned MyISAM table gets crashed by multi-table update
|
||||
--echo #
|
||||
@ -458,12 +480,12 @@ drop table t1;
|
||||
#
|
||||
# BUG 16002: Handle unsigned integer functions properly
|
||||
#
|
||||
--error ER_INCONSISTENT_TYPE_OF_FUNCTIONS_ERROR
|
||||
--error ER_VALUES_IS_NOT_INT_TYPE_ERROR
|
||||
create table t1 (a bigint)
|
||||
partition by range (a)
|
||||
(partition p0 values less than (0xFFFFFFFFFFFFFFFF),
|
||||
partition p1 values less than (10));
|
||||
--error ER_INCONSISTENT_TYPE_OF_FUNCTIONS_ERROR
|
||||
--error ER_VALUES_IS_NOT_INT_TYPE_ERROR
|
||||
create table t1 (a bigint)
|
||||
partition by list (a)
|
||||
(partition p0 values in (0xFFFFFFFFFFFFFFFF),
|
||||
|
@ -8,10 +8,8 @@ DROP TABLE IF EXISTS t1;
|
||||
--echo #
|
||||
--echo # Bug#51851: Server with SBR locks mutex twice on LOAD DATA into
|
||||
--echo # partitioned MyISAM table
|
||||
perl;
|
||||
open( INIT, ">init_file.txt");
|
||||
print INIT "abcd\n";
|
||||
close( INIT );
|
||||
--write_file init_file.txt
|
||||
abcd
|
||||
EOF
|
||||
|
||||
CREATE TABLE t1
|
||||
|
@ -5,11 +5,108 @@
|
||||
-- source include/have_partition.inc
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t1;
|
||||
drop table if exists t1, t2;
|
||||
--enable_warnings
|
||||
|
||||
let $MYSQLD_DATADIR= `SELECT @@datadir`;
|
||||
|
||||
--echo #
|
||||
--echo # Bug#50036: Inconsistent errors when using TIMESTAMP
|
||||
--echo # columns/expressions
|
||||
|
||||
--echo # 1. correct and appropriate errors in light of
|
||||
--echo # the fix for BUG#42849:
|
||||
--error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
|
||||
CREATE TABLE t1 (c TIMESTAMP)
|
||||
PARTITION BY RANGE (TO_DAYS(c))
|
||||
(PARTITION p0 VALUES LESS THAN (10000),
|
||||
PARTITION p1 VALUES LESS THAN (MAXVALUE));
|
||||
CREATE TABLE t2 (c TIMESTAMP);
|
||||
--error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
|
||||
ALTER TABLE t2
|
||||
PARTITION BY RANGE (TO_DAYS(c))
|
||||
(PARTITION p0 VALUES LESS THAN (10000),
|
||||
PARTITION p1 VALUES LESS THAN (MAXVALUE));
|
||||
|
||||
--error ER_FIELD_TYPE_NOT_ALLOWED_AS_PARTITION_FIELD
|
||||
CREATE TABLE t1 (c TIMESTAMP)
|
||||
PARTITION BY RANGE COLUMNS(c)
|
||||
(PARTITION p0 VALUES LESS THAN ('2000-01-01 00:00:00'),
|
||||
PARTITION p1 VALUES LESS THAN (MAXVALUE));
|
||||
--error ER_FIELD_TYPE_NOT_ALLOWED_AS_PARTITION_FIELD
|
||||
ALTER TABLE t2 PARTITION BY RANGE COLUMNS(c)
|
||||
(PARTITION p0 VALUES LESS THAN ('2000-01-01 00:00:00'),
|
||||
PARTITION p1 VALUES LESS THAN (MAXVALUE));
|
||||
DROP TABLE t2;
|
||||
|
||||
--echo # 2. These errors where questionable before the fix:
|
||||
|
||||
--echo # VALUES clause are checked first, clearified the error message.
|
||||
--error ER_VALUES_IS_NOT_INT_TYPE_ERROR
|
||||
CREATE TABLE t1 (c TIMESTAMP)
|
||||
PARTITION BY RANGE (c)
|
||||
(PARTITION p0 VALUES LESS THAN ('2000-01-01 00:00:00'),
|
||||
PARTITION p1 VALUES LESS THAN (MAXVALUE));
|
||||
|
||||
--echo # TIMESTAMP is not INT (e.g. UNIX_TIMESTAMP).
|
||||
--error ER_VALUES_IS_NOT_INT_TYPE_ERROR
|
||||
CREATE TABLE t1 (c TIMESTAMP)
|
||||
PARTITION BY RANGE (UNIX_TIMESTAMP(c))
|
||||
(PARTITION p0 VALUES LESS THAN ('2000-01-01 00:00:00'),
|
||||
PARTITION p1 VALUES LESS THAN (MAXVALUE));
|
||||
|
||||
CREATE TABLE t1 (c TIMESTAMP)
|
||||
PARTITION BY RANGE (UNIX_TIMESTAMP(c))
|
||||
(PARTITION p0 VALUES LESS THAN (UNIX_TIMESTAMP('2000-01-01 00:00:00')),
|
||||
PARTITION p1 VALUES LESS THAN (MAXVALUE));
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo # Changed error from ER_INCONSISTENT_TYPE_OF_FUNCTIONS_ERROR
|
||||
--error ER_FIELD_TYPE_NOT_ALLOWED_AS_PARTITION_FIELD
|
||||
CREATE TABLE t1 (c TIMESTAMP)
|
||||
PARTITION BY HASH (c) PARTITIONS 4;
|
||||
|
||||
--echo # Added test with existing TIMESTAMP partitioning (when it was allowed).
|
||||
|
||||
CREATE TABLE t1 (a TIMESTAMP)
|
||||
PARTITION BY HASH (UNIX_TIMESTAMP(a));
|
||||
INSERT INTO t1 VALUES ('2000-01-02 03:04:05');
|
||||
--sorted_result
|
||||
SELECT * FROM t1;
|
||||
FLUSH TABLES;
|
||||
--echo # replacing t1.frm with TO_DAYS(a) which was allowed earlier.
|
||||
--remove_file $MYSQLD_DATADIR/test/t1.frm
|
||||
--copy_file std_data/parts/t1TIMESTAMP.frm $MYSQLD_DATADIR/test/t1.frm
|
||||
--echo # Disable warnings, since the result would differ when running with
|
||||
--echo # --ps-protocol (only for the 'SELECT * FROM t1' statement).
|
||||
--disable_warnings
|
||||
--sorted_result
|
||||
SELECT * FROM t1;
|
||||
--enable_warnings
|
||||
SHOW CREATE TABLE t1;
|
||||
INSERT INTO t1 VALUES ('2001-02-03 04:05:06');
|
||||
--sorted_result
|
||||
SELECT * FROM t1;
|
||||
ALTER TABLE t1 ADD PARTITION PARTITIONS 2;
|
||||
--error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
|
||||
ALTER TABLE t1
|
||||
PARTITION BY RANGE (TO_DAYS(a))
|
||||
(PARTITION p0 VALUES LESS THAN (10000),
|
||||
PARTITION p1 VALUES LESS THAN (MAXVALUE));
|
||||
SHOW CREATE TABLE t1;
|
||||
CREATE TABLE t2 LIKE t1;
|
||||
SHOW CREATE TABLE t2;
|
||||
DROP TABLE t2;
|
||||
CREATE TABLE t2 SELECT * FROM t1;
|
||||
DROP TABLE t2;
|
||||
ALTER TABLE t1 PARTITION BY HASH (UNIX_TIMESTAMP(a));
|
||||
SHOW CREATE TABLE t1;
|
||||
ALTER TABLE t1 ADD PARTITION PARTITIONS 2;
|
||||
SHOW CREATE TABLE t1;
|
||||
--sorted_result
|
||||
SELECT * FROM t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
--echo # Bug#49161: Out of memory; restart server and try again (needed 2 bytes)
|
||||
--echo #
|
||||
@ -536,7 +633,7 @@ partitions 2
|
||||
#
|
||||
# Partition by range, inconsistent partition function and constants
|
||||
#
|
||||
--error ER_INCONSISTENT_TYPE_OF_FUNCTIONS_ERROR
|
||||
--error ER_VALUES_IS_NOT_INT_TYPE_ERROR
|
||||
CREATE TABLE t1 (
|
||||
a int not null,
|
||||
b int not null,
|
||||
@ -849,7 +946,7 @@ partitions 2
|
||||
#
|
||||
# Partition by list, wrong constant result type (not INT)
|
||||
#
|
||||
--error ER_INCONSISTENT_TYPE_OF_FUNCTIONS_ERROR
|
||||
--error ER_VALUES_IS_NOT_INT_TYPE_ERROR
|
||||
CREATE TABLE t1 (
|
||||
a int not null,
|
||||
b int not null,
|
||||
@ -939,13 +1036,13 @@ PARTITION pmax VALUES LESS THAN MAXVALUE);
|
||||
# Check that allowed arithmetic/math functions involving TIMESTAMP values result
|
||||
# in ER_PARTITION_FUNC_NOT_ALLOWED_ERROR when used as a partitioning function
|
||||
|
||||
--error ER_PARTITION_FUNC_NOT_ALLOWED_ERROR
|
||||
--error ER_FIELD_TYPE_NOT_ALLOWED_AS_PARTITION_FIELD
|
||||
CREATE TABLE new (a TIMESTAMP NOT NULL PRIMARY KEY)
|
||||
PARTITION BY RANGE (a) (
|
||||
PARTITION p VALUES LESS THAN (20080819),
|
||||
PARTITION pmax VALUES LESS THAN MAXVALUE);
|
||||
|
||||
--error ER_PARTITION_FUNC_NOT_ALLOWED_ERROR
|
||||
--error ER_FIELD_TYPE_NOT_ALLOWED_AS_PARTITION_FIELD
|
||||
ALTER TABLE old
|
||||
PARTITION BY RANGE (a) (
|
||||
PARTITION p VALUES LESS THAN (20080819),
|
||||
@ -1284,4 +1381,18 @@ PARTITION pmax VALUES LESS THAN MAXVALUE);
|
||||
|
||||
DROP TABLE old;
|
||||
|
||||
--echo #
|
||||
--echo # Bug #56709: Memory leaks at running the 5.1 test suite
|
||||
--echo #
|
||||
|
||||
CREATE TABLE t1 (a TIMESTAMP NOT NULL PRIMARY KEY);
|
||||
|
||||
--error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
|
||||
ALTER TABLE t1
|
||||
PARTITION BY RANGE (EXTRACT(DAY FROM a)) (
|
||||
PARTITION p VALUES LESS THAN (18),
|
||||
PARTITION pmax VALUES LESS THAN MAXVALUE);
|
||||
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo End of 5.1 tests
|
||||
|
@ -35,6 +35,19 @@ SELECT @@global.debug;
|
||||
|
||||
SET GLOBAL debug=@old_debug;
|
||||
|
||||
--echo #
|
||||
--echo # Bug #56709: Memory leaks at running the 5.1 test suite
|
||||
--echo #
|
||||
|
||||
SET @old_local_debug = @@debug;
|
||||
|
||||
SET @@debug='d,foo';
|
||||
SELECT @@debug;
|
||||
SET @@debug='';
|
||||
SELECT @@debug;
|
||||
|
||||
SET @@debug = @old_local_debug;
|
||||
|
||||
--echo End of 5.1 tests
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user