summaryrefslogtreecommitdiff
path: root/mysql-test
diff options
context:
space:
mode:
authorSergei Golubchik <sergii@pisem.net>2014-11-19 17:23:39 +0100
committerSergei Golubchik <sergii@pisem.net>2014-11-19 17:23:39 +0100
commit3495801e2e94df5a10cae6e056f65defa038a6b6 (patch)
treede524b4bf45dbc19a95262843f2b72d0f5adb7bc /mysql-test
parentdf7b27f1fe308fd4011fa020bebd7c69bcd43383 (diff)
parent496fda66fdc34b447ef4dec26d1250b034a321e3 (diff)
downloadmariadb-git-3495801e2e94df5a10cae6e056f65defa038a6b6.tar.gz
5.5 merge
Diffstat (limited to 'mysql-test')
-rwxr-xr-xmysql-test/mysql-test-run.pl2
-rw-r--r--mysql-test/r/create.result47
-rw-r--r--mysql-test/r/ctype_utf16.result9
-rw-r--r--mysql-test/r/func_compress.result8
-rw-r--r--mysql-test/r/gis.result6
-rw-r--r--mysql-test/r/openssl-poodle_6975,sslv3.result25
-rw-r--r--mysql-test/r/openssl-poodle_6975,tlsv12.result25
-rw-r--r--mysql-test/r/openssl_1.result2
-rw-r--r--mysql-test/r/partition_error.result5
-rw-r--r--mysql-test/r/union.result20
-rw-r--r--mysql-test/suite.pm3
-rw-r--r--mysql-test/suite/binlog/r/load_data_stm_view.result24
-rw-r--r--mysql-test/suite/binlog/t/load_data_stm_view.test20
-rw-r--r--mysql-test/suite/plugins/t/unix_socket.test10
-rw-r--r--mysql-test/suite/rpl/r/rpl_parallel_show_binlog_events_purge_logs.result1
-rw-r--r--mysql-test/suite/rpl/t/rpl_parallel_show_binlog_events_purge_logs.test1
-rw-r--r--mysql-test/suite/storage_engine/trx/xa_recovery.test6
-rw-r--r--mysql-test/suite/vcol/r/not_supported.result67
-rw-r--r--mysql-test/suite/vcol/t/not_supported.test58
-rw-r--r--mysql-test/t/create.test33
-rw-r--r--mysql-test/t/ctype_utf16.test6
-rw-r--r--mysql-test/t/failed_auth_unixsocket.test10
-rw-r--r--mysql-test/t/func_compress.test9
-rw-r--r--mysql-test/t/gis.test5
-rw-r--r--mysql-test/t/openssl-poodle_6975.combinations6
-rw-r--r--mysql-test/t/openssl-poodle_6975.test38
-rw-r--r--mysql-test/t/openssl_1.test15
-rw-r--r--mysql-test/t/partition_error.test11
-rw-r--r--mysql-test/t/ssl.test2
-rw-r--r--mysql-test/t/ssl_8k_key-master.opt4
-rw-r--r--mysql-test/t/ssl_compress.test2
-rw-r--r--mysql-test/t/union.test20
32 files changed, 485 insertions, 15 deletions
diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl
index 182a314e497..d60ff9000a4 100755
--- a/mysql-test/mysql-test-run.pl
+++ b/mysql-test/mysql-test-run.pl
@@ -4837,6 +4837,8 @@ sub extract_warning_lines ($$) {
qr|Plugin 'FEEDBACK' registration as a INFORMATION SCHEMA failed|,
qr|'log-bin-use-v1-row-events' is MySQL 5.6 compatible option|,
qr|InnoDB: Setting thread \d+ nice to \d+ failed, current nice \d+, errno 13|, # setpriority() fails under valgrind
+ qr|Failed to setup SSL|,
+ qr|SSL error: Failed to set ciphers to use|,
);
my $matched_lines= [];
diff --git a/mysql-test/r/create.result b/mysql-test/r/create.result
index 41a2200c13f..ec70dba674f 100644
--- a/mysql-test/r/create.result
+++ b/mysql-test/r/create.result
@@ -2609,5 +2609,52 @@ a b
1 1
unlock tables;
drop table t1,t2;
+#
+# MDEV-6179: dynamic columns functions/cast()/convert() doesn't
+# play nice with CREATE/ALTER TABLE
+#
+create table t1 (
+color char(32) as (COLUMN_GET(dynamic_cols, 1 as char)) persistent,
+cl char(32) as (COLUMN_GET(COLUMN_ADD(COLUMN_CREATE(1 , 'blue' as char), 2, 'ttt'), i as char)) persistent,
+item_name varchar(32) primary key, -- A common attribute for all items
+i int,
+dynamic_cols blob -- Dynamic columns will be stored here
+);
+INSERT INTO t1(item_name, dynamic_cols, i) VALUES
+('MariaDB T-shirt', COLUMN_CREATE(1, 'blue', 2, 'XL'), 1);
+INSERT INTO t1(item_name, dynamic_cols, i) VALUES
+('Thinkpad Laptop', COLUMN_CREATE(1, 'black', 3, 500), 2);
+select item_name, color, cl from t1;
+item_name color cl
+MariaDB T-shirt blue blue
+Thinkpad Laptop black ttt
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `color` char(32) AS (COLUMN_GET(dynamic_cols, 1 as char)) PERSISTENT,
+ `cl` char(32) AS (COLUMN_GET(COLUMN_ADD(COLUMN_CREATE(1 , 'blue' as char), 2, 'ttt'), i as char)) PERSISTENT,
+ `item_name` varchar(32) NOT NULL,
+ `i` int(11) DEFAULT NULL,
+ `dynamic_cols` blob,
+ PRIMARY KEY (`item_name`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+drop table t1;
+create table t1 (
+n int,
+c char(32) as (convert(cast(n as char), char)) persistent
+);
+insert into t1(n) values (1),(2),(3);
+select * from t1;
+n c
+1 1
+2 2
+3 3
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `n` int(11) DEFAULT NULL,
+ `c` char(32) AS (convert(cast(n as char), char)) PERSISTENT
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+drop table t1;
create table t1;
ERROR 42000: A table must have at least 1 column
diff --git a/mysql-test/r/ctype_utf16.result b/mysql-test/r/ctype_utf16.result
index 074fc28a6b7..49624e16954 100644
--- a/mysql-test/r/ctype_utf16.result
+++ b/mysql-test/r/ctype_utf16.result
@@ -1573,6 +1573,15 @@ a 512
Warnings:
Warning 1260 Row 1 was cut by GROUP_CONCAT()
#
+# MDEV-6865 Merge Bug#18935421 RPAD DIES WITH CERTAIN PADSTR INTPUTS..
+#
+DO RPAD(_utf16 0x0061 COLLATE utf16_unicode_ci, 10000, 0x0061DE989999);
+Warnings:
+Warning 1300 Invalid utf16 character string: 'DE9899'
+DO LPAD(_utf16 0x0061 COLLATE utf16_unicode_ci, 10000, 0x0061DE989999);
+Warnings:
+Warning 1300 Invalid utf16 character string: 'DE9899'
+#
# End of 5.5 tests
#
#
diff --git a/mysql-test/r/func_compress.result b/mysql-test/r/func_compress.result
index 22b75de8c60..9fde006b377 100644
--- a/mysql-test/r/func_compress.result
+++ b/mysql-test/r/func_compress.result
@@ -147,3 +147,11 @@ DROP TABLE t1;
#
# End of 5.3 tests
#
+SELECT UNCOMPRESS(CAST(0 AS BINARY(5)));
+UNCOMPRESS(CAST(0 AS BINARY(5)))
+NULL
+Warnings:
+Warning 1259 ZLIB: Input data corrupted
+#
+# End of 5.5 tests
+#
diff --git a/mysql-test/r/gis.result b/mysql-test/r/gis.result
index a1d2ec862b7..4b7a9a5dc0c 100644
--- a/mysql-test/r/gis.result
+++ b/mysql-test/r/gis.result
@@ -1557,6 +1557,12 @@ Warnings:
Warning 1300 Invalid utf8 character string: 'E043'
Warning 1300 Invalid utf8 character string: 'E043'
drop table t1;
+#
+# MDEV-6883 ST_WITHIN crashes server if (0,0) is matched to POLYGON((0 0))
+#
+select st_within(GeomFromText('Polygon((0 0))'), Point(0,0));
+st_within(GeomFromText('Polygon((0 0))'), Point(0,0))
+1
End of 5.3 tests
#
# Bug#11908153: CRASH AND/OR VALGRIND ERRORS IN FIELD_BLOB::GET_KEY_IMAGE
diff --git a/mysql-test/r/openssl-poodle_6975,sslv3.result b/mysql-test/r/openssl-poodle_6975,sslv3.result
new file mode 100644
index 00000000000..52d5978749e
--- /dev/null
+++ b/mysql-test/r/openssl-poodle_6975,sslv3.result
@@ -0,0 +1,25 @@
+grant select on test.* to ssl_sslv3@localhost require cipher "RC4-SHA";
+grant select on test.* to ssl_tls12@localhost require cipher "AES128-SHA256";
+TLS1.2 ciphers: user is ok with any cipher
+ERROR 2026 (HY000): SSL connection error: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure
+ERROR 2026 (HY000): SSL connection error: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure
+TLS1.2 ciphers: user requires SSLv3 cipher RC4-SHA
+ERROR 2026 (HY000): SSL connection error: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure
+ERROR 2026 (HY000): SSL connection error: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure
+TLS1.2 ciphers: user requires TLSv1.2 cipher AES128-SHA256
+ERROR 2026 (HY000): SSL connection error: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure
+ERROR 2026 (HY000): SSL connection error: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure
+SSLv3 ciphers: user is ok with any cipher
+Variable_name Value
+Ssl_cipher RC4-SHA
+Variable_name Value
+Ssl_cipher DHE-RSA-AES256-SHA
+SSLv3 ciphers: user requires SSLv3 cipher RC4-SHA
+Variable_name Value
+Ssl_cipher RC4-SHA
+ERROR 1045 (28000): Access denied for user 'ssl_sslv3'@'localhost' (using password: NO)
+SSLv3 ciphers: user requires TLSv1.2 cipher AES128-SHA256
+ERROR 1045 (28000): Access denied for user 'ssl_tls12'@'localhost' (using password: NO)
+ERROR 1045 (28000): Access denied for user 'ssl_tls12'@'localhost' (using password: NO)
+drop user ssl_sslv3@localhost;
+drop user ssl_tls12@localhost;
diff --git a/mysql-test/r/openssl-poodle_6975,tlsv12.result b/mysql-test/r/openssl-poodle_6975,tlsv12.result
new file mode 100644
index 00000000000..033220427be
--- /dev/null
+++ b/mysql-test/r/openssl-poodle_6975,tlsv12.result
@@ -0,0 +1,25 @@
+grant select on test.* to ssl_sslv3@localhost require cipher "RC4-SHA";
+grant select on test.* to ssl_tls12@localhost require cipher "AES128-SHA256";
+TLS1.2 ciphers: user is ok with any cipher
+Variable_name Value
+Ssl_cipher AES128-SHA256
+Variable_name Value
+Ssl_cipher DHE-RSA-AES256-GCM-SHA384
+TLS1.2 ciphers: user requires SSLv3 cipher RC4-SHA
+ERROR 1045 (28000): Access denied for user 'ssl_sslv3'@'localhost' (using password: NO)
+ERROR 1045 (28000): Access denied for user 'ssl_sslv3'@'localhost' (using password: NO)
+TLS1.2 ciphers: user requires TLSv1.2 cipher AES128-SHA256
+Variable_name Value
+Ssl_cipher AES128-SHA256
+ERROR 1045 (28000): Access denied for user 'ssl_tls12'@'localhost' (using password: NO)
+SSLv3 ciphers: user is ok with any cipher
+ERROR 2026 (HY000): SSL connection error: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure
+ERROR 2026 (HY000): SSL connection error: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure
+SSLv3 ciphers: user requires SSLv3 cipher RC4-SHA
+ERROR 2026 (HY000): SSL connection error: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure
+ERROR 2026 (HY000): SSL connection error: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure
+SSLv3 ciphers: user requires TLSv1.2 cipher AES128-SHA256
+ERROR 2026 (HY000): SSL connection error: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure
+ERROR 2026 (HY000): SSL connection error: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure
+drop user ssl_sslv3@localhost;
+drop user ssl_tls12@localhost;
diff --git a/mysql-test/r/openssl_1.result b/mysql-test/r/openssl_1.result
index 76b8e887d89..4627f03a8a3 100644
--- a/mysql-test/r/openssl_1.result
+++ b/mysql-test/r/openssl_1.result
@@ -7,6 +7,8 @@ grant select on test.* to ssl_user3@localhost require cipher "DHE-RSA-AES256-SHA
grant select on test.* to ssl_user4@localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "/C=SE/ST=Uppsala/O=MySQL AB" ISSUER "/C=SE/ST=Uppsala/L=Uppsala/O=MySQL AB";
grant select on test.* to ssl_user5@localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "xxx";
flush privileges;
+connect(localhost,ssl_user2,,test,MASTER_PORT,MASTER_SOCKET);
+ERROR 28000: Access denied for user 'ssl_user2'@'localhost' (using password: NO)
connect(localhost,ssl_user5,,test,MASTER_PORT,MASTER_SOCKET);
ERROR 28000: Access denied for user 'ssl_user5'@'localhost' (using password: NO)
SHOW STATUS LIKE 'Ssl_cipher';
diff --git a/mysql-test/r/partition_error.result b/mysql-test/r/partition_error.result
index 41ede085623..847af86913d 100644
--- a/mysql-test/r/partition_error.result
+++ b/mysql-test/r/partition_error.result
@@ -1764,6 +1764,11 @@ PARTITION pmax VALUES LESS THAN MAXVALUE);
ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
DROP TABLE t1;
End of 5.1 tests
+create table t1 (a int) partition by list (values(a) div 1) (partition p0 values in (0), partition p1 values in (1));
+ERROR HY000: This partition function is not allowed
+create table t1 (a int) partition by list (uuid_short()) (partition p0 values in (0), partition p1 values in (1));
+ERROR 42000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed near ') (partition p0 values in (0), partition p1 values in (1))' at line 1
+End of 5.5 tests
CREATE TABLE t1 (a INT)
PARTITION BY LIST (a)
SUBPARTITION BY HASH (a) SUBPARTITIONS 2
diff --git a/mysql-test/r/union.result b/mysql-test/r/union.result
index 4ecac34d9fa..40f5a77e3d0 100644
--- a/mysql-test/r/union.result
+++ b/mysql-test/r/union.result
@@ -1935,3 +1935,23 @@ id select_type table type possible_keys key key_len ref rows Extra
3 UNION t1 ALL NULL NULL NULL NULL 4
NULL UNION RESULT <union2,3> ALL NULL NULL NULL NULL NULL
drop table t1;
+#
+# MDEV-6868:MariaDB server crash ( select with union and order by
+# with subquery )
+#
+CREATE TABLE t1 ( id INTEGER, sample_name1 VARCHAR(100), sample_name2 VARCHAR(100), PRIMARY KEY(id) );
+INSERT INTO t1 ( id, sample_name1, sample_name2 ) VALUES ( 1, 'aaaa', 'bbbb' ), ( 2, 'cccc', 'dddd' );
+(
+SELECT sample_name1 AS testname FROM t1
+)
+UNION
+(
+SELECT sample_name2 AS testname FROM t1 C ORDER BY (SELECT T.sample_name1 FROM t1 T WHERE T.id = C.id)
+)
+;
+testname
+aaaa
+cccc
+bbbb
+dddd
+drop table t1;
diff --git a/mysql-test/suite.pm b/mysql-test/suite.pm
index d80b4aaf822..e0e47560331 100644
--- a/mysql-test/suite.pm
+++ b/mysql-test/suite.pm
@@ -52,6 +52,9 @@ sub skip_combinations {
}
$skip{'include/check_ipv6.inc'} = 'No IPv6' unless ipv6_ok();
+ $skip{'t/openssl-poodle_6975.test'} = 'no or too old openssl'
+ unless ! IS_WINDOWS and ! system "openssl ciphers TLSv1.2 2>&1 >/dev/null";
+
%skip;
}
diff --git a/mysql-test/suite/binlog/r/load_data_stm_view.result b/mysql-test/suite/binlog/r/load_data_stm_view.result
new file mode 100644
index 00000000000..ddbdb71983f
--- /dev/null
+++ b/mysql-test/suite/binlog/r/load_data_stm_view.result
@@ -0,0 +1,24 @@
+create table t1 (i int, j int);
+create view v1 as select i from t1;
+LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/3940.data' INTO TABLE v1 (i);
+LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/3940.data' INTO TABLE v1;
+select * from v1;
+i
+1
+1
+include/show_binlog_events.inc
+Log_name Pos Event_type Server_id End_log_pos Info
+master-bin.000001 # Gtid # # GTID #-#-#
+master-bin.000001 # Query # # use `test`; create table t1 (i int, j int)
+master-bin.000001 # Gtid # # GTID #-#-#
+master-bin.000001 # Query # # use `test`; CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select i from t1
+master-bin.000001 # Gtid # # BEGIN GTID #-#-#
+master-bin.000001 # Begin_load_query # # ;file_id=#;block_len=#
+master-bin.000001 # Execute_load_query # # use `test`; LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/3940.data' IGNORE INTO TABLE `v1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' (`i`) ;file_id=#
+master-bin.000001 # Query # # COMMIT
+master-bin.000001 # Gtid # # BEGIN GTID #-#-#
+master-bin.000001 # Begin_load_query # # ;file_id=#;block_len=#
+master-bin.000001 # Execute_load_query # # use `test`; LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/3940.data' IGNORE INTO TABLE `v1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' (`i`) ;file_id=#
+master-bin.000001 # Query # # COMMIT
+drop view v1;
+drop table t1;
diff --git a/mysql-test/suite/binlog/t/load_data_stm_view.test b/mysql-test/suite/binlog/t/load_data_stm_view.test
new file mode 100644
index 00000000000..b70651b4e2d
--- /dev/null
+++ b/mysql-test/suite/binlog/t/load_data_stm_view.test
@@ -0,0 +1,20 @@
+#
+# MDEV-3940 Server crash or assertion `item->type() == Item::STRING_ITEM' failure on LOAD DATA through a view with statement binary logging
+#
+
+--source include/have_binlog_format_statement.inc
+
+--write_file $MYSQLTEST_VARDIR/3940.data
+1
+EOF
+
+create table t1 (i int, j int);
+create view v1 as select i from t1;
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
+--eval LOAD DATA LOCAL INFILE '$MYSQLTEST_VARDIR/3940.data' INTO TABLE v1 (i)
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
+--eval LOAD DATA LOCAL INFILE '$MYSQLTEST_VARDIR/3940.data' INTO TABLE v1
+select * from v1;
+--source include/show_binlog_events.inc
+drop view v1;
+drop table t1;
diff --git a/mysql-test/suite/plugins/t/unix_socket.test b/mysql-test/suite/plugins/t/unix_socket.test
index 2c1af9fb1da..1522c9b7cbe 100644
--- a/mysql-test/suite/plugins/t/unix_socket.test
+++ b/mysql-test/suite/plugins/t/unix_socket.test
@@ -12,11 +12,14 @@ eval install plugin unix_socket soname '$AUTH_SOCKET_SO';
--echo # with named user
--echo #
---replace_result $USER USER
+--let $replace=create user $USER
+--replace_result $replace "create user USER"
eval create user $USER identified via unix_socket;
--write_file $MYSQLTEST_VARDIR/tmp/peercred_test.txt
---replace_result $USER USER
+--let $replace1=$USER@localhost
+--let $replace2=$USER@%
+--replace_result $replace1 "USER@localhost" $replace2 "USER@%"
select user(), current_user(), database();
EOF
@@ -31,7 +34,8 @@ EOF
--error 1
--exec $MYSQL_TEST -u foobar --plugin-dir=$plugindir < $MYSQLTEST_VARDIR/tmp/peercred_test.txt
---replace_result $USER USER
+--let $replace=drop user $USER
+--replace_result $replace "drop user USER"
eval drop user $USER;
--echo #
diff --git a/mysql-test/suite/rpl/r/rpl_parallel_show_binlog_events_purge_logs.result b/mysql-test/suite/rpl/r/rpl_parallel_show_binlog_events_purge_logs.result
index b69deb17c4c..d454fa41111 100644
--- a/mysql-test/suite/rpl/r/rpl_parallel_show_binlog_events_purge_logs.result
+++ b/mysql-test/suite/rpl/r/rpl_parallel_show_binlog_events_purge_logs.result
@@ -7,7 +7,6 @@ SHOW BINLOG EVENTS;
SET DEBUG_SYNC= 'now WAIT_FOR on_show_binlog_events';
FLUSH LOGS;
SET DEBUG_SYNC= 'now SIGNAL end';
-SET DEBUG_SYNC= 'RESET';
[connection slave]
SET DEBUG_SYNC= 'RESET';
include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_parallel_show_binlog_events_purge_logs.test b/mysql-test/suite/rpl/t/rpl_parallel_show_binlog_events_purge_logs.test
index 16d986268c9..83d847318d8 100644
--- a/mysql-test/suite/rpl/t/rpl_parallel_show_binlog_events_purge_logs.test
+++ b/mysql-test/suite/rpl/t/rpl_parallel_show_binlog_events_purge_logs.test
@@ -22,7 +22,6 @@ SET DEBUG_SYNC= 'after_show_binlog_events SIGNAL on_show_binlog_events WAIT_FOR
SET DEBUG_SYNC= 'now WAIT_FOR on_show_binlog_events';
FLUSH LOGS;
SET DEBUG_SYNC= 'now SIGNAL end';
-SET DEBUG_SYNC= 'RESET';
--echo [connection slave]
--connection slave
diff --git a/mysql-test/suite/storage_engine/trx/xa_recovery.test b/mysql-test/suite/storage_engine/trx/xa_recovery.test
index 995878424f4..8256d068ade 100644
--- a/mysql-test/suite/storage_engine/trx/xa_recovery.test
+++ b/mysql-test/suite/storage_engine/trx/xa_recovery.test
@@ -56,10 +56,14 @@ XA PREPARE 'xa2';
--connection default
--enable_reconnect
--append_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
-restart
+wait
EOF
--shutdown_server 0
--source include/wait_until_disconnected.inc
+
+--append_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+restart
+EOF
--source include/wait_until_connected_again.inc
XA RECOVER;
XA ROLLBACK 'xa1';
diff --git a/mysql-test/suite/vcol/r/not_supported.result b/mysql-test/suite/vcol/r/not_supported.result
new file mode 100644
index 00000000000..06627fccf8b
--- /dev/null
+++ b/mysql-test/suite/vcol/r/not_supported.result
@@ -0,0 +1,67 @@
+set lc_time_names = 'es_MX';
+set time_zone='+10:00';
+set div_precision_increment=20;
+create table t1 (a int, b int, v decimal(20,19) as (a/3));
+create table t2 (a int, b int, v int as (a+@a));
+ERROR HY000: Function or expression is not allowed for column 'v'
+create table t3 (a int, b int, v int as (a+@@error_count));
+ERROR HY000: Function or expression is not allowed for column 'v'
+create table t4 (a int, b int, v int as (@a:=a));
+ERROR HY000: Function or expression is not allowed for column 'v'
+create table t5 (a int, b int, v varchar(100) as (monthname(a)));
+create table t6 (a int, b int, v varchar(100) as (dayname(a)));
+create table t7 (a int, b int, v varchar(100) as (date_format(a, '%W %a %M %b')));
+create table t8 (a int, b int, v varchar(100) as (from_unixtime(a)));
+insert t1 (a,b) values (1,2);
+insert t5 (a,b) values (20141010,2);
+insert t6 (a,b) values (20141010,2);
+insert t7 (a,b) values (20141010,2);
+insert t8 (a,b) values (1234567890,2);
+select * from t1;
+a b v
+1 2 0.3333333333333333333
+select * from t5;
+a b v
+20141010 2 octubre
+select * from t6;
+a b v
+20141010 2 viernes
+select * from t7;
+a b v
+20141010 2 viernes vie octubre oct
+select * from t8;
+a b v
+1234567890 2 2009-02-14 09:31:30
+set time_zone='+1:00';
+select * from t1;
+a b v
+1 2 0.3333333333333333333
+select * from t5;
+a b v
+20141010 2 octubre
+select * from t6;
+a b v
+20141010 2 viernes
+select * from t7;
+a b v
+20141010 2 viernes vie octubre oct
+select * from t8;
+a b v
+1234567890 2 2009-02-14 09:31:30
+flush tables;
+select * from t1;
+a b v
+1 2 0.3333333330000000000
+select * from t5;
+a b v
+20141010 2 October
+select * from t6;
+a b v
+20141010 2 Friday
+select * from t7;
+a b v
+20141010 2 Friday Fri October Oct
+select * from t8;
+a b v
+1234567890 2 2009-02-14 00:31:30
+drop table t1, t5, t6, t7, t8;
diff --git a/mysql-test/suite/vcol/t/not_supported.test b/mysql-test/suite/vcol/t/not_supported.test
new file mode 100644
index 00000000000..70b9dea69fd
--- /dev/null
+++ b/mysql-test/suite/vcol/t/not_supported.test
@@ -0,0 +1,58 @@
+#
+# MDEV-7113 difference between check_vcol_func_processor and check_partition_func_processor
+#
+
+# the following functions must not be supported in virtual columns.
+# but for compatibility reasons it won't be done in a GA version,
+# we'll only fix most critical issues (inconsistent results, crashes)
+
+connect (con1, localhost, root);
+
+set lc_time_names = 'es_MX';
+set time_zone='+10:00';
+set div_precision_increment=20;
+
+create table t1 (a int, b int, v decimal(20,19) as (a/3));
+--error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
+create table t2 (a int, b int, v int as (a+@a));
+--error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
+create table t3 (a int, b int, v int as (a+@@error_count));
+--error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
+create table t4 (a int, b int, v int as (@a:=a));
+create table t5 (a int, b int, v varchar(100) as (monthname(a)));
+create table t6 (a int, b int, v varchar(100) as (dayname(a)));
+create table t7 (a int, b int, v varchar(100) as (date_format(a, '%W %a %M %b')));
+create table t8 (a int, b int, v varchar(100) as (from_unixtime(a)));
+
+insert t1 (a,b) values (1,2);
+insert t5 (a,b) values (20141010,2);
+insert t6 (a,b) values (20141010,2);
+insert t7 (a,b) values (20141010,2);
+insert t8 (a,b) values (1234567890,2);
+
+select * from t1;
+select * from t5;
+select * from t6;
+select * from t7;
+select * from t8;
+
+disconnect con1;
+connection default;
+set time_zone='+1:00';
+
+select * from t1;
+select * from t5;
+select * from t6;
+select * from t7;
+select * from t8;
+
+flush tables;
+
+select * from t1;
+select * from t5;
+select * from t6;
+select * from t7;
+select * from t8;
+
+drop table t1, t5, t6, t7, t8;
+
diff --git a/mysql-test/t/create.test b/mysql-test/t/create.test
index 8bb7339ce83..4d57a5a110a 100644
--- a/mysql-test/t/create.test
+++ b/mysql-test/t/create.test
@@ -2022,9 +2022,40 @@ select * from t1;
unlock tables;
drop table t1,t2;
+--echo #
+--echo # MDEV-6179: dynamic columns functions/cast()/convert() doesn't
+--echo # play nice with CREATE/ALTER TABLE
+--echo #
+create table t1 (
+ color char(32) as (COLUMN_GET(dynamic_cols, 1 as char)) persistent,
+ cl char(32) as (COLUMN_GET(COLUMN_ADD(COLUMN_CREATE(1 , 'blue' as char), 2, 'ttt'), i as char)) persistent,
+ item_name varchar(32) primary key, -- A common attribute for all items
+ i int,
+ dynamic_cols blob -- Dynamic columns will be stored here
+);
+INSERT INTO t1(item_name, dynamic_cols, i) VALUES
+ ('MariaDB T-shirt', COLUMN_CREATE(1, 'blue', 2, 'XL'), 1);
+INSERT INTO t1(item_name, dynamic_cols, i) VALUES
+ ('Thinkpad Laptop', COLUMN_CREATE(1, 'black', 3, 500), 2);
+
+select item_name, color, cl from t1;
+show create table t1;
+
+drop table t1;
+
+create table t1 (
+ n int,
+ c char(32) as (convert(cast(n as char), char)) persistent
+);
+insert into t1(n) values (1),(2),(3);
+
+select * from t1;
+show create table t1;
+
+drop table t1;
+
#
# MDEV-4880 Attempt to create a table without columns produces ER_ILLEGAL_HA instead of ER_TABLE_MUST_HAVE_COLUMNS
#
--error ER_TABLE_MUST_HAVE_COLUMNS
create table t1;
-
diff --git a/mysql-test/t/ctype_utf16.test b/mysql-test/t/ctype_utf16.test
index c92889da2dc..04c77db2f3c 100644
--- a/mysql-test/t/ctype_utf16.test
+++ b/mysql-test/t/ctype_utf16.test
@@ -788,6 +788,12 @@ SELECT 'a' AS id, REPEAT('bla bla', 100) AS body) t1;
#
--echo #
+--echo # MDEV-6865 Merge Bug#18935421 RPAD DIES WITH CERTAIN PADSTR INTPUTS..
+--echo #
+DO RPAD(_utf16 0x0061 COLLATE utf16_unicode_ci, 10000, 0x0061DE989999);
+DO LPAD(_utf16 0x0061 COLLATE utf16_unicode_ci, 10000, 0x0061DE989999);
+
+--echo #
--echo # End of 5.5 tests
--echo #
diff --git a/mysql-test/t/failed_auth_unixsocket.test b/mysql-test/t/failed_auth_unixsocket.test
index ba31cf6a59f..f7345f44698 100644
--- a/mysql-test/t/failed_auth_unixsocket.test
+++ b/mysql-test/t/failed_auth_unixsocket.test
@@ -16,11 +16,17 @@ change_user $USER;
eval install plugin unix_socket soname '$AUTH_SOCKET_SO';
---replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT $USER USER
+# Make sure that the replace works, even if $USER is 'user' or something else
+# that matches other parts of the error message.
+--echo connect(localhost,USER,,test,MASTER_PORT,MASTER_SOCKET);
+--let $replace=Access denied for user '$USER'
+--replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT $replace "Access denied for user 'USER'"
+--disable_query_log
--error ER_ACCESS_DENIED_NO_PASSWORD_ERROR
connect (fail,localhost,$USER);
+--enable_query_log
---replace_result $USER USER
+--replace_result $replace "Access denied for user 'USER'"
--error ER_ACCESS_DENIED_NO_PASSWORD_ERROR
change_user $USER;
diff --git a/mysql-test/t/func_compress.test b/mysql-test/t/func_compress.test
index eaed0c88fe1..fc3d2697426 100644
--- a/mysql-test/t/func_compress.test
+++ b/mysql-test/t/func_compress.test
@@ -136,3 +136,12 @@ DROP TABLE t1;
--echo #
--echo # End of 5.3 tests
--echo #
+
+#
+# MDEV-4513 Valgrind warnings (Conditional jump or move depends on uninitialised value) in inflate on UNCOMPRESS
+#
+SELECT UNCOMPRESS(CAST(0 AS BINARY(5)));
+
+--echo #
+--echo # End of 5.5 tests
+--echo #
diff --git a/mysql-test/t/gis.test b/mysql-test/t/gis.test
index d20e4c1711e..2625ec5d3c9 100644
--- a/mysql-test/t/gis.test
+++ b/mysql-test/t/gis.test
@@ -1413,6 +1413,11 @@ insert into t1 values(geomfromtext("POINT(0 9.2233720368548e18)"));
select equals(`a`,convert(`a` using utf8)) from `t1`;
drop table t1;
+--echo #
+--echo # MDEV-6883 ST_WITHIN crashes server if (0,0) is matched to POLYGON((0 0))
+--echo #
+select st_within(GeomFromText('Polygon((0 0))'), Point(0,0));
+
--echo End of 5.3 tests
--echo #
diff --git a/mysql-test/t/openssl-poodle_6975.combinations b/mysql-test/t/openssl-poodle_6975.combinations
new file mode 100644
index 00000000000..3147de1cb63
--- /dev/null
+++ b/mysql-test/t/openssl-poodle_6975.combinations
@@ -0,0 +1,6 @@
+[tlsv12]
+loose-ssl-cipher=TLSv1.2
+
+[sslv3]
+loose-ssl-cipher=SSLv3
+
diff --git a/mysql-test/t/openssl-poodle_6975.test b/mysql-test/t/openssl-poodle_6975.test
new file mode 100644
index 00000000000..bc6397c5c28
--- /dev/null
+++ b/mysql-test/t/openssl-poodle_6975.test
@@ -0,0 +1,38 @@
+#
+# MDEV-6975 Implement TLS protocol
+#
+# test SSLv3 and TLSv1.2 ciphers when OpenSSL is restricted to SSLv3 or TLSv1.2
+#
+source include/have_ssl_communication.inc;
+
+# this is OpenSSL test.
+
+grant select on test.* to ssl_sslv3@localhost require cipher "RC4-SHA";
+grant select on test.* to ssl_tls12@localhost require cipher "AES128-SHA256";
+
+let $mysql=$MYSQL --ssl-key=$MYSQL_TEST_DIR/std_data/client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/client-cert.pem -e "SHOW STATUS LIKE 'ssl_Cipher'" 2>&1;
+
+disable_abort_on_error;
+echo TLS1.2 ciphers: user is ok with any cipher;
+exec $mysql --ssl-cipher=AES128-SHA256;
+exec $mysql --ssl-cipher=TLSv1.2;
+echo TLS1.2 ciphers: user requires SSLv3 cipher RC4-SHA;
+exec $mysql --user ssl_sslv3 --ssl-cipher=AES128-SHA256;
+exec $mysql --user ssl_sslv3 --ssl-cipher=TLSv1.2;
+echo TLS1.2 ciphers: user requires TLSv1.2 cipher AES128-SHA256;
+exec $mysql --user ssl_tls12 --ssl-cipher=AES128-SHA256;
+exec $mysql --user ssl_tls12 --ssl-cipher=TLSv1.2;
+
+echo SSLv3 ciphers: user is ok with any cipher;
+exec $mysql --ssl-cipher=RC4-SHA;
+exec $mysql --ssl-cipher=SSLv3;
+echo SSLv3 ciphers: user requires SSLv3 cipher RC4-SHA;
+exec $mysql --user ssl_sslv3 --ssl-cipher=RC4-SHA;
+exec $mysql --user ssl_sslv3 --ssl-cipher=SSLv3;
+echo SSLv3 ciphers: user requires TLSv1.2 cipher AES128-SHA256;
+exec $mysql --user ssl_tls12 --ssl-cipher=RC4-SHA;
+exec $mysql --user ssl_tls12 --ssl-cipher=SSLv3;
+
+drop user ssl_sslv3@localhost;
+drop user ssl_tls12@localhost;
+
diff --git a/mysql-test/t/openssl_1.test b/mysql-test/t/openssl_1.test
index 0c8f81e4712..bee0e2cc720 100644
--- a/mysql-test/t/openssl_1.test
+++ b/mysql-test/t/openssl_1.test
@@ -20,13 +20,16 @@ grant select on test.* to ssl_user4@localhost require cipher "DHE-RSA-AES256-SHA
grant select on test.* to ssl_user5@localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "xxx";
flush privileges;
-connect (con1,localhost,ssl_user1,,,,,SSL);
-connect (con2,localhost,ssl_user2,,,,,SSL);
-connect (con3,localhost,ssl_user3,,,,,SSL);
-connect (con4,localhost,ssl_user4,,,,,SSL);
+connect (con1,localhost,ssl_user1,,,,,SSL-CIPHER=DHE-RSA-AES256-SHA);
--replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT
--error ER_ACCESS_DENIED_ERROR
-connect (con5,localhost,ssl_user5,,,,,SSL);
+connect (con2,localhost,ssl_user2,,,,,SSL-CIPHER=RC4-SHA);
+connect (con2,localhost,ssl_user2,,,,,SSL-CIPHER=DHE-RSA-AES256-SHA);
+connect (con3,localhost,ssl_user3,,,,,SSL-CIPHER=DHE-RSA-AES256-SHA);
+connect (con4,localhost,ssl_user4,,,,,SSL-CIPHER=DHE-RSA-AES256-SHA);
+--replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT
+--error ER_ACCESS_DENIED_ERROR
+connect (con5,localhost,ssl_user5,,,,,SSL-CIPHER=DHE-RSA-AES256-SHA);
connection con1;
# Check ssl turned on
@@ -129,6 +132,7 @@ drop table t1;
# verification of servers certificate by setting both ca certificate
# and ca path to NULL
#
+--replace_result DHE-RSA-AES256-GCM-SHA384 DHE-RSA-AES256-SHA
--exec $MYSQL --ssl --ssl-key=$MYSQL_TEST_DIR/std_data/client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/client-cert.pem -e "SHOW STATUS LIKE 'ssl_Cipher'" 2>&1
--echo End of 5.0 tests
@@ -255,6 +259,7 @@ select 'is still running; no cipher request crashed the server' as result from d
GRANT SELECT ON test.* TO bug42158@localhost REQUIRE X509;
FLUSH PRIVILEGES;
connect(con1,localhost,bug42158,,,,,SSL);
+--replace_result DHE-RSA-AES256-GCM-SHA384 DHE-RSA-AES256-SHA
SHOW STATUS LIKE 'Ssl_cipher';
disconnect con1;
connection default;
diff --git a/mysql-test/t/partition_error.test b/mysql-test/t/partition_error.test
index c5b37615a92..5396b9e3543 100644
--- a/mysql-test/t/partition_error.test
+++ b/mysql-test/t/partition_error.test
@@ -2017,6 +2017,17 @@ DROP TABLE t1;
--echo End of 5.1 tests
+#
+# MDEV-7113 difference between check_vcol_func_processor and check_partition_func_processor
+#
+--error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
+create table t1 (a int) partition by list (values(a) div 1) (partition p0 values in (0), partition p1 values in (1));
+
+--error ER_PARSE_ERROR
+create table t1 (a int) partition by list (uuid_short()) (partition p0 values in (0), partition p1 values in (1));
+
+--echo End of 5.5 tests
+
CREATE TABLE t1 (a INT)
PARTITION BY LIST (a)
SUBPARTITION BY HASH (a) SUBPARTITIONS 2
diff --git a/mysql-test/t/ssl.test b/mysql-test/t/ssl.test
index eb4da99588c..988a9d6c056 100644
--- a/mysql-test/t/ssl.test
+++ b/mysql-test/t/ssl.test
@@ -11,6 +11,7 @@
connect (ssl_con,localhost,root,,,,,SSL);
# Check ssl turned on
+--replace_result DHE-RSA-AES256-GCM-SHA384 DHE-RSA-AES256-SHA
SHOW STATUS LIKE 'Ssl_cipher';
# Check ssl expiration
@@ -21,6 +22,7 @@ SHOW STATUS LIKE 'Ssl_server_not_after';
-- source include/common-tests.inc
# Check ssl turned on
+--replace_result DHE-RSA-AES256-GCM-SHA384 DHE-RSA-AES256-SHA
SHOW STATUS LIKE 'Ssl_cipher';
connection default;
diff --git a/mysql-test/t/ssl_8k_key-master.opt b/mysql-test/t/ssl_8k_key-master.opt
index 8d103df3a95..531c0abc9f1 100644
--- a/mysql-test/t/ssl_8k_key-master.opt
+++ b/mysql-test/t/ssl_8k_key-master.opt
@@ -1 +1,3 @@
---ssl-key=$MYSQL_TEST_DIR/std_data/server8k-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/server8k-cert.pem
+--loose-ssl-key=$MYSQL_TEST_DIR/std_data/server8k-key.pem
+--loose-ssl-cert=$MYSQL_TEST_DIR/std_data/server8k-cert.pem
+--loose-ssl-cipher=DHE-RSA-AES256-SHA
diff --git a/mysql-test/t/ssl_compress.test b/mysql-test/t/ssl_compress.test
index 8e0dea53fe7..5e45e3824a2 100644
--- a/mysql-test/t/ssl_compress.test
+++ b/mysql-test/t/ssl_compress.test
@@ -11,6 +11,7 @@
connect (ssl_compress_con,localhost,root,,,,,SSL COMPRESS);
# Check ssl turned on
+--replace_result DHE-RSA-AES256-GCM-SHA384 DHE-RSA-AES256-SHA
SHOW STATUS LIKE 'Ssl_cipher';
# Check compression turned on
@@ -20,6 +21,7 @@ SHOW STATUS LIKE 'Compression';
-- source include/common-tests.inc
# Check ssl turned on
+--replace_result DHE-RSA-AES256-GCM-SHA384 DHE-RSA-AES256-SHA
SHOW STATUS LIKE 'Ssl_cipher';
# Check compression turned on
diff --git a/mysql-test/t/union.test b/mysql-test/t/union.test
index a5d7dae606f..9204ddd22e5 100644
--- a/mysql-test/t/union.test
+++ b/mysql-test/t/union.test
@@ -1330,3 +1330,23 @@ create table t1 (a int);
insert t1 values (1),(2),(3),(1);
explain select 1 from dual where exists (select max(a) from t1 group by a union select a+2 from t1);
drop table t1;
+
+--echo #
+--echo # MDEV-6868:MariaDB server crash ( select with union and order by
+--echo # with subquery )
+--echo #
+
+CREATE TABLE t1 ( id INTEGER, sample_name1 VARCHAR(100), sample_name2 VARCHAR(100), PRIMARY KEY(id) );
+
+INSERT INTO t1 ( id, sample_name1, sample_name2 ) VALUES ( 1, 'aaaa', 'bbbb' ), ( 2, 'cccc', 'dddd' );
+
+(
+ SELECT sample_name1 AS testname FROM t1
+)
+UNION
+(
+ SELECT sample_name2 AS testname FROM t1 C ORDER BY (SELECT T.sample_name1 FROM t1 T WHERE T.id = C.id)
+)
+;
+
+drop table t1;