diff options
author | Galina Shalygina <galashalygina@gmail.com> | 2016-05-08 23:04:41 +0300 |
---|---|---|
committer | Galina Shalygina <galashalygina@gmail.com> | 2016-05-08 23:04:41 +0300 |
commit | be1d06c8a5f843e775374e5ec148aaee56970bdc (patch) | |
tree | bd7a95e771ca3b405583dccab8b468dd6fb4509f /mysql-test | |
parent | e09b1f2a226bf2763b211f74908a6486b83ebed1 (diff) | |
download | mariadb-git-be1d06c8a5f843e775374e5ec148aaee56970bdc.tar.gz |
Merge branch '10.2' into 10.2-mdev9864
Diffstat (limited to 'mysql-test')
228 files changed, 11039 insertions, 134 deletions
diff --git a/mysql-test/include/crash_mysqld.inc b/mysql-test/include/crash_mysqld.inc new file mode 100644 index 00000000000..4190d24d801 --- /dev/null +++ b/mysql-test/include/crash_mysqld.inc @@ -0,0 +1,18 @@ +# Crash mysqld hard and wait until it's restarted + +--source include/have_debug_sync.inc +--source include/not_embedded.inc + +# Write file to make mysql-test-run.pl expect crash and restart +--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect + +# Setup the mysqld to crash at shutdown +SET debug_dbug="d,crash_shutdown"; +--error 2013 +shutdown; + +# Turn on reconnect +--enable_reconnect + +# Call script that will poll the server waiting for it to be back online again +--source include/wait_until_connected_again.inc diff --git a/mysql-test/include/galera_connect.inc b/mysql-test/include/galera_connect.inc index 9d458c5e063..a40b03bf421 100644 --- a/mysql-test/include/galera_connect.inc +++ b/mysql-test/include/galera_connect.inc @@ -37,12 +37,15 @@ if (!$_galera_port) if ($galera_debug) { +--disable_query_log --echo connect($galera_connection_name,127.0.0.1,root,,test,$_galera_port,) +--enable_query_log } # Temporal solution to avoid concurrent IST MDEV-7178 --sleep 1 # Open a connection +--disable_query_log --connect($galera_connection_name,127.0.0.1,root,,test,$_galera_port,) - +--enable_query_log diff --git a/mysql-test/r/analyze_format_json.result b/mysql-test/r/analyze_format_json.result index 4f8876a8414..fadbe705f99 100644 --- a/mysql-test/r/analyze_format_json.result +++ b/mysql-test/r/analyze_format_json.result @@ -492,8 +492,9 @@ ANALYZE "select_id": 1, "r_loops": 1, "volatile parameter": "REPLACED", - "having_condition": "(TOP > a)", + "having_condition": "(TOP > t2.a)", "filesort": { + "sort_key": "t2.a", "r_loops": 1, "volatile parameter": "REPLACED", "r_used_priority_queue": false, @@ -523,6 +524,7 @@ ANALYZE "r_loops": 1, "volatile parameter": "REPLACED", "filesort": { + "sort_key": "t2.a", "r_loops": 1, "volatile parameter": "REPLACED", "r_used_priority_queue": false, @@ -563,6 +565,7 @@ ANALYZE "r_loops": 1, "volatile parameter": "REPLACED", "filesort": { + "sort_key": "t2.a", "r_loops": 1, "volatile parameter": "REPLACED", "r_used_priority_queue": false, @@ -684,18 +687,20 @@ ANALYZE "r_loops": 1, "volatile parameter": "REPLACED", "filesort": { + "sort_key": "group_concat(t3.f3 separator ',')", "r_loops": 1, "volatile parameter": "REPLACED", "r_used_priority_queue": false, "r_output_rows": 0, "volatile parameter": "REPLACED", - "filesort": { - "r_loops": 1, - "volatile parameter": "REPLACED", - "r_used_priority_queue": false, - "r_output_rows": 0, - "volatile parameter": "REPLACED", - "temporary_table": { + "temporary_table": { + "filesort": { + "sort_key": "(subquery#2)", + "r_loops": 1, + "volatile parameter": "REPLACED", + "r_used_priority_queue": false, + "r_output_rows": 0, + "volatile parameter": "REPLACED", "temporary_table": { "table": { "table_name": "t2", diff --git a/mysql-test/r/analyze_stmt_orderby.result b/mysql-test/r/analyze_stmt_orderby.result index be1f01a2a52..37f0005148e 100644 --- a/mysql-test/r/analyze_stmt_orderby.result +++ b/mysql-test/r/analyze_stmt_orderby.result @@ -172,8 +172,8 @@ EXPLAIN "query_block": { "select_id": 1, "filesort": { + "sort_key": "t2.b", "temporary_table": { - "function": "buffer", "table": { "table_name": "t0", "access_type": "ALL", @@ -205,6 +205,7 @@ ANALYZE "r_loops": 1, "r_total_time_ms": "REPLACED", "filesort": { + "sort_key": "t2.b", "r_loops": 1, "r_total_time_ms": "REPLACED", "r_limit": 4, @@ -257,6 +258,7 @@ EXPLAIN "select_id": 1, "read_sorted_file": { "filesort": { + "sort_key": "t0.a", "table": { "table_name": "t0", "access_type": "ALL", @@ -290,6 +292,7 @@ ANALYZE "read_sorted_file": { "r_rows": 10, "filesort": { + "sort_key": "t0.a", "r_loops": 1, "r_total_time_ms": "REPLACED", "r_used_priority_queue": false, @@ -346,6 +349,7 @@ ANALYZE "r_loops": 1, "r_total_time_ms": "REPLACED", "filesort": { + "sort_key": "t2.c", "r_loops": 1, "r_total_time_ms": "REPLACED", "r_used_priority_queue": false, @@ -455,18 +459,20 @@ ANALYZE "r_loops": 1, "r_total_time_ms": "REPLACED", "filesort": { + "sort_key": "count(distinct t5.b)", "r_loops": 1, "r_total_time_ms": "REPLACED", "r_limit": 1, "r_used_priority_queue": true, "r_output_rows": 2, - "filesort": { - "r_loops": 1, - "r_total_time_ms": "REPLACED", - "r_used_priority_queue": false, - "r_output_rows": 6, - "r_buffer_size": "REPLACED", - "temporary_table": { + "temporary_table": { + "filesort": { + "sort_key": "t5.a", + "r_loops": 1, + "r_total_time_ms": "REPLACED", + "r_used_priority_queue": false, + "r_output_rows": 6, + "r_buffer_size": "REPLACED", "temporary_table": { "table": { "table_name": "t6", @@ -511,26 +517,31 @@ EXPLAIN "query_block": { "select_id": 1, "filesort": { + "sort_key": "count(distinct t5.b)", "temporary_table": { - "function": "buffer", - "table": { - "table_name": "t6", - "access_type": "ALL", - "rows": 5, - "filtered": 100, - "attached_condition": "((t6.b > 0) and (t6.a <= 5))" - }, - "block-nl-join": { - "table": { - "table_name": "t5", - "access_type": "ALL", - "rows": 7, - "filtered": 100 - }, - "buffer_type": "flat", - "buffer_size": "256Kb", - "join_type": "BNL", - "attached_condition": "(t5.a = t6.a)" + "filesort": { + "sort_key": "t5.a", + "temporary_table": { + "table": { + "table_name": "t6", + "access_type": "ALL", + "rows": 5, + "filtered": 100, + "attached_condition": "((t6.b > 0) and (t6.a <= 5))" + }, + "block-nl-join": { + "table": { + "table_name": "t5", + "access_type": "ALL", + "rows": 7, + "filtered": 100 + }, + "buffer_type": "flat", + "buffer_size": "256Kb", + "join_type": "BNL", + "attached_condition": "(t5.a = t6.a)" + } + } } } } diff --git a/mysql-test/r/connect2.result b/mysql-test/r/connect2.result index b68f7ae7c43..5430626a533 100644 --- a/mysql-test/r/connect2.result +++ b/mysql-test/r/connect2.result @@ -1,6 +1,7 @@ call mtr.add_suppression("Allocation failed"); SET @old_debug= @@session.debug; set @old_thread_cache_size=@@global.thread_cache_size; +set @@global.thread_cache_size=0; connect con1,localhost,root,,test,,; select 1; 1 diff --git a/mysql-test/r/cte_nonrecursive.result b/mysql-test/r/cte_nonrecursive.result index df641156e61..a9c13f3f10b 100644 --- a/mysql-test/r/cte_nonrecursive.result +++ b/mysql-test/r/cte_nonrecursive.result @@ -746,3 +746,16 @@ with t(f1,f1) as (select * from t1 where b >= 'c') select t1.b from t2,t1 where t1.a = t2.c; ERROR 42S21: Duplicate column name 'f1' drop table t1,t2; +# +# Bug mdev-9937: View used in the specification of with table +# refers to the base table with the same name +# +create table t1 (a int); +insert into t1 values (20), (30), (10); +create view v1 as select * from t1 where a > 10; +with t1 as (select * from v1) select * from t1; +a +20 +30 +drop view v1; +drop table t1; diff --git a/mysql-test/r/cte_recursive.result b/mysql-test/r/cte_recursive.result new file mode 100644 index 00000000000..7408bc56e63 --- /dev/null +++ b/mysql-test/r/cte_recursive.result @@ -0,0 +1,289 @@ +create table t1 (a int, b varchar(32)); +insert into t1 values +(4,'aaaa' ), (7,'bb'), (1,'ccc'), (4,'dd'); +insert into t1 values +(3,'eee'), (7,'bb'), (1,'fff'), (4,'ggg'); +with recursive +a1(a,b) as +(select * from t1 where t1.a>3 +union +select * from b1 where b1.a >3 +union +select * from c1 where c1.a>3), +b1(a,b) as +(select * from a1 where a1.b > 'ccc' +union +select * from c1 where c1.b > 'ddd'), +c1(a,b) as +(select * from a1 where a1.a<6 and a1.b< 'zz' +union +select * from b1 where b1.b > 'auu') +select * from c1; +ERROR HY000: No anchors for recursive WITH element 'b1' +drop table t1; +create table folks(id int, name char(32), dob date, father int, mother int); +insert into folks values +(100, 'Vasya', '2000-01-01', 20, 30), +(20, 'Dad', '1970-02-02', 10, 9), +(30, 'Mom', '1975-03-03', 8, 7), +(10, 'Grandpa Bill', '1940-04-05', null, null), +(9, 'Grandma Ann', '1941-10-15', null, null), +(25, 'Uncle Jim', '1968-11-18', 8, 7), +(98, 'Sister Amy', '2001-06-20', 20, 30), +(8, 'Grandma Sally', '1943-08-23', 5, 6), +(6, 'Grandgrandma Martha', '1923-05-17', null, null), +(67, 'Cousin Eddie', '1992-02-28', 25, 27), +(27, 'Auntie Melinda', '1971-03-29', null, null); +with recursive +ancestors +as +( +select * +from folks +where name = 'Vasya' and dob = '2000-01-01' + union +select p.id, p.name, p.dob, p.father, p.mother +from folks as p, ancestors AS a +where p.id = a.father or p.id = a.mother +) +select * from ancestors; +id name dob father mother +100 Vasya 2000-01-01 20 30 +20 Dad 1970-02-02 10 9 +30 Mom 1975-03-03 8 7 +10 Grandpa Bill 1940-04-05 NULL NULL +9 Grandma Ann 1941-10-15 NULL NULL +8 Grandma Sally 1943-08-23 5 6 +6 Grandgrandma Martha 1923-05-17 NULL NULL +with recursive +ancestors +as +( +select p.* +from folks as p, ancestors AS a +where p.id = a.father or p.id = a.mother +union +select * +from folks +where name = 'Vasya' and dob = '2000-01-01' +) +select * from ancestors; +id name dob father mother +100 Vasya 2000-01-01 20 30 +20 Dad 1970-02-02 10 9 +30 Mom 1975-03-03 8 7 +10 Grandpa Bill 1940-04-05 NULL NULL +9 Grandma Ann 1941-10-15 NULL NULL +8 Grandma Sally 1943-08-23 5 6 +6 Grandgrandma Martha 1923-05-17 NULL NULL +with recursive +ancestors +as +( +select * +from folks +where name = 'Cousin Eddie' + union +select p.* +from folks as p, ancestors as a +where p.id = a.father or p.id = a.mother +) +select * from ancestors; +id name dob father mother +67 Cousin Eddie 1992-02-28 25 27 +25 Uncle Jim 1968-11-18 8 7 +27 Auntie Melinda 1971-03-29 NULL NULL +8 Grandma Sally 1943-08-23 5 6 +6 Grandgrandma Martha 1923-05-17 NULL NULL +with recursive +ancestors +as +( +select * +from folks +where name = 'Vasya' or name='Sister Amy' + union +select p.* +from folks as p, ancestors as a +where p.id = a.father or p.id = a.mother +) +select * from ancestors; +id name dob father mother +100 Vasya 2000-01-01 20 30 +98 Sister Amy 2001-06-20 20 30 +20 Dad 1970-02-02 10 9 +30 Mom 1975-03-03 8 7 +10 Grandpa Bill 1940-04-05 NULL NULL +9 Grandma Ann 1941-10-15 NULL NULL +8 Grandma Sally 1943-08-23 5 6 +6 Grandgrandma Martha 1923-05-17 NULL NULL +with recursive +prev_gen +as +( +select folks.* +from folks, prev_gen +where folks.id=prev_gen.father or folks.id=prev_gen.mother +union +select * +from folks +where name='Vasya' +), +ancestors +as +( +select * +from folks +where name='Vasya' + union +select * +from ancestors +union +select * +from prev_gen +) +select ancestors.name, ancestors.dob from ancestors; +name dob +Vasya 2000-01-01 +Dad 1970-02-02 +Mom 1975-03-03 +Grandpa Bill 1940-04-05 +Grandma Ann 1941-10-15 +Grandma Sally 1943-08-23 +Grandgrandma Martha 1923-05-17 +with recursive +descendants +as +( +select * +from folks +where name = 'Grandpa Bill' + union +select folks.* +from folks, descendants as d +where d.id=folks.father or d.id=folks.mother +) +select * from descendants; +id name dob father mother +10 Grandpa Bill 1940-04-05 NULL NULL +20 Dad 1970-02-02 10 9 +100 Vasya 2000-01-01 20 30 +98 Sister Amy 2001-06-20 20 30 +with recursive +descendants +as +( +select * +from folks +where name = 'Grandma Sally' + union +select folks.* +from folks, descendants as d +where d.id=folks.father or d.id=folks.mother +) +select * from descendants; +id name dob father mother +8 Grandma Sally 1943-08-23 5 6 +30 Mom 1975-03-03 8 7 +25 Uncle Jim 1968-11-18 8 7 +100 Vasya 2000-01-01 20 30 +98 Sister Amy 2001-06-20 20 30 +67 Cousin Eddie 1992-02-28 25 27 +with recursive +ancestors +as +( +select * +from folks +where name = 'Vasya' and dob = '2000-01-01' + union +select p.* +from folks as p, ancestors AS a +where p.id = a.father OR p.id = a.mother +) +select * +from ancestors t1, ancestors t2 +where exists (select * from ancestors a +where a.father=t1.id AND a.mother=t2.id); +id name dob father mother id name dob father mother +20 Dad 1970-02-02 10 9 30 Mom 1975-03-03 8 7 +10 Grandpa Bill 1940-04-05 NULL NULL 9 Grandma Ann 1941-10-15 NULL NULL +with +ancestor_couples(husband, h_dob, wife, w_dob) +as +( +with recursive +ancestors +as +( +select * +from folks +where name = 'Vasya' + union +select p.* +from folks as p, ancestors AS a +where p.id = a.father OR p.id = a.mother +) +select t1.name, t1.dob, t2.name, t2.dob +from ancestors t1, ancestors t2 +where exists (select * from ancestors a +where a.father=t1.id AND a.mother=t2.id) +) +select * from ancestor_couples; +husband h_dob wife w_dob +Dad 1970-02-02 Mom 1975-03-03 +Grandpa Bill 1940-04-05 Grandma Ann 1941-10-15 +with recursive +ancestors +as +( +select * +from folks +where name = 'Vasya' and dob = '2000-01-01' + union +select p.* +from folks as p, ancestors AS a +where p.id = a.father +union +select p.* +from folks as p, ancestors AS a +where p.id = a.mother +) +select * from ancestors; +id name dob father mother +100 Vasya 2000-01-01 20 30 +20 Dad 1970-02-02 10 9 +30 Mom 1975-03-03 8 7 +9 Grandma Ann 1941-10-15 NULL NULL +10 Grandpa Bill 1940-04-05 NULL NULL +8 Grandma Sally 1943-08-23 5 6 +6 Grandgrandma Martha 1923-05-17 NULL NULL +with recursive +ancestor_couples(h_id, h_name, h_dob, h_father, h_mother, +w_id, w_name, w_dob, w_father, w_mother) +as +( +select h.*, w.* +from folks h, folks w, coupled_ancestors a +where a.father = h.id AND a.mother = w.id +union +select h.*, w.* +from folks v, folks h, folks w +where v.name = 'Vasya' and +(v.father = h.id AND v.mother= w.id) +), +coupled_ancestors (id, name, dob, father, mother) +as +( +select h_id, h_name, h_dob, h_father, h_mother +from ancestor_couples +union +select w_id, w_name, w_dob, w_father, w_mother +from ancestor_couples +) +select h_name, h_dob, w_name, w_dob +from ancestor_couples; +h_name h_dob w_name w_dob +Dad 1970-02-02 Mom 1975-03-03 +Grandpa Bill 1940-04-05 Grandma Ann 1941-10-15 +drop table folks; diff --git a/mysql-test/r/ctype_eucjpms.result b/mysql-test/r/ctype_eucjpms.result index f9cb4f1eecc..8d4d8f6d5f9 100644 --- a/mysql-test/r/ctype_eucjpms.result +++ b/mysql-test/r/ctype_eucjpms.result @@ -33913,3 +33913,24 @@ DROP TABLE t1; # # End of 10.1 tests # +# +# End of 10.2 tests +# +# +# MDEV-9842 LOAD DATA INFILE does not work well with a TEXT column when using sjis +# +CREATE TABLE t1 (a TEXT CHARACTER SET eucjpms); +LOAD DATA INFILE '../../std_data/loaddata/mdev9823.ujis.txt' INTO TABLE t1 CHARACTER SET eucjpms IGNORE 4 LINES; +SELECT HEX(a) FROM t1; +HEX(a) +3F +78787831 +3F3F +78787832 +8FA1A1 +78787833 +3F3F +DROP TABLE t1; +# +# End of 10.2 tests +# diff --git a/mysql-test/r/ctype_gbk_export_import.result b/mysql-test/r/ctype_gbk_export_import.result new file mode 100644 index 00000000000..d7d5aa98f02 --- /dev/null +++ b/mysql-test/r/ctype_gbk_export_import.result @@ -0,0 +1,3903 @@ +DROP DATABASE IF EXISTS gbk; +CREATE DATABASE gbk DEFAULT CHARACTER SET gbk; +USE gbk; +CREATE TABLE t1 ( +id INT NOT NULL, +a1 TEXT NOT NULL, +a2 TEXT CHARACTER SET utf8 NOT NULL, +b1 BLOB NOT NULL, +eol TEXT NOT NULL); +CREATE PROCEDURE populate() +BEGIN +TRUNCATE TABLE t1; +INSERT INTO t1 SET id=1, a1=0xEE5C, a2=_gbk 0xEE5C, b1=0xEE5C, eol='$'; +INSERT INTO t1 SET id=2, a1=0xEE5C5C, a2=_gbk 0xEE5C5C, b1=0xEE5C5C, eol='$'; +END| +CREATE FUNCTION cmt(id INT, field_name TEXT, field_value BLOB) +RETURNS TEXT CHARACTER SET utf8 +BEGIN +DECLARE comment TEXT CHARACTER SET utf8; +DECLARE expected_value_01 BLOB; +DECLARE expected_value_02 BLOB; +SET comment= CASE field_name WHEN 'a1' THEN 'TEXT-GBK' WHEN 'a2' THEN 'TEXT-UTF8' WHEN 'b1' THEN 'BLOB' ELSE '' END; +SET expected_value_01= CASE field_name WHEN 'a1' THEN 0xEE5C WHEN 'a2' THEN 0xE9A0AB WHEN 'b1' THEN 0xEE5C ELSE '' END; +SET expected_value_02= CASE field_name WHEN 'a1' THEN 0xEE5C5C WHEN 'a2' THEN 0xE9A0AB5C WHEN 'b1' THEN 0xEE5C5C ELSE '' END; +RETURN IF(CASE id +WHEN 1 THEN expected_value_01 +WHEN 2 THEN expected_value_02 +ELSE '' + END <> field_value, +CONCAT('BAD-', comment), ''); +END| +CREATE FUNCTION display_file(file BLOB) RETURNS TEXT CHARACTER SET utf8 +BEGIN +SET file=REPLACE(file, 0x09, '----'); +SET file=REPLACE(file, 0x0A, '++++'); +RETURN REPLACE(REPLACE(HEX(file), '2D2D2D2D','-'), '2B2B2B2B','|'); +END| +CREATE VIEW v1 AS +SELECT +id, +CONCAT(RPAD(HEX(a1),50,' '), cmt(id, 'a1', a1)) AS a1, +CONCAT(RPAD(HEX(a2),50,' '), cmt(id, 'a2', a2)) AS a2, +CONCAT(RPAD(HEX(b1),50,' '), cmt(id, 'b1', b1)) AS b1, +CONCAT(RPAD(HEX(eol),50,' '), IF(eol<>'$','BAD-EOL','')) AS eol, +'---' AS `---` +FROM t1; +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `id` int(11) NOT NULL, + `a1` text NOT NULL, + `a2` text CHARACTER SET utf8 NOT NULL, + `b1` blob NOT NULL, + `eol` text NOT NULL +) ENGINE=MyISAM DEFAULT CHARSET=gbk +# +# Dump using SELECT INTO OUTFILE +# +Start of {zh_CN.gbk}{--default-character-set=auto }{--default-character-set=auto } +Locale: zh_CN.gbk +OUTFILE: --default-character-set=auto +INFILE: --default-character-set=auto +file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24| +id 1 +a1 EE5C +a2 E9978B3F BAD-TEXT-UTF8 +b1 EE5C +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9978BE78E9509E9A0AB5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=auto }{--default-character-set=auto } + + +Start of {zh_CN.gbk}{--default-character-set=auto }{--default-character-set=auto CHARACTER SET gbk} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=auto +INFILE: --default-character-set=auto CHARACTER SET gbk +file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24| +id 1 +a1 EE5C +a2 E9978B3F BAD-TEXT-UTF8 +b1 EE5C +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9978BE78E9509E9A0AB5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=auto }{--default-character-set=auto CHARACTER SET gbk} + + +Start of {zh_CN.gbk}{--default-character-set=auto }{--default-character-set=auto CHARACTER SET utf8} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=auto +INFILE: --default-character-set=auto CHARACTER SET utf8 +file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24| +id 1 +a1 3F5C BAD-TEXT-GBK +a2 E9A0AB +b1 EE5C +eol 24 +--- --- +id 2 +a1 3F5C5C BAD-TEXT-GBK +a2 E9A0AB5C +b1 EE5C5C +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=auto }{--default-character-set=auto CHARACTER SET utf8} + + +Start of {zh_CN.gbk}{--default-character-set=auto }{--default-character-set=auto CHARACTER SET binary} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=auto +INFILE: --default-character-set=auto CHARACTER SET binary +file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24| +id 1 +a1 3F09E9A03F BAD-TEXT-GBK +a2 3F5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 EE5C09E9A0AB5C BAD-TEXT-GBK +a2 3F5C5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=auto }{--default-character-set=auto CHARACTER SET binary} + + +Start of {zh_CN.gbk}{--default-character-set=auto }{--default-character-set=gbk } +Locale: zh_CN.gbk +OUTFILE: --default-character-set=auto +INFILE: --default-character-set=gbk +file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24| +id 1 +a1 EE5C +a2 E9978B3F BAD-TEXT-UTF8 +b1 EE5C +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9978BE78E9509E9A0AB5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=auto }{--default-character-set=gbk } + + +Start of {zh_CN.gbk}{--default-character-set=auto }{--default-character-set=gbk CHARACTER SET gbk} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=auto +INFILE: --default-character-set=gbk CHARACTER SET gbk +file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24| +id 1 +a1 EE5C +a2 E9978B3F BAD-TEXT-UTF8 +b1 EE5C +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9978BE78E9509E9A0AB5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=auto }{--default-character-set=gbk CHARACTER SET gbk} + + +Start of {zh_CN.gbk}{--default-character-set=auto }{--default-character-set=gbk CHARACTER SET utf8} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=auto +INFILE: --default-character-set=gbk CHARACTER SET utf8 +file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24| +id 1 +a1 3F5C BAD-TEXT-GBK +a2 E9A0AB +b1 EE5C +eol 24 +--- --- +id 2 +a1 3F5C5C BAD-TEXT-GBK +a2 E9A0AB5C +b1 EE5C5C +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=auto }{--default-character-set=gbk CHARACTER SET utf8} + + +Start of {zh_CN.gbk}{--default-character-set=auto }{--default-character-set=gbk CHARACTER SET binary} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=auto +INFILE: --default-character-set=gbk CHARACTER SET binary +file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24| +id 1 +a1 3F09E9A03F BAD-TEXT-GBK +a2 3F5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 EE5C09E9A0AB5C BAD-TEXT-GBK +a2 3F5C5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=auto }{--default-character-set=gbk CHARACTER SET binary} + + +Start of {zh_CN.gbk}{--default-character-set=auto }{--default-character-set=utf8 } +Locale: zh_CN.gbk +OUTFILE: --default-character-set=auto +INFILE: --default-character-set=utf8 +file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24| +id 1 +a1 EE5C +a2 E9978B3F BAD-TEXT-UTF8 +b1 EE5C +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9978BE78E9509E9A0AB5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=auto }{--default-character-set=utf8 } + + +Start of {zh_CN.gbk}{--default-character-set=auto }{--default-character-set=utf8 CHARACTER SET gbk} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=auto +INFILE: --default-character-set=utf8 CHARACTER SET gbk +file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24| +id 1 +a1 EE5C +a2 E9978B3F BAD-TEXT-UTF8 +b1 EE5C +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9978BE78E9509E9A0AB5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=auto }{--default-character-set=utf8 CHARACTER SET gbk} + + +Start of {zh_CN.gbk}{--default-character-set=auto }{--default-character-set=utf8 CHARACTER SET utf8} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=auto +INFILE: --default-character-set=utf8 CHARACTER SET utf8 +file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24| +id 1 +a1 3F5C BAD-TEXT-GBK +a2 E9A0AB +b1 EE5C +eol 24 +--- --- +id 2 +a1 3F5C5C BAD-TEXT-GBK +a2 E9A0AB5C +b1 EE5C5C +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=auto }{--default-character-set=utf8 CHARACTER SET utf8} + + +Start of {zh_CN.gbk}{--default-character-set=auto }{--default-character-set=utf8 CHARACTER SET binary} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=auto +INFILE: --default-character-set=utf8 CHARACTER SET binary +file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24| +id 1 +a1 3F09E9A03F BAD-TEXT-GBK +a2 3F5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 EE5C09E9A0AB5C BAD-TEXT-GBK +a2 3F5C5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=auto }{--default-character-set=utf8 CHARACTER SET binary} + + +Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET gbk}{--default-character-set=auto } +Locale: zh_CN.gbk +OUTFILE: --default-character-set=auto CHARACTER SET gbk +INFILE: --default-character-set=auto +file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24| +id 1 +a1 EE5C +a2 E9A0AB +b1 EE5C +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9A0AB5C +b1 EE5C5C +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET gbk}{--default-character-set=auto } + + +Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET gbk}{--default-character-set=auto CHARACTER SET gbk} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=auto CHARACTER SET gbk +INFILE: --default-character-set=auto CHARACTER SET gbk +file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24| +id 1 +a1 EE5C +a2 E9A0AB +b1 EE5C +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9A0AB5C +b1 EE5C5C +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET gbk}{--default-character-set=auto CHARACTER SET gbk} + + +Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET gbk}{--default-character-set=auto CHARACTER SET utf8} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=auto CHARACTER SET gbk +INFILE: --default-character-set=auto CHARACTER SET utf8 +file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24| +id 1 +a1 3F5C BAD-TEXT-GBK +a2 3F5C BAD-TEXT-UTF8 +b1 EE5C +eol 24 +--- --- +id 2 +a1 3F5C5C BAD-TEXT-GBK +a2 3F5C5C BAD-TEXT-UTF8 +b1 EE5C5C +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET gbk}{--default-character-set=auto CHARACTER SET utf8} + + +Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET gbk}{--default-character-set=auto CHARACTER SET binary} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=auto CHARACTER SET gbk +INFILE: --default-character-set=auto CHARACTER SET binary +file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24| +id 1 +a1 3F093F093F0924 BAD-TEXT-GBK +a2 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 EE5C09EE5C09EE5C0924 BAD-TEXT-GBK +a2 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET gbk}{--default-character-set=auto CHARACTER SET binary} + + +Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET gbk}{--default-character-set=gbk } +Locale: zh_CN.gbk +OUTFILE: --default-character-set=auto CHARACTER SET gbk +INFILE: --default-character-set=gbk +file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24| +id 1 +a1 EE5C +a2 E9A0AB +b1 EE5C +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9A0AB5C +b1 EE5C5C +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET gbk}{--default-character-set=gbk } + + +Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET gbk}{--default-character-set=gbk CHARACTER SET gbk} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=auto CHARACTER SET gbk +INFILE: --default-character-set=gbk CHARACTER SET gbk +file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24| +id 1 +a1 EE5C +a2 E9A0AB +b1 EE5C +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9A0AB5C +b1 EE5C5C +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET gbk}{--default-character-set=gbk CHARACTER SET gbk} + + +Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET gbk}{--default-character-set=gbk CHARACTER SET utf8} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=auto CHARACTER SET gbk +INFILE: --default-character-set=gbk CHARACTER SET utf8 +file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24| +id 1 +a1 3F5C BAD-TEXT-GBK +a2 3F5C BAD-TEXT-UTF8 +b1 EE5C +eol 24 +--- --- +id 2 +a1 3F5C5C BAD-TEXT-GBK +a2 3F5C5C BAD-TEXT-UTF8 +b1 EE5C5C +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET gbk}{--default-character-set=gbk CHARACTER SET utf8} + + +Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET gbk}{--default-character-set=gbk CHARACTER SET binary} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=auto CHARACTER SET gbk +INFILE: --default-character-set=gbk CHARACTER SET binary +file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24| +id 1 +a1 3F093F093F0924 BAD-TEXT-GBK +a2 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 EE5C09EE5C09EE5C0924 BAD-TEXT-GBK +a2 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET gbk}{--default-character-set=gbk CHARACTER SET binary} + + +Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET gbk}{--default-character-set=utf8 } +Locale: zh_CN.gbk +OUTFILE: --default-character-set=auto CHARACTER SET gbk +INFILE: --default-character-set=utf8 +file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24| +id 1 +a1 EE5C +a2 E9A0AB +b1 EE5C +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9A0AB5C +b1 EE5C5C +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET gbk}{--default-character-set=utf8 } + + +Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET gbk}{--default-character-set=utf8 CHARACTER SET gbk} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=auto CHARACTER SET gbk +INFILE: --default-character-set=utf8 CHARACTER SET gbk +file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24| +id 1 +a1 EE5C +a2 E9A0AB +b1 EE5C +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9A0AB5C +b1 EE5C5C +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET gbk}{--default-character-set=utf8 CHARACTER SET gbk} + + +Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET gbk}{--default-character-set=utf8 CHARACTER SET utf8} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=auto CHARACTER SET gbk +INFILE: --default-character-set=utf8 CHARACTER SET utf8 +file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24| +id 1 +a1 3F5C BAD-TEXT-GBK +a2 3F5C BAD-TEXT-UTF8 +b1 EE5C +eol 24 +--- --- +id 2 +a1 3F5C5C BAD-TEXT-GBK +a2 3F5C5C BAD-TEXT-UTF8 +b1 EE5C5C +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET gbk}{--default-character-set=utf8 CHARACTER SET utf8} + + +Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET gbk}{--default-character-set=utf8 CHARACTER SET binary} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=auto CHARACTER SET gbk +INFILE: --default-character-set=utf8 CHARACTER SET binary +file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24| +id 1 +a1 3F093F093F0924 BAD-TEXT-GBK +a2 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 EE5C09EE5C09EE5C0924 BAD-TEXT-GBK +a2 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET gbk}{--default-character-set=utf8 CHARACTER SET binary} + + +Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET utf8}{--default-character-set=auto } +Locale: zh_CN.gbk +OUTFILE: --default-character-set=auto CHARACTER SET utf8 +INFILE: --default-character-set=auto +file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24| +id 1 +a1 E9A03F BAD-TEXT-GBK +a2 E9978B3F BAD-TEXT-UTF8 +b1 3F5C BAD-BLOB +eol 24 +--- --- +id 2 +a1 E9A0AB5C09E9A0AB5C093F5C5C BAD-TEXT-GBK +a2 24 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET utf8}{--default-character-set=auto } + + +Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET utf8}{--default-character-set=auto CHARACTER SET gbk} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=auto CHARACTER SET utf8 +INFILE: --default-character-set=auto CHARACTER SET gbk +file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24| +id 1 +a1 E9A03F BAD-TEXT-GBK +a2 E9978B3F BAD-TEXT-UTF8 +b1 3F5C BAD-BLOB +eol 24 +--- --- +id 2 +a1 E9A0AB5C09E9A0AB5C093F5C5C BAD-TEXT-GBK +a2 24 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET utf8}{--default-character-set=auto CHARACTER SET gbk} + + +Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET utf8}{--default-character-set=auto CHARACTER SET utf8} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=auto CHARACTER SET utf8 +INFILE: --default-character-set=auto CHARACTER SET utf8 +file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24| +id 1 +a1 EE5C +a2 E9A0AB +b1 3F5C BAD-BLOB +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9A0AB5C +b1 3F5C5C BAD-BLOB +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET utf8}{--default-character-set=auto CHARACTER SET utf8} + + +Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET utf8}{--default-character-set=auto CHARACTER SET binary} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=auto CHARACTER SET utf8 +INFILE: --default-character-set=auto CHARACTER SET binary +file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24| +id 1 +a1 E9A03F BAD-TEXT-GBK +a2 E9A0AB +b1 3F5C BAD-BLOB +eol 24 +--- --- +id 2 +a1 E9A0AB5C BAD-TEXT-GBK +a2 E9A0AB5C +b1 3F5C5C BAD-BLOB +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET utf8}{--default-character-set=auto CHARACTER SET binary} + + +Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET utf8}{--default-character-set=gbk } +Locale: zh_CN.gbk +OUTFILE: --default-character-set=auto CHARACTER SET utf8 +INFILE: --default-character-set=gbk +file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24| +id 1 +a1 E9A03F BAD-TEXT-GBK +a2 E9978B3F BAD-TEXT-UTF8 +b1 3F5C BAD-BLOB +eol 24 +--- --- +id 2 +a1 E9A0AB5C09E9A0AB5C093F5C5C BAD-TEXT-GBK +a2 24 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET utf8}{--default-character-set=gbk } + + +Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET utf8}{--default-character-set=gbk CHARACTER SET gbk} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=auto CHARACTER SET utf8 +INFILE: --default-character-set=gbk CHARACTER SET gbk +file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24| +id 1 +a1 E9A03F BAD-TEXT-GBK +a2 E9978B3F BAD-TEXT-UTF8 +b1 3F5C BAD-BLOB +eol 24 +--- --- +id 2 +a1 E9A0AB5C09E9A0AB5C093F5C5C BAD-TEXT-GBK +a2 24 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET utf8}{--default-character-set=gbk CHARACTER SET gbk} + + +Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET utf8}{--default-character-set=gbk CHARACTER SET utf8} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=auto CHARACTER SET utf8 +INFILE: --default-character-set=gbk CHARACTER SET utf8 +file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24| +id 1 +a1 EE5C +a2 E9A0AB +b1 3F5C BAD-BLOB +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9A0AB5C +b1 3F5C5C BAD-BLOB +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET utf8}{--default-character-set=gbk CHARACTER SET utf8} + + +Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET utf8}{--default-character-set=gbk CHARACTER SET binary} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=auto CHARACTER SET utf8 +INFILE: --default-character-set=gbk CHARACTER SET binary +file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24| +id 1 +a1 E9A03F BAD-TEXT-GBK +a2 E9A0AB +b1 3F5C BAD-BLOB +eol 24 +--- --- +id 2 +a1 E9A0AB5C BAD-TEXT-GBK +a2 E9A0AB5C +b1 3F5C5C BAD-BLOB +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET utf8}{--default-character-set=gbk CHARACTER SET binary} + + +Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET utf8}{--default-character-set=utf8 } +Locale: zh_CN.gbk +OUTFILE: --default-character-set=auto CHARACTER SET utf8 +INFILE: --default-character-set=utf8 +file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24| +id 1 +a1 E9A03F BAD-TEXT-GBK +a2 E9978B3F BAD-TEXT-UTF8 +b1 3F5C BAD-BLOB +eol 24 +--- --- +id 2 +a1 E9A0AB5C09E9A0AB5C093F5C5C BAD-TEXT-GBK +a2 24 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET utf8}{--default-character-set=utf8 } + + +Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET utf8}{--default-character-set=utf8 CHARACTER SET gbk} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=auto CHARACTER SET utf8 +INFILE: --default-character-set=utf8 CHARACTER SET gbk +file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24| +id 1 +a1 E9A03F BAD-TEXT-GBK +a2 E9978B3F BAD-TEXT-UTF8 +b1 3F5C BAD-BLOB +eol 24 +--- --- +id 2 +a1 E9A0AB5C09E9A0AB5C093F5C5C BAD-TEXT-GBK +a2 24 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET utf8}{--default-character-set=utf8 CHARACTER SET gbk} + + +Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET utf8}{--default-character-set=utf8 CHARACTER SET utf8} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=auto CHARACTER SET utf8 +INFILE: --default-character-set=utf8 CHARACTER SET utf8 +file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24| +id 1 +a1 EE5C +a2 E9A0AB +b1 3F5C BAD-BLOB +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9A0AB5C +b1 3F5C5C BAD-BLOB +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET utf8}{--default-character-set=utf8 CHARACTER SET utf8} + + +Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET utf8}{--default-character-set=utf8 CHARACTER SET binary} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=auto CHARACTER SET utf8 +INFILE: --default-character-set=utf8 CHARACTER SET binary +file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24| +id 1 +a1 E9A03F BAD-TEXT-GBK +a2 E9A0AB +b1 3F5C BAD-BLOB +eol 24 +--- --- +id 2 +a1 E9A0AB5C BAD-TEXT-GBK +a2 E9A0AB5C +b1 3F5C5C BAD-BLOB +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET utf8}{--default-character-set=utf8 CHARACTER SET binary} + + +Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET binary}{--default-character-set=auto } +Locale: zh_CN.gbk +OUTFILE: --default-character-set=auto CHARACTER SET binary +INFILE: --default-character-set=auto +file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24| +id 1 +a1 EE5C +a2 E9978B3F BAD-TEXT-UTF8 +b1 EE5C +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9978BE78E9509E9A0AB5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET binary}{--default-character-set=auto } + + +Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET binary}{--default-character-set=auto CHARACTER SET gbk} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=auto CHARACTER SET binary +INFILE: --default-character-set=auto CHARACTER SET gbk +file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24| +id 1 +a1 EE5C +a2 E9978B3F BAD-TEXT-UTF8 +b1 EE5C +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9978BE78E9509E9A0AB5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET binary}{--default-character-set=auto CHARACTER SET gbk} + + +Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET binary}{--default-character-set=auto CHARACTER SET utf8} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=auto CHARACTER SET binary +INFILE: --default-character-set=auto CHARACTER SET utf8 +file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24| +id 1 +a1 3F5C BAD-TEXT-GBK +a2 E9A0AB +b1 EE5C +eol 24 +--- --- +id 2 +a1 3F5C5C BAD-TEXT-GBK +a2 E9A0AB5C +b1 EE5C5C +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET binary}{--default-character-set=auto CHARACTER SET utf8} + + +Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET binary}{--default-character-set=auto CHARACTER SET binary} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=auto CHARACTER SET binary +INFILE: --default-character-set=auto CHARACTER SET binary +file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24| +id 1 +a1 3F09E9A03F BAD-TEXT-GBK +a2 3F5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 EE5C09E9A0AB5C BAD-TEXT-GBK +a2 3F5C5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET binary}{--default-character-set=auto CHARACTER SET binary} + + +Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET binary}{--default-character-set=gbk } +Locale: zh_CN.gbk +OUTFILE: --default-character-set=auto CHARACTER SET binary +INFILE: --default-character-set=gbk +file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24| +id 1 +a1 EE5C +a2 E9978B3F BAD-TEXT-UTF8 +b1 EE5C +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9978BE78E9509E9A0AB5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET binary}{--default-character-set=gbk } + + +Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET binary}{--default-character-set=gbk CHARACTER SET gbk} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=auto CHARACTER SET binary +INFILE: --default-character-set=gbk CHARACTER SET gbk +file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24| +id 1 +a1 EE5C +a2 E9978B3F BAD-TEXT-UTF8 +b1 EE5C +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9978BE78E9509E9A0AB5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET binary}{--default-character-set=gbk CHARACTER SET gbk} + + +Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET binary}{--default-character-set=gbk CHARACTER SET utf8} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=auto CHARACTER SET binary +INFILE: --default-character-set=gbk CHARACTER SET utf8 +file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24| +id 1 +a1 3F5C BAD-TEXT-GBK +a2 E9A0AB +b1 EE5C +eol 24 +--- --- +id 2 +a1 3F5C5C BAD-TEXT-GBK +a2 E9A0AB5C +b1 EE5C5C +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET binary}{--default-character-set=gbk CHARACTER SET utf8} + + +Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET binary}{--default-character-set=gbk CHARACTER SET binary} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=auto CHARACTER SET binary +INFILE: --default-character-set=gbk CHARACTER SET binary +file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24| +id 1 +a1 3F09E9A03F BAD-TEXT-GBK +a2 3F5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 EE5C09E9A0AB5C BAD-TEXT-GBK +a2 3F5C5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET binary}{--default-character-set=gbk CHARACTER SET binary} + + +Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET binary}{--default-character-set=utf8 } +Locale: zh_CN.gbk +OUTFILE: --default-character-set=auto CHARACTER SET binary +INFILE: --default-character-set=utf8 +file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24| +id 1 +a1 EE5C +a2 E9978B3F BAD-TEXT-UTF8 +b1 EE5C +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9978BE78E9509E9A0AB5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET binary}{--default-character-set=utf8 } + + +Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET binary}{--default-character-set=utf8 CHARACTER SET gbk} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=auto CHARACTER SET binary +INFILE: --default-character-set=utf8 CHARACTER SET gbk +file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24| +id 1 +a1 EE5C +a2 E9978B3F BAD-TEXT-UTF8 +b1 EE5C +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9978BE78E9509E9A0AB5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET binary}{--default-character-set=utf8 CHARACTER SET gbk} + + +Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET binary}{--default-character-set=utf8 CHARACTER SET utf8} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=auto CHARACTER SET binary +INFILE: --default-character-set=utf8 CHARACTER SET utf8 +file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24| +id 1 +a1 3F5C BAD-TEXT-GBK +a2 E9A0AB +b1 EE5C +eol 24 +--- --- +id 2 +a1 3F5C5C BAD-TEXT-GBK +a2 E9A0AB5C +b1 EE5C5C +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET binary}{--default-character-set=utf8 CHARACTER SET utf8} + + +Start of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET binary}{--default-character-set=utf8 CHARACTER SET binary} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=auto CHARACTER SET binary +INFILE: --default-character-set=utf8 CHARACTER SET binary +file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24| +id 1 +a1 3F09E9A03F BAD-TEXT-GBK +a2 3F5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 EE5C09E9A0AB5C BAD-TEXT-GBK +a2 3F5C5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=auto CHARACTER SET binary}{--default-character-set=utf8 CHARACTER SET binary} + + +Start of {zh_CN.gbk}{--default-character-set=gbk }{--default-character-set=auto } +Locale: zh_CN.gbk +OUTFILE: --default-character-set=gbk +INFILE: --default-character-set=auto +file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24| +id 1 +a1 EE5C +a2 E9978B3F BAD-TEXT-UTF8 +b1 EE5C +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9978BE78E9509E9A0AB5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk }{--default-character-set=auto } + + +Start of {zh_CN.gbk}{--default-character-set=gbk }{--default-character-set=auto CHARACTER SET gbk} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=gbk +INFILE: --default-character-set=auto CHARACTER SET gbk +file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24| +id 1 +a1 EE5C +a2 E9978B3F BAD-TEXT-UTF8 +b1 EE5C +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9978BE78E9509E9A0AB5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk }{--default-character-set=auto CHARACTER SET gbk} + + +Start of {zh_CN.gbk}{--default-character-set=gbk }{--default-character-set=auto CHARACTER SET utf8} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=gbk +INFILE: --default-character-set=auto CHARACTER SET utf8 +file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24| +id 1 +a1 3F5C BAD-TEXT-GBK +a2 E9A0AB +b1 EE5C +eol 24 +--- --- +id 2 +a1 3F5C5C BAD-TEXT-GBK +a2 E9A0AB5C +b1 EE5C5C +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk }{--default-character-set=auto CHARACTER SET utf8} + + +Start of {zh_CN.gbk}{--default-character-set=gbk }{--default-character-set=auto CHARACTER SET binary} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=gbk +INFILE: --default-character-set=auto CHARACTER SET binary +file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24| +id 1 +a1 3F09E9A03F BAD-TEXT-GBK +a2 3F5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 EE5C09E9A0AB5C BAD-TEXT-GBK +a2 3F5C5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk }{--default-character-set=auto CHARACTER SET binary} + + +Start of {zh_CN.gbk}{--default-character-set=gbk }{--default-character-set=gbk } +Locale: zh_CN.gbk +OUTFILE: --default-character-set=gbk +INFILE: --default-character-set=gbk +file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24| +id 1 +a1 EE5C +a2 E9978B3F BAD-TEXT-UTF8 +b1 EE5C +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9978BE78E9509E9A0AB5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk }{--default-character-set=gbk } + + +Start of {zh_CN.gbk}{--default-character-set=gbk }{--default-character-set=gbk CHARACTER SET gbk} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=gbk +INFILE: --default-character-set=gbk CHARACTER SET gbk +file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24| +id 1 +a1 EE5C +a2 E9978B3F BAD-TEXT-UTF8 +b1 EE5C +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9978BE78E9509E9A0AB5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk }{--default-character-set=gbk CHARACTER SET gbk} + + +Start of {zh_CN.gbk}{--default-character-set=gbk }{--default-character-set=gbk CHARACTER SET utf8} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=gbk +INFILE: --default-character-set=gbk CHARACTER SET utf8 +file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24| +id 1 +a1 3F5C BAD-TEXT-GBK +a2 E9A0AB +b1 EE5C +eol 24 +--- --- +id 2 +a1 3F5C5C BAD-TEXT-GBK +a2 E9A0AB5C +b1 EE5C5C +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk }{--default-character-set=gbk CHARACTER SET utf8} + + +Start of {zh_CN.gbk}{--default-character-set=gbk }{--default-character-set=gbk CHARACTER SET binary} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=gbk +INFILE: --default-character-set=gbk CHARACTER SET binary +file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24| +id 1 +a1 3F09E9A03F BAD-TEXT-GBK +a2 3F5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 EE5C09E9A0AB5C BAD-TEXT-GBK +a2 3F5C5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk }{--default-character-set=gbk CHARACTER SET binary} + + +Start of {zh_CN.gbk}{--default-character-set=gbk }{--default-character-set=utf8 } +Locale: zh_CN.gbk +OUTFILE: --default-character-set=gbk +INFILE: --default-character-set=utf8 +file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24| +id 1 +a1 EE5C +a2 E9978B3F BAD-TEXT-UTF8 +b1 EE5C +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9978BE78E9509E9A0AB5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk }{--default-character-set=utf8 } + + +Start of {zh_CN.gbk}{--default-character-set=gbk }{--default-character-set=utf8 CHARACTER SET gbk} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=gbk +INFILE: --default-character-set=utf8 CHARACTER SET gbk +file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24| +id 1 +a1 EE5C +a2 E9978B3F BAD-TEXT-UTF8 +b1 EE5C +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9978BE78E9509E9A0AB5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk }{--default-character-set=utf8 CHARACTER SET gbk} + + +Start of {zh_CN.gbk}{--default-character-set=gbk }{--default-character-set=utf8 CHARACTER SET utf8} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=gbk +INFILE: --default-character-set=utf8 CHARACTER SET utf8 +file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24| +id 1 +a1 3F5C BAD-TEXT-GBK +a2 E9A0AB +b1 EE5C +eol 24 +--- --- +id 2 +a1 3F5C5C BAD-TEXT-GBK +a2 E9A0AB5C +b1 EE5C5C +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk }{--default-character-set=utf8 CHARACTER SET utf8} + + +Start of {zh_CN.gbk}{--default-character-set=gbk }{--default-character-set=utf8 CHARACTER SET binary} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=gbk +INFILE: --default-character-set=utf8 CHARACTER SET binary +file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24| +id 1 +a1 3F09E9A03F BAD-TEXT-GBK +a2 3F5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 EE5C09E9A0AB5C BAD-TEXT-GBK +a2 3F5C5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk }{--default-character-set=utf8 CHARACTER SET binary} + + +Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET gbk}{--default-character-set=auto } +Locale: zh_CN.gbk +OUTFILE: --default-character-set=gbk CHARACTER SET gbk +INFILE: --default-character-set=auto +file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24| +id 1 +a1 EE5C +a2 E9A0AB +b1 EE5C +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9A0AB5C +b1 EE5C5C +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET gbk}{--default-character-set=auto } + + +Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET gbk}{--default-character-set=auto CHARACTER SET gbk} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=gbk CHARACTER SET gbk +INFILE: --default-character-set=auto CHARACTER SET gbk +file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24| +id 1 +a1 EE5C +a2 E9A0AB +b1 EE5C +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9A0AB5C +b1 EE5C5C +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET gbk}{--default-character-set=auto CHARACTER SET gbk} + + +Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET gbk}{--default-character-set=auto CHARACTER SET utf8} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=gbk CHARACTER SET gbk +INFILE: --default-character-set=auto CHARACTER SET utf8 +file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24| +id 1 +a1 3F5C BAD-TEXT-GBK +a2 3F5C BAD-TEXT-UTF8 +b1 EE5C +eol 24 +--- --- +id 2 +a1 3F5C5C BAD-TEXT-GBK +a2 3F5C5C BAD-TEXT-UTF8 +b1 EE5C5C +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET gbk}{--default-character-set=auto CHARACTER SET utf8} + + +Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET gbk}{--default-character-set=auto CHARACTER SET binary} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=gbk CHARACTER SET gbk +INFILE: --default-character-set=auto CHARACTER SET binary +file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24| +id 1 +a1 3F093F093F0924 BAD-TEXT-GBK +a2 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 EE5C09EE5C09EE5C0924 BAD-TEXT-GBK +a2 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET gbk}{--default-character-set=auto CHARACTER SET binary} + + +Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET gbk}{--default-character-set=gbk } +Locale: zh_CN.gbk +OUTFILE: --default-character-set=gbk CHARACTER SET gbk +INFILE: --default-character-set=gbk +file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24| +id 1 +a1 EE5C +a2 E9A0AB +b1 EE5C +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9A0AB5C +b1 EE5C5C +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET gbk}{--default-character-set=gbk } + + +Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET gbk}{--default-character-set=gbk CHARACTER SET gbk} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=gbk CHARACTER SET gbk +INFILE: --default-character-set=gbk CHARACTER SET gbk +file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24| +id 1 +a1 EE5C +a2 E9A0AB +b1 EE5C +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9A0AB5C +b1 EE5C5C +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET gbk}{--default-character-set=gbk CHARACTER SET gbk} + + +Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET gbk}{--default-character-set=gbk CHARACTER SET utf8} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=gbk CHARACTER SET gbk +INFILE: --default-character-set=gbk CHARACTER SET utf8 +file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24| +id 1 +a1 3F5C BAD-TEXT-GBK +a2 3F5C BAD-TEXT-UTF8 +b1 EE5C +eol 24 +--- --- +id 2 +a1 3F5C5C BAD-TEXT-GBK +a2 3F5C5C BAD-TEXT-UTF8 +b1 EE5C5C +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET gbk}{--default-character-set=gbk CHARACTER SET utf8} + + +Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET gbk}{--default-character-set=gbk CHARACTER SET binary} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=gbk CHARACTER SET gbk +INFILE: --default-character-set=gbk CHARACTER SET binary +file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24| +id 1 +a1 3F093F093F0924 BAD-TEXT-GBK +a2 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 EE5C09EE5C09EE5C0924 BAD-TEXT-GBK +a2 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET gbk}{--default-character-set=gbk CHARACTER SET binary} + + +Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET gbk}{--default-character-set=utf8 } +Locale: zh_CN.gbk +OUTFILE: --default-character-set=gbk CHARACTER SET gbk +INFILE: --default-character-set=utf8 +file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24| +id 1 +a1 EE5C +a2 E9A0AB +b1 EE5C +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9A0AB5C +b1 EE5C5C +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET gbk}{--default-character-set=utf8 } + + +Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET gbk}{--default-character-set=utf8 CHARACTER SET gbk} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=gbk CHARACTER SET gbk +INFILE: --default-character-set=utf8 CHARACTER SET gbk +file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24| +id 1 +a1 EE5C +a2 E9A0AB +b1 EE5C +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9A0AB5C +b1 EE5C5C +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET gbk}{--default-character-set=utf8 CHARACTER SET gbk} + + +Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET gbk}{--default-character-set=utf8 CHARACTER SET utf8} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=gbk CHARACTER SET gbk +INFILE: --default-character-set=utf8 CHARACTER SET utf8 +file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24| +id 1 +a1 3F5C BAD-TEXT-GBK +a2 3F5C BAD-TEXT-UTF8 +b1 EE5C +eol 24 +--- --- +id 2 +a1 3F5C5C BAD-TEXT-GBK +a2 3F5C5C BAD-TEXT-UTF8 +b1 EE5C5C +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET gbk}{--default-character-set=utf8 CHARACTER SET utf8} + + +Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET gbk}{--default-character-set=utf8 CHARACTER SET binary} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=gbk CHARACTER SET gbk +INFILE: --default-character-set=utf8 CHARACTER SET binary +file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24| +id 1 +a1 3F093F093F0924 BAD-TEXT-GBK +a2 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 EE5C09EE5C09EE5C0924 BAD-TEXT-GBK +a2 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET gbk}{--default-character-set=utf8 CHARACTER SET binary} + + +Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET utf8}{--default-character-set=auto } +Locale: zh_CN.gbk +OUTFILE: --default-character-set=gbk CHARACTER SET utf8 +INFILE: --default-character-set=auto +file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24| +id 1 +a1 E9A03F BAD-TEXT-GBK +a2 E9978B3F BAD-TEXT-UTF8 +b1 3F5C BAD-BLOB +eol 24 +--- --- +id 2 +a1 E9A0AB5C09E9A0AB5C093F5C5C BAD-TEXT-GBK +a2 24 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET utf8}{--default-character-set=auto } + + +Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET utf8}{--default-character-set=auto CHARACTER SET gbk} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=gbk CHARACTER SET utf8 +INFILE: --default-character-set=auto CHARACTER SET gbk +file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24| +id 1 +a1 E9A03F BAD-TEXT-GBK +a2 E9978B3F BAD-TEXT-UTF8 +b1 3F5C BAD-BLOB +eol 24 +--- --- +id 2 +a1 E9A0AB5C09E9A0AB5C093F5C5C BAD-TEXT-GBK +a2 24 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET utf8}{--default-character-set=auto CHARACTER SET gbk} + + +Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET utf8}{--default-character-set=auto CHARACTER SET utf8} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=gbk CHARACTER SET utf8 +INFILE: --default-character-set=auto CHARACTER SET utf8 +file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24| +id 1 +a1 EE5C +a2 E9A0AB +b1 3F5C BAD-BLOB +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9A0AB5C +b1 3F5C5C BAD-BLOB +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET utf8}{--default-character-set=auto CHARACTER SET utf8} + + +Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET utf8}{--default-character-set=auto CHARACTER SET binary} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=gbk CHARACTER SET utf8 +INFILE: --default-character-set=auto CHARACTER SET binary +file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24| +id 1 +a1 E9A03F BAD-TEXT-GBK +a2 E9A0AB +b1 3F5C BAD-BLOB +eol 24 +--- --- +id 2 +a1 E9A0AB5C BAD-TEXT-GBK +a2 E9A0AB5C +b1 3F5C5C BAD-BLOB +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET utf8}{--default-character-set=auto CHARACTER SET binary} + + +Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET utf8}{--default-character-set=gbk } +Locale: zh_CN.gbk +OUTFILE: --default-character-set=gbk CHARACTER SET utf8 +INFILE: --default-character-set=gbk +file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24| +id 1 +a1 E9A03F BAD-TEXT-GBK +a2 E9978B3F BAD-TEXT-UTF8 +b1 3F5C BAD-BLOB +eol 24 +--- --- +id 2 +a1 E9A0AB5C09E9A0AB5C093F5C5C BAD-TEXT-GBK +a2 24 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET utf8}{--default-character-set=gbk } + + +Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET utf8}{--default-character-set=gbk CHARACTER SET gbk} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=gbk CHARACTER SET utf8 +INFILE: --default-character-set=gbk CHARACTER SET gbk +file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24| +id 1 +a1 E9A03F BAD-TEXT-GBK +a2 E9978B3F BAD-TEXT-UTF8 +b1 3F5C BAD-BLOB +eol 24 +--- --- +id 2 +a1 E9A0AB5C09E9A0AB5C093F5C5C BAD-TEXT-GBK +a2 24 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET utf8}{--default-character-set=gbk CHARACTER SET gbk} + + +Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET utf8}{--default-character-set=gbk CHARACTER SET utf8} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=gbk CHARACTER SET utf8 +INFILE: --default-character-set=gbk CHARACTER SET utf8 +file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24| +id 1 +a1 EE5C +a2 E9A0AB +b1 3F5C BAD-BLOB +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9A0AB5C +b1 3F5C5C BAD-BLOB +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET utf8}{--default-character-set=gbk CHARACTER SET utf8} + + +Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET utf8}{--default-character-set=gbk CHARACTER SET binary} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=gbk CHARACTER SET utf8 +INFILE: --default-character-set=gbk CHARACTER SET binary +file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24| +id 1 +a1 E9A03F BAD-TEXT-GBK +a2 E9A0AB +b1 3F5C BAD-BLOB +eol 24 +--- --- +id 2 +a1 E9A0AB5C BAD-TEXT-GBK +a2 E9A0AB5C +b1 3F5C5C BAD-BLOB +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET utf8}{--default-character-set=gbk CHARACTER SET binary} + + +Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET utf8}{--default-character-set=utf8 } +Locale: zh_CN.gbk +OUTFILE: --default-character-set=gbk CHARACTER SET utf8 +INFILE: --default-character-set=utf8 +file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24| +id 1 +a1 E9A03F BAD-TEXT-GBK +a2 E9978B3F BAD-TEXT-UTF8 +b1 3F5C BAD-BLOB +eol 24 +--- --- +id 2 +a1 E9A0AB5C09E9A0AB5C093F5C5C BAD-TEXT-GBK +a2 24 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET utf8}{--default-character-set=utf8 } + + +Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET utf8}{--default-character-set=utf8 CHARACTER SET gbk} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=gbk CHARACTER SET utf8 +INFILE: --default-character-set=utf8 CHARACTER SET gbk +file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24| +id 1 +a1 E9A03F BAD-TEXT-GBK +a2 E9978B3F BAD-TEXT-UTF8 +b1 3F5C BAD-BLOB +eol 24 +--- --- +id 2 +a1 E9A0AB5C09E9A0AB5C093F5C5C BAD-TEXT-GBK +a2 24 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET utf8}{--default-character-set=utf8 CHARACTER SET gbk} + + +Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET utf8}{--default-character-set=utf8 CHARACTER SET utf8} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=gbk CHARACTER SET utf8 +INFILE: --default-character-set=utf8 CHARACTER SET utf8 +file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24| +id 1 +a1 EE5C +a2 E9A0AB +b1 3F5C BAD-BLOB +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9A0AB5C +b1 3F5C5C BAD-BLOB +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET utf8}{--default-character-set=utf8 CHARACTER SET utf8} + + +Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET utf8}{--default-character-set=utf8 CHARACTER SET binary} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=gbk CHARACTER SET utf8 +INFILE: --default-character-set=utf8 CHARACTER SET binary +file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24| +id 1 +a1 E9A03F BAD-TEXT-GBK +a2 E9A0AB +b1 3F5C BAD-BLOB +eol 24 +--- --- +id 2 +a1 E9A0AB5C BAD-TEXT-GBK +a2 E9A0AB5C +b1 3F5C5C BAD-BLOB +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET utf8}{--default-character-set=utf8 CHARACTER SET binary} + + +Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET binary}{--default-character-set=auto } +Locale: zh_CN.gbk +OUTFILE: --default-character-set=gbk CHARACTER SET binary +INFILE: --default-character-set=auto +file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24| +id 1 +a1 EE5C +a2 E9978B3F BAD-TEXT-UTF8 +b1 EE5C +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9978BE78E9509E9A0AB5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET binary}{--default-character-set=auto } + + +Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET binary}{--default-character-set=auto CHARACTER SET gbk} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=gbk CHARACTER SET binary +INFILE: --default-character-set=auto CHARACTER SET gbk +file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24| +id 1 +a1 EE5C +a2 E9978B3F BAD-TEXT-UTF8 +b1 EE5C +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9978BE78E9509E9A0AB5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET binary}{--default-character-set=auto CHARACTER SET gbk} + + +Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET binary}{--default-character-set=auto CHARACTER SET utf8} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=gbk CHARACTER SET binary +INFILE: --default-character-set=auto CHARACTER SET utf8 +file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24| +id 1 +a1 3F5C BAD-TEXT-GBK +a2 E9A0AB +b1 EE5C +eol 24 +--- --- +id 2 +a1 3F5C5C BAD-TEXT-GBK +a2 E9A0AB5C +b1 EE5C5C +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET binary}{--default-character-set=auto CHARACTER SET utf8} + + +Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET binary}{--default-character-set=auto CHARACTER SET binary} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=gbk CHARACTER SET binary +INFILE: --default-character-set=auto CHARACTER SET binary +file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24| +id 1 +a1 3F09E9A03F BAD-TEXT-GBK +a2 3F5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 EE5C09E9A0AB5C BAD-TEXT-GBK +a2 3F5C5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET binary}{--default-character-set=auto CHARACTER SET binary} + + +Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET binary}{--default-character-set=gbk } +Locale: zh_CN.gbk +OUTFILE: --default-character-set=gbk CHARACTER SET binary +INFILE: --default-character-set=gbk +file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24| +id 1 +a1 EE5C +a2 E9978B3F BAD-TEXT-UTF8 +b1 EE5C +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9978BE78E9509E9A0AB5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET binary}{--default-character-set=gbk } + + +Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET binary}{--default-character-set=gbk CHARACTER SET gbk} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=gbk CHARACTER SET binary +INFILE: --default-character-set=gbk CHARACTER SET gbk +file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24| +id 1 +a1 EE5C +a2 E9978B3F BAD-TEXT-UTF8 +b1 EE5C +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9978BE78E9509E9A0AB5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET binary}{--default-character-set=gbk CHARACTER SET gbk} + + +Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET binary}{--default-character-set=gbk CHARACTER SET utf8} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=gbk CHARACTER SET binary +INFILE: --default-character-set=gbk CHARACTER SET utf8 +file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24| +id 1 +a1 3F5C BAD-TEXT-GBK +a2 E9A0AB +b1 EE5C +eol 24 +--- --- +id 2 +a1 3F5C5C BAD-TEXT-GBK +a2 E9A0AB5C +b1 EE5C5C +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET binary}{--default-character-set=gbk CHARACTER SET utf8} + + +Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET binary}{--default-character-set=gbk CHARACTER SET binary} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=gbk CHARACTER SET binary +INFILE: --default-character-set=gbk CHARACTER SET binary +file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24| +id 1 +a1 3F09E9A03F BAD-TEXT-GBK +a2 3F5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 EE5C09E9A0AB5C BAD-TEXT-GBK +a2 3F5C5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET binary}{--default-character-set=gbk CHARACTER SET binary} + + +Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET binary}{--default-character-set=utf8 } +Locale: zh_CN.gbk +OUTFILE: --default-character-set=gbk CHARACTER SET binary +INFILE: --default-character-set=utf8 +file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24| +id 1 +a1 EE5C +a2 E9978B3F BAD-TEXT-UTF8 +b1 EE5C +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9978BE78E9509E9A0AB5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET binary}{--default-character-set=utf8 } + + +Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET binary}{--default-character-set=utf8 CHARACTER SET gbk} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=gbk CHARACTER SET binary +INFILE: --default-character-set=utf8 CHARACTER SET gbk +file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24| +id 1 +a1 EE5C +a2 E9978B3F BAD-TEXT-UTF8 +b1 EE5C +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9978BE78E9509E9A0AB5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET binary}{--default-character-set=utf8 CHARACTER SET gbk} + + +Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET binary}{--default-character-set=utf8 CHARACTER SET utf8} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=gbk CHARACTER SET binary +INFILE: --default-character-set=utf8 CHARACTER SET utf8 +file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24| +id 1 +a1 3F5C BAD-TEXT-GBK +a2 E9A0AB +b1 EE5C +eol 24 +--- --- +id 2 +a1 3F5C5C BAD-TEXT-GBK +a2 E9A0AB5C +b1 EE5C5C +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET binary}{--default-character-set=utf8 CHARACTER SET utf8} + + +Start of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET binary}{--default-character-set=utf8 CHARACTER SET binary} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=gbk CHARACTER SET binary +INFILE: --default-character-set=utf8 CHARACTER SET binary +file 31-EE5C-E9A0AB-5CEE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-5CEE5C5C5C5C-24| +id 1 +a1 3F09E9A03F BAD-TEXT-GBK +a2 3F5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 EE5C09E9A0AB5C BAD-TEXT-GBK +a2 3F5C5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk CHARACTER SET binary}{--default-character-set=utf8 CHARACTER SET binary} + + +Start of {zh_CN.gbk}{--default-character-set=utf8 }{--default-character-set=auto } +Locale: zh_CN.gbk +OUTFILE: --default-character-set=utf8 +INFILE: --default-character-set=auto +file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24| +id 1 +a1 EE5C +a2 E9978B3F BAD-TEXT-UTF8 +b1 EE5C0924 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 EE5C5C +a2 E9978BE78E9509E9A0AB5C0924 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8 }{--default-character-set=auto } + + +Start of {zh_CN.gbk}{--default-character-set=utf8 }{--default-character-set=auto CHARACTER SET gbk} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=utf8 +INFILE: --default-character-set=auto CHARACTER SET gbk +file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24| +id 1 +a1 EE5C +a2 E9978B3F BAD-TEXT-UTF8 +b1 EE5C0924 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 EE5C5C +a2 E9978BE78E9509E9A0AB5C0924 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8 }{--default-character-set=auto CHARACTER SET gbk} + + +Start of {zh_CN.gbk}{--default-character-set=utf8 }{--default-character-set=auto CHARACTER SET utf8} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=utf8 +INFILE: --default-character-set=auto CHARACTER SET utf8 +file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24| +id 1 +a1 3F5C BAD-TEXT-GBK +a2 E9A0AB +b1 EE5C0924 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 3F5C5C BAD-TEXT-GBK +a2 E9A0AB5C +b1 EE5C5C0924 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8 }{--default-character-set=auto CHARACTER SET utf8} + + +Start of {zh_CN.gbk}{--default-character-set=utf8 }{--default-character-set=auto CHARACTER SET binary} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=utf8 +INFILE: --default-character-set=auto CHARACTER SET binary +file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24| +id 1 +a1 3F09E9A03F BAD-TEXT-GBK +a2 3F5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 EE5C09E9A0AB5C BAD-TEXT-GBK +a2 3F5C5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8 }{--default-character-set=auto CHARACTER SET binary} + + +Start of {zh_CN.gbk}{--default-character-set=utf8 }{--default-character-set=gbk } +Locale: zh_CN.gbk +OUTFILE: --default-character-set=utf8 +INFILE: --default-character-set=gbk +file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24| +id 1 +a1 EE5C +a2 E9978B3F BAD-TEXT-UTF8 +b1 EE5C0924 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 EE5C5C +a2 E9978BE78E9509E9A0AB5C0924 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8 }{--default-character-set=gbk } + + +Start of {zh_CN.gbk}{--default-character-set=utf8 }{--default-character-set=gbk CHARACTER SET gbk} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=utf8 +INFILE: --default-character-set=gbk CHARACTER SET gbk +file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24| +id 1 +a1 EE5C +a2 E9978B3F BAD-TEXT-UTF8 +b1 EE5C0924 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 EE5C5C +a2 E9978BE78E9509E9A0AB5C0924 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8 }{--default-character-set=gbk CHARACTER SET gbk} + + +Start of {zh_CN.gbk}{--default-character-set=utf8 }{--default-character-set=gbk CHARACTER SET utf8} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=utf8 +INFILE: --default-character-set=gbk CHARACTER SET utf8 +file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24| +id 1 +a1 3F5C BAD-TEXT-GBK +a2 E9A0AB +b1 EE5C0924 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 3F5C5C BAD-TEXT-GBK +a2 E9A0AB5C +b1 EE5C5C0924 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8 }{--default-character-set=gbk CHARACTER SET utf8} + + +Start of {zh_CN.gbk}{--default-character-set=utf8 }{--default-character-set=gbk CHARACTER SET binary} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=utf8 +INFILE: --default-character-set=gbk CHARACTER SET binary +file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24| +id 1 +a1 3F09E9A03F BAD-TEXT-GBK +a2 3F5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 EE5C09E9A0AB5C BAD-TEXT-GBK +a2 3F5C5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8 }{--default-character-set=gbk CHARACTER SET binary} + + +Start of {zh_CN.gbk}{--default-character-set=utf8 }{--default-character-set=utf8 } +Locale: zh_CN.gbk +OUTFILE: --default-character-set=utf8 +INFILE: --default-character-set=utf8 +file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24| +id 1 +a1 EE5C +a2 E9978B3F BAD-TEXT-UTF8 +b1 EE5C0924 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 EE5C5C +a2 E9978BE78E9509E9A0AB5C0924 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8 }{--default-character-set=utf8 } + + +Start of {zh_CN.gbk}{--default-character-set=utf8 }{--default-character-set=utf8 CHARACTER SET gbk} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=utf8 +INFILE: --default-character-set=utf8 CHARACTER SET gbk +file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24| +id 1 +a1 EE5C +a2 E9978B3F BAD-TEXT-UTF8 +b1 EE5C0924 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 EE5C5C +a2 E9978BE78E9509E9A0AB5C0924 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8 }{--default-character-set=utf8 CHARACTER SET gbk} + + +Start of {zh_CN.gbk}{--default-character-set=utf8 }{--default-character-set=utf8 CHARACTER SET utf8} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=utf8 +INFILE: --default-character-set=utf8 CHARACTER SET utf8 +file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24| +id 1 +a1 3F5C BAD-TEXT-GBK +a2 E9A0AB +b1 EE5C0924 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 3F5C5C BAD-TEXT-GBK +a2 E9A0AB5C +b1 EE5C5C0924 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8 }{--default-character-set=utf8 CHARACTER SET utf8} + + +Start of {zh_CN.gbk}{--default-character-set=utf8 }{--default-character-set=utf8 CHARACTER SET binary} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=utf8 +INFILE: --default-character-set=utf8 CHARACTER SET binary +file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24| +id 1 +a1 3F09E9A03F BAD-TEXT-GBK +a2 3F5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 EE5C09E9A0AB5C BAD-TEXT-GBK +a2 3F5C5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8 }{--default-character-set=utf8 CHARACTER SET binary} + + +Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET gbk}{--default-character-set=auto } +Locale: zh_CN.gbk +OUTFILE: --default-character-set=utf8 CHARACTER SET gbk +INFILE: --default-character-set=auto +file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24| +id 1 +a1 EE5C +a2 E9A0AB +b1 EE5C +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9A0AB5C +b1 EE5C5C +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET gbk}{--default-character-set=auto } + + +Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET gbk}{--default-character-set=auto CHARACTER SET gbk} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=utf8 CHARACTER SET gbk +INFILE: --default-character-set=auto CHARACTER SET gbk +file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24| +id 1 +a1 EE5C +a2 E9A0AB +b1 EE5C +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9A0AB5C +b1 EE5C5C +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET gbk}{--default-character-set=auto CHARACTER SET gbk} + + +Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET gbk}{--default-character-set=auto CHARACTER SET utf8} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=utf8 CHARACTER SET gbk +INFILE: --default-character-set=auto CHARACTER SET utf8 +file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24| +id 1 +a1 3F5C BAD-TEXT-GBK +a2 3F5C BAD-TEXT-UTF8 +b1 EE5C +eol 24 +--- --- +id 2 +a1 3F5C5C BAD-TEXT-GBK +a2 3F5C5C BAD-TEXT-UTF8 +b1 EE5C5C +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET gbk}{--default-character-set=auto CHARACTER SET utf8} + + +Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET gbk}{--default-character-set=auto CHARACTER SET binary} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=utf8 CHARACTER SET gbk +INFILE: --default-character-set=auto CHARACTER SET binary +file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24| +id 1 +a1 3F093F093F0924 BAD-TEXT-GBK +a2 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 EE5C09EE5C09EE5C0924 BAD-TEXT-GBK +a2 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET gbk}{--default-character-set=auto CHARACTER SET binary} + + +Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET gbk}{--default-character-set=gbk } +Locale: zh_CN.gbk +OUTFILE: --default-character-set=utf8 CHARACTER SET gbk +INFILE: --default-character-set=gbk +file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24| +id 1 +a1 EE5C +a2 E9A0AB +b1 EE5C +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9A0AB5C +b1 EE5C5C +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET gbk}{--default-character-set=gbk } + + +Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET gbk}{--default-character-set=gbk CHARACTER SET gbk} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=utf8 CHARACTER SET gbk +INFILE: --default-character-set=gbk CHARACTER SET gbk +file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24| +id 1 +a1 EE5C +a2 E9A0AB +b1 EE5C +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9A0AB5C +b1 EE5C5C +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET gbk}{--default-character-set=gbk CHARACTER SET gbk} + + +Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET gbk}{--default-character-set=gbk CHARACTER SET utf8} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=utf8 CHARACTER SET gbk +INFILE: --default-character-set=gbk CHARACTER SET utf8 +file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24| +id 1 +a1 3F5C BAD-TEXT-GBK +a2 3F5C BAD-TEXT-UTF8 +b1 EE5C +eol 24 +--- --- +id 2 +a1 3F5C5C BAD-TEXT-GBK +a2 3F5C5C BAD-TEXT-UTF8 +b1 EE5C5C +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET gbk}{--default-character-set=gbk CHARACTER SET utf8} + + +Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET gbk}{--default-character-set=gbk CHARACTER SET binary} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=utf8 CHARACTER SET gbk +INFILE: --default-character-set=gbk CHARACTER SET binary +file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24| +id 1 +a1 3F093F093F0924 BAD-TEXT-GBK +a2 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 EE5C09EE5C09EE5C0924 BAD-TEXT-GBK +a2 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET gbk}{--default-character-set=gbk CHARACTER SET binary} + + +Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET gbk}{--default-character-set=utf8 } +Locale: zh_CN.gbk +OUTFILE: --default-character-set=utf8 CHARACTER SET gbk +INFILE: --default-character-set=utf8 +file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24| +id 1 +a1 EE5C +a2 E9A0AB +b1 EE5C +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9A0AB5C +b1 EE5C5C +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET gbk}{--default-character-set=utf8 } + + +Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET gbk}{--default-character-set=utf8 CHARACTER SET gbk} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=utf8 CHARACTER SET gbk +INFILE: --default-character-set=utf8 CHARACTER SET gbk +file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24| +id 1 +a1 EE5C +a2 E9A0AB +b1 EE5C +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9A0AB5C +b1 EE5C5C +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET gbk}{--default-character-set=utf8 CHARACTER SET gbk} + + +Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET gbk}{--default-character-set=utf8 CHARACTER SET utf8} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=utf8 CHARACTER SET gbk +INFILE: --default-character-set=utf8 CHARACTER SET utf8 +file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24| +id 1 +a1 3F5C BAD-TEXT-GBK +a2 3F5C BAD-TEXT-UTF8 +b1 EE5C +eol 24 +--- --- +id 2 +a1 3F5C5C BAD-TEXT-GBK +a2 3F5C5C BAD-TEXT-UTF8 +b1 EE5C5C +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET gbk}{--default-character-set=utf8 CHARACTER SET utf8} + + +Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET gbk}{--default-character-set=utf8 CHARACTER SET binary} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=utf8 CHARACTER SET gbk +INFILE: --default-character-set=utf8 CHARACTER SET binary +file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24| +id 1 +a1 3F093F093F0924 BAD-TEXT-GBK +a2 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 EE5C09EE5C09EE5C0924 BAD-TEXT-GBK +a2 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET gbk}{--default-character-set=utf8 CHARACTER SET binary} + + +Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET utf8}{--default-character-set=auto } +Locale: zh_CN.gbk +OUTFILE: --default-character-set=utf8 CHARACTER SET utf8 +INFILE: --default-character-set=auto +file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24| +id 1 +a1 E9A03F BAD-TEXT-GBK +a2 E9978B3F BAD-TEXT-UTF8 +b1 3F5C BAD-BLOB +eol 24 +--- --- +id 2 +a1 E9A0AB5C09E9A0AB5C093F5C5C BAD-TEXT-GBK +a2 24 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET utf8}{--default-character-set=auto } + + +Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET utf8}{--default-character-set=auto CHARACTER SET gbk} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=utf8 CHARACTER SET utf8 +INFILE: --default-character-set=auto CHARACTER SET gbk +file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24| +id 1 +a1 E9A03F BAD-TEXT-GBK +a2 E9978B3F BAD-TEXT-UTF8 +b1 3F5C BAD-BLOB +eol 24 +--- --- +id 2 +a1 E9A0AB5C09E9A0AB5C093F5C5C BAD-TEXT-GBK +a2 24 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET utf8}{--default-character-set=auto CHARACTER SET gbk} + + +Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET utf8}{--default-character-set=auto CHARACTER SET utf8} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=utf8 CHARACTER SET utf8 +INFILE: --default-character-set=auto CHARACTER SET utf8 +file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24| +id 1 +a1 EE5C +a2 E9A0AB +b1 3F5C BAD-BLOB +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9A0AB5C +b1 3F5C5C BAD-BLOB +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET utf8}{--default-character-set=auto CHARACTER SET utf8} + + +Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET utf8}{--default-character-set=auto CHARACTER SET binary} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=utf8 CHARACTER SET utf8 +INFILE: --default-character-set=auto CHARACTER SET binary +file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24| +id 1 +a1 E9A03F BAD-TEXT-GBK +a2 E9A0AB +b1 3F5C BAD-BLOB +eol 24 +--- --- +id 2 +a1 E9A0AB5C BAD-TEXT-GBK +a2 E9A0AB5C +b1 3F5C5C BAD-BLOB +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET utf8}{--default-character-set=auto CHARACTER SET binary} + + +Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET utf8}{--default-character-set=gbk } +Locale: zh_CN.gbk +OUTFILE: --default-character-set=utf8 CHARACTER SET utf8 +INFILE: --default-character-set=gbk +file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24| +id 1 +a1 E9A03F BAD-TEXT-GBK +a2 E9978B3F BAD-TEXT-UTF8 +b1 3F5C BAD-BLOB +eol 24 +--- --- +id 2 +a1 E9A0AB5C09E9A0AB5C093F5C5C BAD-TEXT-GBK +a2 24 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET utf8}{--default-character-set=gbk } + + +Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET utf8}{--default-character-set=gbk CHARACTER SET gbk} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=utf8 CHARACTER SET utf8 +INFILE: --default-character-set=gbk CHARACTER SET gbk +file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24| +id 1 +a1 E9A03F BAD-TEXT-GBK +a2 E9978B3F BAD-TEXT-UTF8 +b1 3F5C BAD-BLOB +eol 24 +--- --- +id 2 +a1 E9A0AB5C09E9A0AB5C093F5C5C BAD-TEXT-GBK +a2 24 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET utf8}{--default-character-set=gbk CHARACTER SET gbk} + + +Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET utf8}{--default-character-set=gbk CHARACTER SET utf8} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=utf8 CHARACTER SET utf8 +INFILE: --default-character-set=gbk CHARACTER SET utf8 +file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24| +id 1 +a1 EE5C +a2 E9A0AB +b1 3F5C BAD-BLOB +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9A0AB5C +b1 3F5C5C BAD-BLOB +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET utf8}{--default-character-set=gbk CHARACTER SET utf8} + + +Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET utf8}{--default-character-set=gbk CHARACTER SET binary} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=utf8 CHARACTER SET utf8 +INFILE: --default-character-set=gbk CHARACTER SET binary +file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24| +id 1 +a1 E9A03F BAD-TEXT-GBK +a2 E9A0AB +b1 3F5C BAD-BLOB +eol 24 +--- --- +id 2 +a1 E9A0AB5C BAD-TEXT-GBK +a2 E9A0AB5C +b1 3F5C5C BAD-BLOB +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET utf8}{--default-character-set=gbk CHARACTER SET binary} + + +Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET utf8}{--default-character-set=utf8 } +Locale: zh_CN.gbk +OUTFILE: --default-character-set=utf8 CHARACTER SET utf8 +INFILE: --default-character-set=utf8 +file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24| +id 1 +a1 E9A03F BAD-TEXT-GBK +a2 E9978B3F BAD-TEXT-UTF8 +b1 3F5C BAD-BLOB +eol 24 +--- --- +id 2 +a1 E9A0AB5C09E9A0AB5C093F5C5C BAD-TEXT-GBK +a2 24 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET utf8}{--default-character-set=utf8 } + + +Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET utf8}{--default-character-set=utf8 CHARACTER SET gbk} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=utf8 CHARACTER SET utf8 +INFILE: --default-character-set=utf8 CHARACTER SET gbk +file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24| +id 1 +a1 E9A03F BAD-TEXT-GBK +a2 E9978B3F BAD-TEXT-UTF8 +b1 3F5C BAD-BLOB +eol 24 +--- --- +id 2 +a1 E9A0AB5C09E9A0AB5C093F5C5C BAD-TEXT-GBK +a2 24 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET utf8}{--default-character-set=utf8 CHARACTER SET gbk} + + +Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET utf8}{--default-character-set=utf8 CHARACTER SET utf8} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=utf8 CHARACTER SET utf8 +INFILE: --default-character-set=utf8 CHARACTER SET utf8 +file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24| +id 1 +a1 EE5C +a2 E9A0AB +b1 3F5C BAD-BLOB +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9A0AB5C +b1 3F5C5C BAD-BLOB +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET utf8}{--default-character-set=utf8 CHARACTER SET utf8} + + +Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET utf8}{--default-character-set=utf8 CHARACTER SET binary} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=utf8 CHARACTER SET utf8 +INFILE: --default-character-set=utf8 CHARACTER SET binary +file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24| +id 1 +a1 E9A03F BAD-TEXT-GBK +a2 E9A0AB +b1 3F5C BAD-BLOB +eol 24 +--- --- +id 2 +a1 E9A0AB5C BAD-TEXT-GBK +a2 E9A0AB5C +b1 3F5C5C BAD-BLOB +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET utf8}{--default-character-set=utf8 CHARACTER SET binary} + + +Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET binary}{--default-character-set=auto } +Locale: zh_CN.gbk +OUTFILE: --default-character-set=utf8 CHARACTER SET binary +INFILE: --default-character-set=auto +file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24| +id 1 +a1 EE5C +a2 E9978B3F BAD-TEXT-UTF8 +b1 EE5C0924 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 EE5C5C +a2 E9978BE78E9509E9A0AB5C0924 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET binary}{--default-character-set=auto } + + +Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET binary}{--default-character-set=auto CHARACTER SET gbk} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=utf8 CHARACTER SET binary +INFILE: --default-character-set=auto CHARACTER SET gbk +file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24| +id 1 +a1 EE5C +a2 E9978B3F BAD-TEXT-UTF8 +b1 EE5C0924 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 EE5C5C +a2 E9978BE78E9509E9A0AB5C0924 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET binary}{--default-character-set=auto CHARACTER SET gbk} + + +Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET binary}{--default-character-set=auto CHARACTER SET utf8} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=utf8 CHARACTER SET binary +INFILE: --default-character-set=auto CHARACTER SET utf8 +file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24| +id 1 +a1 3F5C BAD-TEXT-GBK +a2 E9A0AB +b1 EE5C0924 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 3F5C5C BAD-TEXT-GBK +a2 E9A0AB5C +b1 EE5C5C0924 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET binary}{--default-character-set=auto CHARACTER SET utf8} + + +Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET binary}{--default-character-set=auto CHARACTER SET binary} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=utf8 CHARACTER SET binary +INFILE: --default-character-set=auto CHARACTER SET binary +file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24| +id 1 +a1 3F09E9A03F BAD-TEXT-GBK +a2 3F5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 EE5C09E9A0AB5C BAD-TEXT-GBK +a2 3F5C5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET binary}{--default-character-set=auto CHARACTER SET binary} + + +Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET binary}{--default-character-set=gbk } +Locale: zh_CN.gbk +OUTFILE: --default-character-set=utf8 CHARACTER SET binary +INFILE: --default-character-set=gbk +file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24| +id 1 +a1 EE5C +a2 E9978B3F BAD-TEXT-UTF8 +b1 EE5C0924 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 EE5C5C +a2 E9978BE78E9509E9A0AB5C0924 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET binary}{--default-character-set=gbk } + + +Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET binary}{--default-character-set=gbk CHARACTER SET gbk} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=utf8 CHARACTER SET binary +INFILE: --default-character-set=gbk CHARACTER SET gbk +file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24| +id 1 +a1 EE5C +a2 E9978B3F BAD-TEXT-UTF8 +b1 EE5C0924 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 EE5C5C +a2 E9978BE78E9509E9A0AB5C0924 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET binary}{--default-character-set=gbk CHARACTER SET gbk} + + +Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET binary}{--default-character-set=gbk CHARACTER SET utf8} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=utf8 CHARACTER SET binary +INFILE: --default-character-set=gbk CHARACTER SET utf8 +file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24| +id 1 +a1 3F5C BAD-TEXT-GBK +a2 E9A0AB +b1 EE5C0924 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 3F5C5C BAD-TEXT-GBK +a2 E9A0AB5C +b1 EE5C5C0924 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET binary}{--default-character-set=gbk CHARACTER SET utf8} + + +Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET binary}{--default-character-set=gbk CHARACTER SET binary} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=utf8 CHARACTER SET binary +INFILE: --default-character-set=gbk CHARACTER SET binary +file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24| +id 1 +a1 3F09E9A03F BAD-TEXT-GBK +a2 3F5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 EE5C09E9A0AB5C BAD-TEXT-GBK +a2 3F5C5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET binary}{--default-character-set=gbk CHARACTER SET binary} + + +Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET binary}{--default-character-set=utf8 } +Locale: zh_CN.gbk +OUTFILE: --default-character-set=utf8 CHARACTER SET binary +INFILE: --default-character-set=utf8 +file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24| +id 1 +a1 EE5C +a2 E9978B3F BAD-TEXT-UTF8 +b1 EE5C0924 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 EE5C5C +a2 E9978BE78E9509E9A0AB5C0924 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET binary}{--default-character-set=utf8 } + + +Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET binary}{--default-character-set=utf8 CHARACTER SET gbk} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=utf8 CHARACTER SET binary +INFILE: --default-character-set=utf8 CHARACTER SET gbk +file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24| +id 1 +a1 EE5C +a2 E9978B3F BAD-TEXT-UTF8 +b1 EE5C0924 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 EE5C5C +a2 E9978BE78E9509E9A0AB5C0924 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET binary}{--default-character-set=utf8 CHARACTER SET gbk} + + +Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET binary}{--default-character-set=utf8 CHARACTER SET utf8} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=utf8 CHARACTER SET binary +INFILE: --default-character-set=utf8 CHARACTER SET utf8 +file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24| +id 1 +a1 3F5C BAD-TEXT-GBK +a2 E9A0AB +b1 EE5C0924 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 3F5C5C BAD-TEXT-GBK +a2 E9A0AB5C +b1 EE5C5C0924 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET binary}{--default-character-set=utf8 CHARACTER SET utf8} + + +Start of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET binary}{--default-character-set=utf8 CHARACTER SET binary} +Locale: zh_CN.gbk +OUTFILE: --default-character-set=utf8 CHARACTER SET binary +INFILE: --default-character-set=utf8 CHARACTER SET binary +file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24| +id 1 +a1 3F09E9A03F BAD-TEXT-GBK +a2 3F5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 EE5C09E9A0AB5C BAD-TEXT-GBK +a2 3F5C5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8 CHARACTER SET binary}{--default-character-set=utf8 CHARACTER SET binary} + + +# +# Dump using mysqldump -Tdir +# +Start of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=auto } +Locale: zh_CN.gbk +mysqldump: --default-character-set=binary +INFILE: --default-character-set=auto +file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24| +id 1 +a1 EE5C +a2 E9978B3F BAD-TEXT-UTF8 +b1 EE5C0924 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 EE5C5C +a2 E9978BE78E9509E9A0AB5C0924 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=auto } + + +Start of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=auto CHARACTER SET gbk} +Locale: zh_CN.gbk +mysqldump: --default-character-set=binary +INFILE: --default-character-set=auto CHARACTER SET gbk +file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24| +id 1 +a1 EE5C +a2 E9978B3F BAD-TEXT-UTF8 +b1 EE5C0924 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 EE5C5C +a2 E9978BE78E9509E9A0AB5C0924 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=auto CHARACTER SET gbk} + + +Start of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=auto CHARACTER SET utf8} +Locale: zh_CN.gbk +mysqldump: --default-character-set=binary +INFILE: --default-character-set=auto CHARACTER SET utf8 +file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24| +id 1 +a1 3F5C BAD-TEXT-GBK +a2 E9A0AB +b1 EE5C0924 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 3F5C5C BAD-TEXT-GBK +a2 E9A0AB5C +b1 EE5C5C0924 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=auto CHARACTER SET utf8} + + +Start of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=auto CHARACTER SET binary} +Locale: zh_CN.gbk +mysqldump: --default-character-set=binary +INFILE: --default-character-set=auto CHARACTER SET binary +file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24| +id 1 +a1 3F09E9A03F BAD-TEXT-GBK +a2 3F5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 EE5C09E9A0AB5C BAD-TEXT-GBK +a2 3F5C5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=auto CHARACTER SET binary} + + +Start of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=binary } +Locale: zh_CN.gbk +mysqldump: --default-character-set=binary +INFILE: --default-character-set=binary +file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24| +id 1 +a1 EE5C +a2 E9978B3F BAD-TEXT-UTF8 +b1 EE5C0924 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 EE5C5C +a2 E9978BE78E9509E9A0AB5C0924 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=binary } + + +Start of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=binary CHARACTER SET gbk} +Locale: zh_CN.gbk +mysqldump: --default-character-set=binary +INFILE: --default-character-set=binary CHARACTER SET gbk +file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24| +id 1 +a1 EE5C +a2 E9978B3F BAD-TEXT-UTF8 +b1 EE5C0924 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 EE5C5C +a2 E9978BE78E9509E9A0AB5C0924 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=binary CHARACTER SET gbk} + + +Start of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=binary CHARACTER SET utf8} +Locale: zh_CN.gbk +mysqldump: --default-character-set=binary +INFILE: --default-character-set=binary CHARACTER SET utf8 +file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24| +id 1 +a1 3F5C BAD-TEXT-GBK +a2 E9A0AB +b1 EE5C0924 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 3F5C5C BAD-TEXT-GBK +a2 E9A0AB5C +b1 EE5C5C0924 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=binary CHARACTER SET utf8} + + +Start of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=binary CHARACTER SET binary} +Locale: zh_CN.gbk +mysqldump: --default-character-set=binary +INFILE: --default-character-set=binary CHARACTER SET binary +file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24| +id 1 +a1 3F09E9A03F BAD-TEXT-GBK +a2 3F5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 EE5C09E9A0AB5C BAD-TEXT-GBK +a2 3F5C5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=binary CHARACTER SET binary} + + +Start of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=gbk } +Locale: zh_CN.gbk +mysqldump: --default-character-set=binary +INFILE: --default-character-set=gbk +file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24| +id 1 +a1 EE5C +a2 E9978B3F BAD-TEXT-UTF8 +b1 EE5C0924 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 EE5C5C +a2 E9978BE78E9509E9A0AB5C0924 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=gbk } + + +Start of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=gbk CHARACTER SET gbk} +Locale: zh_CN.gbk +mysqldump: --default-character-set=binary +INFILE: --default-character-set=gbk CHARACTER SET gbk +file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24| +id 1 +a1 EE5C +a2 E9978B3F BAD-TEXT-UTF8 +b1 EE5C0924 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 EE5C5C +a2 E9978BE78E9509E9A0AB5C0924 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=gbk CHARACTER SET gbk} + + +Start of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=gbk CHARACTER SET utf8} +Locale: zh_CN.gbk +mysqldump: --default-character-set=binary +INFILE: --default-character-set=gbk CHARACTER SET utf8 +file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24| +id 1 +a1 3F5C BAD-TEXT-GBK +a2 E9A0AB +b1 EE5C0924 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 3F5C5C BAD-TEXT-GBK +a2 E9A0AB5C +b1 EE5C5C0924 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=gbk CHARACTER SET utf8} + + +Start of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=gbk CHARACTER SET binary} +Locale: zh_CN.gbk +mysqldump: --default-character-set=binary +INFILE: --default-character-set=gbk CHARACTER SET binary +file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24| +id 1 +a1 3F09E9A03F BAD-TEXT-GBK +a2 3F5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 EE5C09E9A0AB5C BAD-TEXT-GBK +a2 3F5C5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=gbk CHARACTER SET binary} + + +Start of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=utf8 } +Locale: zh_CN.gbk +mysqldump: --default-character-set=binary +INFILE: --default-character-set=utf8 +file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24| +id 1 +a1 EE5C +a2 E9978B3F BAD-TEXT-UTF8 +b1 EE5C0924 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 EE5C5C +a2 E9978BE78E9509E9A0AB5C0924 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=utf8 } + + +Start of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=utf8 CHARACTER SET gbk} +Locale: zh_CN.gbk +mysqldump: --default-character-set=binary +INFILE: --default-character-set=utf8 CHARACTER SET gbk +file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24| +id 1 +a1 EE5C +a2 E9978B3F BAD-TEXT-UTF8 +b1 EE5C0924 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 EE5C5C +a2 E9978BE78E9509E9A0AB5C0924 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=utf8 CHARACTER SET gbk} + + +Start of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=utf8 CHARACTER SET utf8} +Locale: zh_CN.gbk +mysqldump: --default-character-set=binary +INFILE: --default-character-set=utf8 CHARACTER SET utf8 +file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24| +id 1 +a1 3F5C BAD-TEXT-GBK +a2 E9A0AB +b1 EE5C0924 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 3F5C5C BAD-TEXT-GBK +a2 E9A0AB5C +b1 EE5C5C0924 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=utf8 CHARACTER SET utf8} + + +Start of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=utf8 CHARACTER SET binary} +Locale: zh_CN.gbk +mysqldump: --default-character-set=binary +INFILE: --default-character-set=utf8 CHARACTER SET binary +file 31-EE5C-E9A0AB-EE5C5C-24|32-EE5C5C5C-E9A0AB5C5C-EE5C5C5C5C-24| +id 1 +a1 3F09E9A03F BAD-TEXT-GBK +a2 3F5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 EE5C09E9A0AB5C BAD-TEXT-GBK +a2 3F5C5C BAD-TEXT-UTF8 +b1 24 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=binary}{--default-character-set=utf8 CHARACTER SET binary} + + +Start of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=auto } +Locale: zh_CN.gbk +mysqldump: --default-character-set=gbk +INFILE: --default-character-set=auto +file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24| +id 1 +a1 EE5C +a2 E9A0AB +b1 EE5C +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9A0AB5C +b1 EE5C5C +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=auto } + + +Start of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=auto CHARACTER SET gbk} +Locale: zh_CN.gbk +mysqldump: --default-character-set=gbk +INFILE: --default-character-set=auto CHARACTER SET gbk +file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24| +id 1 +a1 EE5C +a2 E9A0AB +b1 EE5C +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9A0AB5C +b1 EE5C5C +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=auto CHARACTER SET gbk} + + +Start of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=auto CHARACTER SET utf8} +Locale: zh_CN.gbk +mysqldump: --default-character-set=gbk +INFILE: --default-character-set=auto CHARACTER SET utf8 +file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24| +id 1 +a1 3F5C BAD-TEXT-GBK +a2 3F5C BAD-TEXT-UTF8 +b1 EE5C +eol 24 +--- --- +id 2 +a1 3F5C5C BAD-TEXT-GBK +a2 3F5C5C BAD-TEXT-UTF8 +b1 EE5C5C +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=auto CHARACTER SET utf8} + + +Start of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=auto CHARACTER SET binary} +Locale: zh_CN.gbk +mysqldump: --default-character-set=gbk +INFILE: --default-character-set=auto CHARACTER SET binary +file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24| +id 1 +a1 3F093F093F0924 BAD-TEXT-GBK +a2 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 EE5C09EE5C09EE5C0924 BAD-TEXT-GBK +a2 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=auto CHARACTER SET binary} + + +Start of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=binary } +Locale: zh_CN.gbk +mysqldump: --default-character-set=gbk +INFILE: --default-character-set=binary +file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24| +id 1 +a1 EE5C +a2 E9A0AB +b1 EE5C +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9A0AB5C +b1 EE5C5C +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=binary } + + +Start of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=binary CHARACTER SET gbk} +Locale: zh_CN.gbk +mysqldump: --default-character-set=gbk +INFILE: --default-character-set=binary CHARACTER SET gbk +file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24| +id 1 +a1 EE5C +a2 E9A0AB +b1 EE5C +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9A0AB5C +b1 EE5C5C +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=binary CHARACTER SET gbk} + + +Start of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=binary CHARACTER SET utf8} +Locale: zh_CN.gbk +mysqldump: --default-character-set=gbk +INFILE: --default-character-set=binary CHARACTER SET utf8 +file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24| +id 1 +a1 3F5C BAD-TEXT-GBK +a2 3F5C BAD-TEXT-UTF8 +b1 EE5C +eol 24 +--- --- +id 2 +a1 3F5C5C BAD-TEXT-GBK +a2 3F5C5C BAD-TEXT-UTF8 +b1 EE5C5C +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=binary CHARACTER SET utf8} + + +Start of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=binary CHARACTER SET binary} +Locale: zh_CN.gbk +mysqldump: --default-character-set=gbk +INFILE: --default-character-set=binary CHARACTER SET binary +file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24| +id 1 +a1 3F093F093F0924 BAD-TEXT-GBK +a2 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 EE5C09EE5C09EE5C0924 BAD-TEXT-GBK +a2 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=binary CHARACTER SET binary} + + +Start of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=gbk } +Locale: zh_CN.gbk +mysqldump: --default-character-set=gbk +INFILE: --default-character-set=gbk +file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24| +id 1 +a1 EE5C +a2 E9A0AB +b1 EE5C +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9A0AB5C +b1 EE5C5C +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=gbk } + + +Start of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=gbk CHARACTER SET gbk} +Locale: zh_CN.gbk +mysqldump: --default-character-set=gbk +INFILE: --default-character-set=gbk CHARACTER SET gbk +file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24| +id 1 +a1 EE5C +a2 E9A0AB +b1 EE5C +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9A0AB5C +b1 EE5C5C +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=gbk CHARACTER SET gbk} + + +Start of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=gbk CHARACTER SET utf8} +Locale: zh_CN.gbk +mysqldump: --default-character-set=gbk +INFILE: --default-character-set=gbk CHARACTER SET utf8 +file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24| +id 1 +a1 3F5C BAD-TEXT-GBK +a2 3F5C BAD-TEXT-UTF8 +b1 EE5C +eol 24 +--- --- +id 2 +a1 3F5C5C BAD-TEXT-GBK +a2 3F5C5C BAD-TEXT-UTF8 +b1 EE5C5C +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=gbk CHARACTER SET utf8} + + +Start of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=gbk CHARACTER SET binary} +Locale: zh_CN.gbk +mysqldump: --default-character-set=gbk +INFILE: --default-character-set=gbk CHARACTER SET binary +file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24| +id 1 +a1 3F093F093F0924 BAD-TEXT-GBK +a2 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 EE5C09EE5C09EE5C0924 BAD-TEXT-GBK +a2 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=gbk CHARACTER SET binary} + + +Start of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=utf8 } +Locale: zh_CN.gbk +mysqldump: --default-character-set=gbk +INFILE: --default-character-set=utf8 +file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24| +id 1 +a1 EE5C +a2 E9A0AB +b1 EE5C +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9A0AB5C +b1 EE5C5C +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=utf8 } + + +Start of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=utf8 CHARACTER SET gbk} +Locale: zh_CN.gbk +mysqldump: --default-character-set=gbk +INFILE: --default-character-set=utf8 CHARACTER SET gbk +file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24| +id 1 +a1 EE5C +a2 E9A0AB +b1 EE5C +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9A0AB5C +b1 EE5C5C +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=utf8 CHARACTER SET gbk} + + +Start of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=utf8 CHARACTER SET utf8} +Locale: zh_CN.gbk +mysqldump: --default-character-set=gbk +INFILE: --default-character-set=utf8 CHARACTER SET utf8 +file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24| +id 1 +a1 3F5C BAD-TEXT-GBK +a2 3F5C BAD-TEXT-UTF8 +b1 EE5C +eol 24 +--- --- +id 2 +a1 3F5C5C BAD-TEXT-GBK +a2 3F5C5C BAD-TEXT-UTF8 +b1 EE5C5C +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=utf8 CHARACTER SET utf8} + + +Start of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=utf8 CHARACTER SET binary} +Locale: zh_CN.gbk +mysqldump: --default-character-set=gbk +INFILE: --default-character-set=utf8 CHARACTER SET binary +file 31-EE5C-EE5C-EE5C-24|32-EE5C5C5C-EE5C5C5C-EE5C5C5C-24| +id 1 +a1 3F093F093F0924 BAD-TEXT-GBK +a2 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +id 2 +a1 EE5C09EE5C09EE5C0924 BAD-TEXT-GBK +a2 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=gbk}{--default-character-set=utf8 CHARACTER SET binary} + + +Start of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=auto } +Locale: zh_CN.gbk +mysqldump: --default-character-set=utf8 +INFILE: --default-character-set=auto +file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24| +id 1 +a1 E9A03F BAD-TEXT-GBK +a2 E9978B3F BAD-TEXT-UTF8 +b1 3F5C BAD-BLOB +eol 24 +--- --- +id 2 +a1 E9A0AB5C09E9A0AB5C093F5C5C BAD-TEXT-GBK +a2 24 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=auto } + + +Start of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=auto CHARACTER SET gbk} +Locale: zh_CN.gbk +mysqldump: --default-character-set=utf8 +INFILE: --default-character-set=auto CHARACTER SET gbk +file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24| +id 1 +a1 E9A03F BAD-TEXT-GBK +a2 E9978B3F BAD-TEXT-UTF8 +b1 3F5C BAD-BLOB +eol 24 +--- --- +id 2 +a1 E9A0AB5C09E9A0AB5C093F5C5C BAD-TEXT-GBK +a2 24 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=auto CHARACTER SET gbk} + + +Start of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=auto CHARACTER SET utf8} +Locale: zh_CN.gbk +mysqldump: --default-character-set=utf8 +INFILE: --default-character-set=auto CHARACTER SET utf8 +file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24| +id 1 +a1 EE5C +a2 E9A0AB +b1 3F5C BAD-BLOB +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9A0AB5C +b1 3F5C5C BAD-BLOB +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=auto CHARACTER SET utf8} + + +Start of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=auto CHARACTER SET binary} +Locale: zh_CN.gbk +mysqldump: --default-character-set=utf8 +INFILE: --default-character-set=auto CHARACTER SET binary +file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24| +id 1 +a1 E9A03F BAD-TEXT-GBK +a2 E9A0AB +b1 3F5C BAD-BLOB +eol 24 +--- --- +id 2 +a1 E9A0AB5C BAD-TEXT-GBK +a2 E9A0AB5C +b1 3F5C5C BAD-BLOB +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=auto CHARACTER SET binary} + + +Start of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=binary } +Locale: zh_CN.gbk +mysqldump: --default-character-set=utf8 +INFILE: --default-character-set=binary +file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24| +id 1 +a1 E9A03F BAD-TEXT-GBK +a2 E9978B3F BAD-TEXT-UTF8 +b1 3F5C BAD-BLOB +eol 24 +--- --- +id 2 +a1 E9A0AB5C09E9A0AB5C093F5C5C BAD-TEXT-GBK +a2 24 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=binary } + + +Start of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=binary CHARACTER SET gbk} +Locale: zh_CN.gbk +mysqldump: --default-character-set=utf8 +INFILE: --default-character-set=binary CHARACTER SET gbk +file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24| +id 1 +a1 E9A03F BAD-TEXT-GBK +a2 E9978B3F BAD-TEXT-UTF8 +b1 3F5C BAD-BLOB +eol 24 +--- --- +id 2 +a1 E9A0AB5C09E9A0AB5C093F5C5C BAD-TEXT-GBK +a2 24 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=binary CHARACTER SET gbk} + + +Start of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=binary CHARACTER SET utf8} +Locale: zh_CN.gbk +mysqldump: --default-character-set=utf8 +INFILE: --default-character-set=binary CHARACTER SET utf8 +file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24| +id 1 +a1 EE5C +a2 E9A0AB +b1 3F5C BAD-BLOB +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9A0AB5C +b1 3F5C5C BAD-BLOB +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=binary CHARACTER SET utf8} + + +Start of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=binary CHARACTER SET binary} +Locale: zh_CN.gbk +mysqldump: --default-character-set=utf8 +INFILE: --default-character-set=binary CHARACTER SET binary +file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24| +id 1 +a1 E9A03F BAD-TEXT-GBK +a2 E9A0AB +b1 3F5C BAD-BLOB +eol 24 +--- --- +id 2 +a1 E9A0AB5C BAD-TEXT-GBK +a2 E9A0AB5C +b1 3F5C5C BAD-BLOB +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=binary CHARACTER SET binary} + + +Start of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=gbk } +Locale: zh_CN.gbk +mysqldump: --default-character-set=utf8 +INFILE: --default-character-set=gbk +file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24| +id 1 +a1 E9A03F BAD-TEXT-GBK +a2 E9978B3F BAD-TEXT-UTF8 +b1 3F5C BAD-BLOB +eol 24 +--- --- +id 2 +a1 E9A0AB5C09E9A0AB5C093F5C5C BAD-TEXT-GBK +a2 24 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=gbk } + + +Start of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=gbk CHARACTER SET gbk} +Locale: zh_CN.gbk +mysqldump: --default-character-set=utf8 +INFILE: --default-character-set=gbk CHARACTER SET gbk +file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24| +id 1 +a1 E9A03F BAD-TEXT-GBK +a2 E9978B3F BAD-TEXT-UTF8 +b1 3F5C BAD-BLOB +eol 24 +--- --- +id 2 +a1 E9A0AB5C09E9A0AB5C093F5C5C BAD-TEXT-GBK +a2 24 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=gbk CHARACTER SET gbk} + + +Start of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=gbk CHARACTER SET utf8} +Locale: zh_CN.gbk +mysqldump: --default-character-set=utf8 +INFILE: --default-character-set=gbk CHARACTER SET utf8 +file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24| +id 1 +a1 EE5C +a2 E9A0AB +b1 3F5C BAD-BLOB +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9A0AB5C +b1 3F5C5C BAD-BLOB +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=gbk CHARACTER SET utf8} + + +Start of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=gbk CHARACTER SET binary} +Locale: zh_CN.gbk +mysqldump: --default-character-set=utf8 +INFILE: --default-character-set=gbk CHARACTER SET binary +file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24| +id 1 +a1 E9A03F BAD-TEXT-GBK +a2 E9A0AB +b1 3F5C BAD-BLOB +eol 24 +--- --- +id 2 +a1 E9A0AB5C BAD-TEXT-GBK +a2 E9A0AB5C +b1 3F5C5C BAD-BLOB +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=gbk CHARACTER SET binary} + + +Start of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=utf8 } +Locale: zh_CN.gbk +mysqldump: --default-character-set=utf8 +INFILE: --default-character-set=utf8 +file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24| +id 1 +a1 E9A03F BAD-TEXT-GBK +a2 E9978B3F BAD-TEXT-UTF8 +b1 3F5C BAD-BLOB +eol 24 +--- --- +id 2 +a1 E9A0AB5C09E9A0AB5C093F5C5C BAD-TEXT-GBK +a2 24 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=utf8 } + + +Start of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=utf8 CHARACTER SET gbk} +Locale: zh_CN.gbk +mysqldump: --default-character-set=utf8 +INFILE: --default-character-set=utf8 CHARACTER SET gbk +file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24| +id 1 +a1 E9A03F BAD-TEXT-GBK +a2 E9978B3F BAD-TEXT-UTF8 +b1 3F5C BAD-BLOB +eol 24 +--- --- +id 2 +a1 E9A0AB5C09E9A0AB5C093F5C5C BAD-TEXT-GBK +a2 24 BAD-TEXT-UTF8 +b1 BAD-BLOB +eol BAD-EOL +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=utf8 CHARACTER SET gbk} + + +Start of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=utf8 CHARACTER SET utf8} +Locale: zh_CN.gbk +mysqldump: --default-character-set=utf8 +INFILE: --default-character-set=utf8 CHARACTER SET utf8 +file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24| +id 1 +a1 EE5C +a2 E9A0AB +b1 3F5C BAD-BLOB +eol 24 +--- --- +id 2 +a1 EE5C5C +a2 E9A0AB5C +b1 3F5C5C BAD-BLOB +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=utf8 CHARACTER SET utf8} + + +Start of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=utf8 CHARACTER SET binary} +Locale: zh_CN.gbk +mysqldump: --default-character-set=utf8 +INFILE: --default-character-set=utf8 CHARACTER SET binary +file 31-E9A0AB-E9A0AB-3F5C5C-24|32-E9A0AB5C5C-E9A0AB5C5C-3F5C5C5C5C-24| +id 1 +a1 E9A03F BAD-TEXT-GBK +a2 E9A0AB +b1 3F5C BAD-BLOB +eol 24 +--- --- +id 2 +a1 E9A0AB5C BAD-TEXT-GBK +a2 E9A0AB5C +b1 3F5C5C BAD-BLOB +eol 24 +--- --- +End of {zh_CN.gbk}{--default-character-set=utf8}{--default-character-set=utf8 CHARACTER SET binary} + + +DROP DATABASE gbk; +USE test; diff --git a/mysql-test/r/ctype_ujis.result b/mysql-test/r/ctype_ujis.result index 61541ec7678..5eb9a3e1db5 100644 --- a/mysql-test/r/ctype_ujis.result +++ b/mysql-test/r/ctype_ujis.result @@ -26218,3 +26218,24 @@ DROP TABLE t1; # # End of 10.1 tests # +# +# End of 10.2 tests +# +# +# MDEV-9842 LOAD DATA INFILE does not work well with a TEXT column when using sjis +# +CREATE TABLE t1 (a TEXT CHARACTER SET ujis); +LOAD DATA INFILE '../../std_data/loaddata/mdev9823.ujis.txt' INTO TABLE t1 CHARACTER SET ujis IGNORE 4 LINES; +SELECT HEX(a) FROM t1; +HEX(a) +3F +78787831 +3F3F +78787832 +8FA1A1 +78787833 +3F3F +DROP TABLE t1; +# +# End of 10.2 tests +# diff --git a/mysql-test/r/ctype_utf8.result b/mysql-test/r/ctype_utf8.result index f52e08a676f..48a6eb02526 100644 --- a/mysql-test/r/ctype_utf8.result +++ b/mysql-test/r/ctype_utf8.result @@ -10426,5 +10426,38 @@ b c DROP TABLE t1; # +# MDEV-9842 LOAD DATA INFILE does not work well with a TEXT column when using sjis +# +CREATE TABLE t1 (a TEXT CHARACTER SET utf8); +LOAD DATA INFILE '../../std_data/loaddata/mdev9823.utf8mb4.txt' INTO TABLE t1 CHARACTER SET utf8 IGNORE 4 LINES; +Warnings: +Warning 1366 Incorrect string value: '\xD0' for column 'a' at row 1 +Warning 1366 Incorrect string value: '\xE1\x80' for column 'a' at row 3 +Warning 1366 Incorrect string value: '\xF0\x9F\x98' for column 'a' at row 5 +Warning 1366 Incorrect string value: '\xF0\x9F\x98\x8E' for column 'a' at row 7 +Warning 1366 Incorrect string value: '\xF0\x9F\x98' for column 'a' at row 8 +SELECT HEX(a) FROM t1; +HEX(a) +3F +78787831 +3F3F +78787832 +3F3F3F +78787833 +3F3F3F3F +3F3F3F +DROP TABLE t1; +# +# MDEV-9874 LOAD XML INFILE does not handle well broken multi-byte characters +# +CREATE TABLE t1 (a TEXT CHARACTER SET utf8); +LOAD XML INFILE '../../std_data/loaddata/mdev9874.xml' INTO TABLE t1 CHARACTER SET utf8 ROWS IDENTIFIED BY '<row>'; +Warnings: +Warning 1366 Incorrect string value: '\xD0' for column 'a' at row 1 +SELECT HEX(a) FROM t1; +HEX(a) +613F +DROP TABLE t1; +# # End of 10.2 tests # diff --git a/mysql-test/r/ctype_utf8mb4.result b/mysql-test/r/ctype_utf8mb4.result index 10d77ae1502..558aba9c466 100644 --- a/mysql-test/r/ctype_utf8mb4.result +++ b/mysql-test/r/ctype_utf8mb4.result @@ -3398,3 +3398,30 @@ DROP FUNCTION f1; # # End of 10.1 tests # +# +# End of 10.2 tests +# +# +# MDEV-9842 LOAD DATA INFILE does not work well with a TEXT column when using sjis +# +CREATE TABLE t1 (a TEXT CHARACTER SET utf8mb4); +LOAD DATA INFILE '../../std_data/loaddata/mdev9823.utf8mb4.txt' INTO TABLE t1 CHARACTER SET utf8mb4 IGNORE 4 LINES; +Warnings: +Warning 1366 Incorrect string value: '\xD0' for column 'a' at row 1 +Warning 1366 Incorrect string value: '\xE1\x80' for column 'a' at row 3 +Warning 1366 Incorrect string value: '\xF0\x9F\x98' for column 'a' at row 5 +Warning 1366 Incorrect string value: '\xF0\x9F\x98' for column 'a' at row 8 +SELECT HEX(a) FROM t1; +HEX(a) +3F +78787831 +3F3F +78787832 +3F3F3F +78787833 +F09F988E +3F3F3F +DROP TABLE t1; +# +# End of 10.2 tests +# diff --git a/mysql-test/r/delayed.result b/mysql-test/r/delayed.result index 80b99115055..d54fa40f2da 100644 --- a/mysql-test/r/delayed.result +++ b/mysql-test/r/delayed.result @@ -476,3 +476,37 @@ connection con1; disconnect con1; connection default; drop tables tm, t1, t2; +# +# MDEV-9621 INSERT DELAYED fails on insert for tables with many columns +# +CREATE TABLE t1 ( +a int,b int,c int,d int,e int,f int,g int,h int,i int,j int,k int,l int,m int,n int,o int,p int,q int,r int,s int,t int,u int,v int,x int,y int,z int +) ENGINE=MyISAM; +INSERT DELAYED INTO t1 (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,x,y,z) +values (1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1); +INSERT DELAYED INTO t1 (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,x,y,z) +values (1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1); +drop table t1; +# +# INSERT DELAYED hangs if table was crashed +# +create table t1 (a int, b int) engine=myisam; +insert into t1 values (1,1); +SET debug_dbug="d,crash_shutdown"; +shutdown; +ERROR HY000: Lost connection to MySQL server during query +call mtr.add_suppression(" marked as crashed and should be repaired"); +call mtr.add_suppression("Checking table"); +insert delayed into t1 values (2,2); +Warnings: +Error 145 Table './test/t1' is marked as crashed and should be repaired +Error 1194 Table 't1' is marked as crashed and should be repaired +Error 1034 1 client is using or hasn't closed the table properly +insert delayed into t1 values (3,3); +flush tables t1; +select * from t1; +a b +1 1 +2 2 +3 3 +drop table t1; diff --git a/mysql-test/r/derived_opt.result b/mysql-test/r/derived_opt.result index 04a76c2cbc8..6e4ea1b5d36 100644 --- a/mysql-test/r/derived_opt.result +++ b/mysql-test/r/derived_opt.result @@ -231,8 +231,8 @@ CREATE VIEW v1 AS SELECT a, MIN(b) AS b FROM t2 GROUP BY a; EXPLAIN SELECT * FROM v1, t1 WHERE v1.b=t1.a ORDER BY v1.a; id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY t1 system NULL NULL NULL NULL 1 Using filesort -1 PRIMARY <derived2> ref key0 key0 5 const 1 Using where +1 PRIMARY t1 system NULL NULL NULL NULL 1 +1 PRIMARY <derived2> ref key0 key0 5 const 1 Using where; Using filesort 2 DERIVED t2 ALL NULL NULL NULL NULL 10 Using temporary; Using filesort SELECT * FROM v1, t1 WHERE v1.b=t1.a ORDER BY v1.a; a b a diff --git a/mysql-test/r/distinct.result b/mysql-test/r/distinct.result index d6e5a69e217..e2a7c462efd 100644 --- a/mysql-test/r/distinct.result +++ b/mysql-test/r/distinct.result @@ -175,7 +175,7 @@ explain SELECT distinct t3.a FROM t3,t2,t1 WHERE t3.a=t1.b AND t1.a=t2.a; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 4 Using where; Using temporary 1 SIMPLE t3 ref a a 5 test.t1.b 2 Using index -1 SIMPLE t2 index a a 4 NULL 5 Using where; Using index; Distinct; Using join buffer (flat, BNL join) +1 SIMPLE t2 index a a 4 NULL 5 Using where; Using index; Using join buffer (flat, BNL join) SELECT distinct t3.a FROM t3,t2,t1 WHERE t3.a=t1.b AND t1.a=t2.a; a 1 @@ -302,11 +302,11 @@ WHERE AND ((t1.id=j_lj_t3.id AND t3_lj.id IS NULL) OR (t1.id=t3.id AND t3.idx=2)); id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 index id id 4 NULL 2 Using index; Using temporary -1 SIMPLE t2 index id id 8 NULL 1 Using index; Distinct; Using join buffer (flat, BNL join) -1 SIMPLE t3 index id id 8 NULL 1 Using index; Distinct; Using join buffer (flat, BNL join) -1 SIMPLE j_lj_t2 index id id 4 NULL 2 Using where; Using index; Distinct; Using join buffer (flat, BNL join) -1 SIMPLE t2_lj ref id id 4 test.j_lj_t2.id 1 Using where; Using index; Distinct -1 SIMPLE j_lj_t3 index id id 4 NULL 2 Using where; Using index; Distinct; Using join buffer (flat, BNL join) +1 SIMPLE t2 index id id 8 NULL 1 Using index; Using join buffer (flat, BNL join) +1 SIMPLE t3 index id id 8 NULL 1 Using index; Using join buffer (flat, BNL join) +1 SIMPLE j_lj_t2 index id id 4 NULL 2 Using where; Using index; Using join buffer (flat, BNL join) +1 SIMPLE t2_lj ref id id 4 test.j_lj_t2.id 1 Using where; Using index +1 SIMPLE j_lj_t3 index id id 4 NULL 2 Using where; Using index; Using join buffer (flat, BNL join) 1 SIMPLE t3_lj ref id id 4 test.j_lj_t3.id 1 Using where; Using index; Distinct SELECT DISTINCT t1.id @@ -518,7 +518,7 @@ id select_type table type possible_keys key key_len ref rows Extra EXPLAIN SELECT DISTINCT t1_1.a, t1_1.b FROM t1 t1_1, t1 t1_2; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1_1 ALL NULL NULL NULL NULL 3 Using temporary -1 SIMPLE t1_2 index NULL PRIMARY 4 NULL 3 Using index; Distinct; Using join buffer (flat, BNL join) +1 SIMPLE t1_2 index NULL PRIMARY 4 NULL 3 Using index; Using join buffer (flat, BNL join) EXPLAIN SELECT DISTINCT t1_1.a, t1_1.b FROM t1 t1_1, t1 t1_2 WHERE t1_1.a = t1_2.a; id select_type table type possible_keys key key_len ref rows Extra @@ -916,8 +916,8 @@ SELECT STRAIGHT_JOIN DISTINCT t1.id FROM t1, v1, t2 WHERE v1.id = t2.i AND t1.i1 = v1.i1 AND t2.i != 3; id select_type table type possible_keys key key_len ref rows filtered Extra 1 PRIMARY t1 ALL NULL NULL NULL NULL 96 100.00 Using where; Using temporary -1 PRIMARY <derived2> ref key0 key0 5 test.t1.i1 9 100.00 Using where; Distinct -1 PRIMARY t2 ALL NULL NULL NULL NULL 2 100.00 Using where; Distinct; Using join buffer (flat, BNL join) +1 PRIMARY <derived2> ref key0 key0 5 test.t1.i1 9 100.00 Using where +1 PRIMARY t2 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (flat, BNL join) 2 DERIVED t1 ALL NULL NULL NULL NULL 96 100.00 Warnings: Note 1003 select straight_join distinct `test`.`t1`.`id` AS `id` from `test`.`t1` join `test`.`v1` join `test`.`t2` where ((`test`.`t2`.`i` = `v1`.`id`) and (`v1`.`i1` = `test`.`t1`.`i1`) and (`v1`.`id` <> 3)) diff --git a/mysql-test/r/explain_json.result b/mysql-test/r/explain_json.result index 46d586ac29d..af5d1b800aa 100644 --- a/mysql-test/r/explain_json.result +++ b/mysql-test/r/explain_json.result @@ -486,8 +486,8 @@ EXPLAIN "query_block": { "select_id": 2, "filesort": { + "sort_key": "t1.a", "temporary_table": { - "function": "buffer", "table": { "table_name": "t1", "access_type": "ALL", @@ -530,8 +530,8 @@ EXPLAIN "query_block": { "select_id": 2, "filesort": { + "sort_key": "t1.a", "temporary_table": { - "function": "buffer", "table": { "table_name": "t1", "access_type": "ALL", @@ -576,7 +576,6 @@ EXPLAIN "query_block": { "select_id": 2, "temporary_table": { - "function": "buffer", "table": { "table_name": "t1", "access_type": "ALL", @@ -1132,8 +1131,8 @@ EXPLAIN "select_id": 1, "having_condition": "(TOP > t2.a)", "filesort": { + "sort_key": "t2.a", "temporary_table": { - "function": "buffer", "table": { "table_name": "t2", "access_type": "ALL", @@ -1151,8 +1150,8 @@ EXPLAIN "query_block": { "select_id": 1, "filesort": { + "sort_key": "t2.a", "temporary_table": { - "function": "buffer", "table": { "table_name": "t2", "access_type": "ALL", @@ -1181,8 +1180,8 @@ EXPLAIN "query_block": { "select_id": 1, "filesort": { + "sort_key": "t2.a", "temporary_table": { - "function": "buffer", "table": { "table_name": "t2", "access_type": "ALL", @@ -1380,7 +1379,6 @@ EXPLAIN "query_block": { "select_id": 1, "temporary_table": { - "function": "buffer", "table": { "table_name": "t1", "access_type": "ALL", diff --git a/mysql-test/r/func_analyse.result b/mysql-test/r/func_analyse.result index 2c300559a32..bc8ec445e73 100644 --- a/mysql-test/r/func_analyse.result +++ b/mysql-test/r/func_analyse.result @@ -19,7 +19,7 @@ test.t1.empty_string 0 0 4 0 0.0000 NULL CHAR(0) NOT NULL test.t1.bool N Y 1 1 0 0 1.0000 NULL ENUM('N','Y') NOT NULL test.t1.d 2002-03-03 2002-03-05 10 10 0 0 10.0000 NULL ENUM('2002-03-03','2002-03-04','2002-03-05') NOT NULL create table t2 select * from t1 procedure analyse(); -ERROR HY000: Incorrect usage of PROCEDURE and non-SELECT +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'procedure analyse()' at line 1 drop table t1; EXPLAIN SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE(); ERROR HY000: Incorrect usage of PROCEDURE and subquery @@ -120,7 +120,7 @@ CREATE TABLE t1(a INT); INSERT INTO t1 VALUES (1),(2); # should not crash CREATE TABLE t2 SELECT 1 FROM t1, t1 t3 GROUP BY t3.a PROCEDURE ANALYSE(); -ERROR HY000: Incorrect usage of PROCEDURE and non-SELECT +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'PROCEDURE ANALYSE()' at line 1 DROP TABLE t1; End of 5.0 tests # @@ -149,3 +149,25 @@ Field_name Min_value Max_value Min_length Max_length Empties_or_zeros Nulls Avg_ test.t2.f2 1 1 1 1 0 0 1.0000 0.0000 ENUM('1') NOT NULL DROP TABLE t1, t2; End of 5.1 tests +# +# Start of 10.2 tests +# +(SELECT 1 FROM DUAL PROCEDURE ANALYSE()); +Field_name Min_value Max_value Min_length Max_length Empties_or_zeros Nulls Avg_value_or_avg_length Std Optimal_fieldtype +1 1 1 1 1 0 0 1.0000 0.0000 ENUM('1') NOT NULL +((SELECT 1 FROM DUAL PROCEDURE ANALYSE())); +Field_name Min_value Max_value Min_length Max_length Empties_or_zeros Nulls Avg_value_or_avg_length Std Optimal_fieldtype +1 1 1 1 1 0 0 1.0000 0.0000 ENUM('1') NOT NULL +SELECT * FROM t1 UNION SELECT * FROM t1 PROCEDURE analyse(); +ERROR HY000: Incorrect usage of PROCEDURE and subquery +# +# MDEV-10030 sql_yacc.yy: Split table_expression and remove PROCEDURE from create_select, select_paren_derived, select_derived2, query_specification +# +SELECT * FROM (SELECT * FROM t1 PROCEDURE ANALYSE()); +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'PROCEDURE ANALYSE())' at line 1 +SELECT * FROM t1 NATURAL JOIN (SELECT * FROM t2 PROCEDURE ANALYSE()); +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'PROCEDURE ANALYSE())' at line 1 +SELECT (SELECT 1 FROM t1 PROCEDURE ANALYSE()) FROM t2; +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'PROCEDURE ANALYSE()) FROM t2' at line 1 +SELECT ((SELECT 1 FROM t1 PROCEDURE ANALYSE())) FROM t2; +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'PROCEDURE ANALYSE())) FROM t2' at line 1 diff --git a/mysql-test/r/func_group.result b/mysql-test/r/func_group.result index 422e7bd25c8..74247ae1b8e 100644 --- a/mysql-test/r/func_group.result +++ b/mysql-test/r/func_group.result @@ -1519,7 +1519,7 @@ SELECT MAX(pk) as max, i FROM t1 ORDER BY max; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using temporary +1 SIMPLE t1 ALL NULL NULL NULL NULL 3 # Only 11 is correct for collumn i in this result SELECT MAX(pk) as max, i diff --git a/mysql-test/r/group_by.result b/mysql-test/r/group_by.result index 07773960e5a..f27ae67adff 100644 --- a/mysql-test/r/group_by.result +++ b/mysql-test/r/group_by.result @@ -1346,12 +1346,43 @@ id select_type table type possible_keys key key_len ref rows Extra EXPLAIN SELECT a FROM t1 IGNORE INDEX FOR JOIN (PRIMARY,i2); id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ALL NULL NULL NULL NULL 144 +# +# For this explain, the query plan is weird: if we are using +# the primary key for reasons other than doing grouping, can't +# GROUP BY code take advantage of this? Well, currently it doesnt: EXPLAIN SELECT a FROM t1 IGNORE INDEX FOR GROUP BY (PRIMARY,i2) GROUP BY a; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 index NULL PRIMARY 4 NULL 144 Using index +1 SIMPLE t1 index NULL PRIMARY 4 NULL 144 Using index; Using filesort +# Here's a proof it is really doing sorting: +flush status; +SELECT a FROM t1 IGNORE INDEX FOR GROUP BY (PRIMARY,i2) GROUP BY a; +show status like 'Sort_%'; +Variable_name Value +Sort_merge_passes 0 +Sort_priority_queue_sorts 0 +Sort_range 0 +Sort_rows 144 +Sort_scan 1 +# Proof ends. +# +# For this explain, the query plan is weird: if we are using +# the primary key for reasons other than doing sorting, can't +# ORDER BY code take advantage of this? Well, currently it doesnt: EXPLAIN SELECT a FROM t1 IGNORE INDEX FOR ORDER BY (PRIMARY,i2) ORDER BY a; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 index NULL PRIMARY 4 NULL 144 Using index +1 SIMPLE t1 index NULL PRIMARY 4 NULL 144 Using index; Using filesort +# Here's a proof it is really doing sorting: +flush status; +SELECT a FROM t1 IGNORE INDEX FOR ORDER BY (PRIMARY,i2) ORDER BY a; +show status like 'Sort_%'; +Variable_name Value +Sort_merge_passes 0 +Sort_priority_queue_sorts 0 +Sort_range 0 +Sort_rows 144 +Sort_scan 1 +# Proof ends. +# SELECT a FROM t1 IGNORE INDEX FOR ORDER BY (PRIMARY,i2) ORDER BY a; a 1 @@ -2678,3 +2709,17 @@ NULL 100098 100099 drop table t0,t1,t2; +# +# MDEV-9602 crash in st_key::actual_rec_per_key when group by constant +# +create table t1 (a date not null,unique (a)) engine=innodb; +Warnings: +Warning 1286 Unknown storage engine 'innodb' +Warning 1266 Using storage engine MyISAM for table 't1' +select distinct a from t1 group by 'a'; +a +insert into t1 values("2001-02-02"),("2001-02-03"); +select distinct a from t1 group by 'a'; +a +2001-02-02 +drop table t1; diff --git a/mysql-test/r/having.result b/mysql-test/r/having.result index eda67460205..627edd60141 100644 --- a/mysql-test/r/having.result +++ b/mysql-test/r/having.result @@ -470,10 +470,9 @@ WHERE table2.f1 = 2 GROUP BY table1.f1, table2.f2 HAVING (table2.f2 = 8 AND table1.f1 >= 6); id select_type table type possible_keys key key_len ref rows filtered Extra -1 SIMPLE table2 const PRIMARY PRIMARY 4 const 1 100.00 Using filesort -1 SIMPLE table1 ALL NULL NULL NULL NULL 4 100.00 Using where +1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL Impossible HAVING noticed after reading const tables Warnings: -Note 1003 select `test`.`table1`.`f1` AS `f1`,7 AS `f2` from `test`.`t1` `table1` join `test`.`t1` `table2` where (`test`.`table1`.`f3` = 9) group by `test`.`table1`.`f1`,7 having ((7 = 8) and (`test`.`table1`.`f1` >= 6)) +Note 1003 select `test`.`table1`.`f1` AS `f1`,7 AS `f2` from `test`.`t1` `table1` join `test`.`t1` `table2` where (`test`.`table1`.`f3` = 9) group by `test`.`table1`.`f1`,7 having 0 EXPLAIN EXTENDED SELECT table1.f1, table2.f2 FROM t1 AS table1 @@ -482,10 +481,9 @@ WHERE table2.f1 = 2 GROUP BY table1.f1, table2.f2 HAVING (table2.f2 = 8); id select_type table type possible_keys key key_len ref rows filtered Extra -1 SIMPLE table2 const PRIMARY PRIMARY 4 const 1 100.00 Using filesort -1 SIMPLE table1 ALL NULL NULL NULL NULL 4 100.00 Using where +1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL Impossible HAVING noticed after reading const tables Warnings: -Note 1003 select `test`.`table1`.`f1` AS `f1`,7 AS `f2` from `test`.`t1` `table1` join `test`.`t1` `table2` where (`test`.`table1`.`f3` = 9) group by `test`.`table1`.`f1`,7 having (7 = 8) +Note 1003 select `test`.`table1`.`f1` AS `f1`,7 AS `f2` from `test`.`t1` `table1` join `test`.`t1` `table2` where (`test`.`table1`.`f3` = 9) group by `test`.`table1`.`f1`,7 having 0 DROP TABLE t1; # # Bug#52336 Segfault / crash in 5.1 copy_fields (param=0x9872980) at sql_select.cc:15355 diff --git a/mysql-test/r/join_cache.result b/mysql-test/r/join_cache.result index d816b1acf92..c15f96fc2e5 100644 --- a/mysql-test/r/join_cache.result +++ b/mysql-test/r/join_cache.result @@ -5412,9 +5412,9 @@ WHERE t2.c IN (SELECT c FROM t3,t4 WHERE t4.a < 10) AND t2.a BETWEEN 4 and 5 ORDER BY t2.b; id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY t1 system NULL NULL NULL NULL 1 Using filesort +1 PRIMARY t1 system NULL NULL NULL NULL 1 1 PRIMARY t3 system NULL NULL NULL NULL 1 -1 PRIMARY t2 range a,c a 5 NULL 1 Using index condition; Using where +1 PRIMARY t2 range a,c a 5 NULL 1 Using index condition; Using where; Using filesort 1 PRIMARY t4 ref c c 5 test.t2.c 2 Using where; Start temporary; End temporary SELECT * FROM t1,t2 WHERE t2.c IN (SELECT c FROM t3,t4 WHERE t4.a < 10) AND diff --git a/mysql-test/r/join_outer.result b/mysql-test/r/join_outer.result index 820d66b9264..ca544f40aa8 100644 --- a/mysql-test/r/join_outer.result +++ b/mysql-test/r/join_outer.result @@ -1289,8 +1289,8 @@ SELECT t1.a, COUNT( t2.b ), SUM( t2.b ), MAX( t2.b ) FROM t1 JOIN t2 USING( a ) GROUP BY t1.a WITH ROLLUP; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 system NULL NULL NULL NULL 1 Using filesort -1 SIMPLE t2 ALL NULL NULL NULL NULL 5 Using where +1 SIMPLE t1 system NULL NULL NULL NULL 1 +1 SIMPLE t2 ALL NULL NULL NULL NULL 5 Using where; Using filesort SELECT t1.a, COUNT( t2.b ), SUM( t2.b ), MAX( t2.b ) FROM t1 JOIN t2 USING( a ) GROUP BY t1.a WITH ROLLUP; @@ -1429,8 +1429,8 @@ EXPLAIN SELECT * FROM t1 LEFT JOIN t2 ON t2.f1 = t1.f1 WHERE t1.f1 = 4 AND t2.f1 IS NOT NULL AND t2.f2 IS NOT NULL GROUP BY t2.f1, t2.f2; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 system PRIMARY NULL NULL NULL 1 Using filesort -1 SIMPLE t2 ref PRIMARY PRIMARY 4 const 1 Using where; Using index +1 SIMPLE t1 system PRIMARY NULL NULL NULL 1 +1 SIMPLE t2 ref PRIMARY PRIMARY 4 const 1 Using where; Using index; Using filesort SELECT * FROM t1 LEFT JOIN t2 ON t2.f1 = t1.f1 WHERE t1.f1 = 4 AND t2.f1 IS NOT NULL AND t2.f2 IS NOT NULL GROUP BY t2.f1, t2.f2; @@ -1846,8 +1846,8 @@ EXPLAIN SELECT * FROM t1 LEFT JOIN t2 ON t2.f1 = t1.f1 WHERE t1.f1 = 4 AND t2.f1 IS NOT NULL AND t2.f2 IS NOT NULL GROUP BY t2.f1, t2.f2; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 system PRIMARY NULL NULL NULL 1 Using filesort -1 SIMPLE t2 ref PRIMARY PRIMARY 4 const 1 Using where; Using index +1 SIMPLE t1 system PRIMARY NULL NULL NULL 1 +1 SIMPLE t2 ref PRIMARY PRIMARY 4 const 1 Using where; Using index; Using filesort SELECT * FROM t1 LEFT JOIN t2 ON t2.f1 = t1.f1 WHERE t1.f1 = 4 AND t2.f1 IS NOT NULL AND t2.f2 IS NOT NULL GROUP BY t2.f1, t2.f2; diff --git a/mysql-test/r/join_outer_jcl6.result b/mysql-test/r/join_outer_jcl6.result index 4412f8059dd..3616deaee9c 100644 --- a/mysql-test/r/join_outer_jcl6.result +++ b/mysql-test/r/join_outer_jcl6.result @@ -1300,8 +1300,8 @@ SELECT t1.a, COUNT( t2.b ), SUM( t2.b ), MAX( t2.b ) FROM t1 JOIN t2 USING( a ) GROUP BY t1.a WITH ROLLUP; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 system NULL NULL NULL NULL 1 Using filesort -1 SIMPLE t2 ALL NULL NULL NULL NULL 5 Using where +1 SIMPLE t1 system NULL NULL NULL NULL 1 +1 SIMPLE t2 ALL NULL NULL NULL NULL 5 Using where; Using filesort SELECT t1.a, COUNT( t2.b ), SUM( t2.b ), MAX( t2.b ) FROM t1 JOIN t2 USING( a ) GROUP BY t1.a WITH ROLLUP; @@ -1440,8 +1440,8 @@ EXPLAIN SELECT * FROM t1 LEFT JOIN t2 ON t2.f1 = t1.f1 WHERE t1.f1 = 4 AND t2.f1 IS NOT NULL AND t2.f2 IS NOT NULL GROUP BY t2.f1, t2.f2; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 system PRIMARY NULL NULL NULL 1 Using filesort -1 SIMPLE t2 ref PRIMARY PRIMARY 4 const 1 Using where; Using index +1 SIMPLE t1 system PRIMARY NULL NULL NULL 1 +1 SIMPLE t2 ref PRIMARY PRIMARY 4 const 1 Using where; Using index; Using filesort SELECT * FROM t1 LEFT JOIN t2 ON t2.f1 = t1.f1 WHERE t1.f1 = 4 AND t2.f1 IS NOT NULL AND t2.f2 IS NOT NULL GROUP BY t2.f1, t2.f2; @@ -1857,8 +1857,8 @@ EXPLAIN SELECT * FROM t1 LEFT JOIN t2 ON t2.f1 = t1.f1 WHERE t1.f1 = 4 AND t2.f1 IS NOT NULL AND t2.f2 IS NOT NULL GROUP BY t2.f1, t2.f2; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 system PRIMARY NULL NULL NULL 1 Using filesort -1 SIMPLE t2 ref PRIMARY PRIMARY 4 const 1 Using where; Using index +1 SIMPLE t1 system PRIMARY NULL NULL NULL 1 +1 SIMPLE t2 ref PRIMARY PRIMARY 4 const 1 Using where; Using index; Using filesort SELECT * FROM t1 LEFT JOIN t2 ON t2.f1 = t1.f1 WHERE t1.f1 = 4 AND t2.f1 IS NOT NULL AND t2.f2 IS NOT NULL GROUP BY t2.f1, t2.f2; diff --git a/mysql-test/r/limit.result b/mysql-test/r/limit.result index 176a93c7a46..064fa5a18a7 100644 --- a/mysql-test/r/limit.result +++ b/mysql-test/r/limit.result @@ -80,13 +80,13 @@ create table t1 (a int); insert into t1 values (1),(2),(3),(4),(5),(6),(7); explain select count(*) c FROM t1 WHERE a > 0 ORDER BY c LIMIT 3; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 ALL NULL NULL NULL NULL 7 Using where; Using temporary +1 SIMPLE t1 ALL NULL NULL NULL NULL 7 Using where select count(*) c FROM t1 WHERE a > 0 ORDER BY c LIMIT 3; c 7 explain select sum(a) c FROM t1 WHERE a > 0 ORDER BY c LIMIT 3; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 ALL NULL NULL NULL NULL 7 Using where; Using temporary +1 SIMPLE t1 ALL NULL NULL NULL NULL 7 Using where select sum(a) c FROM t1 WHERE a > 0 ORDER BY c LIMIT 3; c 28 diff --git a/mysql-test/r/limit_rows_examined.result b/mysql-test/r/limit_rows_examined.result index 130d17ae270..318039db068 100644 --- a/mysql-test/r/limit_rows_examined.result +++ b/mysql-test/r/limit_rows_examined.result @@ -471,9 +471,11 @@ id select_type table type possible_keys key key_len ref rows Extra select c1, sum(c2) from t3 group by c1 LIMIT ROWS EXAMINED 0; c1 sum(c2) Warnings: -Warning 1931 Query execution was interrupted. The query examined at least 2 rows, which exceeds LIMIT ROWS EXAMINED (0). The query result may be incomplete. +Warning 1931 Query execution was interrupted. The query examined at least 1 rows, which exceeds LIMIT ROWS EXAMINED (0). The query result may be incomplete. select c1, sum(c2) from t3 group by c1 LIMIT ROWS EXAMINED 1; -ERROR HY000: Sort aborted: +c1 sum(c2) +Warnings: +Warning 1931 Query execution was interrupted. The query examined at least 3 rows, which exceeds LIMIT ROWS EXAMINED (1). The query result may be incomplete. select c1, sum(c2) from t3 group by c1 LIMIT ROWS EXAMINED 20; c1 sum(c2) aa 3 @@ -496,9 +498,11 @@ id select_type table type possible_keys key key_len ref rows Extra select c1, sum(c2) from t3i group by c1 LIMIT ROWS EXAMINED 0; c1 sum(c2) Warnings: -Warning 1931 Query execution was interrupted. The query examined at least 2 rows, which exceeds LIMIT ROWS EXAMINED (0). The query result may be incomplete. +Warning 1931 Query execution was interrupted. The query examined at least 1 rows, which exceeds LIMIT ROWS EXAMINED (0). The query result may be incomplete. select c1, sum(c2) from t3i group by c1 LIMIT ROWS EXAMINED 1; -ERROR HY000: Sort aborted: +c1 sum(c2) +Warnings: +Warning 1931 Query execution was interrupted. The query examined at least 3 rows, which exceeds LIMIT ROWS EXAMINED (1). The query result may be incomplete. select c1, sum(c2) from t3i group by c1 LIMIT ROWS EXAMINED 20; c1 sum(c2) aa 3 @@ -627,7 +631,7 @@ CREATE TABLE t4 (a int); INSERT INTO t4 values (1), (2); INSERT INTO t4 SELECT a + 2 FROM t4 LIMIT ROWS EXAMINED 0; Warnings: -Warning 1931 Query execution was interrupted. The query examined at least 2 rows, which exceeds LIMIT ROWS EXAMINED (0). The query result may be incomplete. +Warning 1931 Query execution was interrupted. The query examined at least 1 rows, which exceeds LIMIT ROWS EXAMINED (0). The query result may be incomplete. select * from t4; a 1 @@ -666,7 +670,7 @@ MDEV-115 SET @@optimizer_switch='in_to_exists=on,outer_join_with_cache=on'; CREATE TABLE t1 ( a VARCHAR(3) ) ENGINE=MyISAM; -INSERT INTO t1 VALUES ('USA'); +INSERT INTO t1 VALUES ('USA'),('CAN'); CREATE TABLE t2 ( b INT ); INSERT INTO t2 VALUES (3899),(3914),(3888); CREATE TABLE t3 ( c VARCHAR(33), d INT ); @@ -676,8 +680,8 @@ SELECT DISTINCT a AS field1 FROM t1, t2 WHERE EXISTS (SELECT c FROM t3 LEFT JOIN t2 ON b = d) HAVING field1 > 'aaa' LIMIT ROWS EXAMINED 20; id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY t1 system NULL NULL NULL NULL 1 Using temporary -1 PRIMARY t2 ALL NULL NULL NULL NULL 3 Distinct +1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using temporary +1 PRIMARY t2 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join) 2 SUBQUERY t3 ALL NULL NULL NULL NULL 3 2 SUBQUERY t2 ALL NULL NULL NULL NULL 3 Using where; Using join buffer (flat, BNL join) SELECT DISTINCT a AS field1 FROM t1, t2 @@ -685,24 +689,27 @@ WHERE EXISTS (SELECT c FROM t3 LEFT JOIN t2 ON b = d) HAVING field1 > 'aaa' LIMIT ROWS EXAMINED 20; field1 Warnings: -Warning 1931 Query execution was interrupted. The query examined at least 23 rows, which exceeds LIMIT ROWS EXAMINED (20). The query result may be incomplete. +Warning 1931 Query execution was interrupted. The query examined at least 21 rows, which exceeds LIMIT ROWS EXAMINED (20). The query result may be incomplete. EXPLAIN SELECT DISTINCT a FROM t1, t2 HAVING a > ' ' LIMIT ROWS EXAMINED 14; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 system NULL NULL NULL NULL 1 Using temporary -1 SIMPLE t2 ALL NULL NULL NULL NULL 3 Distinct +1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using temporary +1 SIMPLE t2 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join) SELECT DISTINCT a FROM t1, t2 HAVING a > ' ' LIMIT ROWS EXAMINED 14; a +USA Warnings: Warning 1931 Query execution was interrupted. The query examined at least 15 rows, which exceeds LIMIT ROWS EXAMINED (14). The query result may be incomplete. SELECT DISTINCT a FROM t1, t2 HAVING a > ' ' LIMIT ROWS EXAMINED 15; a USA +CAN Warnings: Warning 1931 Query execution was interrupted. The query examined at least 16 rows, which exceeds LIMIT ROWS EXAMINED (15). The query result may be incomplete. SELECT DISTINCT a FROM t1, t2 HAVING a > ' ' LIMIT ROWS EXAMINED 16; a USA +CAN Warnings: Warning 1931 Query execution was interrupted. The query examined at least 17 rows, which exceeds LIMIT ROWS EXAMINED (16). The query result may be incomplete. drop table t1,t2,t3; diff --git a/mysql-test/r/mrr_derived_crash_4610.result b/mysql-test/r/mrr_derived_crash_4610.result index 8dcdfda9276..3e38a0d4218 100644 --- a/mysql-test/r/mrr_derived_crash_4610.result +++ b/mysql-test/r/mrr_derived_crash_4610.result @@ -7,8 +7,8 @@ explain select 1 from (select f2, f3, val, count(id) from t4 join t2 left join t3 on 0) top join t1 on f1 = f3 where f3 = 'aaaa' order by val; id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY t1 const PRIMARY PRIMARY 12 const 1 Using index; Using filesort -1 PRIMARY <derived2> ref key0 key0 13 const 0 Using where +1 PRIMARY t1 const PRIMARY PRIMARY 12 const 1 Using index +1 PRIMARY <derived2> ref key0 key0 13 const 0 Using where; Using filesort 2 DERIVED t4 ALL NULL NULL NULL NULL 1 2 DERIVED t2 ALL NULL NULL NULL NULL 1 Using join buffer (flat, BNL join) 2 DERIVED t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (incremental, BNL join) diff --git a/mysql-test/r/myisam.result b/mysql-test/r/myisam.result index 67a63d7a08a..1eef64be640 100644 --- a/mysql-test/r/myisam.result +++ b/mysql-test/r/myisam.result @@ -523,11 +523,11 @@ a explain select sql_big_result distinct t1.a from t1,t2 order by t2.a; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 system NULL NULL NULL NULL 1 Using temporary -1 SIMPLE t2 index NULL PRIMARY 4 NULL 2 Using index; Distinct +1 SIMPLE t2 index NULL PRIMARY 4 NULL 2 Using index explain select distinct t1.a from t1,t2 order by t2.a; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 system NULL NULL NULL NULL 1 Using temporary -1 SIMPLE t2 index NULL PRIMARY 4 NULL 2 Using index; Distinct +1 SIMPLE t2 index NULL PRIMARY 4 NULL 2 Using index drop table t1,t2; create table t1 ( c1 varchar(32), @@ -603,6 +603,10 @@ test.t2 3442722830 test.t3 NULL Warnings: Error 1146 Table 'test.t3' doesn't exist +alter table t1 add d int default 30, add e bigint default 300000, add f decimal(30) default 442; +checksum table t1; +Table Checksum +test.t1 2924214226 drop table t1,t2; create table t1 (a int, key (a)); show keys from t1; diff --git a/mysql-test/r/order_by_optimizer.result b/mysql-test/r/order_by_optimizer.result new file mode 100644 index 00000000000..8f128552a86 --- /dev/null +++ b/mysql-test/r/order_by_optimizer.result @@ -0,0 +1,30 @@ +drop table if exists t0,t1,t2,t3; +# +# MDEV-7885: EXPLAIN shows wrong info for ORDER BY query +# +create table t0(a int); +insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); +create table t1(a int); +insert into t1 select A.a + B.a* 10 + C.a * 100 from t0 A, t0 B, t0 C; +create table t2 (key1 int, col1 int, key(key1)); +insert into t2 select a,a from t0; +insert into t2 select 15,15 from t1; +alter table t2 add key2 int, add key(key2); +# This must show "Using filesort": +explain +select * from t2 ignore index for order by (key1) where col1<0 order by key1 limit 10; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t2 ALL NULL NULL NULL NULL 1010 Using where; Using filesort +drop table t0, t1, t2; +# +# MDEV-8857: [Upstream too] EXPLAIN incorrectly shows Distinct for tables using join buffer +# +create table t0(a int); +insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); +create table t1 (a int, filler char(200), key(a)); +insert into t1 select A.a + B.a* 10, 'AAAAAAAAAAAAAAAAAAAA' from t0 A, t0 B where B.a in (0,1); +explain select distinct A.a from t0 A, t1 B where A.a+B.a> 0; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE A ALL NULL NULL NULL NULL 10 Using temporary +1 SIMPLE B index NULL a 5 NULL 20 Using where; Using index; Using join buffer (flat, BNL join) +drop table t0, t1; diff --git a/mysql-test/r/parser.result b/mysql-test/r/parser.result index 01cc9d79aaf..18a8e13815c 100644 --- a/mysql-test/r/parser.result +++ b/mysql-test/r/parser.result @@ -686,7 +686,7 @@ FOR UPDATE) a; SELECT 1 FROM (SELECT 1 FROM DUAL WHERE 1 GROUP BY 1 HAVING 1 ORDER BY 1 PROCEDURE ANALYSE() FOR UPDATE) a; -ERROR HY000: Incorrect usage of PROCEDURE and subquery +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'PROCEDURE ANALYSE() FOR UPDATE) a' at line 3 SELECT 1 FROM t1 WHERE EXISTS(SELECT 1 FROM DUAL WHERE 1 GROUP BY 1 HAVING 1 ORDER BY 1 FOR UPDATE); @@ -694,7 +694,7 @@ FOR UPDATE); SELECT 1 FROM t1 WHERE EXISTS(SELECT 1 FROM DUAL WHERE 1 GROUP BY 1 HAVING 1 ORDER BY 1 PROCEDURE ANALYSE() FOR UPDATE); -ERROR HY000: Incorrect usage of PROCEDURE and subquery +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'PROCEDURE ANALYSE() FOR UPDATE)' at line 3 SELECT 1 FROM t1 UNION SELECT 1 FROM DUAL WHERE 1 GROUP BY 1 HAVING 1 ORDER BY 1 diff --git a/mysql-test/r/select_found.result b/mysql-test/r/select_found.result index 7b38515cf70..8462e19fda8 100644 --- a/mysql-test/r/select_found.result +++ b/mysql-test/r/select_found.result @@ -83,20 +83,20 @@ UNIQUE KEY e_n (email,name) ); EXPLAIN SELECT SQL_CALC_FOUND_ROWS DISTINCT email FROM t2 LEFT JOIN t1 ON kid = t2.id WHERE t1.id IS NULL LIMIT 10; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 system PRIMARY,kid NULL NULL NULL 0 const row not found -1 SIMPLE t2 index NULL e_n 104 NULL 10 +1 SIMPLE t1 system PRIMARY,kid NULL NULL NULL 0 const row not found; Using temporary +1 SIMPLE t2 ALL NULL NULL NULL NULL 200 SELECT SQL_CALC_FOUND_ROWS DISTINCT email FROM t2 LEFT JOIN t1 ON kid = t2.id WHERE t1.id IS NULL LIMIT 10; email email1 +email2 +email3 +email4 +email5 +email6 +email7 +email8 +email9 email10 -email100 -email101 -email102 -email103 -email104 -email105 -email106 -email107 SELECT FOUND_ROWS(); FOUND_ROWS() 200 diff --git a/mysql-test/r/show_explain.result b/mysql-test/r/show_explain.result index 5a885766f7b..0819ae5ba37 100644 --- a/mysql-test/r/show_explain.result +++ b/mysql-test/r/show_explain.result @@ -1162,7 +1162,7 @@ SELECT b AS field1, b AS field2 FROM t1, t2, t3 WHERE d = b ORDER BY field1, fie connection default; show explain for $thr2; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 system NULL NULL NULL NULL 1 Using filesort +1 SIMPLE t2 system NULL NULL NULL NULL 1 1 SIMPLE t1 range b b 6 NULL 107 Using where; Using index 1 SIMPLE t3 ref PRIMARY PRIMARY 5 test.t1.b 1 Using index Warnings: diff --git a/mysql-test/r/subselect.result b/mysql-test/r/subselect.result index b306965034b..1b1198958b8 100644 --- a/mysql-test/r/subselect.result +++ b/mysql-test/r/subselect.result @@ -79,7 +79,7 @@ SELECT 1 FROM (SELECT 1 as a) b WHERE 1 IN (SELECT (SELECT a)); 1 1 select (SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE(1)); -ERROR HY000: Incorrect usage of PROCEDURE and subquery +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'PROCEDURE ANALYSE(1))' at line 1 SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE((SELECT 1)); ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SELECT 1))' at line 1 SELECT (SELECT 1) as a FROM (SELECT 1) b WHERE (SELECT a) IS NULL; diff --git a/mysql-test/r/subselect4.result b/mysql-test/r/subselect4.result index 87645d187f2..7202a6238b0 100644 --- a/mysql-test/r/subselect4.result +++ b/mysql-test/r/subselect4.result @@ -19,7 +19,7 @@ SELECT 1 FROM t1 WHERE NOT EXISTS (SELECT 1 FROM t2 WHERE 1 = (SELECT MIN(t2.b) FROM t3)) ORDER BY count(*); id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY t1 index NULL a 5 NULL 2 Using where; Using index; Using temporary +1 PRIMARY t1 index NULL a 5 NULL 2 Using where; Using index 2 DEPENDENT SUBQUERY t2 ALL NULL NULL NULL NULL 2 Using where 3 DEPENDENT SUBQUERY t3 system NULL NULL NULL NULL 0 const row not found # should not crash the next statement @@ -2003,8 +2003,8 @@ FROM t2 JOIN t3 ON t3.f4 = t2.f4 WHERE t3.f1 = 8 GROUP BY 1, 2; id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY t3 system NULL NULL NULL NULL 1 Using filesort -1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where +1 PRIMARY t3 system NULL NULL NULL NULL 1 +1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; Using filesort 2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE 3 MATERIALIZED NULL NULL NULL NULL NULL NULL NULL no matching row in const table PREPARE st1 FROM " diff --git a/mysql-test/r/subselect_no_exists_to_in.result b/mysql-test/r/subselect_no_exists_to_in.result index 244f6057a2f..39d1f64410e 100644 --- a/mysql-test/r/subselect_no_exists_to_in.result +++ b/mysql-test/r/subselect_no_exists_to_in.result @@ -83,7 +83,7 @@ SELECT 1 FROM (SELECT 1 as a) b WHERE 1 IN (SELECT (SELECT a)); 1 1 select (SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE(1)); -ERROR HY000: Incorrect usage of PROCEDURE and subquery +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'PROCEDURE ANALYSE(1))' at line 1 SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE((SELECT 1)); ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SELECT 1))' at line 1 SELECT (SELECT 1) as a FROM (SELECT 1) b WHERE (SELECT a) IS NULL; diff --git a/mysql-test/r/subselect_no_mat.result b/mysql-test/r/subselect_no_mat.result index e095ed16ff9..211d3206a7f 100644 --- a/mysql-test/r/subselect_no_mat.result +++ b/mysql-test/r/subselect_no_mat.result @@ -86,7 +86,7 @@ SELECT 1 FROM (SELECT 1 as a) b WHERE 1 IN (SELECT (SELECT a)); 1 1 select (SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE(1)); -ERROR HY000: Incorrect usage of PROCEDURE and subquery +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'PROCEDURE ANALYSE(1))' at line 1 SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE((SELECT 1)); ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SELECT 1))' at line 1 SELECT (SELECT 1) as a FROM (SELECT 1) b WHERE (SELECT a) IS NULL; diff --git a/mysql-test/r/subselect_no_opts.result b/mysql-test/r/subselect_no_opts.result index f4714526613..6ae9f8aa066 100644 --- a/mysql-test/r/subselect_no_opts.result +++ b/mysql-test/r/subselect_no_opts.result @@ -82,7 +82,7 @@ SELECT 1 FROM (SELECT 1 as a) b WHERE 1 IN (SELECT (SELECT a)); 1 1 select (SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE(1)); -ERROR HY000: Incorrect usage of PROCEDURE and subquery +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'PROCEDURE ANALYSE(1))' at line 1 SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE((SELECT 1)); ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SELECT 1))' at line 1 SELECT (SELECT 1) as a FROM (SELECT 1) b WHERE (SELECT a) IS NULL; diff --git a/mysql-test/r/subselect_no_scache.result b/mysql-test/r/subselect_no_scache.result index 5ead5de4cf9..9a3fcd1de3b 100644 --- a/mysql-test/r/subselect_no_scache.result +++ b/mysql-test/r/subselect_no_scache.result @@ -85,7 +85,7 @@ SELECT 1 FROM (SELECT 1 as a) b WHERE 1 IN (SELECT (SELECT a)); 1 1 select (SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE(1)); -ERROR HY000: Incorrect usage of PROCEDURE and subquery +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'PROCEDURE ANALYSE(1))' at line 1 SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE((SELECT 1)); ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SELECT 1))' at line 1 SELECT (SELECT 1) as a FROM (SELECT 1) b WHERE (SELECT a) IS NULL; diff --git a/mysql-test/r/subselect_no_semijoin.result b/mysql-test/r/subselect_no_semijoin.result index c57c46b76ff..10cf05649e7 100644 --- a/mysql-test/r/subselect_no_semijoin.result +++ b/mysql-test/r/subselect_no_semijoin.result @@ -82,7 +82,7 @@ SELECT 1 FROM (SELECT 1 as a) b WHERE 1 IN (SELECT (SELECT a)); 1 1 select (SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE(1)); -ERROR HY000: Incorrect usage of PROCEDURE and subquery +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'PROCEDURE ANALYSE(1))' at line 1 SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE((SELECT 1)); ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SELECT 1))' at line 1 SELECT (SELECT 1) as a FROM (SELECT 1) b WHERE (SELECT a) IS NULL; diff --git a/mysql-test/r/win.result b/mysql-test/r/win.result new file mode 100644 index 00000000000..a6b43788ffe --- /dev/null +++ b/mysql-test/r/win.result @@ -0,0 +1,1961 @@ +drop table if exists t1,t2; +drop view if exists v1; +# ######################################################################## +# # Parser tests +# ######################################################################## +# +# Check what happens when one attempts to use window function without OVER clause +create table t1 (a int, b int); +insert into t1 values (1,1),(2,2); +select row_number() from t1; +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'from t1' at line 1 +select rank() from t1; +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'from t1' at line 1 +# Attempt to use window function in the WHERE clause +select * from t1 where 1=rank() over (order by a); +ERROR HY000: Window function is allowed only in SELECT list and ORDER BY clause +select * from t1 where 1>row_number() over (partition by b order by a); +ERROR HY000: Window function is allowed only in SELECT list and ORDER BY clause +drop table t1; +# ######################################################################## +# # Functionality tests +# ######################################################################## +# +# Check if ROW_NUMBER() works in basic cases +create table t1(a int, b int, x char(32)); +insert into t1 values (2, 10, 'xx'); +insert into t1 values (2, 10, 'zz'); +insert into t1 values (2, 20, 'yy'); +insert into t1 values (3, 10, 'xxx'); +insert into t1 values (3, 20, 'vvv'); +select a, row_number() over (partition by a order by b) from t1; +a row_number() over (partition by a order by b) +2 1 +2 2 +2 3 +3 1 +3 2 +select a, b, x, row_number() over (partition by a order by x) from t1; +a b x row_number() over (partition by a order by x) +2 10 xx 1 +2 10 zz 3 +2 20 yy 2 +3 10 xxx 2 +3 20 vvv 1 +drop table t1; +create table t1 (pk int primary key, a int, b int); +insert into t1 values +(1, 10, 22), +(2, 11, 21), +(3, 12, 20), +(4, 13, 19), +(5, 14, 18); +select +pk, a, b, +row_number() over (order by a), +row_number() over (order by b) +from t1; +pk a b row_number() over (order by a) row_number() over (order by b) +1 10 22 1 5 +2 11 21 2 4 +3 12 20 3 3 +4 13 19 4 2 +5 14 18 5 1 +drop table t1; +# +# Try RANK() function +# +create table t2 ( +pk int primary key, +a int +); +insert into t2 values +( 1 , 0), +( 2 , 0), +( 3 , 1), +( 4 , 1), +( 8 , 2), +( 5 , 2), +( 6 , 2), +( 7 , 2), +( 9 , 4), +(10 , 4); +select pk, a, rank() over (order by a) from t2; +pk a rank() over (order by a) +1 0 1 +2 0 1 +3 1 3 +4 1 3 +8 2 5 +5 2 5 +6 2 5 +7 2 5 +9 4 9 +10 4 9 +select pk, a, rank() over (order by a desc) from t2; +pk a rank() over (order by a desc) +1 0 9 +2 0 9 +3 1 7 +4 1 7 +8 2 3 +5 2 3 +6 2 3 +7 2 3 +9 4 1 +10 4 1 +drop table t2; +# +# Try Aggregates as window functions. With frames. +# +create table t0 (a int); +insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); +create table t1 (pk int, c int); +insert into t1 select a+1,1 from t0; +update t1 set c=2 where pk not in (1,2,3,4); +select * from t1; +pk c +1 1 +2 1 +3 1 +4 1 +5 2 +6 2 +7 2 +8 2 +9 2 +10 2 +select +pk, c, +count(*) over (partition by c order by pk +rows between 2 preceding and 2 following) as CNT +from t1; +pk c CNT +1 1 3 +2 1 4 +3 1 4 +4 1 3 +5 2 3 +6 2 4 +7 2 5 +8 2 5 +9 2 4 +10 2 3 +select +pk, c, +count(*) over (partition by c order by pk +rows between 1 preceding and 2 following) as CNT +from t1; +pk c CNT +1 1 3 +2 1 4 +3 1 3 +4 1 2 +5 2 3 +6 2 4 +7 2 4 +8 2 4 +9 2 3 +10 2 2 +select +pk, c, +count(*) over (partition by c order by pk +rows between 2 preceding and current row) as CNT +from t1; +pk c CNT +1 1 1 +2 1 2 +3 1 3 +4 1 3 +5 2 1 +6 2 2 +7 2 3 +8 2 3 +9 2 3 +10 2 3 +select +pk,c, +count(*) over (partition by c order by pk rows +between 1 following and 2 following) as CNT +from t1; +pk c CNT +1 1 2 +2 1 2 +3 1 1 +4 1 0 +5 2 2 +6 2 2 +7 2 2 +8 2 2 +9 2 1 +10 2 0 +select +pk,c, +count(*) over (partition by c order by pk rows +between 2 preceding and 1 preceding) as CNT +from t1; +pk c CNT +1 1 0 +2 1 1 +3 1 2 +4 1 2 +5 2 0 +6 2 1 +7 2 2 +8 2 2 +9 2 2 +10 2 2 +select +pk, c, +count(*) over (partition by c order by pk +rows between current row and 1 following) as CNT +from t1; +pk c CNT +1 1 2 +2 1 2 +3 1 2 +4 1 1 +5 2 2 +6 2 2 +7 2 2 +8 2 2 +9 2 2 +10 2 1 +# Check ORDER BY DESC +select +pk, c, +count(*) over (partition by c order by pk desc +rows between 2 preceding and 2 following) as CNT +from t1; +pk c CNT +1 1 3 +2 1 4 +3 1 4 +4 1 3 +5 2 3 +6 2 4 +7 2 5 +8 2 5 +9 2 4 +10 2 3 +drop table t0,t1; +# +# Resolution of window names +# +create table t0 (a int); +insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); +create table t1 (pk int, c int); +insert into t1 select a+1,1 from t0; +update t1 set c=2 where pk not in (1,2,3,4); +select * from t1; +pk c +1 1 +2 1 +3 1 +4 1 +5 2 +6 2 +7 2 +8 2 +9 2 +10 2 +select +pk, c, +count(*) over w1 as CNT +from t1 +window w1 as (partition by c order by pk +rows between 2 preceding and 2 following); +pk c CNT +1 1 3 +2 1 4 +3 1 4 +4 1 3 +5 2 3 +6 2 4 +7 2 5 +8 2 5 +9 2 4 +10 2 3 +select +pk, c, +count(*) over (w1 rows between 2 preceding and 2 following) as CNT +from t1 +window w1 as (partition by c order by pk); +pk c CNT +1 1 3 +2 1 4 +3 1 4 +4 1 3 +5 2 3 +6 2 4 +7 2 5 +8 2 5 +9 2 4 +10 2 3 +select +pk, c, +count(*) over (w1 order by pk rows between 2 preceding and 2 following) as CNT +from t1 +window w1 as (partition by c); +pk c CNT +1 1 3 +2 1 4 +3 1 4 +4 1 3 +5 2 3 +6 2 4 +7 2 5 +8 2 5 +9 2 4 +10 2 3 +select +pk, c, +count(*) over (w2 rows between 2 preceding and 2 following) as CNT +from t1 +window w1 as (partition by c), w2 as (w1 order by pk); +pk c CNT +1 1 3 +2 1 4 +3 1 4 +4 1 3 +5 2 3 +6 2 4 +7 2 5 +8 2 5 +9 2 4 +10 2 3 +select +pk, c, +count(*) over w3 as CNT +from t1 +window +w1 as (partition by c), +w2 as (w1 order by pk), +w3 as (w2 rows between 2 preceding and 2 following); +pk c CNT +1 1 3 +2 1 4 +3 1 4 +4 1 3 +5 2 3 +6 2 4 +7 2 5 +8 2 5 +9 2 4 +10 2 3 +select +pk, c, +count(*) over w as CNT +from t1 +window w1 as (partition by c order by pk +rows between 2 preceding and 2 following); +ERROR HY000: Window specification with name 'w' is not defined +select +pk, c, +count(*) over (w2 rows between 2 preceding and 2 following) as CNT +from t1 +window w1 as (partition by c), w1 as (order by pk); +ERROR HY000: Multiple window specifications with the same name 'w1' +select +pk, c, +count(*) over (w2 rows between 2 preceding and 2 following) as CNT +from t1 +window w1 as (partition by c), w2 as (w partition by c order by pk); +ERROR HY000: Window specification with name 'w' is not defined +select +pk, c, +count(*) over (w2 rows between 2 preceding and 2 following) as CNT +from t1 +window w1 as (partition by c), w2 as (w1 partition by c order by pk); +ERROR HY000: Window specification referencing another one 'w1' cannot contain partition list +select +pk, c, +count(*) over (w2 rows between 2 preceding and 2 following) as CNT +from t1 +window w1 as (partition by c order by pk), w2 as (w1 order by pk); +ERROR HY000: Referenced window specification 'w1' already contains order list +select +pk, c, +count(*) over w3 as CNT +from t1 +window +w1 as (partition by c), +w2 as (w1 order by pk rows between 3 preceding and 2 following), +w3 as (w2 rows between 2 preceding and 2 following); +ERROR HY000: Referenced window specification 'w2' cannot contain window frame +select +pk, c, +count(*) over w1 as CNT +from t1 +window w1 as (partition by c order by pk +rows between unbounded following and 2 following); +ERROR HY000: Unacceptable combination of window frame bound specifications +select +pk, c, +count(*) over (w1 rows between 2 preceding and unbounded preceding) as CNT +from t1 +window w1 as (partition by c order by pk); +ERROR HY000: Unacceptable combination of window frame bound specifications +select +pk, c, +count(*) over (w1 order by pk rows between current row and 2 preceding) as CNT +from t1 +window w1 as (partition by c); +ERROR HY000: Unacceptable combination of window frame bound specifications +select +pk, c, +count(*) over (w2 rows between 2 following and current row) as CNT +from t1 +window w1 as (partition by c), w2 as (w1 order by pk); +ERROR HY000: Unacceptable combination of window frame bound specifications +select +pk, c +from t1 where rank() over w1 > 2 +window w1 as (partition by c order by pk); +ERROR HY000: Window function is allowed only in SELECT list and ORDER BY clause +select +c, max(pk) as m +from t1 +group by c + rank() over w1 +window w1 as (order by m); +ERROR HY000: Window function is allowed only in SELECT list and ORDER BY clause +select +c, max(pk) as m, rank() over w1 as r +from t1 +group by c+r +window w1 as (order by m); +ERROR HY000: Window function is allowed only in SELECT list and ORDER BY clause +select +c, max(pk) as m, rank() over w1 as r +from t1 +group by c having c+r > 3 +window w1 as (order by m); +ERROR HY000: Window function is allowed only in SELECT list and ORDER BY clause +select +c, max(pk) as m, rank() over w1 as r, +rank() over (partition by r+1 order by m) +from t1 +group by c +window w1 as (order by m); +ERROR HY000: Window function is not allowed in window specification +select +c, max(pk) as m, rank() over w1 as r, +rank() over (partition by m order by r) +from t1 +group by c +window w1 as (order by m); +ERROR HY000: Window function is not allowed in window specification +select +c, max(pk) as m, rank() over w1 as r, dense_rank() over w2 as dr +from t1 +group by c +window w1 as (order by m), w2 as (partition by r order by m); +ERROR HY000: Window function is not allowed in window specification +select +pk, c, +row_number() over (partition by c order by pk +range between unbounded preceding and current row) as r +from t1; +ERROR HY000: Window frame is not allowed with 'row_number' +select +pk, c, +rank() over w1 as r +from t1 +window w1 as (partition by c order by pk +rows between 2 preceding and 2 following); +ERROR HY000: Window frame is not allowed with 'rank' +select +pk, c, +dense_rank() over (partition by c order by pk +rows between 1 preceding and 1 following) as r +from t1; +ERROR HY000: Window frame is not allowed with 'dense_rank' +select +pk, c, +rank() over w1 as r +from t1 +window w1 as (partition by c); +ERROR HY000: No order list in window specification for 'rank' +select +pk, c, +dense_rank() over (partition by c) as r +from t1; +ERROR HY000: No order list in window specification for 'dense_rank' +drop table t0,t1; +# +# MDEV-9634: Window function produces incorrect value +# +create table t0 (a int); +insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); +create table t2 (part_id int, pk int, a int); +insert into t2 select +if(a<5, 0, 1), a, if(a<5, NULL, 1) from t0; +select * from t2; +part_id pk a +0 0 NULL +0 1 NULL +0 2 NULL +0 3 NULL +0 4 NULL +1 5 1 +1 6 1 +1 7 1 +1 8 1 +1 9 1 +select +part_id, pk, a, +count(a) over (partition by part_id order by pk +rows between 1 preceding and 1 following) as CNT +from t2; +part_id pk a CNT +0 0 NULL 0 +0 1 NULL 0 +0 2 NULL 0 +0 3 NULL 0 +0 4 NULL 0 +1 5 1 2 +1 6 1 3 +1 7 1 3 +1 8 1 3 +1 9 1 2 +drop table t0, t2; +# +# RANGE-type bounds +# +create table t3 ( +pk int, +val int +); +insert into t3 values +(0, 1), +(1, 1), +(2, 1), +(3, 2), +(4, 2), +(5, 2), +(6, 2); +select +pk, +val, +count(val) over (order by val +range between current row and +current row) +as CNT +from t3; +pk val CNT +0 1 3 +1 1 3 +2 1 3 +3 2 4 +4 2 4 +5 2 4 +6 2 4 +insert into t3 values +(7, 3), +(8, 3); +select +pk, +val, +count(val) over (order by val +range between current row and +current row) +as CNT +from t3; +pk val CNT +0 1 3 +1 1 3 +2 1 3 +3 2 4 +4 2 4 +5 2 4 +6 2 4 +7 3 2 +8 3 2 +drop table t3; +# Now, check with PARTITION BY +create table t4 ( +part_id int, +pk int, +val int +); +insert into t4 values +(1234, 100, 1), +(1234, 101, 1), +(1234, 102, 1), +(1234, 103, 2), +(1234, 104, 2), +(1234, 105, 2), +(1234, 106, 2), +(1234, 107, 3), +(1234, 108, 3), +(5678, 200, 1), +(5678, 201, 1), +(5678, 202, 1), +(5678, 203, 2), +(5678, 204, 2), +(5678, 205, 2), +(5678, 206, 2), +(5678, 207, 3), +(5678, 208, 3); +select +part_id, +pk, +val, +count(val) over (partition by part_id +order by val +range between current row and +current row) +as CNT +from t4; +part_id pk val CNT +1234 100 1 3 +1234 101 1 3 +1234 102 1 3 +1234 103 2 4 +1234 104 2 4 +1234 105 2 4 +1234 106 2 4 +1234 107 3 2 +1234 108 3 2 +5678 200 1 3 +5678 201 1 3 +5678 202 1 3 +5678 203 2 4 +5678 204 2 4 +5678 205 2 4 +5678 206 2 4 +5678 207 3 2 +5678 208 3 2 +# +# Try RANGE UNBOUNDED PRECEDING | FOLLOWING +# +select +part_id, +pk, +val, +count(val) over (partition by part_id +order by val +range between unbounded preceding and +current row) +as CNT +from t4; +part_id pk val CNT +1234 100 1 3 +1234 101 1 3 +1234 102 1 3 +1234 103 2 7 +1234 104 2 7 +1234 105 2 7 +1234 106 2 7 +1234 107 3 9 +1234 108 3 9 +5678 200 1 3 +5678 201 1 3 +5678 202 1 3 +5678 203 2 7 +5678 204 2 7 +5678 205 2 7 +5678 206 2 7 +5678 207 3 9 +5678 208 3 9 +select +part_id, +pk, +val, +count(val) over (partition by part_id +order by val +range between current row and +unbounded following) +as CNT +from t4; +part_id pk val CNT +1234 100 1 9 +1234 101 1 9 +1234 102 1 9 +1234 103 2 6 +1234 104 2 6 +1234 105 2 6 +1234 106 2 6 +1234 107 3 2 +1234 108 3 2 +5678 200 1 9 +5678 201 1 9 +5678 202 1 9 +5678 203 2 6 +5678 204 2 6 +5678 205 2 6 +5678 206 2 6 +5678 207 3 2 +5678 208 3 2 +select +part_id, +pk, +val, +count(val) over (partition by part_id +order by val +range between unbounded preceding and +unbounded following) +as CNT +from t4; +part_id pk val CNT +1234 100 1 9 +1234 101 1 9 +1234 102 1 9 +1234 103 2 9 +1234 104 2 9 +1234 105 2 9 +1234 106 2 9 +1234 107 3 9 +1234 108 3 9 +5678 200 1 9 +5678 201 1 9 +5678 202 1 9 +5678 203 2 9 +5678 204 2 9 +5678 205 2 9 +5678 206 2 9 +5678 207 3 9 +5678 208 3 9 +drop table t4; +# +# MDEV-9695: Wrong window frame when using RANGE BETWEEN N FOLLOWING AND PRECEDING +# +create table t1 (pk int, a int, b int); +insert into t1 values +( 1 , 0, 1), +( 2 , 0, 2), +( 3 , 1, 4), +( 4 , 1, 8), +( 5 , 2, 32), +( 6 , 2, 64), +( 7 , 2, 128), +( 8 , 2, 16); +select pk, a, b, +bit_or(b) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) as bit_or +from t1; +pk a b bit_or +1 0 1 3 +2 0 2 3 +3 1 4 12 +4 1 8 12 +5 2 32 96 +6 2 64 224 +7 2 128 208 +8 2 16 144 +# Extra ROWS n PRECEDING tests +select pk, a, b, +bit_or(b) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) as bit_or +from t1; +pk a b bit_or +1 0 1 0 +2 0 2 1 +3 1 4 0 +4 1 8 4 +5 2 32 0 +6 2 64 32 +7 2 128 64 +8 2 16 128 +drop table t1; +create table t2 ( +pk int, +a int, +b int +); +insert into t2 values +( 1, 0, 1), +( 2, 0, 2), +( 3, 0, 4), +( 4, 0, 8), +( 5, 1, 16), +( 6, 1, 32), +( 7, 1, 64), +( 8, 1, 128), +( 9, 2, 256), +(10, 2, 512), +(11, 2, 1024), +(12, 2, 2048); +select pk, a, b, +bit_or(b) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) as bit_or +from t2; +pk a b bit_or +1 0 1 0 +2 0 2 1 +3 0 4 2 +4 0 8 4 +5 1 16 0 +6 1 32 16 +7 1 64 32 +8 1 128 64 +9 2 256 0 +10 2 512 256 +11 2 1024 512 +12 2 2048 1024 +select pk, a, b, +bit_or(b) over (partition by a order by pk ROWS BETWEEN 2 PRECEDING AND 2 PRECEDING) as bit_or +from t2; +pk a b bit_or +1 0 1 0 +2 0 2 0 +3 0 4 1 +4 0 8 2 +5 1 16 0 +6 1 32 0 +7 1 64 16 +8 1 128 32 +9 2 256 0 +10 2 512 0 +11 2 1024 256 +12 2 2048 512 +select pk, a, b, +bit_or(b) over (partition by a order by pk ROWS BETWEEN 2 PRECEDING AND 1 PRECEDING) as bit_or +from t2; +pk a b bit_or +1 0 1 0 +2 0 2 1 +3 0 4 3 +4 0 8 6 +5 1 16 0 +6 1 32 16 +7 1 64 48 +8 1 128 96 +9 2 256 0 +10 2 512 256 +11 2 1024 768 +12 2 2048 1536 +# Check CURRENT ROW +select pk, a, b, +bit_or(b) over (partition by a order by pk ROWS BETWEEN CURRENT ROW AND CURRENT ROW) as bit_or +from t2; +pk a b bit_or +1 0 1 1 +2 0 2 2 +3 0 4 4 +4 0 8 8 +5 1 16 16 +6 1 32 32 +7 1 64 64 +8 1 128 128 +9 2 256 256 +10 2 512 512 +11 2 1024 1024 +12 2 2048 2048 +drop table t2; +# +# Try RANGE PRECEDING|FOLLWING n +# +create table t1 ( +part_id int, +pk int, +a int +); +insert into t1 values +(10, 1, 1), +(10, 2, 2), +(10, 3, 4), +(10, 4, 8), +(10, 5,26), +(10, 6,27), +(10, 7,40), +(10, 8,71), +(10, 9,72); +select +pk, a, +count(a) over (ORDER BY a +RANGE BETWEEN UNBOUNDED PRECEDING +AND 10 FOLLOWING) as cnt +from t1; +pk a cnt +1 1 4 +2 2 4 +3 4 4 +4 8 4 +5 26 6 +6 27 6 +7 40 7 +8 71 9 +9 72 9 +select +pk, a, +count(a) over (ORDER BY a DESC +RANGE BETWEEN UNBOUNDED PRECEDING +AND 10 FOLLOWING) as cnt +from t1; +pk a cnt +1 1 9 +2 2 9 +3 4 9 +4 8 9 +5 26 5 +6 27 5 +7 40 3 +8 71 2 +9 72 2 +select +pk, a, +count(a) over (ORDER BY a +RANGE BETWEEN UNBOUNDED PRECEDING +AND 1 FOLLOWING) as cnt +from t1; +pk a cnt +1 1 2 +2 2 2 +3 4 3 +4 8 4 +5 26 6 +6 27 6 +7 40 7 +8 71 9 +9 72 9 +select +pk, a, +count(a) over (ORDER BY a +RANGE BETWEEN UNBOUNDED PRECEDING +AND 10 PRECEDING) as cnt +from t1; +pk a cnt +1 1 0 +2 2 0 +3 4 0 +4 8 0 +5 26 4 +6 27 4 +7 40 6 +8 71 7 +9 72 7 +select +pk, a, +count(a) over (ORDER BY a DESC +RANGE BETWEEN UNBOUNDED PRECEDING +AND 10 PRECEDING) as cnt +from t1; +pk a cnt +1 1 5 +2 2 5 +3 4 5 +4 8 5 +5 26 3 +6 27 3 +7 40 2 +8 71 0 +9 72 0 +select +pk, a, +count(a) over (ORDER BY a +RANGE BETWEEN UNBOUNDED PRECEDING +AND 1 PRECEDING) as cnt +from t1; +pk a cnt +1 1 0 +2 2 1 +3 4 2 +4 8 3 +5 26 4 +6 27 5 +7 40 6 +8 71 7 +9 72 8 +select +pk, a, +count(a) over (ORDER BY a +RANGE BETWEEN 1 PRECEDING +AND CURRENT ROW) as cnt +from t1; +pk a cnt +1 1 1 +2 2 2 +3 4 1 +4 8 1 +5 26 1 +6 27 2 +7 40 1 +8 71 1 +9 72 2 +select +pk, a, +count(a) over (ORDER BY a DESC +RANGE BETWEEN 1 PRECEDING +AND CURRENT ROW) as cnt +from t1; +pk a cnt +1 1 2 +2 2 1 +3 4 1 +4 8 1 +5 26 2 +6 27 1 +7 40 1 +8 71 2 +9 72 1 +select +pk, a, +count(a) over (ORDER BY a +RANGE BETWEEN 1 FOLLOWING +AND 3 FOLLOWING) as cnt +from t1; +pk a cnt +1 1 2 +2 2 1 +3 4 0 +4 8 0 +5 26 1 +6 27 0 +7 40 0 +8 71 1 +9 72 0 +# Try CURRENT ROW with[out] DESC +select +pk, a, +count(a) over (ORDER BY a +RANGE BETWEEN CURRENT ROW +AND 1 FOLLOWING) as cnt +from t1; +pk a cnt +1 1 2 +2 2 1 +3 4 1 +4 8 1 +5 26 2 +6 27 1 +7 40 1 +8 71 2 +9 72 1 +select +pk, a, +count(a) over (order by a desc +range between current row +and 1 following) as cnt +from t1; +pk a cnt +1 1 1 +2 2 2 +3 4 1 +4 8 1 +5 26 1 +6 27 2 +7 40 1 +8 71 1 +9 72 2 +insert into t1 select 22, pk, a from t1; +select +part_id, pk, a, +count(a) over (PARTITION BY part_id +ORDER BY a +RANGE BETWEEN UNBOUNDED PRECEDING +AND 10 FOLLOWING) as cnt +from t1; +part_id pk a cnt +10 1 1 4 +10 2 2 4 +10 3 4 4 +10 4 8 4 +10 5 26 6 +10 6 27 6 +10 7 40 7 +10 8 71 9 +10 9 72 9 +22 1 1 4 +22 2 2 4 +22 3 4 4 +22 4 8 4 +22 5 26 6 +22 6 27 6 +22 7 40 7 +22 8 71 9 +22 9 72 9 +select +pk, a, +count(a) over (PARTITION BY part_id +ORDER BY a +RANGE BETWEEN UNBOUNDED PRECEDING +AND 1 PRECEDING) as cnt +from t1; +pk a cnt +1 1 0 +2 2 1 +3 4 2 +4 8 3 +5 26 4 +6 27 5 +7 40 6 +8 71 7 +9 72 8 +1 1 0 +2 2 1 +3 4 2 +4 8 3 +5 26 4 +6 27 5 +7 40 6 +8 71 7 +9 72 8 +drop table t1; +# Try a RANGE frame over non-integer datatype: +create table t1 ( +col1 int, +a decimal(5,3) +); +insert into t1 values (1, 0.45); +insert into t1 values (1, 0.5); +insert into t1 values (1, 0.55); +insert into t1 values (1, 1.21); +insert into t1 values (1, 1.22); +insert into t1 values (1, 3.33); +select +a, +count(col1) over (order by a +range between 0.1 preceding +and 0.1 following) +from t1; +a count(col1) over (order by a +range between 0.1 preceding +and 0.1 following) +0.450 3 +0.500 3 +0.550 3 +1.210 2 +1.220 2 +3.330 1 +drop table t1; +# +# RANGE-type frames and NULL values +# +create table t1 ( +pk int, +a int, +b int +); +insert into t1 values (1, NULL,1); +insert into t1 values (2, NULL,1); +insert into t1 values (3, NULL,1); +insert into t1 values (4, 10 ,1); +insert into t1 values (5, 11 ,1); +insert into t1 values (6, 12 ,1); +insert into t1 values (7, 13 ,1); +insert into t1 values (8, 14 ,1); +select +pk, a, +count(b) over (order by a +range between 2 preceding +and 2 following) as CNT +from t1; +pk a CNT +1 NULL 3 +2 NULL 3 +3 NULL 3 +4 10 3 +5 11 4 +6 12 5 +7 13 4 +8 14 3 +drop table t1; +# +# Try ranges that have bound1 > bound2. The standard actually allows them +# +create table t0 (a int); +insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); +create table t1 (pk int, c int); +insert into t1 select a+1,1 from t0; +update t1 set c=2 where pk not in (1,2,3,4); +select * from t1; +pk c +1 1 +2 1 +3 1 +4 1 +5 2 +6 2 +7 2 +8 2 +9 2 +10 2 +select +pk, c, +count(*) over (partition by c +order by pk +rows between 1 preceding +and 2 preceding) +as cnt +from t1; +pk c cnt +1 1 0 +2 1 0 +3 1 0 +4 1 0 +5 2 0 +6 2 0 +7 2 0 +8 2 0 +9 2 0 +10 2 0 +select +pk, c, +count(*) over (partition by c +order by pk +range between 1 preceding +and 2 preceding) +as cnt +from t1; +pk c cnt +1 1 0 +2 1 0 +3 1 0 +4 1 0 +5 2 0 +6 2 0 +7 2 0 +8 2 0 +9 2 0 +10 2 0 +drop table t0, t1; +# +# Error checking for frame bounds +# +create table t1 (a int, b int, c varchar(32)); +insert into t1 values (1,1,'foo'); +insert into t1 values (2,2,'bar'); +select +count(*) over (order by a,b +range between unbounded preceding and current row) +from t1; +ERROR HY000: RANGE-type frame requires ORDER BY clause with single sort key +select +count(*) over (order by c +range between unbounded preceding and current row) +from t1; +ERROR HY000: Numeric datatype is required for RANGE-type frame +select +count(*) over (order by a +range between 'abcd' preceding and current row) +from t1; +ERROR HY000: Numeric datatype is required for RANGE-type frame +select +count(*) over (order by a +range between current row and 'foo' following) +from t1; +ERROR HY000: Numeric datatype is required for RANGE-type frame +# Try range frame with invalid bounds +select +count(*) over (order by a +rows between 0.5 preceding and current row) +from t1; +ERROR HY000: Integer is required for ROWS-type frame +select +count(*) over (order by a +rows between current row and 3.14 following) +from t1; +ERROR HY000: Integer is required for ROWS-type frame +# +# EXCLUDE clause is parsed but not supported +# +select +count(*) over (order by a +rows between 1 preceding and 1 following +exclude current row) +from t1; +ERROR HY000: Frame exclusion is not supported yet +select +count(*) over (order by a +range between 1 preceding and 1 following +exclude ties) +from t1; +ERROR HY000: Frame exclusion is not supported yet +select +count(*) over (order by a +range between 1 preceding and 1 following +exclude group) +from t1; +ERROR HY000: Frame exclusion is not supported yet +select +count(*) over (order by a +rows between 1 preceding and 1 following +exclude no others) +from t1; +count(*) over (order by a +rows between 1 preceding and 1 following +exclude no others) +2 +2 +drop table t1; +# +# Window function in grouping query +# +create table t1 ( +username varchar(32), +amount int +); +insert into t1 values +('user1',1), +('user1',5), +('user1',3), +('user2',10), +('user2',20), +('user2',30); +select +username, +sum(amount) as s, +rank() over (order by s desc) +from t1 +group by username; +username s rank() over (order by s desc) +user1 9 2 +user2 60 1 +drop table t1; +# +# mdev-9719: Window function in prepared statement +# +create table t1(a int, b int, x char(32)); +insert into t1 values (2, 10, 'xx'); +insert into t1 values (2, 10, 'zz'); +insert into t1 values (2, 20, 'yy'); +insert into t1 values (3, 10, 'xxx'); +insert into t1 values (3, 20, 'vvv'); +prepare stmt from 'select a, row_number() over (partition by a order by b) from t1'; +execute stmt; +a row_number() over (partition by a order by b) +2 1 +2 2 +2 3 +3 1 +3 2 +drop table t1; +# +# mdev-9754: Window name resolution in prepared statement +# +create table t0 (a int); +insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); +create table t1 (pk int, c int); +insert into t1 select a+1,1 from t0; +update t1 set c=2 where pk not in (1,2,3,4); +select * from t1; +pk c +1 1 +2 1 +3 1 +4 1 +5 2 +6 2 +7 2 +8 2 +9 2 +10 2 +prepare stmt from +'select + pk, c, + count(*) over w1 as CNT +from t1 +window w1 as (partition by c order by pk + rows between 2 preceding and 2 following)'; +execute stmt; +pk c CNT +1 1 3 +2 1 4 +3 1 4 +4 1 3 +5 2 3 +6 2 4 +7 2 5 +8 2 5 +9 2 4 +10 2 3 +drop table t0,t1; +# +# EXPLAIN FORMAT=JSON support for window functions +# +create table t0 (a int); +insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); +explain format=json select rank() over (order by a) from t0; +EXPLAIN +{ + "query_block": { + "select_id": 1, + "window_functions_computation": { + "sorts": { + "filesort": { + "sort_key": "t0.a" + } + }, + "temporary_table": { + "table": { + "table_name": "t0", + "access_type": "ALL", + "rows": 10, + "filtered": 100 + } + } + } + } +} +create table t1 (a int, b int, c int); +insert into t1 select a,a,a from t0; +explain format=json +select +a, +rank() over (order by sum(b)) +from t1 +group by a; +EXPLAIN +{ + "query_block": { + "select_id": 1, + "filesort": { + "sort_key": "t1.a", + "window_functions_computation": { + "sorts": { + "filesort": { + "sort_key": "sum(t1.b)" + } + }, + "temporary_table": { + "table": { + "table_name": "t1", + "access_type": "ALL", + "rows": 10, + "filtered": 100 + } + } + } + } + } +} +explain format=json +select +a, +rank() over (order by sum(b)) +from t1 +group by a +order by null; +EXPLAIN +{ + "query_block": { + "select_id": 1, + "window_functions_computation": { + "sorts": { + "filesort": { + "sort_key": "sum(t1.b)" + } + }, + "temporary_table": { + "table": { + "table_name": "t1", + "access_type": "ALL", + "rows": 10, + "filtered": 100 + } + } + } + } +} +# +# Check how window function works together with GROUP BY and HAVING +# +select b,max(a) as MX, rank() over (order by b) from t1 group by b having MX in (3,5,7); +b MX rank() over (order by b) +3 3 1 +5 5 2 +7 7 3 +explain format=json +select b,max(a) as MX, rank() over (order by b) from t1 group by b having MX in (3,5,7); +EXPLAIN +{ + "query_block": { + "select_id": 1, + "having_condition": "(MX in (3,5,7))", + "filesort": { + "sort_key": "t1.b", + "window_functions_computation": { + "sorts": { + "filesort": { + "sort_key": "t1.b" + } + }, + "temporary_table": { + "table": { + "table_name": "t1", + "access_type": "ALL", + "rows": 10, + "filtered": 100 + } + } + } + } + } +} +drop table t1; +drop table t0; +# +# Building ordering index for window functions +# +create table t1 ( +pk int primary key, +a int, +b int, +c int +); +insert into t1 values +(101 , 0, 10, 1), +(102 , 0, 10, 2), +(103 , 1, 10, 3), +(104 , 1, 10, 4), +(108 , 2, 10, 5), +(105 , 2, 20, 6), +(106 , 2, 20, 7), +(107 , 2, 20, 8), +(109 , 4, 20, 9), +(110 , 4, 20, 10), +(111 , 5, NULL, 11), +(112 , 5, 1, 12), +(113 , 5, NULL, 13), +(114 , 5, NULL, 14), +(115 , 5, NULL, 15), +(116 , 6, 1, NULL), +(117 , 6, 1, 10), +(118 , 6, 1, 1), +(119 , 6, 1, NULL), +(120 , 6, 1, NULL), +(121 , 6, 1, NULL), +(122 , 6, 1, 2), +(123 , 6, 1, 20), +(124 , 6, 1, -10), +(125 , 6, 1, NULL), +(126 , 6, 1, NULL), +(127 , 6, 1, NULL); +select sum(b) over (partition by a order by b,pk +rows between unbounded preceding and current row) as c1, +avg(b) over (w1 rows between 1 preceding and 1 following) as c2, +sum(c) over (w2 rows between 1 preceding and 1 following) as c5, +avg(b) over (w1 rows between 5 preceding and 5 following) as c3, +sum(b) over (w1 rows between 1 preceding and 1 following) as c4 +from t1 +window w1 as (partition by a order by b,pk), +w2 as (partition by b order by c,pk); +c1 c2 c5 c3 c4 +1 1.0000 42 1.0000 1 +1 1.0000 NULL 1.0000 2 +10 1.0000 NULL 1.0000 3 +10 10.0000 3 10.0000 20 +10 10.0000 9 10.0000 20 +10 15.0000 9 17.5000 30 +11 1.0000 NULL 1.0000 3 +12 1.0000 -10 1.0000 2 +2 1.0000 24 1.0000 3 +20 10.0000 12 10.0000 20 +20 10.0000 6 10.0000 20 +20 20.0000 27 20.0000 40 +3 1.0000 -7 1.0000 3 +30 16.6667 13 17.5000 50 +4 1.0000 NULL 1.0000 3 +40 20.0000 19 20.0000 40 +5 1.0000 NULL 1.0000 3 +50 20.0000 21 17.5000 60 +6 1.0000 NULL 1.0000 3 +7 1.0000 13 1.0000 3 +70 20.0000 24 17.5000 40 +8 1.0000 32 1.0000 3 +9 1.0000 -9 1.0000 3 +NULL 1.0000 29 1.0000 1 +NULL NULL 24 1.0000 NULL +NULL NULL 38 1.0000 NULL +NULL NULL 42 1.0000 NULL +drop table t1; +# +# MDEV-9848: Window functions: reuse sorting and/or scanning +# +create table t1 (a int, b int, c int); +insert into t1 values +(1,3,1), +(2,2,1), +(3,1,1); +# Check using counters +flush status; +select +rank() over (partition by c order by a), +rank() over (partition by c order by b) +from t1; +rank() over (partition by c order by a) rank() over (partition by c order by b) +1 3 +2 2 +3 1 +show status like '%sort%'; +Variable_name Value +Sort_merge_passes 0 +Sort_priority_queue_sorts 0 +Sort_range 0 +Sort_rows 6 +Sort_scan 2 +flush status; +select +rank() over (partition by c order by a), +rank() over (partition by c order by a) +from t1; +rank() over (partition by c order by a) rank() over (partition by c order by a) +1 1 +2 2 +3 3 +show status like '%sort%'; +Variable_name Value +Sort_merge_passes 0 +Sort_priority_queue_sorts 0 +Sort_range 0 +Sort_rows 3 +Sort_scan 1 +explain format=json +select +rank() over (partition by c order by a), +rank() over (partition by c order by a) +from t1; +EXPLAIN +{ + "query_block": { + "select_id": 1, + "window_functions_computation": { + "sorts": { + "filesort": { + "sort_key": "t1.c, t1.a" + } + }, + "temporary_table": { + "table": { + "table_name": "t1", + "access_type": "ALL", + "rows": 3, + "filtered": 100 + } + } + } + } +} +explain format=json +select +rank() over (order by a), +row_number() over (order by a) +from t1; +EXPLAIN +{ + "query_block": { + "select_id": 1, + "window_functions_computation": { + "sorts": { + "filesort": { + "sort_key": "t1.a" + } + }, + "temporary_table": { + "table": { + "table_name": "t1", + "access_type": "ALL", + "rows": 3, + "filtered": 100 + } + } + } + } +} +explain format=json +select +rank() over (partition by c order by a), +count(*) over (partition by c) +from t1; +EXPLAIN +{ + "query_block": { + "select_id": 1, + "window_functions_computation": { + "sorts": { + "filesort": { + "sort_key": "t1.c, t1.a" + } + }, + "temporary_table": { + "table": { + "table_name": "t1", + "access_type": "ALL", + "rows": 3, + "filtered": 100 + } + } + } + } +} +explain format=json +select +count(*) over (partition by c), +rank() over (partition by c order by a) +from t1; +EXPLAIN +{ + "query_block": { + "select_id": 1, + "window_functions_computation": { + "sorts": { + "filesort": { + "sort_key": "t1.c, t1.a" + } + }, + "temporary_table": { + "table": { + "table_name": "t1", + "access_type": "ALL", + "rows": 3, + "filtered": 100 + } + } + } + } +} +drop table t1; +# +# MDEV-9847: Window functions: crash with big_tables=1 +# +create table t1(a int); +insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); +set @tmp=@@big_tables; +set big_tables=1; +select rank() over (order by a) from t1; +rank() over (order by a) +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +set big_tables=@tmp; +drop table t1; +# +# Check if "ORDER BY window_func" works +# +create table t1 (s1 int, s2 char(5)); +insert into t1 values (1,'a'); +insert into t1 values (null,null); +insert into t1 values (1,null); +insert into t1 values (null,'a'); +insert into t1 values (2,'b'); +insert into t1 values (-1,''); +explain format=json +select *, row_number() over (order by s1, s2) as X from t1 order by X desc; +EXPLAIN +{ + "query_block": { + "select_id": 1, + "filesort": { + "sort_key": "X", + "window_functions_computation": { + "sorts": { + "filesort": { + "sort_key": "t1.s1, t1.s2" + } + }, + "temporary_table": { + "table": { + "table_name": "t1", + "access_type": "ALL", + "rows": 6, + "filtered": 100 + } + } + } + } + } +} +select *, row_number() over (order by s1, s2) as X from t1 order by X desc; +s1 s2 X +2 b 6 +1 a 5 +1 NULL 4 +-1 3 +NULL a 2 +NULL NULL 1 +drop table t1; +# +# Try window functions that are not directly present in the select list +# +create table t1 (a int, b int); +insert into t1 values +(1,3), +(2,2), +(3,1); +select +rank() over (order by a) - +rank() over (order by b) +from +t1; +rank() over (order by a) - +rank() over (order by b) +0 +0 +0 +drop table t1; +# +# MDEV-9894: Assertion `0' failed in Window_func_runner::setup +# return ER_NOT_SUPPORTED_YET for aggregates that are not yet supported +# as window functions. +# +create table t1 (i int); +insert into t1 values (1),(2); +SELECT MAX(i) OVER (PARTITION BY (i)) FROM t1; +ERROR 42000: This version of MariaDB doesn't yet support 'This aggregate as window function' +drop table t1; +# +# Check the 0 in ROWS 0 PRECEDING +# +create table t1 ( +part_id int, +pk int, +a int +); +insert into t1 values (1, 1, 1); +insert into t1 values (1, 2, 2); +insert into t1 values (1, 3, 4); +insert into t1 values (1, 4, 8); +select +pk, a, +sum(a) over (order by pk rows between 0 preceding and current row) +from t1; +pk a sum(a) over (order by pk rows between 0 preceding and current row) +1 1 1 +2 2 2 +3 4 4 +4 8 8 +select +pk, a, +sum(a) over (order by pk rows between 1 preceding and 0 preceding) +from t1; +pk a sum(a) over (order by pk rows between 1 preceding and 0 preceding) +1 1 1 +2 2 3 +3 4 6 +4 8 12 +insert into t1 values (200, 1, 1); +insert into t1 values (200, 2, 2); +insert into t1 values (200, 3, 4); +insert into t1 values (200, 4, 8); +select +part_id, pk, a, +sum(a) over (partition by part_id order by pk rows between 0 preceding and current row) +from t1; +part_id pk a sum(a) over (partition by part_id order by pk rows between 0 preceding and current row) +1 1 1 1 +1 2 2 2 +1 3 4 4 +1 4 8 8 +200 1 1 1 +200 2 2 2 +200 3 4 4 +200 4 8 8 +select +part_id, pk, a, +sum(a) over (partition by part_id order by pk rows between 1 preceding and 0 preceding) +from t1; +part_id pk a sum(a) over (partition by part_id order by pk rows between 1 preceding and 0 preceding) +1 1 1 1 +1 2 2 3 +1 3 4 6 +1 4 8 12 +200 1 1 1 +200 2 2 3 +200 3 4 6 +200 4 8 12 +drop table t1; +# +# MDEV-9780, The "DISTINCT must not bet converted into GROUP BY when +# window functions are present" part +# +create table t1 (part_id int, a int); +insert into t1 values +(100, 1), +(100, 2), +(100, 2), +(100, 3), +(2000, 1), +(2000, 2), +(2000, 3), +(2000, 3), +(2000, 3); +select rank() over (partition by part_id order by a) from t1; +rank() over (partition by part_id order by a) +1 +2 +2 +4 +1 +2 +3 +3 +3 +select distinct rank() over (partition by part_id order by a) from t1; +rank() over (partition by part_id order by a) +1 +2 +4 +3 +explain format=json +select distinct rank() over (partition by part_id order by a) from t1; +EXPLAIN +{ + "query_block": { + "select_id": 1, + "duplicate_removal": { + "window_functions_computation": { + "sorts": { + "filesort": { + "sort_key": "t1.part_id, t1.a" + } + }, + "temporary_table": { + "table": { + "table_name": "t1", + "access_type": "ALL", + "rows": 9, + "filtered": 100 + } + } + } + } + } +} +drop table t1; +# +# MDEV-9893: Window functions with different ORDER BY lists, +# one of these lists containing an expression +# +create table t1 (s1 int, s2 char(5)); +insert into t1 values (1,'a'); +insert into t1 values (null,null); +insert into t1 values (3,null); +insert into t1 values (4,'a'); +insert into t1 values (2,'b'); +insert into t1 values (-1,''); +select +*, +ROW_NUMBER() OVER (order by s1), +CUME_DIST() OVER (order by -s1) +from t1; +s1 s2 ROW_NUMBER() OVER (order by s1) CUME_DIST() OVER (order by -s1) +1 a 3 0.8333333333 +NULL NULL 1 0.1666666667 +3 NULL 5 0.5000000000 +4 a 6 0.3333333333 +2 b 4 0.6666666667 +-1 2 1.0000000000 +drop table t1; +# +# MDEV-9925: Wrong result with aggregate function as a window function +# +create table t1 (i int); +insert into t1 values (1),(2); +select i, sum(i) over (partition by i) from t1; +i sum(i) over (partition by i) +1 1 +2 2 +drop table t1; +# +# MDEV-9922: Assertion `!join->only_const_tables() && fsort' failed in int create_sort_index +# +create view v1 as select 1 as i; +select rank() over (order by i) from v1; +rank() over (order by i) +1 +drop view v1; diff --git a/mysql-test/r/win_avg.result b/mysql-test/r/win_avg.result new file mode 100644 index 00000000000..7e539d933d8 --- /dev/null +++ b/mysql-test/r/win_avg.result @@ -0,0 +1,95 @@ +create table t1 ( +pk int primary key, +a int, +b int, +c real +); +insert into t1 values +(101 , 0, 10, 1.1), +(102 , 0, 10, 2.1), +(103 , 1, 10, 3.1), +(104 , 1, 10, 4.1), +(108 , 2, 10, 5.1), +(105 , 2, 20, 6.1), +(106 , 2, 20, 7.1), +(107 , 2, 20, 8.15), +(109 , 4, 20, 9.15), +(110 , 4, 20, 10.15), +(111 , 5, NULL, 11.15), +(112 , 5, 1, 12.25), +(113 , 5, NULL, 13.35), +(114 , 5, NULL, 14.50), +(115 , 5, NULL, 15.65), +(116 , 6, 1, NULL), +(117 , 6, 1, 10), +(118 , 6, 1, 1.1), +(119 , 6, 1, NULL), +(120 , 6, 1, NULL), +(121 , 6, 1, NULL), +(122 , 6, 1, 2.2), +(123 , 6, 1, 20.1), +(124 , 6, 1, -10.4), +(125 , 6, 1, NULL), +(126 , 6, 1, NULL), +(127 , 6, 1, NULL); +select pk, a, b, avg(b) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) +from t1; +pk a b avg(b) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) +101 0 10 10.0000 +102 0 10 10.0000 +103 1 10 10.0000 +104 1 10 10.0000 +105 2 20 20.0000 +106 2 20 20.0000 +107 2 20 16.6667 +108 2 10 15.0000 +109 4 20 20.0000 +110 4 20 20.0000 +111 5 NULL 1.0000 +112 5 1 1.0000 +113 5 NULL 1.0000 +114 5 NULL NULL +115 5 NULL NULL +116 6 1 1.0000 +117 6 1 1.0000 +118 6 1 1.0000 +119 6 1 1.0000 +120 6 1 1.0000 +121 6 1 1.0000 +122 6 1 1.0000 +123 6 1 1.0000 +124 6 1 1.0000 +125 6 1 1.0000 +126 6 1 1.0000 +127 6 1 1.0000 +select pk, a, c, avg(c) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) +from t1; +pk a c avg(c) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) +101 0 1.1 1.6 +102 0 2.1 1.6 +103 1 3.1 3.5999999999999996 +104 1 4.1 3.5999999999999996 +105 2 6.1 6.6 +106 2 7.1 7.116666666666667 +107 2 8.15 6.783333333333334 +108 2 5.1 6.625000000000001 +109 4 9.15 9.65 +110 4 10.15 9.65 +111 5 11.15 11.7 +112 5 12.25 12.25 +113 5 13.35 13.366666666666667 +114 5 14.5 14.5 +115 5 15.65 15.075 +116 6 NULL 10 +117 6 10 5.55 +118 6 1.1 5.55 +119 6 NULL 1.0999999999999996 +120 6 NULL NULL +121 6 NULL 2.1999999999999997 +122 6 2.2 11.15 +123 6 20.1 3.966666666666667 +124 6 -10.4 4.85 +125 6 NULL -10.400000000000002 +126 6 NULL NULL +127 6 NULL NULL +drop table t1; diff --git a/mysql-test/r/win_bit.result b/mysql-test/r/win_bit.result new file mode 100644 index 00000000000..ac7625beb90 --- /dev/null +++ b/mysql-test/r/win_bit.result @@ -0,0 +1,117 @@ +create table t1 ( +pk int primary key, +a int, +b int +); +create table t2 ( +pk int primary key, +a int, +b int +); +insert into t1 values +( 1 , 0, 1), +( 2 , 0, 2), +( 3 , 1, 4), +( 4 , 1, 8), +( 5 , 2, 32), +( 6 , 2, 64), +( 7 , 2, 128), +( 8 , 2, 16); +insert into t2 values +( 1 , 0, 2), +( 2 , 0, 2), +( 3 , 1, 4), +( 4 , 1, 4), +( 5 , 2, 16), +( 6 , 2, 64), +( 7 , 2, 128), +( 8 , 2, 16); +# Test bit functions on only one partition. +select pk, a, b, +bit_or(b) over (order by pk) as bit_or, +bit_and(b) over (order by pk) as bit_and, +bit_xor(b) over (order by pk) as bit_xor +from t1; +pk a b bit_or bit_and bit_xor +1 0 1 1 1 1 +2 0 2 3 0 3 +3 1 4 7 0 7 +4 1 8 15 0 15 +5 2 32 47 0 47 +6 2 64 111 0 111 +7 2 128 239 0 239 +8 2 16 255 0 255 +select pk, a, b, +bit_or(b) over (order by pk) as bit_or, +bit_and(b) over (order by pk) as bit_and, +bit_xor(b) over (order by pk) as bit_xor +from t2; +pk a b bit_or bit_and bit_xor +1 0 2 2 2 2 +2 0 2 2 2 0 +3 1 4 6 0 4 +4 1 4 6 0 0 +5 2 16 22 0 16 +6 2 64 86 0 80 +7 2 128 214 0 208 +8 2 16 214 0 192 +# Test multiple partitions with bit functions. +select pk, a, b, +bit_or(b) over (partition by a order by pk) as bit_or, +bit_and(b) over (partition by a order by pk) as bit_and, +bit_xor(b) over (partition by a order by pk) as bit_xor +from t1; +pk a b bit_or bit_and bit_xor +1 0 1 1 1 1 +2 0 2 3 0 3 +3 1 4 4 4 4 +4 1 8 12 0 12 +5 2 32 32 32 32 +6 2 64 96 0 96 +7 2 128 224 0 224 +8 2 16 240 0 240 +select pk, a, b, +bit_or(b) over (partition by a order by pk) as bit_or, +bit_and(b) over (partition by a order by pk) as bit_and, +bit_xor(b) over (partition by a order by pk) as bit_xor +from t2; +pk a b bit_or bit_and bit_xor +1 0 2 2 2 2 +2 0 2 2 2 0 +3 1 4 4 4 4 +4 1 4 4 4 0 +5 2 16 16 16 16 +6 2 64 80 0 80 +7 2 128 208 0 208 +8 2 16 208 0 192 +# Test remove function for bit functions using a sliding window. +select pk, a, b, +bit_or(b) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) as bit_or, +bit_and(b) over (partition by a order by pk) as bit_and, +bit_xor(b) over (partition by a order by pk) as bit_xor +from t1; +pk a b bit_or bit_and bit_xor +1 0 1 3 1 1 +2 0 2 3 0 3 +3 1 4 12 4 4 +4 1 8 12 0 12 +5 2 32 96 32 32 +6 2 64 224 0 96 +7 2 128 208 0 224 +8 2 16 144 0 240 +select pk, a, b, +bit_or(b) over (partition by a order by pk) as bit_or, +bit_and(b) over (partition by a order by pk) as bit_and, +bit_xor(b) over (partition by a order by pk) as bit_xor +from t2; +pk a b bit_or bit_and bit_xor +1 0 2 2 2 2 +2 0 2 2 2 0 +3 1 4 4 4 4 +4 1 4 4 4 0 +5 2 16 16 16 16 +6 2 64 80 0 80 +7 2 128 208 0 208 +8 2 16 208 0 192 +drop table t1; +drop table t2; diff --git a/mysql-test/r/win_ntile.result b/mysql-test/r/win_ntile.result new file mode 100644 index 00000000000..41cb1a594bf --- /dev/null +++ b/mysql-test/r/win_ntile.result @@ -0,0 +1,435 @@ +create table t1 ( +pk int primary key, +a int, +b int +); +insert into t1 values +(11 , 0, 10), +(12 , 0, 10), +(13 , 1, 10), +(14 , 1, 10), +(18 , 2, 10), +(15 , 2, 20), +(16 , 2, 20), +(17 , 2, 20), +(19 , 4, 20), +(20 , 4, 20); +select pk, a, b, ntile(-1) over (order by a) +from t1; +ERROR HY000: Argument of NTILE must be greater than 0 +select pk, a, b, +ntile(0) over (order by a) +from t1; +ERROR HY000: Argument of NTILE must be greater than 0 +select pk, a, b, +ntile(1) over (order by pk) +from t1; +pk a b ntile(1) over (order by pk) +11 0 10 1 +12 0 10 1 +13 1 10 1 +14 1 10 1 +15 2 20 1 +16 2 20 1 +17 2 20 1 +18 2 10 1 +19 4 20 1 +20 4 20 1 +select pk, a, b, +ntile(2) over (order by pk) +from t1; +pk a b ntile(2) over (order by pk) +11 0 10 1 +12 0 10 1 +13 1 10 1 +14 1 10 1 +15 2 20 1 +16 2 20 2 +17 2 20 2 +18 2 10 2 +19 4 20 2 +20 4 20 2 +select pk, a, b, +ntile(3) over (order by pk) +from t1; +pk a b ntile(3) over (order by pk) +11 0 10 1 +12 0 10 1 +13 1 10 1 +14 1 10 1 +15 2 20 2 +16 2 20 2 +17 2 20 2 +18 2 10 3 +19 4 20 3 +20 4 20 3 +select pk, a, b, +ntile(4) over (order by pk) +from t1; +pk a b ntile(4) over (order by pk) +11 0 10 1 +12 0 10 1 +13 1 10 1 +14 1 10 2 +15 2 20 2 +16 2 20 2 +17 2 20 3 +18 2 10 3 +19 4 20 4 +20 4 20 4 +select pk, a, b, +ntile(5) over (order by pk) +from t1; +pk a b ntile(5) over (order by pk) +11 0 10 1 +12 0 10 1 +13 1 10 2 +14 1 10 2 +15 2 20 3 +16 2 20 3 +17 2 20 4 +18 2 10 4 +19 4 20 5 +20 4 20 5 +select pk, a, b, +ntile(6) over (order by pk) +from t1; +pk a b ntile(6) over (order by pk) +11 0 10 1 +12 0 10 1 +13 1 10 2 +14 1 10 2 +15 2 20 3 +16 2 20 3 +17 2 20 4 +18 2 10 4 +19 4 20 5 +20 4 20 6 +select pk, a, b, +ntile(7) over (order by pk) +from t1; +pk a b ntile(7) over (order by pk) +11 0 10 1 +12 0 10 1 +13 1 10 2 +14 1 10 2 +15 2 20 3 +16 2 20 3 +17 2 20 4 +18 2 10 5 +19 4 20 6 +20 4 20 7 +select pk, a, b, +ntile(8) over (order by pk) +from t1; +pk a b ntile(8) over (order by pk) +11 0 10 1 +12 0 10 1 +13 1 10 2 +14 1 10 2 +15 2 20 3 +16 2 20 4 +17 2 20 5 +18 2 10 6 +19 4 20 7 +20 4 20 8 +select pk, a, b, +ntile(9) over (order by pk) +from t1; +pk a b ntile(9) over (order by pk) +11 0 10 1 +12 0 10 1 +13 1 10 2 +14 1 10 3 +15 2 20 4 +16 2 20 5 +17 2 20 6 +18 2 10 7 +19 4 20 8 +20 4 20 9 +select pk, a, b, +ntile(10) over (order by pk) +from t1; +pk a b ntile(10) over (order by pk) +11 0 10 1 +12 0 10 2 +13 1 10 3 +14 1 10 4 +15 2 20 5 +16 2 20 6 +17 2 20 7 +18 2 10 8 +19 4 20 9 +20 4 20 10 +select pk, a, b, +ntile(11) over (order by pk) +from t1; +pk a b ntile(11) over (order by pk) +11 0 10 1 +12 0 10 2 +13 1 10 3 +14 1 10 4 +15 2 20 5 +16 2 20 6 +17 2 20 7 +18 2 10 8 +19 4 20 9 +20 4 20 10 +select pk, a, b, +ntile(20) over (order by pk) +from t1; +pk a b ntile(20) over (order by pk) +11 0 10 1 +12 0 10 2 +13 1 10 3 +14 1 10 4 +15 2 20 5 +16 2 20 6 +17 2 20 7 +18 2 10 8 +19 4 20 9 +20 4 20 10 +select pk, a, b, +ntile(1) over (partition by b order by pk) +from t1; +pk a b ntile(1) over (partition by b order by pk) +11 0 10 1 +12 0 10 1 +13 1 10 1 +14 1 10 1 +18 2 10 1 +15 2 20 1 +16 2 20 1 +17 2 20 1 +19 4 20 1 +20 4 20 1 +select pk, a, b, +ntile(2) over (partition by b order by pk) +from t1; +pk a b ntile(2) over (partition by b order by pk) +11 0 10 1 +12 0 10 1 +13 1 10 1 +14 1 10 2 +18 2 10 2 +15 2 20 1 +16 2 20 1 +17 2 20 1 +19 4 20 2 +20 4 20 2 +select pk, a, b, +ntile(3) over (partition by b order by pk) +from t1; +pk a b ntile(3) over (partition by b order by pk) +11 0 10 1 +12 0 10 1 +13 1 10 2 +14 1 10 2 +18 2 10 3 +15 2 20 1 +16 2 20 1 +17 2 20 2 +19 4 20 2 +20 4 20 3 +select pk, a, b, +ntile(4) over (partition by b order by pk) +from t1; +pk a b ntile(4) over (partition by b order by pk) +11 0 10 1 +12 0 10 1 +13 1 10 2 +14 1 10 3 +18 2 10 4 +15 2 20 1 +16 2 20 1 +17 2 20 2 +19 4 20 3 +20 4 20 4 +select pk, a, b, +ntile(5) over (partition by b order by pk) +from t1; +pk a b ntile(5) over (partition by b order by pk) +11 0 10 1 +12 0 10 2 +13 1 10 3 +14 1 10 4 +18 2 10 5 +15 2 20 1 +16 2 20 2 +17 2 20 3 +19 4 20 4 +20 4 20 5 +select pk, a, b, +ntile(6) over (partition by b order by pk) +from t1; +pk a b ntile(6) over (partition by b order by pk) +11 0 10 1 +12 0 10 2 +13 1 10 3 +14 1 10 4 +18 2 10 5 +15 2 20 1 +16 2 20 2 +17 2 20 3 +19 4 20 4 +20 4 20 5 +select pk, a, b, +ntile(7) over (partition by b order by pk) +from t1; +pk a b ntile(7) over (partition by b order by pk) +11 0 10 1 +12 0 10 2 +13 1 10 3 +14 1 10 4 +18 2 10 5 +15 2 20 1 +16 2 20 2 +17 2 20 3 +19 4 20 4 +20 4 20 5 +select pk, a, b, +ntile(8) over (partition by b order by pk) +from t1; +pk a b ntile(8) over (partition by b order by pk) +11 0 10 1 +12 0 10 2 +13 1 10 3 +14 1 10 4 +18 2 10 5 +15 2 20 1 +16 2 20 2 +17 2 20 3 +19 4 20 4 +20 4 20 5 +select pk, a, b, +ntile(9) over (partition by b order by pk) +from t1; +pk a b ntile(9) over (partition by b order by pk) +11 0 10 1 +12 0 10 2 +13 1 10 3 +14 1 10 4 +18 2 10 5 +15 2 20 1 +16 2 20 2 +17 2 20 3 +19 4 20 4 +20 4 20 5 +select pk, a, b, +ntile(10) over (partition by b order by pk) +from t1; +pk a b ntile(10) over (partition by b order by pk) +11 0 10 1 +12 0 10 2 +13 1 10 3 +14 1 10 4 +18 2 10 5 +15 2 20 1 +16 2 20 2 +17 2 20 3 +19 4 20 4 +20 4 20 5 +select pk, a, b, +ntile(11) over (partition by b order by pk) +from t1; +pk a b ntile(11) over (partition by b order by pk) +11 0 10 1 +12 0 10 2 +13 1 10 3 +14 1 10 4 +18 2 10 5 +15 2 20 1 +16 2 20 2 +17 2 20 3 +19 4 20 4 +20 4 20 5 +select pk, a, b, +ntile(20) over (partition by b order by pk) +from t1; +pk a b ntile(20) over (partition by b order by pk) +11 0 10 1 +12 0 10 2 +13 1 10 3 +14 1 10 4 +18 2 10 5 +15 2 20 1 +16 2 20 2 +17 2 20 3 +19 4 20 4 +20 4 20 5 +select pk, a, b, +ntile(1 + 3) over (partition by b order by pk) +from t1; +pk a b ntile(1 + 3) over (partition by b order by pk) +11 0 10 1 +12 0 10 1 +13 1 10 2 +14 1 10 3 +18 2 10 4 +15 2 20 1 +16 2 20 1 +17 2 20 2 +19 4 20 3 +20 4 20 4 +select pk, a, b, +ntile((select 4)) over (partition by b order by pk) +from t1; +pk a b ntile((select 4)) over (partition by b order by pk) +11 0 10 1 +12 0 10 1 +13 1 10 2 +14 1 10 3 +18 2 10 4 +15 2 20 1 +16 2 20 1 +17 2 20 2 +19 4 20 3 +20 4 20 4 +select t1.a from t1 where pk = 11; +a +0 +select pk, a, b, +ntile((select a from t1 where pk=11)) over (partition by b order by pk) +from t1; +ERROR HY000: Argument of NTILE must be greater than 0 +select t1.a from t1 where pk = 13; +a +1 +select pk, a, b, +ntile((select a from t1 where pk=13)) over (partition by b order by pk) +from t1; +pk a b ntile((select a from t1 where pk=13)) over (partition by b order by pk) +11 0 10 1 +12 0 10 1 +13 1 10 1 +14 1 10 1 +18 2 10 1 +15 2 20 1 +16 2 20 1 +17 2 20 1 +19 4 20 1 +20 4 20 1 +explain +select pk, a, b, +ntile((select a from t1 where pk=13)) over (partition by b order by pk) +from t1; +id select_type table type possible_keys key key_len ref rows Extra +1 PRIMARY t1 ALL NULL NULL NULL NULL 10 Using temporary +2 SUBQUERY t1 const PRIMARY PRIMARY 4 const 1 +select a from t1; +a +0 +0 +1 +1 +2 +2 +2 +2 +4 +4 +select pk, a, b, +ntile((select a from t1)) over (partition by b order by pk) +from t1; +ERROR 21000: Subquery returns more than 1 row +drop table t1; diff --git a/mysql-test/r/win_orderby.result b/mysql-test/r/win_orderby.result new file mode 100644 index 00000000000..bf4a40a4db3 --- /dev/null +++ b/mysql-test/r/win_orderby.result @@ -0,0 +1,26 @@ +drop table if exists t0,t1; +create table t0(a int primary key); +insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); +create table t1( +pk int, +a int, +key(pk) +); +insert into t1 +select +A.a + B.a* 10 + C.a * 100, +1 +from t0 A, t0 B, t0 C; +select +pk, +count(a) over (order by pk rows between 2 preceding and 2 following) +from t1 +where pk between 1 and 30 +order by pk desc +limit 4; +pk count(a) over (order by pk rows between 2 preceding and 2 following) +30 3 +29 4 +28 5 +27 5 +drop table t0,t1; diff --git a/mysql-test/r/win_percent_cume.result b/mysql-test/r/win_percent_cume.result new file mode 100644 index 00000000000..d38c95c9ea7 --- /dev/null +++ b/mysql-test/r/win_percent_cume.result @@ -0,0 +1,62 @@ +create table t1 ( +pk int primary key, +a int, +b int +); +insert into t1 values +( 1 , 0, 10), +( 2 , 0, 10), +( 3 , 1, 10), +( 4 , 1, 10), +( 8 , 2, 10), +( 5 , 2, 20), +( 6 , 2, 20), +( 7 , 2, 20), +( 9 , 4, 20), +(10 , 4, 20); +select pk, a, b, +percent_rank() over (order by a), +cume_dist() over (order by a) +from t1; +pk a b percent_rank() over (order by a) cume_dist() over (order by a) +1 0 10 0.0000000000 0.2000000000 +2 0 10 0.0000000000 0.2000000000 +3 1 10 0.2222222222 0.4000000000 +4 1 10 0.2222222222 0.4000000000 +8 2 10 0.4444444444 0.8000000000 +5 2 20 0.4444444444 0.8000000000 +6 2 20 0.4444444444 0.8000000000 +7 2 20 0.4444444444 0.8000000000 +9 4 20 0.8888888889 1.0000000000 +10 4 20 0.8888888889 1.0000000000 +select pk, a, b, +percent_rank() over (order by pk), +cume_dist() over (order by pk) +from t1 order by pk; +pk a b percent_rank() over (order by pk) cume_dist() over (order by pk) +1 0 10 0.0000000000 0.1000000000 +2 0 10 0.1111111111 0.2000000000 +3 1 10 0.2222222222 0.3000000000 +4 1 10 0.3333333333 0.4000000000 +5 2 20 0.4444444444 0.5000000000 +6 2 20 0.5555555556 0.6000000000 +7 2 20 0.6666666667 0.7000000000 +8 2 10 0.7777777778 0.8000000000 +9 4 20 0.8888888889 0.9000000000 +10 4 20 1.0000000000 1.0000000000 +select pk, a, b, +percent_rank() over (partition by a order by a), +cume_dist() over (partition by a order by a) +from t1; +pk a b percent_rank() over (partition by a order by a) cume_dist() over (partition by a order by a) +1 0 10 0.0000000000 1.0000000000 +2 0 10 0.0000000000 1.0000000000 +3 1 10 0.0000000000 1.0000000000 +4 1 10 0.0000000000 1.0000000000 +8 2 10 0.0000000000 1.0000000000 +5 2 20 0.0000000000 1.0000000000 +6 2 20 0.0000000000 1.0000000000 +7 2 20 0.0000000000 1.0000000000 +9 4 20 0.0000000000 1.0000000000 +10 4 20 0.0000000000 1.0000000000 +drop table t1; diff --git a/mysql-test/r/win_rank.result b/mysql-test/r/win_rank.result new file mode 100644 index 00000000000..725683d3869 --- /dev/null +++ b/mysql-test/r/win_rank.result @@ -0,0 +1,104 @@ +# +# Try DENSE_RANK() function +# +create table t1 ( +pk int primary key, +a int, +b int +); +insert into t1 values +( 1 , 0, 10), +( 2 , 0, 10), +( 3 , 1, 10), +( 4 , 1, 10), +( 8 , 2, 10), +( 5 , 2, 20), +( 6 , 2, 20), +( 7 , 2, 20), +( 9 , 4, 20), +(10 , 4, 20); +select pk, a, b, rank() over (order by a) as rank, +dense_rank() over (order by a) as dense_rank +from t1; +pk a b rank dense_rank +1 0 10 1 1 +2 0 10 1 1 +3 1 10 3 2 +4 1 10 3 2 +8 2 10 5 3 +5 2 20 5 3 +6 2 20 5 3 +7 2 20 5 3 +9 4 20 9 4 +10 4 20 9 4 +select pk, a, b, rank() over (partition by b order by a) as rank, +dense_rank() over (partition by b order by a) as dense_rank +from t1; +pk a b rank dense_rank +1 0 10 1 1 +2 0 10 1 1 +3 1 10 3 2 +4 1 10 3 2 +8 2 10 5 3 +5 2 20 1 1 +6 2 20 1 1 +7 2 20 1 1 +9 4 20 4 2 +10 4 20 4 2 +drop table t1; +# +# Test with null values in the table. +# +create table t2 (s1 int, s2 char(5)); +insert into t2 values (1,'a'); +insert into t2 values (null,null); +insert into t2 values (1,null); +insert into t2 values (null,'a'); +insert into t2 values (null,'c'); +insert into t2 values (2,'b'); +insert into t2 values (-1,''); +select *, rank() over (order by s1) as rank, +dense_rank() over (order by s1) as dense_rank +from t2; +s1 s2 rank dense_rank +1 a 5 3 +NULL NULL 1 1 +1 NULL 5 3 +NULL a 1 1 +NULL c 1 1 +2 b 7 4 +-1 4 2 +select *, rank() over (partition by s2 order by s1) as rank, +dense_rank() over (partition by s2 order by s1) as dense_rank +from t2; +s1 s2 rank dense_rank +1 a 2 2 +NULL NULL 1 1 +1 NULL 2 2 +NULL a 1 1 +NULL c 1 1 +2 b 1 1 +-1 1 1 +select *, rank() over (order by s2) as rank, +dense_rank() over (order by s2) as dense_rank +from t2; +s1 s2 rank dense_rank +1 a 4 3 +NULL NULL 1 1 +1 NULL 1 1 +NULL a 4 3 +NULL c 7 5 +2 b 6 4 +-1 3 2 +select *, rank() over (partition by s1 order by s2) as rank, +dense_rank() over (partition by s1 order by s2) as dense_rank +from t2; +s1 s2 rank dense_rank +1 a 2 2 +NULL NULL 1 1 +1 NULL 1 1 +NULL a 2 2 +NULL c 3 3 +2 b 1 1 +-1 1 1 +drop table t2; diff --git a/mysql-test/r/win_sum.result b/mysql-test/r/win_sum.result new file mode 100644 index 00000000000..66a48fe8293 --- /dev/null +++ b/mysql-test/r/win_sum.result @@ -0,0 +1,95 @@ +create table t1 ( +pk int primary key, +a int, +b int, +c real +); +insert into t1 values +(101 , 0, 10, 1.1), +(102 , 0, 10, 2.1), +(103 , 1, 10, 3.1), +(104 , 1, 10, 4.1), +(108 , 2, 10, 5.1), +(105 , 2, 20, 6.1), +(106 , 2, 20, 7.1), +(107 , 2, 20, 8.15), +(109 , 4, 20, 9.15), +(110 , 4, 20, 10.15), +(111 , 5, NULL, 11.15), +(112 , 5, 1, 12.25), +(113 , 5, NULL, 13.35), +(114 , 5, NULL, 14.50), +(115 , 5, NULL, 15.65), +(116 , 6, 1, NULL), +(117 , 6, 1, 10), +(118 , 6, 1, 1.1), +(119 , 6, 1, NULL), +(120 , 6, 1, NULL), +(121 , 6, 1, NULL), +(122 , 6, 1, 2.2), +(123 , 6, 1, 20.1), +(124 , 6, 1, -10.4), +(125 , 6, 1, NULL), +(126 , 6, 1, NULL), +(127 , 6, 1, NULL); +select pk, a, b, sum(b) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) +from t1; +pk a b sum(b) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) +101 0 10 20 +102 0 10 20 +103 1 10 20 +104 1 10 20 +105 2 20 40 +106 2 20 60 +107 2 20 50 +108 2 10 30 +109 4 20 40 +110 4 20 40 +111 5 NULL 1 +112 5 1 1 +113 5 NULL 1 +114 5 NULL NULL +115 5 NULL NULL +116 6 1 2 +117 6 1 3 +118 6 1 3 +119 6 1 3 +120 6 1 3 +121 6 1 3 +122 6 1 3 +123 6 1 3 +124 6 1 3 +125 6 1 3 +126 6 1 3 +127 6 1 2 +select pk, a, c, sum(c) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) +from t1; +pk a c sum(c) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) +101 0 1.1 3.2 +102 0 2.1 3.2 +103 1 3.1 7.199999999999999 +104 1 4.1 7.199999999999999 +105 2 6.1 13.2 +106 2 7.1 21.35 +107 2 8.15 20.35 +108 2 5.1 13.250000000000002 +109 4 9.15 19.3 +110 4 10.15 19.3 +111 5 11.15 23.4 +112 5 12.25 36.75 +113 5 13.35 40.1 +114 5 14.5 43.5 +115 5 15.65 30.15 +116 6 NULL 10 +117 6 10 11.1 +118 6 1.1 11.1 +119 6 NULL 1.0999999999999996 +120 6 NULL NULL +121 6 NULL 2.1999999999999997 +122 6 2.2 22.3 +123 6 20.1 11.9 +124 6 -10.4 9.7 +125 6 NULL -10.400000000000002 +126 6 NULL NULL +127 6 NULL NULL +drop table t1; diff --git a/mysql-test/std_data/bad2_master.info b/mysql-test/std_data/bad2_master.info new file mode 100644 index 00000000000..61722562748 --- /dev/null +++ b/mysql-test/std_data/bad2_master.info @@ -0,0 +1,35 @@ +33 +mysql-bin.000001 +4 +127.0.0.1 +root + +3310 +60 +0 + + + + + +0 +1800.000 + +0 + +0 + + + + + + + + + + + + + +using_gtid=1 +=0 diff --git a/mysql-test/std_data/bad3_master.info b/mysql-test/std_data/bad3_master.info new file mode 100644 index 00000000000..6e632cd9a49 --- /dev/null +++ b/mysql-test/std_data/bad3_master.info @@ -0,0 +1,37 @@ +33 +mysql-bin.000001 +4 +127.0.0.1 +root + +3310 +60 +0 + + + + + +0 +1800.000 + +0 + +0 + + + + + + + + + + + + + +using_gtid=1 + + +0 diff --git a/mysql-test/std_data/bad4_master.info b/mysql-test/std_data/bad4_master.info new file mode 100644 index 00000000000..87572efc8a4 --- /dev/null +++ b/mysql-test/std_data/bad4_master.info @@ -0,0 +1,35 @@ +33 +mysql-bin.000001 +4 +127.0.0.1 +root + +3310 +60 +0 + + + + + +0 +1800.000 + +0 + +0 + + + + + + + + + + + + + +using_gtid=1 +d=1 diff --git a/mysql-test/std_data/bad5_master.info b/mysql-test/std_data/bad5_master.info new file mode 100644 index 00000000000..4ea8113250b --- /dev/null +++ b/mysql-test/std_data/bad5_master.info @@ -0,0 +1,35 @@ +33 +mysql-bin.000001 +4 +127.0.0.1 +root + +3310 +60 +0 + + + + + +0 +1800.000 + +0 + +0 + + + + + + + + + + + + + +using_gtid=1 +using_gtid diff --git a/mysql-test/std_data/bad6_master.info b/mysql-test/std_data/bad6_master.info new file mode 100644 index 00000000000..0f48f4871f0 --- /dev/null +++ b/mysql-test/std_data/bad6_master.info @@ -0,0 +1,36 @@ +33 +mysql-bin.000001 +4 +127.0.0.1 +root + +3310 +60 +0 + + + + + +0 +1800.000 + +0 + +0 + + + + + + + + + + + + + +using_gtid=1 +END_MARKER +do_domain_ids=20 Hulubulu!!?! diff --git a/mysql-test/std_data/bad_master.info b/mysql-test/std_data/bad_master.info new file mode 100644 index 00000000000..1541fdf2c61 --- /dev/null +++ b/mysql-test/std_data/bad_master.info @@ -0,0 +1,35 @@ +33 +mysql-bin.000001 +4 +127.0.0.1 +root + +3310 +60 +0 + + + + + +0 +1800.000 + +0 + +0 + + + + + + + + + + + + + +using_gtid=1 + diff --git a/mysql-test/std_data/loaddata/mdev9823.ujis.txt b/mysql-test/std_data/loaddata/mdev9823.ujis.txt new file mode 100644 index 00000000000..5468c999585 --- /dev/null +++ b/mysql-test/std_data/loaddata/mdev9823.ujis.txt @@ -0,0 +1,11 @@ +# This file has incomplete UJIS sequences {8F}, {8FA1}, +# has a valid UJIS sequence {8FA1A1}, +# and has no NL at the end: +# {8F} \n xxx1 {8FA1} \n xxx2 {8FA1A1} \n xxx3 \n {8FA1} EOF + +xxx1 +¡ +xxx2 +¡¡ +xxx3 +¡
\ No newline at end of file diff --git a/mysql-test/std_data/loaddata/mdev9823.utf8mb4.txt b/mysql-test/std_data/loaddata/mdev9823.utf8mb4.txt new file mode 100644 index 00000000000..87739567de1 --- /dev/null +++ b/mysql-test/std_data/loaddata/mdev9823.utf8mb4.txt @@ -0,0 +1,12 @@ +# This file has incomplete utf8mb4 sequences {D0}, {E180}, {F09F98}, +# has a valid utf8mb4 sequence {F09F988E} +# and has no NL at the end: +# {D0} \n xxx1 {E180} xxx2 \n {F09F98} \n xxx3 {F09F988E} {F09F98} EOF +Ð +xxx1 +ဠ+xxx2 +😠+xxx3 +😎 +ðŸ˜
\ No newline at end of file diff --git a/mysql-test/std_data/loaddata/mdev9874.xml b/mysql-test/std_data/loaddata/mdev9874.xml new file mode 100644 index 00000000000..513a0dff2be --- /dev/null +++ b/mysql-test/std_data/loaddata/mdev9874.xml @@ -0,0 +1 @@ +<table><row><a>aÐ</a></row></table>
\ No newline at end of file diff --git a/mysql-test/suite/galera/include/galera_sst_set_mysqldump.inc b/mysql-test/suite/galera/include/galera_sst_set_mysqldump.inc index 5f87d23dcc1..cbd2c1c817a 100644 --- a/mysql-test/suite/galera/include/galera_sst_set_mysqldump.inc +++ b/mysql-test/suite/galera/include/galera_sst_set_mysqldump.inc @@ -6,6 +6,7 @@ --connection node_1 # We need a user with a password to perform SST, otherwise we hit LP #1378253 +CREATE USER 'sst'; GRANT ALL PRIVILEGES ON *.* TO 'sst'; --let $wsrep_sst_auth_orig = `SELECT @@wsrep_sst_auth` diff --git a/mysql-test/suite/galera/r/binlog_checksum.result b/mysql-test/suite/galera/r/binlog_checksum.result index 5c1981fc17f..e86f3892ac7 100644 --- a/mysql-test/suite/galera/r/binlog_checksum.result +++ b/mysql-test/suite/galera/r/binlog_checksum.result @@ -1,7 +1,9 @@ # On node_1 +connection node_1; SET @binlog_checksum_saved= @@GLOBAL.BINLOG_CHECKSUM; SET @@GLOBAL.BINLOG_CHECKSUM=CRC32; # On node_2 +connection node_2; SET @binlog_checksum_saved= @@GLOBAL.BINLOG_CHECKSUM; SET @@GLOBAL.BINLOG_CHECKSUM=CRC32; USE test; @@ -23,6 +25,7 @@ c1 5 # On node_2 +connection node_2; SELECT * FROM test.t1; c1 1 @@ -31,6 +34,10 @@ c1 4 5 DROP TABLE t1; +connection node_1; SET @@GLOBAL.BINLOG_CHECKSUM = @binlog_checksum_saved; +connection node_2; SET @@GLOBAL.BINLOG_CHECKSUM = @binlog_checksum_saved; +disconnect node_2; +disconnect node_1; # End of test diff --git a/mysql-test/suite/galera/r/create.result b/mysql-test/suite/galera/r/create.result index d8a2db99a68..20bc9a3958e 100644 --- a/mysql-test/suite/galera/r/create.result +++ b/mysql-test/suite/galera/r/create.result @@ -25,10 +25,12 @@ SET @@GLOBAL.wsrep_forced_binlog_format=@wsrep_forced_binlog_format_saved; # # MDEV-7673: CREATE TABLE SELECT fails on Galera cluster # +connection node_1; CREATE TABLE t1 (i INT) ENGINE=INNODB DEFAULT CHARSET=utf8 SELECT 1 as i; SELECT * FROM t1; i 1 +connection node_2; SELECT * FROM t1; i 1 @@ -37,6 +39,7 @@ DROP TABLE t1; # MDEV-8166 : Adding index on new table from select crashes Galera # cluster # +connection node_1; CREATE TABLE t1(i int(11) NOT NULL DEFAULT '0') ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO t1(i) VALUES (1), (2), (3); CREATE TABLE t2 (i INT) SELECT i FROM t1; @@ -46,6 +49,7 @@ i 1 2 3 +connection node_2; SELECT * FROM t2; i 1 diff --git a/mysql-test/suite/galera/r/enforce_storage_engine.result b/mysql-test/suite/galera/r/enforce_storage_engine.result index a3513fc2789..746aa22bf20 100644 --- a/mysql-test/suite/galera/r/enforce_storage_engine.result +++ b/mysql-test/suite/galera/r/enforce_storage_engine.result @@ -2,11 +2,13 @@ # MDEV-8831 : enforce_storage_engine doesn't block table creation on # other nodes (galera cluster) # +connection node_1; SET @@enforce_storage_engine=INNODB; CREATE TABLE t1(i INT) ENGINE=INNODB; CREATE TABLE t2(i INT) ENGINE=MYISAM; ERROR 42000: Unknown storage engine 'MyISAM' INSERT INTO t1 VALUES(1); +connection node_2; SHOW TABLES; Tables_in_test t1 @@ -14,6 +16,7 @@ SELECT COUNT(*)=1 FROM t1; COUNT(*)=1 1 CREATE TABLE t2(i INT) ENGINE=MYISAM; +connection node_1; SHOW TABLES; Tables_in_test t1 diff --git a/mysql-test/suite/galera/r/fk.result b/mysql-test/suite/galera/r/fk.result index d6a3a25b01a..ab8e1c8f680 100644 --- a/mysql-test/suite/galera/r/fk.result +++ b/mysql-test/suite/galera/r/fk.result @@ -1,6 +1,7 @@ USE test; # On node_1 +connection node_1; CREATE TABLE networks ( `tenant_id` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, `id` varchar(36) COLLATE utf8_unicode_ci NOT NULL, @@ -60,9 +61,11 @@ INSERT INTO ipallocations VALUES ('f37aa3fe-ab99-4d0f-a566-6cd3169d7516','10.25. select * from ports where ports.id = 'f37aa3fe-ab99-4d0f-a566-6cd3169d7516'; tenant_id id name network_id mac_address admin_state_up status device_id device_owner f37aa3fe-ab99-4d0f-a566-6cd3169d7516 f37aa3fe-ab99-4d0f-a566-6cd3169d7516 fa:16:3e:e3:cc:bb 1 DOWN f37aa3fe-ab99-4d0f-a566-6cd3169d7516 network:router_gateway +connection node_2; select * from ports where ports.id = 'f37aa3fe-ab99-4d0f-a566-6cd3169d7516'; tenant_id id name network_id mac_address admin_state_up status device_id device_owner f37aa3fe-ab99-4d0f-a566-6cd3169d7516 f37aa3fe-ab99-4d0f-a566-6cd3169d7516 fa:16:3e:e3:cc:bb 1 DOWN f37aa3fe-ab99-4d0f-a566-6cd3169d7516 network:router_gateway +connection node_1; DELETE FROM ports WHERE ports.id = 'f37aa3fe-ab99-4d0f-a566-6cd3169d7516'; select * from networks; tenant_id id name status admin_state_up shared @@ -78,6 +81,7 @@ select * from ports; tenant_id id name network_id mac_address admin_state_up status device_id device_owner # On node_2 +connection node_2; select * from networks; tenant_id id name status admin_state_up shared f37aa3fe-ab99-4d0f-a566-6cd3169d7516 f37aa3fe-ab99-4d0f-a566-6cd3169d7516 MyNet ACTIVE 0 0 @@ -90,7 +94,10 @@ select * from ipallocations; port_id ip_address subnet_id network_id select * from ports; tenant_id id name network_id mac_address admin_state_up status device_id device_owner +connection node_1; drop table ipallocations; drop table subnets; drop table ports; drop table networks; +disconnect node_2; +disconnect node_1; diff --git a/mysql-test/suite/galera/r/galera_account_management.result b/mysql-test/suite/galera/r/galera_account_management.result index 9b3ae9ba46e..7fb472a5c2d 100644 --- a/mysql-test/suite/galera/r/galera_account_management.result +++ b/mysql-test/suite/galera/r/galera_account_management.result @@ -1,39 +1,55 @@ +connection node_1; CREATE USER user1, user2 IDENTIFIED BY 'password'; +connection node_2; SELECT COUNT(*) = 2 FROM mysql.user WHERE user IN ('user1', 'user2'); COUNT(*) = 2 1 +connection node_1; RENAME USER user2 TO user3; +connection node_2; SELECT COUNT(*) = 0 FROM mysql.user WHERE user = 'user2'; COUNT(*) = 0 1 SELECT COUNT(*) = 1 FROM mysql.user WHERE user = 'user3'; COUNT(*) = 1 1 +connection node_1; SET PASSWORD FOR user3 = PASSWORD('foo'); +connection node_1; SELECT password != '' FROM mysql.user WHERE user = 'user3'; password != '' 1 +connection node_1; DROP USER user1, user3; +connection node_2; SELECT COUNT(*) = 0 FROM mysql.user WHERE user IN ('user1', 'user2'); COUNT(*) = 0 1 +connection node_1; GRANT ALL ON *.* TO user4 IDENTIFIED BY 'password'; +connection node_2; SELECT COUNT(*) = 1 FROM mysql.user WHERE user = 'user4'; COUNT(*) = 1 1 SELECT Select_priv = 'Y' FROM mysql.user WHERE user = 'user4'; Select_priv = 'Y' 1 +connection node_1; CREATE USER user5; GRANT PROXY ON user4 TO user5; +connection node_2; SELECT COUNT(*) = 1 FROM mysql.proxies_priv WHERE user = 'user5'; COUNT(*) = 1 1 +connection node_1; REVOKE ALL PRIVILEGES ON *.* FROM user4; +connection node_2; SELECT Select_priv = 'N' FROM mysql.user WHERE user = 'user4'; Select_priv = 'N' 1 +connection node_1; REVOKE PROXY ON user4 FROM user5; +connection node_2; SELECT COUNT(*) = 0 FROM mysql.proxies_priv WHERE user = 'user5'; COUNT(*) = 0 1 diff --git a/mysql-test/suite/galera/r/galera_alter_engine_innodb.result b/mysql-test/suite/galera/r/galera_alter_engine_innodb.result index 2b30ac5814d..ff6ab792c0e 100644 --- a/mysql-test/suite/galera/r/galera_alter_engine_innodb.result +++ b/mysql-test/suite/galera/r/galera_alter_engine_innodb.result @@ -1,6 +1,7 @@ CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB; INSERT INTO t1 VALUES (1); ALTER TABLE t1 ENGINE=InnoDB; +connection node_2; SELECT ENGINE = 'InnoDB' FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 't1'; ENGINE = 'InnoDB' 1 diff --git a/mysql-test/suite/galera/r/galera_alter_engine_myisam.result b/mysql-test/suite/galera/r/galera_alter_engine_myisam.result index 280cb58208c..389383858ac 100644 --- a/mysql-test/suite/galera/r/galera_alter_engine_myisam.result +++ b/mysql-test/suite/galera/r/galera_alter_engine_myisam.result @@ -2,10 +2,12 @@ SET GLOBAL wsrep_replicate_myisam = TRUE; CREATE TABLE t1 (f1 INTEGER) ENGINE=MyISAM; INSERT INTO t1 VALUES (1); ALTER TABLE t1 ENGINE=InnoDB; +connection node_2; SELECT ENGINE = 'InnoDB' FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 't1'; ENGINE = 'InnoDB' 1 SELECT COUNT(*) = 1 FROM t1; COUNT(*) = 1 1 +connection node_1; DROP TABLE t1; diff --git a/mysql-test/suite/galera/r/galera_alter_table_force.result b/mysql-test/suite/galera/r/galera_alter_table_force.result index 401ab46d868..d0a2f81b631 100644 --- a/mysql-test/suite/galera/r/galera_alter_table_force.result +++ b/mysql-test/suite/galera/r/galera_alter_table_force.result @@ -1,6 +1,7 @@ CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB; INSERT INTO t1 VALUES (1); ALTER TABLE t1 FORCE; +connection node_2; SELECT ENGINE = 'InnoDB' FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 't1'; ENGINE = 'InnoDB' 1 diff --git a/mysql-test/suite/galera/r/galera_applier_ftwrl_table.result b/mysql-test/suite/galera/r/galera_applier_ftwrl_table.result index cecbfc1f3cf..18dcc55d5d4 100644 --- a/mysql-test/suite/galera/r/galera_applier_ftwrl_table.result +++ b/mysql-test/suite/galera/r/galera_applier_ftwrl_table.result @@ -1,12 +1,17 @@ +connection node_1; SET SESSION wsrep_sync_wait = 0; CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; FLUSH TABLE t1 WITH READ LOCK; +connection node_2; INSERT INTO t1 VALUES (1); INSERT INTO t1 VALUES (2); +connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1; +connection node_1a; SET SESSION wsrep_sync_wait = 0; SELECT COUNT(*) = 0 FROM t1; COUNT(*) = 0 1 +connection node_1; UNLOCK TABLES; SET SESSION wsrep_sync_wait = 7; SELECT COUNT(*) = 2 FROM t1; diff --git a/mysql-test/suite/galera/r/galera_applier_ftwrl_table_alter.result b/mysql-test/suite/galera/r/galera_applier_ftwrl_table_alter.result index ee967356c85..1cf88dbf5d3 100644 --- a/mysql-test/suite/galera/r/galera_applier_ftwrl_table_alter.result +++ b/mysql-test/suite/galera/r/galera_applier_ftwrl_table_alter.result @@ -1,10 +1,13 @@ +connection node_1; SET SESSION wsrep_sync_wait = 0; SET SESSION lock_wait_timeout = 60; SET SESSION innodb_lock_wait_timeout=60; SET SESSION wait_timeout=60; CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; FLUSH TABLE t1 WITH READ LOCK; +connection node_2; ALTER TABLE t1 ADD COLUMN f2 INTEGER; +connection node_1; SELECT 1 FROM DUAL; 1 1 diff --git a/mysql-test/suite/galera/r/galera_as_master.result b/mysql-test/suite/galera/r/galera_as_master.result index d87a744000c..92a1a0e7cb3 100644 --- a/mysql-test/suite/galera/r/galera_as_master.result +++ b/mysql-test/suite/galera/r/galera_as_master.result @@ -1,4 +1,6 @@ +connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3; START SLAVE; +connection node_1; CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; INSERT INTO t1 VALUES(1); # Disable binary logging for current session @@ -10,6 +12,7 @@ CREATE TABLE test.t3 AS SELECT * from t1; SET SQL_LOG_BIN=ON; INSERT INTO t1 VALUES(3); CREATE TABLE test.t4 AS SELECT * from t1; +connection node_2; SELECT * FROM t1; f1 1 @@ -27,6 +30,7 @@ f1 1 2 3 +connection node_3; SHOW TABLES; Tables_in_test t1 @@ -41,8 +45,10 @@ f1 2 3 # Cleanup +connection node_1; DROP TABLE t1, t4; SET SQL_LOG_BIN=OFF; DROP TABLE t2, t3; +connection node_3; STOP SLAVE; RESET SLAVE ALL; diff --git a/mysql-test/suite/galera/r/galera_as_master_large.result b/mysql-test/suite/galera/r/galera_as_master_large.result index 4d5533899cf..dad74211af9 100644 --- a/mysql-test/suite/galera/r/galera_as_master_large.result +++ b/mysql-test/suite/galera/r/galera_as_master_large.result @@ -2,7 +2,9 @@ # MDEV-9044 : Getting binlog corruption on my Galera cluster (10.1.8) # making it impossible to async slave. # +connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3; START SLAVE; +connection node_1; SELECT @@GLOBAL.BINLOG_CACHE_SIZE; @@GLOBAL.BINLOG_CACHE_SIZE 8192 @@ -12,12 +14,14 @@ START TRANSACTION; INSERT INTO t1 VALUES(1, REPEAT('-', 10000)); COMMIT; INSERT INTO t2 VALUES(1); +connection node_2; SELECT c1, LENGTH(c2) FROM t1; c1 LENGTH(c2) 1 10000 SELECT * FROM t2; c1 1 +connection node_3; SELECT c1, LENGTH(c2) FROM t1; c1 LENGTH(c2) 1 10000 @@ -25,6 +29,8 @@ SELECT * FROM t2; c1 1 # Cleanup +connection node_1; DROP TABLE t1, t2; +connection node_3; STOP SLAVE; RESET SLAVE ALL; diff --git a/mysql-test/suite/galera/r/galera_as_slave.result b/mysql-test/suite/galera/r/galera_as_slave.result index 2d7d689aa36..9ccb5106234 100644 --- a/mysql-test/suite/galera/r/galera_as_slave.result +++ b/mysql-test/suite/galera/r/galera_as_slave.result @@ -1,15 +1,24 @@ +connect node_2a, 127.0.0.1, root, , test, $NODE_MYPORT_2; +connection node_2; START SLAVE; +connection node_1; CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; INSERT INTO t1 VALUES(1); +connection node_2; INSERT INTO t1 VALUES (2); +connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3; SELECT COUNT(*) = 2 FROM t1; COUNT(*) = 2 1 INSERT INTO t1 VALUES (3); +connection node_2; SELECT COUNT(*) = 3 FROM t1; COUNT(*) = 3 1 +connection node_1; DROP TABLE t1; +connection node_2; STOP SLAVE; RESET SLAVE ALL; +connection node_1; RESET MASTER; diff --git a/mysql-test/suite/galera/r/galera_as_slave_gtid.result b/mysql-test/suite/galera/r/galera_as_slave_gtid.result index fbac7b1b6b5..0ef9d208bf4 100644 --- a/mysql-test/suite/galera/r/galera_as_slave_gtid.result +++ b/mysql-test/suite/galera/r/galera_as_slave_gtid.result @@ -1,16 +1,24 @@ +connect node_2a, 127.0.0.1, root, , test, $NODE_MYPORT_2; +connection node_2; START SLAVE; +connection node_1; CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; INSERT INTO t1 VALUES(1); SELECT LENGTH(@@global.gtid_binlog_state) > 1; LENGTH(@@global.gtid_binlog_state) > 1 1 +connection node_2; gtid_binlog_state_equal 1 +connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3; SELECT COUNT(*) = 1 FROM t1; COUNT(*) = 1 1 gtid_binlog_state_equal 1 +connection node_1; DROP TABLE t1; +connection node_3; +connection node_2; STOP SLAVE; RESET SLAVE ALL; diff --git a/mysql-test/suite/galera/r/galera_bf_abort_flush_for_export.result b/mysql-test/suite/galera/r/galera_bf_abort_flush_for_export.result index 8c07d87eec3..210492937b0 100644 --- a/mysql-test/suite/galera/r/galera_bf_abort_flush_for_export.result +++ b/mysql-test/suite/galera/r/galera_bf_abort_flush_for_export.result @@ -1,7 +1,10 @@ CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; +connection node_2; SET AUTOCOMMIT=OFF; FLUSH TABLES t1 FOR EXPORT; +connection node_1; INSERT INTO t1 VALUES (2); +connection node_2; SET SESSION wsrep_sync_wait = 0; UNLOCK TABLES; COMMIT; diff --git a/mysql-test/suite/galera/r/galera_bf_abort_ftwrl.result b/mysql-test/suite/galera/r/galera_bf_abort_ftwrl.result index e3819172510..ae1ca6d2157 100644 --- a/mysql-test/suite/galera/r/galera_bf_abort_ftwrl.result +++ b/mysql-test/suite/galera/r/galera_bf_abort_ftwrl.result @@ -1,7 +1,10 @@ CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; +connection node_2; SET AUTOCOMMIT=OFF; FLUSH TABLES WITH READ LOCK;; +connection node_1; INSERT INTO t1 VALUES (1); +connection node_2; UNLOCK TABLES; wsrep_local_aborts_increment 1 diff --git a/mysql-test/suite/galera/r/galera_bf_abort_get_lock.result b/mysql-test/suite/galera/r/galera_bf_abort_get_lock.result index 2e44a773b23..ce3ac6ab2cb 100644 --- a/mysql-test/suite/galera/r/galera_bf_abort_get_lock.result +++ b/mysql-test/suite/galera/r/galera_bf_abort_get_lock.result @@ -1,11 +1,15 @@ CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; +connection node_2a; SELECT GET_LOCK("foo", 1000); GET_LOCK("foo", 1000) 1 +connection node_2; SET AUTOCOMMIT=OFF; INSERT INTO t1 VALUES (1); SELECT GET_LOCK("foo", 1000);; +connection node_1; INSERT INTO t1 VALUES (1); +connection node_2; ERROR 40001: Deadlock found when trying to get lock; try restarting transaction wsrep_local_aborts_increment 1 diff --git a/mysql-test/suite/galera/r/galera_bf_abort_lock_table.result b/mysql-test/suite/galera/r/galera_bf_abort_lock_table.result index 7510e48ee83..81b5816ddbe 100644 --- a/mysql-test/suite/galera/r/galera_bf_abort_lock_table.result +++ b/mysql-test/suite/galera/r/galera_bf_abort_lock_table.result @@ -1,7 +1,10 @@ CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; +connection node_2; SET AUTOCOMMIT=OFF; LOCK TABLE t1 WRITE; +connection node_1; INSERT INTO t1 VALUES (2); +connection node_2; UNLOCK TABLES; COMMIT; SELECT COUNT(*) = 1 FROM t1; diff --git a/mysql-test/suite/galera/r/galera_bf_abort_sleep.result b/mysql-test/suite/galera/r/galera_bf_abort_sleep.result index 8e85a5feda2..f069198dff6 100644 --- a/mysql-test/suite/galera/r/galera_bf_abort_sleep.result +++ b/mysql-test/suite/galera/r/galera_bf_abort_sleep.result @@ -1,8 +1,11 @@ CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; +connection node_2; SET AUTOCOMMIT=OFF; INSERT INTO t1 VALUES (1); SELECT SLEEP(1000);; +connection node_1; INSERT INTO t1 VALUES (1); +connection node_2; ERROR 40001: Deadlock found when trying to get lock; try restarting transaction wsrep_local_aborts_increment 1 diff --git a/mysql-test/suite/galera/r/galera_binlog_cache_size.result b/mysql-test/suite/galera/r/galera_binlog_cache_size.result index 9726cf2a440..6aac74ab5f0 100644 --- a/mysql-test/suite/galera/r/galera_binlog_cache_size.result +++ b/mysql-test/suite/galera/r/galera_binlog_cache_size.result @@ -3,6 +3,7 @@ CREATE TABLE ten (f1 INTEGER); INSERT INTO ten VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10); SET GLOBAL binlog_cache_size=4096; SET GLOBAL max_binlog_cache_size=4096; +connection node_1a; SET AUTOCOMMIT=ON; START TRANSACTION; INSERT INTO t1 SELECT REPEAT('a', 767) FROM ten; diff --git a/mysql-test/suite/galera/r/galera_binlog_checksum.result b/mysql-test/suite/galera/r/galera_binlog_checksum.result index a6ab62350b1..b0ea2293119 100644 --- a/mysql-test/suite/galera/r/galera_binlog_checksum.result +++ b/mysql-test/suite/galera/r/galera_binlog_checksum.result @@ -1,9 +1,12 @@ CREATE TABLE t1 (f1 INT PRIMARY KEY) ENGINE=InnoDB; INSERT INTO t1 VALUES (1); +connection node_2; SELECT COUNT(*) = 1 FROM t1; COUNT(*) = 1 1 +connection node_1; UPDATE t1 SET f1 = 2 WHERE f1 = 1; +connection node_2; SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 2; COUNT(*) = 1 1 diff --git a/mysql-test/suite/galera/r/galera_binlog_event_max_size_min.result b/mysql-test/suite/galera/r/galera_binlog_event_max_size_min.result index 984a943fcbe..7b88af5d5af 100644 --- a/mysql-test/suite/galera/r/galera_binlog_event_max_size_min.result +++ b/mysql-test/suite/galera/r/galera_binlog_event_max_size_min.result @@ -1,5 +1,6 @@ CREATE TABLE t1 (f1 VARCHAR(1000)); INSERT INTO t1 VALUES (REPEAT('x', 1000)); +connection node_2; SELECT COUNT(*) = 1 FROM t1 WHERE f1 = REPEAT('x', 1000); COUNT(*) = 1 1 diff --git a/mysql-test/suite/galera/r/galera_concurrent_ctas.result b/mysql-test/suite/galera/r/galera_concurrent_ctas.result index 8b0a4c07ac2..8a3ac1ae0d3 100644 --- a/mysql-test/suite/galera/r/galera_concurrent_ctas.result +++ b/mysql-test/suite/galera/r/galera_concurrent_ctas.result @@ -1 +1,3 @@ +disconnect node_2; +disconnect node_1; # End of test diff --git a/mysql-test/suite/galera/r/galera_create_function.result b/mysql-test/suite/galera/r/galera_create_function.result index 8e4a823d00f..576ea44cce5 100644 --- a/mysql-test/suite/galera/r/galera_create_function.result +++ b/mysql-test/suite/galera/r/galera_create_function.result @@ -1,3 +1,4 @@ +connection node_1; CREATE USER 'user1'; CREATE DEFINER = 'user1' @@ -18,12 +19,14 @@ DETERMINISTIC NO SQL SQL SECURITY INVOKER RETURN 123; +connection node_1; SHOW CREATE FUNCTION f1; Function sql_mode Create Function character_set_client collation_connection Database Collation f1 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`user1`@`%` FUNCTION `f1`(param INTEGER) RETURNS varchar(200) CHARSET latin1 MODIFIES SQL DATA COMMENT 'f1_comment' RETURN 'abc' latin1 latin1_swedish_ci latin1_swedish_ci +connection node_2; SELECT 1 FROM DUAL; 1 1 @@ -33,6 +36,7 @@ f1 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`user1`@`%` FUNCTIO MODIFIES SQL DATA COMMENT 'f1_comment' RETURN 'abc' latin1 latin1_swedish_ci latin1_swedish_ci +connection node_1; SHOW CREATE FUNCTION f2; Function sql_mode Create Function character_set_client collation_connection Database Collation f2 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `f2`(param VARCHAR(100)) RETURNS int(11) @@ -40,6 +44,7 @@ f2 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` DETERMINISTIC SQL SECURITY INVOKER RETURN 123 latin1 latin1_swedish_ci latin1_swedish_ci +connection node_2; SHOW CREATE FUNCTION f2; Function sql_mode Create Function character_set_client collation_connection Database Collation f2 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `f2`(param VARCHAR(100)) RETURNS int(11) @@ -53,6 +58,7 @@ f1(1) = 'abc' SELECT f2('abc') = 123; f2('abc') = 123 1 +connection node_1; DROP FUNCTION f1; DROP FUNCTION f2; DROP USER 'user1'; diff --git a/mysql-test/suite/galera/r/galera_create_procedure.result b/mysql-test/suite/galera/r/galera_create_procedure.result index 6191ef48ee5..90f29ffa617 100644 --- a/mysql-test/suite/galera/r/galera_create_procedure.result +++ b/mysql-test/suite/galera/r/galera_create_procedure.result @@ -1,3 +1,4 @@ +connection node_1; CREATE USER 'user1'; CREATE TABLE t1 (f1 INTEGER); CREATE @@ -16,12 +17,14 @@ PROCEDURE p2 (param VARCHAR(100)) DETERMINISTIC NO SQL SQL SECURITY INVOKER BEGIN END ; +connection node_1; SHOW CREATE PROCEDURE p1; Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation p1 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`user1`@`%` PROCEDURE `p1`(IN param1 INTEGER, OUT param2 INTEGER, INOUT param3 INTEGER) MODIFIES SQL DATA COMMENT 'p1_comment' INSERT INTO t1 VALUES (1) latin1 latin1_swedish_ci latin1_swedish_ci +connection node_2; SELECT 1 FROM DUAL; 1 1 @@ -31,6 +34,7 @@ p1 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`user1`@`%` PROCEDU MODIFIES SQL DATA COMMENT 'p1_comment' INSERT INTO t1 VALUES (1) latin1 latin1_swedish_ci latin1_swedish_ci +connection node_1; SHOW CREATE PROCEDURE p2; Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation p2 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `p2`(param VARCHAR(100)) @@ -38,6 +42,7 @@ p2 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` DETERMINISTIC SQL SECURITY INVOKER BEGIN END latin1 latin1_swedish_ci latin1_swedish_ci +connection node_2; SHOW CREATE PROCEDURE p2; Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation p2 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `p2`(param VARCHAR(100)) @@ -47,6 +52,7 @@ p2 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` BEGIN END latin1 latin1_swedish_ci latin1_swedish_ci CALL p1(@a, @b, @c); CALL p2('abc'); +connection node_1; DROP PROCEDURE p1; DROP PROCEDURE p2; DROP USER 'user1'; diff --git a/mysql-test/suite/galera/r/galera_create_table_like.result b/mysql-test/suite/galera/r/galera_create_table_like.result index b335101fa62..131ac311bca 100644 --- a/mysql-test/suite/galera/r/galera_create_table_like.result +++ b/mysql-test/suite/galera/r/galera_create_table_like.result @@ -11,6 +11,7 @@ CREATE TABLE real_table3 LIKE schema1.myisam_table; CREATE TEMPORARY TABLE temp_table1 LIKE schema1.real_table; CREATE TEMPORARY TABLE temp_table2 LIKE schema1.temp_table; CREATE TEMPORARY TABLE temp_table3 LIKE schema1.myisam_table; +connection node_2; SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'real_table' AND TABLE_SCHEMA = 'schema1'; COUNT(*) = 1 1 @@ -38,6 +39,7 @@ COUNT(*) = 0 SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'temp_table3' AND TABLE_SCHEMA = 'schema2'; COUNT(*) = 0 1 +connection node_1; DROP TABLE schema1.real_table; DROP TABLE schema1.myisam_table; DROP TABLE schema2.real_table1; diff --git a/mysql-test/suite/galera/r/galera_create_trigger.result b/mysql-test/suite/galera/r/galera_create_trigger.result index 7e656081871..d07a007543e 100644 --- a/mysql-test/suite/galera/r/galera_create_trigger.result +++ b/mysql-test/suite/galera/r/galera_create_trigger.result @@ -7,6 +7,7 @@ CREATE DEFINER=root@localhost TRIGGER definer_root BEFORE INSERT ON definer_root CREATE DEFINER=user1 TRIGGER definer_user BEFORE INSERT ON definer_user FOR EACH ROW SET NEW.trigger_user = CURRENT_USER(); CREATE DEFINER=current_user TRIGGER definer_current_user BEFORE INSERT ON definer_current_user FOR EACH ROW SET NEW.trigger_user = CURRENT_USER(); CREATE TRIGGER definer_default BEFORE INSERT ON definer_default FOR EACH ROW SET NEW.trigger_user = CURRENT_USER(); +connection node_2; INSERT INTO definer_root (f1) VALUES (1); SELECT DEFINER = 'root@localhost' FROM INFORMATION_SCHEMA.TRIGGERS WHERE TRIGGER_NAME = 'definer_root'; DEFINER = 'root@localhost' @@ -35,6 +36,7 @@ DEFINER = 'root@localhost' SELECT trigger_user = 'root@localhost' FROM definer_default; trigger_user = 'root@localhost' 1 +connection node_1; DROP TABLE definer_current_user; DROP TABLE definer_user; DROP TABLE definer_root; diff --git a/mysql-test/suite/galera/r/galera_delete_limit.result b/mysql-test/suite/galera/r/galera_delete_limit.result index 72bee18eab6..f6fb2e56346 100644 --- a/mysql-test/suite/galera/r/galera_delete_limit.result +++ b/mysql-test/suite/galera/r/galera_delete_limit.result @@ -1,8 +1,11 @@ +connection node_1; CREATE TABLE ten (f1 INTEGER) Engine=InnoDB; INSERT INTO ten VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10); CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) Engine=InnoDB; INSERT INTO t1 SELECT f1 FROM ten ORDER BY RAND(); +connection node_2; DELETE FROM t1 ORDER BY RAND() LIMIT 5; +connection node_1; sum_matches 1 max_matches @@ -10,7 +13,9 @@ max_matches DROP TABLE t1; CREATE TABLE t2 (f1 INTEGER) Engine=InnoDB; INSERT INTO t2 SELECT f1 FROM ten ORDER BY RAND(); +connection node_2; DELETE FROM t2 ORDER BY RAND() LIMIT 5; +connection node_1; sum_matches 1 max_matches diff --git a/mysql-test/suite/galera/r/galera_drop_multi.result b/mysql-test/suite/galera/r/galera_drop_multi.result index d82ae3bec1a..7793ef93b90 100644 --- a/mysql-test/suite/galera/r/galera_drop_multi.result +++ b/mysql-test/suite/galera/r/galera_drop_multi.result @@ -8,6 +8,7 @@ START TRANSACTION; DROP TABLE t1, t2, t3, t4; INSERT INTO t5 VALUES (1); COMMIT; +connection node_2; SHOW CREATE TABLE t1; ERROR 42S02: Table 'test.t1' doesn't exist SHOW CREATE TABLE t2; @@ -17,4 +18,5 @@ ERROR 42S02: Table 'test.t3' doesn't exist SHOW CREATE TABLE t4; ERROR 42S02: Table 'test.t4' doesn't exist CALL mtr.add_suppression("Slave SQL: Error 'Unknown table 'test.t2,test.t4'' on query\. Default database: 'test'\. Query: 'DROP TABLE t1, t2, t3, t4', Error_code: 1051"); +connection node_1; DROP TABLE t5; diff --git a/mysql-test/suite/galera/r/galera_enum.result b/mysql-test/suite/galera/r/galera_enum.result index e853c5c9943..e8ccb12b990 100644 --- a/mysql-test/suite/galera/r/galera_enum.result +++ b/mysql-test/suite/galera/r/galera_enum.result @@ -1,9 +1,11 @@ +connection node_1; CREATE TABLE t1 (f1 ENUM('', 'one', 'two'), KEY (f1)) ENGINE=InnoDB; INSERT INTO t1 VALUES (''); INSERT INTO t1 VALUES ('one'), ('two'); INSERT INTO t1 VALUES (0), (1), (2); Warnings: Warning 1265 Data truncated for column 'f1' at row 1 +connection node_2; SELECT COUNT(*) = 6 FROM t1; COUNT(*) = 6 1 @@ -14,23 +16,30 @@ SELECT COUNT(*) = 2 FROM t1 where f1 = 'one'; COUNT(*) = 2 1 DROP TABLE t1; +connection node_1; CREATE TABLE t1 (f1 ENUM('', 'one', 'two', 'three', 'four') PRIMARY KEY) ENGINE=InnoDB; INSERT INTO t1 VALUES (''), ('one'), ('two'); +connection node_2; SELECT COUNT(*) = 3 FROM t1; COUNT(*) = 3 1 SELECT COUNT(*) = 1 FROM t1 WHERE f1 = ''; COUNT(*) = 1 1 +connection node_1; SET AUTOCOMMIT=OFF; START TRANSACTION; UPDATE t1 SET f1 = 'three' where f1 = ''; +connection node_2; SET AUTOCOMMIt=OFF; START TRANSACTION; UPDATE t1 SET f1 = 'four' where f1 = ''; +connection node_1; COMMIT; +connection node_2; COMMIT; ERROR 40001: Deadlock found when trying to get lock; try restarting transaction +connection node_1; SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 'three'; COUNT(*) = 1 1 diff --git a/mysql-test/suite/galera/r/galera_events.result b/mysql-test/suite/galera/r/galera_events.result index 09d8406d5d0..f01627aba70 100644 --- a/mysql-test/suite/galera/r/galera_events.result +++ b/mysql-test/suite/galera/r/galera_events.result @@ -1,18 +1,27 @@ +connection node_1; CREATE EVENT event1 ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR DO SELECT 1; +connection node_2; SELECT DEFINER= 'root@localhost', ORIGINATOR = 1, STATUS = 'SLAVESIDE_DISABLED', EVENT_TYPE = 'ONE TIME', ON_COMPLETION = 'NOT PRESERVE' FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME = 'event1'; DEFINER= 'root@localhost' ORIGINATOR = 1 STATUS = 'SLAVESIDE_DISABLED' EVENT_TYPE = 'ONE TIME' ON_COMPLETION = 'NOT PRESERVE' 1 1 1 1 1 +connection node_1; ALTER EVENT event1 DISABLE; +connection node_2; SELECT DEFINER= 'root@localhost', ORIGINATOR = 1, STATUS = 'SLAVESIDE_DISABLED', EVENT_TYPE = 'ONE TIME', ON_COMPLETION = 'NOT PRESERVE' FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME = 'event1'; DEFINER= 'root@localhost' ORIGINATOR = 1 STATUS = 'SLAVESIDE_DISABLED' EVENT_TYPE = 'ONE TIME' ON_COMPLETION = 'NOT PRESERVE' 1 1 1 1 1 +connection node_2; SET GLOBAL event_scheduler = ON; CREATE EVENT event2 ON SCHEDULE AT CURRENT_TIMESTAMP ON COMPLETION NOT PRESERVE DO SELECT 1; +connection node_1; SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME = 'event2'; COUNT(*) = 0 1 +connection node_1; DROP EVENT event1; +connection node_2; SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME = 'event1'; COUNT(*) = 0 1 +connection node_2; SET GLOBAL event_scheduler = OFF;; diff --git a/mysql-test/suite/galera/r/galera_fk_cascade_delete.result b/mysql-test/suite/galera/r/galera_fk_cascade_delete.result index 89f4301a0b4..73375ae55c5 100644 --- a/mysql-test/suite/galera/r/galera_fk_cascade_delete.result +++ b/mysql-test/suite/galera/r/galera_fk_cascade_delete.result @@ -18,7 +18,9 @@ ON DELETE CASCADE INSERT INTO grandparent VALUES (1),(2); INSERT INTO parent VALUES (1,1), (2,2); INSERT INTO child VALUES (1,1), (2,2); +connection node_2; DELETE FROM grandparent WHERE id = 1; +connection node_1; SELECT COUNT(*) = 0 FROM parent WHERE grandparent_id = 1; COUNT(*) = 0 1 diff --git a/mysql-test/suite/galera/r/galera_fk_cascade_update.result b/mysql-test/suite/galera/r/galera_fk_cascade_update.result index 2ab2ad31a13..5fe8b532473 100644 --- a/mysql-test/suite/galera/r/galera_fk_cascade_update.result +++ b/mysql-test/suite/galera/r/galera_fk_cascade_update.result @@ -18,7 +18,9 @@ ON UPDATE CASCADE INSERT INTO grandparent VALUES (1),(2); INSERT INTO parent VALUES (1,1), (2,2); INSERT INTO child VALUES (1,1), (2,2); +connection node_2; UPDATE grandparent SET id = 3 WHERE id = 1; +connection node_1; SELECT COUNT(*) = 1 FROM parent WHERE grandparent_id = 3; COUNT(*) = 1 1 diff --git a/mysql-test/suite/galera/r/galera_fk_conflict.result b/mysql-test/suite/galera/r/galera_fk_conflict.result index ae6c4823a54..d9919c0348b 100644 --- a/mysql-test/suite/galera/r/galera_fk_conflict.result +++ b/mysql-test/suite/galera/r/galera_fk_conflict.result @@ -10,13 +10,17 @@ REFERENCES parent(id) ) ENGINE=InnoDB; INSERT INTO parent VALUES (1), (2); INSERT INTO child VALUES (1,1); +connection node_1; SET AUTOCOMMIT = OFF; START TRANSACTION; DELETE FROM parent WHERE id = 2; +connection node_2; SET AUTOCOMMIT = OFF; START TRANSACTION; INSERT INTO child VALUES (2, 2); +connection node_1; COMMIT; +connection node_2; COMMIT; ERROR 40001: Deadlock found when trying to get lock; try restarting transaction DROP TABLE child; diff --git a/mysql-test/suite/galera/r/galera_fk_mismatch.result b/mysql-test/suite/galera/r/galera_fk_mismatch.result index 07cdb1b09a2..bdc60c9e099 100644 --- a/mysql-test/suite/galera/r/galera_fk_mismatch.result +++ b/mysql-test/suite/galera/r/galera_fk_mismatch.result @@ -13,11 +13,14 @@ ON DELETE CASCADE ) ENGINE=InnoDB; INSERT INTO parent VALUES (1, 2); INSERT INTO child VALUES (1, 1); +connection node_2; UPDATE parent SET id1 = 3 WHERE id1 = 1; +connection node_1; SELECT COUNT(*) = 1 FROM child WHERE parent_id1 = 3; COUNT(*) = 1 1 DELETE FROM parent WHERE id1 = 3; +connection node_2; SELECT COUNT(*) = 0 FROM child WHERE parent_id1 = 3; COUNT(*) = 0 1 diff --git a/mysql-test/suite/galera/r/galera_fk_multicolumn.result b/mysql-test/suite/galera/r/galera_fk_multicolumn.result index a86b87a83ef..f5b6aa23692 100644 --- a/mysql-test/suite/galera/r/galera_fk_multicolumn.result +++ b/mysql-test/suite/galera/r/galera_fk_multicolumn.result @@ -17,7 +17,9 @@ ON UPDATE CASCADE INSERT INTO t0 VALUES (0, 0); INSERT INTO t1 VALUES (0); INSERT INTO t2 VALUES (0); +connection node_2; UPDATE t0 SET f1 = 1, f2 = 2; +connection node_1; SELECT f1 = 1 FROM t1 WHERE f1 = 1; f1 = 1 1 diff --git a/mysql-test/suite/galera/r/galera_fk_multitable.result b/mysql-test/suite/galera/r/galera_fk_multitable.result index e77128d3b04..04ff7adc3e9 100644 --- a/mysql-test/suite/galera/r/galera_fk_multitable.result +++ b/mysql-test/suite/galera/r/galera_fk_multitable.result @@ -11,7 +11,9 @@ ON DELETE CASCADE INSERT INTO t0 VALUES (0), (1); INSERT INTO t1 VALUES (0, 0); INSERT INTO t1 VALUES (1, 0); +connection node_2; DELETE t0.*, t1.* FROM t0, t1 WHERE t0.f0 = 0 AND t1.f1 = 0; +connection node_1; SELECT COUNT(*) = 1 FROM t0; COUNT(*) = 1 1 diff --git a/mysql-test/suite/galera/r/galera_fk_no_pk.result b/mysql-test/suite/galera/r/galera_fk_no_pk.result index e4f92863d92..e7b5f0b2b64 100644 --- a/mysql-test/suite/galera/r/galera_fk_no_pk.result +++ b/mysql-test/suite/galera/r/galera_fk_no_pk.result @@ -12,11 +12,14 @@ ON DELETE CASCADE ) ENGINE=InnoDB; INSERT INTO parent VALUES (1), (1), (2), (2); INSERT INTO child VALUES (1,1), (2,2), (1,1), (2,2); +connection node_2; DELETE FROM parent WHERE id = 1; SELECT COUNT(*) = 0 FROM child WHERE id = 1; COUNT(*) = 0 1 +connection node_1; UPDATE parent SET id = 3 WHERE id = 2; +connection node_2; SELECT COUNT(*) = 0 FROM child WHERE parent_id = 1; COUNT(*) = 0 1 diff --git a/mysql-test/suite/galera/r/galera_fk_selfreferential.result b/mysql-test/suite/galera/r/galera_fk_selfreferential.result index 25c37046e88..3b4dbf2a8e9 100644 --- a/mysql-test/suite/galera/r/galera_fk_selfreferential.result +++ b/mysql-test/suite/galera/r/galera_fk_selfreferential.result @@ -6,7 +6,9 @@ REFERENCES t1(f1) ON DELETE CASCADE ) ENGINE=InnoDB; INSERT INTO t1 VALUES (1, 1), (2, 1); +connection node_2; DELETE FROM t1 WHERE f1 = 1; +connection node_1; SELECT COUNT(*) = 0 FROM t1; COUNT(*) = 0 1 diff --git a/mysql-test/suite/galera/r/galera_fk_setnull.result b/mysql-test/suite/galera/r/galera_fk_setnull.result index f7fb9d04040..d4f20fe60a3 100644 --- a/mysql-test/suite/galera/r/galera_fk_setnull.result +++ b/mysql-test/suite/galera/r/galera_fk_setnull.result @@ -12,10 +12,12 @@ ON DELETE SET NULL ) ENGINE=InnoDB; INSERT INTO parent VALUES (1),(2); INSERT INTO child VALUES (1,1),(2,2); +connection node_2; DELETE FROM parent WHERE id = 1; SELECT parent_id IS NULL FROM child WHERE id = 1; parent_id IS NULL 1 +connection node_1; SELECT parent_id IS NULL FROM child WHERE id = 1; parent_id IS NULL 1 @@ -23,8 +25,10 @@ UPDATE parent SET id = 3 WHERE id = 2; SELECT parent_id IS NULL FROM child WHERE id = 2; parent_id IS NULL 1 +connection node_2; SELECT parent_id IS NULL FROM child WHERE id = 2; parent_id IS NULL 1 +connection node_1; DROP TABLE child; DROP TABLE parent; diff --git a/mysql-test/suite/galera/r/galera_forced_binlog_format.result b/mysql-test/suite/galera/r/galera_forced_binlog_format.result index 92e78685b58..01f738f6109 100644 --- a/mysql-test/suite/galera/r/galera_forced_binlog_format.result +++ b/mysql-test/suite/galera/r/galera_forced_binlog_format.result @@ -1,3 +1,4 @@ +connection node_1; RESET MASTER; SET SESSION binlog_format = 'STATEMENT'; Warnings: @@ -40,4 +41,6 @@ GRANT ALL PRIVILEGES ON `testdb_9401`.`t1` TO 'dummy'@'localhost' REVOKE ALL PRIVILEGES, GRANT OPTION FROM dummy@localhost; DROP USER dummy@localhost; DROP DATABASE testdb_9401; +disconnect node_2; +disconnect node_1; # End of tests diff --git a/mysql-test/suite/galera/r/galera_ftwrl.result b/mysql-test/suite/galera/r/galera_ftwrl.result index c216b52650b..0565781c051 100644 --- a/mysql-test/suite/galera/r/galera_ftwrl.result +++ b/mysql-test/suite/galera/r/galera_ftwrl.result @@ -1,7 +1,10 @@ CREATE TABLE t1 (id INT PRIMARY KEY) ENGINE=InnoDB; +connection node_2; SET GLOBAL wsrep_provider_options = "repl.causal_read_timeout=PT1S"; FLUSH TABLES WITH READ LOCK; +connection node_1; INSERT INTO t1 VALUES (1); +connection node_2; SHOW TABLES; ERROR HY000: Lock wait timeout exceeded; try restarting transaction SELECT * FROM t1; diff --git a/mysql-test/suite/galera/r/galera_gcs_fc_limit.result b/mysql-test/suite/galera/r/galera_gcs_fc_limit.result index ad60ead4b8a..a1ba8672eae 100644 --- a/mysql-test/suite/galera/r/galera_gcs_fc_limit.result +++ b/mysql-test/suite/galera/r/galera_gcs_fc_limit.result @@ -1,16 +1,22 @@ CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB; INSERT INTO t1 VALUES (1); +connection node_2; SELECT COUNT(*) = 1 FROM t1; COUNT(*) = 1 1 SET GLOBAL wsrep_provider_options = 'gcs.fc_limit=1'; FLUSH TABLES WITH READ LOCK; +connection node_1; INSERT INTO t1 VALUES (2); INSERT INTO t1 VALUES (3); INSERT INTO t1 VALUES (4); INSERT INTO t1 VALUES (5); +connection node_1a; +connection node_2; UNLOCK TABLES; +connection node_1; INSERT INTO t1 VALUES (6); +connection node_2; SELECT COUNT(*) = 6 FROM t1; COUNT(*) = 6 1 diff --git a/mysql-test/suite/galera/r/galera_gtid.result b/mysql-test/suite/galera/r/galera_gtid.result index 546c29cb49a..acc5eae9876 100644 --- a/mysql-test/suite/galera/r/galera_gtid.result +++ b/mysql-test/suite/galera/r/galera_gtid.result @@ -1,9 +1,11 @@ CREATE TABLE t1 (f1 INT PRIMARY KEY); INSERT INTO t1 VALUES (1); +connection node_2; SELECT COUNT(*) = 1 FROM t1; COUNT(*) = 1 1 UPDATE t1 SET f1 = 2; +connection node_1; SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 2; COUNT(*) = 1 1 diff --git a/mysql-test/suite/galera/r/galera_insert_ignore.result b/mysql-test/suite/galera/r/galera_insert_ignore.result index b53b5795416..d21fb2b02d0 100644 --- a/mysql-test/suite/galera/r/galera_insert_ignore.result +++ b/mysql-test/suite/galera/r/galera_insert_ignore.result @@ -1,5 +1,7 @@ SET GLOBAL wsrep_sync_wait = 7; +connection node_2; SET GLOBAL wsrep_sync_wait = 7; +connection node_1; CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; INSERT INTO t1 VALUES (1); INSERT IGNORE INTO t1 VALUES (1), (2); @@ -9,10 +11,12 @@ SELECT * FROM t1; f1 1 2 +connection node_2; SELECT * FROM t1; f1 1 2 +connection node_2; CREATE TABLE t2 (f1 INTEGER) ENGINE=InnoDB; INSERT INTO t2 VALUES (0), (2), (3); INSERT IGNORE INTO t1 SELECT f1 FROM t2; @@ -24,14 +28,17 @@ f1 1 2 3 +connection node_1; SELECT * FROM t1; f1 0 1 2 3 +connection node_2; CREATE TABLE t3 (f1 INTEGER UNIQUE) Engine=InnoDB; INSERT INTO t3 VALUES (NULL); +connection node_1; INSERT IGNORE INTO t3 VALUES (1), (NULL), (2); SELECT * FROM t3; f1 @@ -39,6 +46,7 @@ NULL NULL 1 2 +connection node_2; SELECT * FROM t3; f1 NULL @@ -46,6 +54,7 @@ NULL 1 2 SET GLOBAL wsrep_sync_wait = (SELECT @@wsrep_sync_wait); +connection node_1; DROP TABLE t1; DROP TABLE t2; DROP TABLE t3; diff --git a/mysql-test/suite/galera/r/galera_insert_multi.result b/mysql-test/suite/galera/r/galera_insert_multi.result index 33717781f2c..38bb5c26d20 100644 --- a/mysql-test/suite/galera/r/galera_insert_multi.result +++ b/mysql-test/suite/galera/r/galera_insert_multi.result @@ -1,57 +1,76 @@ +connection node_1; CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; INSERT INTO t1 VALUES (1),(2); +connection node_2; INSERT INTO t1 VALUES (3),(4); +connection node_1; SELECT COUNT(*) = 4 FROM t1; COUNT(*) = 4 1 +connection node_2; SELECT COUNT(*) = 4 FROM t1; COUNT(*) = 4 1 DROP TABLE t1; +connection node_2; CREATE TABLE t1 (f1 INTEGER, KEY (f1)) ENGINE=InnoDB; INSERT INTO t1 VALUES (1),(1); +connection node_1; INSERT INTO t1 VALUES (2),(2); +connection node_2; SELECT COUNT(*) = 4 FROM t1; COUNT(*) = 4 1 +connection node_1; SELECT COUNT(*) = 4 FROM t1; COUNT(*) = 4 1 DROP TABLE t1; +connection node_1; CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; INSERT INTO t1 VALUES (1), (2), (3), (4), (5), (6), (7), (8), (9), (1); ERROR 23000: Duplicate entry '1' for key 'PRIMARY' SELECT COUNT(*) = 0 FROM t1; COUNT(*) = 0 1 +connection node_2; SELECT COUNT(*) = 0 FROM t1; COUNT(*) = 0 1 DROP TABLE t1; +connection node_1; CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; SET AUTOCOMMIT = OFF; START TRANSACTION; INSERT INTO t1 VALUES (1), (2); +connection node_2; SET AUTOCOMMIT = OFF; START TRANSACTION; INSERT INTO t1 VALUES (2), (1); +connection node_1; COMMIT; +connection node_2; COMMIT; ERROR 40001: Deadlock found when trying to get lock; try restarting transaction ROLLBACK; INSERT INTO t1 VALUES (1), (2); ERROR 23000: Duplicate entry '1' for key 'PRIMARY' DROP TABLE t1; +connection node_1; CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; START TRANSACTION; INSERT INTO t1 VALUES (1), (2); +connection node_2; START TRANSACTION; INSERT INTO t1 VALUES (2), (1); +connection node_1; ROLLBACK; +connection node_2; COMMIT; SELECT COUNT(*) = 2 FROM t1; COUNT(*) = 2 1 +connection node_1; SELECT COUNT(*) = 2 FROM t1; COUNT(*) = 2 1 diff --git a/mysql-test/suite/galera/r/galera_ist_mysqldump.result b/mysql-test/suite/galera/r/galera_ist_mysqldump.result index 9a5b4e8a76f..788d60051b5 100644 --- a/mysql-test/suite/galera/r/galera_ist_mysqldump.result +++ b/mysql-test/suite/galera/r/galera_ist_mysqldump.result @@ -1,4 +1,5 @@ Setting SST method to mysqldump ... +CREATE USER 'sst'; GRANT ALL PRIVILEGES ON *.* TO 'sst'; SET GLOBAL wsrep_sst_auth = 'sst:'; SET GLOBAL wsrep_sst_method = 'mysqldump'; diff --git a/mysql-test/suite/galera/r/galera_kill_applier.result b/mysql-test/suite/galera/r/galera_kill_applier.result index fe4911639ed..6fa632c242f 100644 --- a/mysql-test/suite/galera/r/galera_kill_applier.result +++ b/mysql-test/suite/galera/r/galera_kill_applier.result @@ -1,3 +1,4 @@ +connection node_1; Got one of the listed errors Got one of the listed errors Got one of the listed errors diff --git a/mysql-test/suite/galera/r/galera_kill_ddl.result b/mysql-test/suite/galera/r/galera_kill_ddl.result index 8dd36497dfb..c5b3e31b80e 100644 --- a/mysql-test/suite/galera/r/galera_kill_ddl.result +++ b/mysql-test/suite/galera/r/galera_kill_ddl.result @@ -1,11 +1,17 @@ +connection node_1; SET GLOBAL wsrep_provider_options = 'pc.ignore_sb=true'; CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB; +connection node_2; Killing server ... +connection node_1; ALTER TABLE t1 ADD COLUMN f2 INTEGER; +connection node_2; +connection node_2a; SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='t1'; COUNT(*) = 2 1 SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; VARIABLE_VALUE = 2 1 +connection node_1; DROP TABLE t1; diff --git a/mysql-test/suite/galera/r/galera_kill_smallchanges.result b/mysql-test/suite/galera/r/galera_kill_smallchanges.result index 8409740a035..bcd7d6fd15d 100644 --- a/mysql-test/suite/galera/r/galera_kill_smallchanges.result +++ b/mysql-test/suite/galera/r/galera_kill_smallchanges.result @@ -1,11 +1,17 @@ +connection node_1; SET GLOBAL wsrep_provider_options = 'pc.ignore_sb=true'; CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB; +connection node_2; Killing server ... +connection node_1; INSERT INTO t1 VALUES (1); +connection node_2; +connection node_2a; SELECT COUNT(*) = 1 FROM t1; COUNT(*) = 1 1 SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; VARIABLE_VALUE = 2 1 +connection node_1; DROP TABLE t1; diff --git a/mysql-test/suite/galera/r/galera_lock_table.result b/mysql-test/suite/galera/r/galera_lock_table.result index 16e9037a4de..c15f61d298e 100644 --- a/mysql-test/suite/galera/r/galera_lock_table.result +++ b/mysql-test/suite/galera/r/galera_lock_table.result @@ -1,8 +1,11 @@ CREATE TABLE t1 (id INT PRIMARY KEY) ENGINE=InnoDB; CREATE TABLE t2 (id INT PRIMARY KEY) ENGINE=InnoDB; +connection node_2; LOCK TABLE t1 READ; +connection node_1; INSERT INTO t1 VALUES (1); INSERT INTO t2 VALUES (1); +connection node_2a; SET SESSION wsrep_sync_wait=0; SELECT COUNT(*) = 0 FROM t1; COUNT(*) = 0 @@ -10,6 +13,7 @@ COUNT(*) = 0 SELECT COUNT(*) = 0 FROM t2; COUNT(*) = 0 1 +connection node_2; UNLOCK TABLES; SELECT COUNT(*) = 1 FROM t1; COUNT(*) = 1 diff --git a/mysql-test/suite/galera/r/galera_log_bin.result b/mysql-test/suite/galera/r/galera_log_bin.result index 4772f347375..576a72eb55f 100644 --- a/mysql-test/suite/galera/r/galera_log_bin.result +++ b/mysql-test/suite/galera/r/galera_log_bin.result @@ -3,12 +3,14 @@ INSERT INTO t1 VALUES (1); CREATE TABLE t2 (id INT) ENGINE=InnoDB; INSERT INTO t2 VALUES (1); INSERT INTO t2 VALUES (1); +connection node_2; SELECT COUNT(*) = 1 FROM t1; COUNT(*) = 1 1 SELECT COUNT(*) = 2 FROM t2; COUNT(*) = 2 1 +connection node_1; ALTER TABLE t1 ADD COLUMN f2 INTEGER; FLUSH LOGS; SHOW BINLOG EVENTS IN 'mysqld-bin.000002' LIMIT 4,18; @@ -31,6 +33,7 @@ mysqld-bin.000002 # Write_rows_v1 # # table_id: # flags: STMT_END_F mysqld-bin.000002 # Xid # # COMMIT /* xid=# */ mysqld-bin.000002 # Gtid # # GTID 0-1-6 mysqld-bin.000002 # Query # # use `test`; ALTER TABLE t1 ADD COLUMN f2 INTEGER +connection node_2; SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1'; COUNT(*) = 2 1 @@ -56,4 +59,5 @@ mysqld-bin.000003 # Gtid # # GTID 0-1-6 mysqld-bin.000003 # Query # # use `test`; ALTER TABLE t1 ADD COLUMN f2 INTEGER DROP TABLE t1; DROP TABLE t2; +connection node_1; RESET MASTER; diff --git a/mysql-test/suite/galera/r/galera_many_indexes.result b/mysql-test/suite/galera/r/galera_many_indexes.result index ab6eec550a1..59d0194687f 100644 --- a/mysql-test/suite/galera/r/galera_many_indexes.result +++ b/mysql-test/suite/galera/r/galera_many_indexes.result @@ -63,6 +63,7 @@ CREATE UNIQUE INDEX i3 ON t1(f1); CREATE UNIQUE INDEX i2 ON t1(f1); CREATE UNIQUE INDEX i1 ON t1(f1); INSERT INTO t1 VALUES (REPEAT('a', 767)); +connection node_2; SELECT COUNT(*) = 1 FROM t1; COUNT(*) = 1 1 @@ -91,6 +92,7 @@ INSERT INTO t1 VALUES (REPEAT('b', 767)); ANALYZE TABLE t1; Table Op Msg_type Msg_text test.t1 analyze status OK +connection node_1; SELECT COUNT(*) = 2 FROM t1; COUNT(*) = 2 1 @@ -98,6 +100,7 @@ ANALYZE TABLE t1; Table Op Msg_type Msg_text test.t1 analyze status OK DELETE FROM t1 WHERE f1 = REPEAT('b', 767); +connection node_1; SET AUTOCOMMIT=OFF; START TRANSACTION; SELECT COUNT(*) = 1 FROM t1; @@ -108,16 +111,23 @@ ROLLBACK; SELECT COUNT(*) = 1 FROM t1; COUNT(*) = 1 1 +connection node_2; START TRANSACTION; SET AUTOCOMMIT=OFF; SELECT COUNT(*) = 1 FROM t1; COUNT(*) = 1 1 +connection node_1; START TRANSACTION; +connection node_2; START TRANSACTION; +connection node_1; UPDATE t1 SET f1 = REPEAT('e', 767); +connection node_2; UPDATE t1 SET f1 = REPEAT('f', 767); +connection node_1; COMMIT; +connection node_2; COMMIT; ERROR 40001: Deadlock found when trying to get lock; try restarting transaction DROP TABLE t1; diff --git a/mysql-test/suite/galera/r/galera_mdl_race.result b/mysql-test/suite/galera/r/galera_mdl_race.result index 535f20de7f1..0c83ead931e 100644 --- a/mysql-test/suite/galera/r/galera_mdl_race.result +++ b/mysql-test/suite/galera/r/galera_mdl_race.result @@ -2,24 +2,32 @@ CREATE TABLE t1 (f1 INTEGER PRIMARY KEY, f2 CHAR(1)); CREATE TABLE t2 (f1 INTEGER PRIMARY KEY, f2 CHAR(1)); INSERT INTO t1 VALUES (1, 'a'); INSERT INTO t1 VALUES (2, 'a'); +connection node_1; SET AUTOCOMMIT=ON; START TRANSACTION; UPDATE t1 SET f2 = 'b' WHERE f1 = 1; +connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1; +connection node_1a; LOCK TABLE t2 WRITE; +connection node_1; SET GLOBAL DEBUG = "d,sync.wsrep_before_mdl_wait"; Warnings: Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead SELECT * FROM t2;; +connection node_1a; SET GLOBAL DEBUG = "d,sync.wsrep_after_BF_victim_lock"; Warnings: Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead +connection node_2; UPDATE t1 SET f2 = 'c' WHERE f1 = 1; +connection node_1a; SET GLOBAL DEBUG = ""; Warnings: Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead SET DEBUG_SYNC = "now SIGNAL signal.wsrep_before_mdl_wait"; SET DEBUG_SYNC = "now SIGNAL signal.wsrep_after_BF_victim_lock"; UNLOCK TABLES; +connection node_1; ERROR 40001: Deadlock found when trying to get lock; try restarting transaction SELECT COUNT(*) = 1 FROM t1 WHERE f2 = 'a'; COUNT(*) = 1 @@ -27,6 +35,7 @@ COUNT(*) = 1 SELECT COUNT(*) = 1 FROM t1 WHERE f2 = 'c'; COUNT(*) = 1 1 +connection node_2; SELECT COUNT(*) = 1 FROM t1 WHERE f2 = 'a'; COUNT(*) = 1 1 @@ -35,4 +44,5 @@ COUNT(*) = 1 1 DROP TABLE t1; DROP TABLE t2; +connection node_1a; SET DEBUG_SYNC = "RESET"; diff --git a/mysql-test/suite/galera/r/galera_multi_database.result b/mysql-test/suite/galera/r/galera_multi_database.result index a04eb484caf..f6242de663b 100644 --- a/mysql-test/suite/galera/r/galera_multi_database.result +++ b/mysql-test/suite/galera/r/galera_multi_database.result @@ -2,13 +2,17 @@ CREATE DATABASE d1; CREATE TABLE d1.t1(f1 INTEGER) ENGINE=InnoDB; CREATE DATABASE d2; CREATE TABLE d2.t1(f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; +connection node_1; SET AUTOCOMMIT=OFF; START TRANSACTION; INSERT INTO d1.t1 VALUES (1); +connection node_2; SET AUTOCOMMIT=OFF; START TRANSACTION; INSERT INTO d2.t1 VALUES (1); +connection node_1; COMMIT; +connection node_2; COMMIT; SELECT COUNT(*) = 1 FROM d1.t1; COUNT(*) = 1 @@ -16,6 +20,7 @@ COUNT(*) = 1 SELECT COUNT(*) = 1 FROM d2.t1; COUNT(*) = 1 1 +connection node_1; SELECT COUNT(*) = 1 FROM d1.t1; COUNT(*) = 1 1 diff --git a/mysql-test/suite/galera/r/galera_myisam_autocommit.result b/mysql-test/suite/galera/r/galera_myisam_autocommit.result index 3f8d93bae76..e9578a261e6 100644 --- a/mysql-test/suite/galera/r/galera_myisam_autocommit.result +++ b/mysql-test/suite/galera/r/galera_myisam_autocommit.result @@ -14,6 +14,7 @@ DELETE FROM t1 WHERE f1 = 9; DELETE FROM t2 WHERE f1 = 9; TRUNCATE TABLE t1; TRUNCATE TABLE t1; +connection node_2; SELECT COUNT(*) = 0 FROM t1; COUNT(*) = 0 1 diff --git a/mysql-test/suite/galera/r/galera_myisam_transactions.result b/mysql-test/suite/galera/r/galera_myisam_transactions.result index 284f92b414c..25796c309d1 100644 --- a/mysql-test/suite/galera/r/galera_myisam_transactions.result +++ b/mysql-test/suite/galera/r/galera_myisam_transactions.result @@ -7,6 +7,7 @@ START TRANSACTION; INSERT INTO t1 VALUES (1); INSERT INTO t2 VALUES (1); COMMIT; +connection node_2; SELECT COUNT(*) = 1 FROM t1; COUNT(*) = 1 1 @@ -16,12 +17,14 @@ COUNT(*) = 0 SELECT COUNT(*) = 0 FROM t2; COUNT(*) = 0 1 +connection node_1; START TRANSACTION; INSERT INTO t1 VALUES (1); INSERT INTO t2 VALUES (1); ROLLBACK; Warnings: Warning 1196 Some non-transactional changed tables couldn't be rolled back +connection node_2; SELECT COUNT(*) = 1 FROM t1; COUNT(*) = 1 1 diff --git a/mysql-test/suite/galera/r/galera_nopk_bit.result b/mysql-test/suite/galera/r/galera_nopk_bit.result index 5723dac42fd..7662c15c672 100644 --- a/mysql-test/suite/galera/r/galera_nopk_bit.result +++ b/mysql-test/suite/galera/r/galera_nopk_bit.result @@ -1,5 +1,6 @@ CREATE TABLE t1 (f1 BIT) ENGINE=InnoDB; INSERT INTO t1 VALUES (NULL),(0),(b'1'); +connection node_2; SELECT f1 IS NULL, f1 = b'1' FROM t1; f1 IS NULL f1 = b'1' 1 NULL @@ -8,19 +9,24 @@ f1 IS NULL f1 = b'1' DELETE FROM t1 WHERE f1 = b'1'; UPDATE t1 SET f1 = b'1' WHERE f1 IS NULL; UPDATE t1 SET f1 = 1 WHERE f1 = b'0'; +connection node_1; SELECT f1 IS NULL, f1 = b'1' FROM t1; f1 IS NULL f1 = b'1' 0 1 0 1 +connection node_1; CREATE TABLE t2 (f1 BIT) ENGINE=InnoDB; INSERT INTO t2 VALUES (NULL); SET AUTOCOMMIT=OFF; START TRANSACTION; UPDATE t2 SET f1 = 0 WHERE f1 IS NULL; +connection node_2; SET AUTOCOMMIT=OFF; START TRANSACTION; UPDATE t2 SET f1 = 1 WHERE f1 IS NULL; +connection node_1; COMMIT; +connection node_2; COMMIT; ERROR 40001: Deadlock found when trying to get lock; try restarting transaction DROP TABLE t1; diff --git a/mysql-test/suite/galera/r/galera_nopk_blob.result b/mysql-test/suite/galera/r/galera_nopk_blob.result index 7491b715ed2..a7570c2cfee 100644 --- a/mysql-test/suite/galera/r/galera_nopk_blob.result +++ b/mysql-test/suite/galera/r/galera_nopk_blob.result @@ -1,26 +1,32 @@ CREATE TABLE t1 (f1 BLOB) ENGINE=InnoDB; INSERT INTO t1 VALUES (NULL),('abc'); +connection node_2; SELECT f1 FROM t1; f1 NULL abc DELETE FROM t1 WHERE f1 IS NULL; UPDATE t1 SET f1 = 'xyz' WHERE f1 = 'abc'; +connection node_1; SELECT COUNT(*) = 1 FROM t1; COUNT(*) = 1 1 SELECT f1 = 'abc' FROM t1; f1 = 'abc' 0 +connection node_1; CREATE TABLE t2 (f1 BLOB) ENGINE=InnoDB; INSERT INTO t2 VALUES (NULL); SET AUTOCOMMIT=OFF; START TRANSACTION; UPDATE t2 SET f1 = 'abc' WHERE f1 IS NULL; +connection node_2; SET AUTOCOMMIT=OFF; START TRANSACTION; UPDATE t2 SET f1 = 'xyz' WHERE f1 IS NULL; +connection node_1; COMMIT; +connection node_2; COMMIT; ERROR 40001: Deadlock found when trying to get lock; try restarting transaction DROP TABLE t1; diff --git a/mysql-test/suite/galera/r/galera_nopk_large_varchar.result b/mysql-test/suite/galera/r/galera_nopk_large_varchar.result index abca81e15b0..08cffaa2bd1 100644 --- a/mysql-test/suite/galera/r/galera_nopk_large_varchar.result +++ b/mysql-test/suite/galera/r/galera_nopk_large_varchar.result @@ -1,11 +1,13 @@ CREATE TABLE t1 (f1 VARCHAR(8000)) ENGINE=InnoDB; INSERT INTO t1 VALUES (NULL),(CONCAT(REPEAT('x', 7999), 'a')); +connection node_2; SELECT LENGTH(f1) FROM t1; LENGTH(f1) NULL 8000 DELETE FROM t1 WHERE f1 IS NULL; UPDATE t1 SET f1 = CONCAT(REPEAT('x', 7999), 'b') WHERE f1 = CONCAT(REPEAT('x', 7999), 'a'); +connection node_1; SELECT COUNT(*) = 1 FROM t1; COUNT(*) = 1 1 @@ -15,15 +17,19 @@ LENGTH(f1) = 8000 SELECT f1 = CONCAT(REPEAT('x', 7999), 'b') FROM t1; f1 = CONCAT(REPEAT('x', 7999), 'b') 1 +connection node_1; CREATE TABLE t2 (f1 BLOB) ENGINE=InnoDB; INSERT INTO t2 VALUES (CONCAT(REPEAT('x', 7999), 'a')); SET AUTOCOMMIT=OFF; START TRANSACTION; UPDATE t2 SET f1 = 'abc' WHERE f1 = CONCAT(REPEAT('x', 7999), 'a'); +connection node_2; SET AUTOCOMMIT=OFF; START TRANSACTION; UPDATE t2 SET f1 = 'xyz' WHERE f1 = CONCAT(REPEAT('x', 7999), 'a'); +connection node_1; COMMIT; +connection node_2; COMMIT; ERROR 40001: Deadlock found when trying to get lock; try restarting transaction DROP TABLE t1; diff --git a/mysql-test/suite/galera/r/galera_nopk_unicode.result b/mysql-test/suite/galera/r/galera_nopk_unicode.result index 68d049a2146..882a91a29b5 100644 --- a/mysql-test/suite/galera/r/galera_nopk_unicode.result +++ b/mysql-test/suite/galera/r/galera_nopk_unicode.result @@ -3,16 +3,21 @@ f1 VARCHAR(255), KEY (f1) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO t1 VALUES ('текÑÑ‚'); +connection node_2; SELECT f1 = 'текÑÑ‚' FROM t1; f1 = 'текÑÑ‚' 1 +connection node_1; SET AUTOCOMMIT=OFF; START TRANSACTION; UPDATE t1 SET f1 = 'текÑÑ‚2'; +connection node_2; SET AUTOCOMMIT=OFF; START TRANSACTION; UPDATE t1 SET f1 = 'текÑÑ‚3'; +connection node_1; COMMIT; +connection node_2; COMMIT; ERROR 40001: Deadlock found when trying to get lock; try restarting transaction SELECT f1 = 'текÑÑ‚2' FROM t1; diff --git a/mysql-test/suite/galera/r/galera_parallel_apply_lock_table.result b/mysql-test/suite/galera/r/galera_parallel_apply_lock_table.result index db4528ac22d..bf4b056a6e4 100644 --- a/mysql-test/suite/galera/r/galera_parallel_apply_lock_table.result +++ b/mysql-test/suite/galera/r/galera_parallel_apply_lock_table.result @@ -1,9 +1,12 @@ CREATE TABLE t1 (id INT PRIMARY KEY) ENGINE=InnoDB; CREATE TABLE t2 (id INT PRIMARY KEY) ENGINE=InnoDB; +connection node_2; SET GLOBAL wsrep_slave_threads = 2; LOCK TABLE t1 READ; +connection node_1; INSERT INTO t1 VALUES (1); INSERT INTO t2 VALUES (1); +connection node_2a; SET SESSION wsrep_sync_wait=0; SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE STATE LIKE '%applied write set%'; COUNT(*) = 1 @@ -17,7 +20,9 @@ COUNT(*) = 0 SELECT COUNT(*) = 0 FROM t2; COUNT(*) = 0 1 +connection node_2; UNLOCK TABLES; +connection node_2a; SET SESSION wsrep_sync_wait = 7;; SELECT COUNT(*) = 1 FROM t1; COUNT(*) = 1 diff --git a/mysql-test/suite/galera/r/galera_pc_ignore_sb.result b/mysql-test/suite/galera/r/galera_pc_ignore_sb.result index 5fcccfe2d59..e02ec0a3179 100644 --- a/mysql-test/suite/galera/r/galera_pc_ignore_sb.result +++ b/mysql-test/suite/galera/r/galera_pc_ignore_sb.result @@ -1,5 +1,10 @@ +connection node_1; +connection node_2; +connection node_1; SET GLOBAL wsrep_provider_options = 'pc.ignore_sb=true'; +connection node_2; Killing server ... +connection node_1; CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB; INSERT INTO t1 VALUES (1); DROP TABLE t1; @@ -10,3 +15,4 @@ SELECT VARIABLE_VALUE = 'ON' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABL VARIABLE_VALUE = 'ON' 1 SET GLOBAL wsrep_cluster_address = ''; +connection node_2; diff --git a/mysql-test/suite/galera/r/galera_pk_bigint_signed.result b/mysql-test/suite/galera/r/galera_pk_bigint_signed.result index a3075994657..27bb3c50733 100644 --- a/mysql-test/suite/galera/r/galera_pk_bigint_signed.result +++ b/mysql-test/suite/galera/r/galera_pk_bigint_signed.result @@ -3,23 +3,29 @@ INSERT INTO t1 VALUES (-9223372036854775808, 'min'), (9223372036854775807, 'max') ; +connection node_2; SELECT * FROM t1; f1 f2 -9223372036854775808 min 9223372036854775807 max UPDATE t1 SET f2 = CONCAT(f2, '_'); +connection node_1; SELECT * FROM t1; f1 f2 -9223372036854775808 min_ 9223372036854775807 max_ +connection node_1; SET AUTOCOMMIT=OFF; START TRANSACTION; UPDATE t1 SET f2 = 'foo' WHERE f1 = -9223372036854775808; +connection node_2; SET AUTOCOMMIT=OFF; START TRANSACTION; UPDATE t1 SET f2 = 'bar' WHERE f1 = -9223372036854775808; +connection node_1; COMMIT; SET AUTOCOMMIT=ON; +connection node_2; COMMIT; ERROR 40001: Deadlock found when trying to get lock; try restarting transaction SET AUTOCOMMIT=ON; diff --git a/mysql-test/suite/galera/r/galera_pk_bigint_unsigned.result b/mysql-test/suite/galera/r/galera_pk_bigint_unsigned.result index 441926e949c..f586fe2f589 100644 --- a/mysql-test/suite/galera/r/galera_pk_bigint_unsigned.result +++ b/mysql-test/suite/galera/r/galera_pk_bigint_unsigned.result @@ -2,21 +2,27 @@ CREATE TABLE t1 (f1 BIGINT UNSIGNED PRIMARY KEY, f2 VARCHAR(5)) ENGINE=InnoDB; INSERT INTO t1 VALUES (18446744073709551615, 'max') ; +connection node_2; SELECT f1 = 18446744073709551615 FROM t1; f1 = 18446744073709551615 1 UPDATE t1 SET f2 = CONCAT(f2, '_'); +connection node_1; SELECT f1 = 18446744073709551615 FROM t1; f1 = 18446744073709551615 1 +connection node_1; SET AUTOCOMMIT=OFF; START TRANSACTION; UPDATE t1 SET f2 = 'foo' WHERE f1 = 18446744073709551615; +connection node_2; SET AUTOCOMMIT=OFF; START TRANSACTION; UPDATE t1 SET f2 = 'bar' WHERE f1 = 18446744073709551615; +connection node_1; COMMIT; SET AUTOCOMMIT=ON; +connection node_2; COMMIT; ERROR 40001: Deadlock found when trying to get lock; try restarting transaction SET AUTOCOMMIT=ON; diff --git a/mysql-test/suite/galera/r/galera_prepared_statement.result b/mysql-test/suite/galera/r/galera_prepared_statement.result index de5ac9c760a..d32d412ff46 100644 --- a/mysql-test/suite/galera/r/galera_prepared_statement.result +++ b/mysql-test/suite/galera/r/galera_prepared_statement.result @@ -11,6 +11,7 @@ EXECUTE st1; EXECUTE st2; EXECUTE st3; EXECUTE st4; +connection node_2; SELECT COUNT(*) = 1 FROM t1; COUNT(*) = 1 1 @@ -25,8 +26,10 @@ COUNT(*) = 1 1 ALTER TABLE t1 ADD COLUMN f2 INTEGER; ALTER TABLE t1 DROP COLUMN f1; +connection node_1; EXECUTE st1; ERROR 22007: Incorrect integer value: 'abc' for column 'f2' at row 1 +connection node_1; DROP TABLE t1; DROP TABLE t2; DROP TABLE t3; diff --git a/mysql-test/suite/galera/r/galera_query_cache.result b/mysql-test/suite/galera/r/galera_query_cache.result index 502d8a58e9c..e64c9438646 100644 --- a/mysql-test/suite/galera/r/galera_query_cache.result +++ b/mysql-test/suite/galera/r/galera_query_cache.result @@ -1,5 +1,6 @@ CREATE TABLE t1 (id INT PRIMARY KEY) ENGINE=InnoDB; INSERT INTO t1 VALUES (1); +connection node_2; RESET QUERY CACHE; FLUSH STATUS; SELECT COUNT(*) FROM t1; @@ -14,7 +15,9 @@ COUNT(*) SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'Qcache_hits'; VARIABLE_VALUE = 1 1 +connection node_1; INSERT INTO t1 VALUES (2); +connection node_2; FLUSH STATUS; SELECT VARIABLE_VALUE = 0 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'Qcache_queries_in_cache'; VARIABLE_VALUE = 0 @@ -34,7 +37,9 @@ COUNT(*) SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'Qcache_hits'; VARIABLE_VALUE = 1 1 +connection node_1; ALTER TABLE t1 ADD COLUMN f2 INTEGER; +connection node_2; FLUSH STATUS; SELECT VARIABLE_VALUE = 0 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'Qcache_queries_in_cache'; VARIABLE_VALUE = 0 diff --git a/mysql-test/suite/galera/r/galera_query_cache_sync_wait.result b/mysql-test/suite/galera/r/galera_query_cache_sync_wait.result index 856abbb43be..2a37d62698a 100644 --- a/mysql-test/suite/galera/r/galera_query_cache_sync_wait.result +++ b/mysql-test/suite/galera/r/galera_query_cache_sync_wait.result @@ -1,5 +1,6 @@ CREATE TABLE t1 (id INT PRIMARY KEY AUTO_INCREMENT) ENGINE=InnoDB; INSERT INTO t1 VALUES (1); +connection node_2; SET GLOBAL wsrep_provider_options = "repl.causal_read_timeout=PT1S"; SET GLOBAL DEBUG = "d,sync.wsrep_apply_cb"; Warnings: @@ -8,7 +9,9 @@ SET SESSION wsrep_sync_wait = 7; SELECT MAX(id) FROM t1; MAX(id) 1 +connection node_1; INSERT INTO t1 VALUES (2); +connection node_2; SELECT MAX(id) FROM t1; ERROR HY000: Lock wait timeout exceeded; try restarting transaction SET GLOBAL DEBUG = ""; @@ -21,14 +24,18 @@ SET GLOBAL DEBUG = "d,sync.wsrep_apply_cb"; Warnings: Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead SET DEBUG_SYNC = "RESET"; +connection node_1; INSERT INTO t1 VALUES (3); +connection node_2; SELECT MAX(id) FROM t1; ERROR HY000: Lock wait timeout exceeded; try restarting transaction SET GLOBAL DEBUG = ""; Warnings: Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead SET DEBUG_SYNC = "now SIGNAL signal.wsrep_apply_cb"; +connection node_1; INSERT INTO t1 VALUES (4); +connection node_2; SET SESSION wsrep_sync_wait = 7; SELECT MAX(id) FROM t1; MAX(id) @@ -44,13 +51,18 @@ VARIABLE_VALUE = 1 SET GLOBAL DEBUG = "d,sync.wsrep_apply_cb"; Warnings: Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead +connection node_1; INSERT INTO t1 VALUES (5); +connection node_2; SET SESSION wsrep_sync_wait = 7; SELECT MAX(id) FROM t1 ; +connect node_2a, 127.0.0.1, root, , test, $NODE_MYPORT_2; +connection node_2a; SET GLOBAL DEBUG = ""; Warnings: Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead SET DEBUG_SYNC = "now SIGNAL signal.wsrep_apply_cb"; +connection node_2; MAX(id) 5 SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME = 'Qcache_hits'; diff --git a/mysql-test/suite/galera/r/galera_read_only.result b/mysql-test/suite/galera/r/galera_read_only.result index 82736c5f4ba..4c2523f8691 100644 --- a/mysql-test/suite/galera/r/galera_read_only.result +++ b/mysql-test/suite/galera/r/galera_read_only.result @@ -1,15 +1,21 @@ CREATE TABLE t1 (id INT PRIMARY KEY) ENGINE=InnoDB; +connection node_2; SET GLOBAL read_only=TRUE; +connection node_1; INSERT INTO t1 VALUES (1); +connection node_2; SELECT COUNT(*) = 1 FROM t1; COUNT(*) = 1 1 CREATE USER foo@localhost; # Open connection to node 2 using 'foo' user. +connect foo_node_2,127.0.0.1,foo,,test,$port_2,; # Connect with foo_node_2 +connection foo_node_2; INSERT INTO t1 VALUES (2); ERROR HY000: The MariaDB server is running with the --read-only option so it cannot execute this statement +connection node_2; SELECT COUNT(*) = 1 FROM t1; COUNT(*) = 1 1 diff --git a/mysql-test/suite/galera/r/galera_repl_key_format_flat16.result b/mysql-test/suite/galera/r/galera_repl_key_format_flat16.result index 4acf0143f8b..2470f59c497 100644 --- a/mysql-test/suite/galera/r/galera_repl_key_format_flat16.result +++ b/mysql-test/suite/galera/r/galera_repl_key_format_flat16.result @@ -1,13 +1,16 @@ +connection node_1; SET GLOBAL wsrep_provider_options = 'repl.key_format=FLAT16'; CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; INSERT INTO t1 VALUES (123); CREATE TABLE t2 (f1 VARCHAR(256)) ENGINE=InnoDB; INSERT INTO t2 VALUES (REPEAT('a', 256)); +connection node_2; SELECT COUNT(*) = 1 FROM t1; COUNT(*) = 1 1 UPDATE t1 SET f1 = 234; UPDATE t2 SET f1 = REPEAT('b', 256); +connection node_1; SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 234; COUNT(*) = 1 1 diff --git a/mysql-test/suite/galera/r/galera_repl_max_ws_size.result b/mysql-test/suite/galera/r/galera_repl_max_ws_size.result index 6e245b44462..00980181824 100644 --- a/mysql-test/suite/galera/r/galera_repl_max_ws_size.result +++ b/mysql-test/suite/galera/r/galera_repl_max_ws_size.result @@ -1,3 +1,4 @@ +connection node_1; CREATE TABLE t1 (f1 VARCHAR(512)) ENGINE=InnoDB; SET GLOBAL wsrep_provider_options = 'repl.max_ws_size=512'; INSERT INTO t1 VALUES (REPEAT('a', 512)); diff --git a/mysql-test/suite/galera/r/galera_restart_nochanges.result b/mysql-test/suite/galera/r/galera_restart_nochanges.result index accace97826..380a4812da1 100644 --- a/mysql-test/suite/galera/r/galera_restart_nochanges.result +++ b/mysql-test/suite/galera/r/galera_restart_nochanges.result @@ -1,5 +1,10 @@ +connection node_1; +connection node_2; +connection node_1; CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB; INSERT INTO t1 VALUES (1); +connection node_2; +connection node_2a; SELECT COUNT(*) = 1 FROM t1; COUNT(*) = 1 1 diff --git a/mysql-test/suite/galera/r/galera_roles.result b/mysql-test/suite/galera/r/galera_roles.result index c0cdbc0e338..1617f0d7b51 100644 --- a/mysql-test/suite/galera/r/galera_roles.result +++ b/mysql-test/suite/galera/r/galera_roles.result @@ -3,6 +3,7 @@ # # On node_1 +connection node_1; CREATE DATABASE test1; CREATE TABLE test1.t1 (a int, b int); CREATE TABLE test1.t2 (a int, b int); @@ -18,8 +19,11 @@ GRANT EXECUTE ON PROCEDURE test1.pr1 TO role1; GRANT SELECT ON test1.t1 TO role1; GRANT SELECT (a) ON test1.t2 TO role1; # Open connections to the 2 nodes using 'foo' user. +connect foo_node_1,127.0.0.1,foo,,test,$port_1,; +connect foo_node_2,127.0.0.1,foo,,test,$port_2,; # Connect with foo_node_1 +connection foo_node_1; SHOW GRANTS; Grants for foo@localhost GRANT role1 TO 'foo'@'localhost' @@ -55,6 +59,7 @@ pr1 pr1 # Connect with foo_node_2 +connection foo_node_2; SHOW GRANTS; Grants for foo@localhost GRANT role1 TO 'foo'@'localhost' @@ -93,13 +98,16 @@ pr1 # # # Connect with node_1 +connection node_1; REVOKE EXECUTE ON PROCEDURE test1.pr1 FROM role1; # Connect with foo_node_1 +connection foo_node_1; CALL test1.pr1(); ERROR 42000: execute command denied to user 'foo'@'localhost' for routine 'test1.pr1' # Connect with foo_node_2 +connection foo_node_2; CALL test1.pr1(); ERROR 42000: execute command denied to user 'foo'@'localhost' for routine 'test1.pr1' # @@ -107,9 +115,11 @@ ERROR 42000: execute command denied to user 'foo'@'localhost' for routine 'test1 # # Connect with node_1 +connection node_1; DROP ROLE role1; # Connect with foo_node_1 +connection foo_node_1; FLUSH TABLES; SELECT * FROM mysql.roles_mapping; ERROR 42000: SELECT command denied to user 'foo'@'localhost' for table 'roles_mapping' @@ -131,6 +141,7 @@ CURRENT_ROLE() role1 # Connect with foo_node_2 +connection foo_node_2; FLUSH TABLES; SELECT * FROM mysql.roles_mapping; ERROR 42000: SELECT command denied to user 'foo'@'localhost' for table 'roles_mapping' @@ -150,7 +161,11 @@ NULL SELECT CURRENT_ROLE(); CURRENT_ROLE() role1 +disconnect foo_node_2; # Connect with node_1 +connection node_1; DROP USER foo@localhost; DROP DATABASE test1; +disconnect node_2; +disconnect node_1; # End of test diff --git a/mysql-test/suite/galera/r/galera_rsu_error.result b/mysql-test/suite/galera/r/galera_rsu_error.result index bfe41390d1d..5c16e34b492 100644 --- a/mysql-test/suite/galera/r/galera_rsu_error.result +++ b/mysql-test/suite/galera/r/galera_rsu_error.result @@ -1,5 +1,6 @@ CREATE TABLE t1 (f1 INTEGER) Engine=InnoDB; INSERT INTO t1 VALUES (1), (1); +connection node_2; SET SESSION wsrep_OSU_method = "RSU"; ALTER TABLE t1 ADD PRIMARY KEY (f1); ERROR 23000: Duplicate entry '1' for key 'PRIMARY' @@ -8,6 +9,7 @@ SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE TABLE_NAME = COUNT(*) = 0 1 INSERT INTO t1 VALUES (1); +connection node_1; SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE TABLE_NAME = 't1'; COUNT(*) = 0 1 @@ -15,6 +17,7 @@ SELECT COUNT(*) = 3 FROM t1; COUNT(*) = 3 1 INSERT INTO t1 VALUES (1); +connection node_2; SELECT COUNT(3) = 4 FROM t1; COUNT(3) = 4 1 diff --git a/mysql-test/suite/galera/r/galera_rsu_simple.result b/mysql-test/suite/galera/r/galera_rsu_simple.result index 4c2780a2933..d0ddcfb4d64 100644 --- a/mysql-test/suite/galera/r/galera_rsu_simple.result +++ b/mysql-test/suite/galera/r/galera_rsu_simple.result @@ -1,17 +1,21 @@ CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) Engine=InnoDB; +connection node_2; SET SESSION wsrep_OSU_method = "RSU"; ALTER TABLE t1 ADD COLUMN f2 INTEGER; SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1'; COUNT(*) = 2 1 +connection node_1; SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1'; COUNT(*) = 1 1 INSERT INTO t1 VALUES (1); +connection node_2; SELECT COUNT(*) = 1 FROM t1; COUNT(*) = 1 1 INSERT INTO t1 (f1) VALUES (2); +connection node_1; SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1'; COUNT(*) = 1 1 diff --git a/mysql-test/suite/galera/r/galera_rsu_wsrep_desync.result b/mysql-test/suite/galera/r/galera_rsu_wsrep_desync.result index 62e327ffdee..2b2b80ee91c 100644 --- a/mysql-test/suite/galera/r/galera_rsu_wsrep_desync.result +++ b/mysql-test/suite/galera/r/galera_rsu_wsrep_desync.result @@ -1,10 +1,14 @@ +connection node_1; CREATE TABLE t1 (f1 INTEGER) Engine=InnoDB; SET GLOBAL wsrep_desync=1; SET wsrep_OSU_method=RSU; SET DEBUG_SYNC = 'alter_table_before_open_tables WAIT_FOR continue'; ALTER TABLE t1 ADD COLUMN f2 INTEGER;; +connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1; +connection node_1a; SET GLOBAL wsrep_desync=0; SET DEBUG_SYNC= 'now SIGNAL continue'; +connection node_1; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( @@ -17,6 +21,7 @@ wsrep_desync OFF SET wsrep_OSU_method=TOI; DROP TABLE t1; SET DEBUG_SYNC= 'RESET'; +connection node_1; CREATE TABLE t1 (f1 INTEGER) Engine=InnoDB; SET GLOBAL wsrep_desync=0; Warnings: @@ -24,10 +29,12 @@ Warning 1231 'wsrep_desync' is already OFF. SET wsrep_OSU_method=RSU; SET DEBUG_SYNC = 'alter_table_before_open_tables WAIT_FOR continue'; ALTER TABLE t1 ADD COLUMN f2 INTEGER;; +connection node_1a; SET GLOBAL wsrep_desync=1; ERROR HY000: Operation 'desync' failed for SET GLOBAL wsrep_desync=1 SET GLOBAL wsrep_desync=0; SET DEBUG_SYNC= 'now SIGNAL continue'; +connection node_1; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( @@ -39,4 +46,5 @@ DROP TABLE t1; SET DEBUG_SYNC= 'RESET'; CALL mtr.add_suppression("Protocol violation"); CALL mtr.add_suppression("desync failed"); +connection node_2; CALL mtr.add_suppression("Protocol violation"); diff --git a/mysql-test/suite/galera/r/galera_sbr.result b/mysql-test/suite/galera/r/galera_sbr.result index 0bf6cc7c9d3..61a58c9cb89 100644 --- a/mysql-test/suite/galera/r/galera_sbr.result +++ b/mysql-test/suite/galera/r/galera_sbr.result @@ -1,3 +1,4 @@ +connection node_1; SET SESSION binlog_format = 'STATEMENT'; Warnings: Warning 1105 MariaDB Galera does not support binlog format: STATEMENT @@ -7,8 +8,10 @@ SET SESSION binlog_format = 'MIXED'; Warnings: Warning 1105 MariaDB Galera does not support binlog format: MIXED INSERT INTO t1 VALUES (2); +connection node_2; SELECT COUNT(*) = 2 FROM t1; COUNT(*) = 2 1 DROP TABLE t1; +connection node_1; SET GLOBAL binlog_format = 'ROW'; diff --git a/mysql-test/suite/galera/r/galera_sbr_binlog.result b/mysql-test/suite/galera/r/galera_sbr_binlog.result index 0bf6cc7c9d3..61a58c9cb89 100644 --- a/mysql-test/suite/galera/r/galera_sbr_binlog.result +++ b/mysql-test/suite/galera/r/galera_sbr_binlog.result @@ -1,3 +1,4 @@ +connection node_1; SET SESSION binlog_format = 'STATEMENT'; Warnings: Warning 1105 MariaDB Galera does not support binlog format: STATEMENT @@ -7,8 +8,10 @@ SET SESSION binlog_format = 'MIXED'; Warnings: Warning 1105 MariaDB Galera does not support binlog format: MIXED INSERT INTO t1 VALUES (2); +connection node_2; SELECT COUNT(*) = 2 FROM t1; COUNT(*) = 2 1 DROP TABLE t1; +connection node_1; SET GLOBAL binlog_format = 'ROW'; diff --git a/mysql-test/suite/galera/r/galera_serializable.result b/mysql-test/suite/galera/r/galera_serializable.result index 90fe628e505..e81c3911b7d 100644 --- a/mysql-test/suite/galera/r/galera_serializable.result +++ b/mysql-test/suite/galera/r/galera_serializable.result @@ -1,27 +1,37 @@ +connection node_1; CREATE TABLE t1 (id INT PRIMARY KEY, f2 INTEGER) ENGINE=InnoDB; SET AUTOCOMMIT=OFF; SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE; START TRANSACTION; SELECT * FROM t1; id f2 +connection node_2; INSERT INTO t1 VALUES (1,1); +connection node_1; SELECT * FROM t1; ERROR 40001: Deadlock found when trying to get lock; try restarting transaction ROLLBACK; DELETE FROM t1; +connection node_1; INSERT INTO t1 VALUES (1,1); START TRANSACTION; SELECT * FROM t1; id f2 1 1 +connection node_2; UPDATE t1 SET f2 = 2; +connection node_1; UPDATE t1 SET f2 = 3; ERROR 40001: Deadlock found when trying to get lock; try restarting transaction ROLLBACK; DELETE FROM t1; +connection node_1; START TRANSACTION; +connection node_1; INSERT INTO t1 VALUES (1,1); +connection node_2; INSERT INTO t1 VALUES (1,2); +connection node_1; COMMIT; ERROR 40001: Deadlock found when trying to get lock; try restarting transaction DROP TABLE t1; diff --git a/mysql-test/suite/galera/r/galera_server.result b/mysql-test/suite/galera/r/galera_server.result index ef81bf376b0..cc08b826e82 100644 --- a/mysql-test/suite/galera/r/galera_server.result +++ b/mysql-test/suite/galera/r/galera_server.result @@ -1,20 +1,26 @@ +connection node_1; # On node_1 CREATE SERVER s1 FOREIGN DATA WRAPPER mysql OPTIONS (HOST 'foo'); +connection node_2; # On node_2 SELECT * FROM mysql.servers; Server_name Host Db Username Password Port Socket Wrapper Owner s1 foo 3306 mysql ALTER SERVER s1 OPTIONS (HOST 'bar'); +connection node_1; # On node_1 SELECT * FROM mysql.servers; Server_name Host Db Username Password Port Socket Wrapper Owner s1 bar 3306 mysql DROP SERVER s1; +connection node_2; # On node_2 SELECT COUNT(*)=0 FROM mysql.servers; COUNT(*)=0 1 +disconnect node_2; +disconnect node_1; # End of test diff --git a/mysql-test/suite/galera/r/galera_split_brain.result b/mysql-test/suite/galera/r/galera_split_brain.result index 615615040fe..9c5952cfa28 100644 --- a/mysql-test/suite/galera/r/galera_split_brain.result +++ b/mysql-test/suite/galera/r/galera_split_brain.result @@ -1,5 +1,11 @@ call mtr.add_suppression("WSREP: TO isolation failed for: "); +connection node_1; +connection node_1; +connection node_2; +connection node_2; Killing server ... +connection node_1; CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB; ERROR 40001: Deadlock found when trying to get lock; try restarting transaction SET GLOBAL wsrep_cluster_address = ''; +connect node_2a, 127.0.0.1, root, , test, $NODE_MYPORT_2; diff --git a/mysql-test/suite/galera/r/galera_sql_log_bin_zero.result b/mysql-test/suite/galera/r/galera_sql_log_bin_zero.result index c15a24e481f..14407c917a1 100644 --- a/mysql-test/suite/galera/r/galera_sql_log_bin_zero.result +++ b/mysql-test/suite/galera/r/galera_sql_log_bin_zero.result @@ -3,10 +3,12 @@ SET SESSION sql_log_bin = 0; INSERT INTO t1 VALUES (1); SET SESSION sql_log_bin = 1; INSERT INTO t1 VALUES (2); +connection node_2; SELECT COUNT(*) = 2 FROM t1; COUNT(*) = 2 1 SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 1; COUNT(*) = 1 1 +connection node_1; DROP TABLE t1; diff --git a/mysql-test/suite/galera/r/galera_ssl.result b/mysql-test/suite/galera/r/galera_ssl.result index 569c3c607d5..022d06319b8 100644 --- a/mysql-test/suite/galera/r/galera_ssl.result +++ b/mysql-test/suite/galera/r/galera_ssl.result @@ -6,6 +6,7 @@ VARIABLE_VALUE = 2 1 CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) Engine=InnoDB; INSERT INTO t1 VALUES (1); +connection node_2; SELECT VARIABLE_VALUE = 'Synced' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_state_comment'; VARIABLE_VALUE = 'Synced' 1 diff --git a/mysql-test/suite/galera/r/galera_ssl_compression.result b/mysql-test/suite/galera/r/galera_ssl_compression.result index f25b614d139..333d646376c 100644 --- a/mysql-test/suite/galera/r/galera_ssl_compression.result +++ b/mysql-test/suite/galera/r/galera_ssl_compression.result @@ -4,19 +4,23 @@ VARIABLE_VALUE = 'Synced' SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; VARIABLE_VALUE = 2 1 +connection node_2; SELECT VARIABLE_VALUE = 'Synced' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_state_comment'; VARIABLE_VALUE = 'Synced' 1 SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; VARIABLE_VALUE = 2 1 +connection node_1; SET GLOBAL wsrep_provider_options = "socket.ssl_compression=No"; ERROR HY000: Incorrect arguments to SET CREATE TABLE t1 (f1 VARCHAR(333) PRIMARY KEY, f2 BLOB) Engine=InnoDB; INSERT INTO t1 VALUES (REPEAT('a', 333), REPEAT('b', 65535)); +connection node_2; SELECT COUNT(*) = 1 FROM t1 WHERE f1 = REPEAT('a', 333) AND f2 = REPEAT('b', 65535); COUNT(*) = 1 1 +connection node_1; DROP TABLE t1; CALL mtr.add_suppression("Unknown parameter 'socket\.ssl_compression'"); CALL mtr.add_suppression("Set options returned 7"); diff --git a/mysql-test/suite/galera/r/galera_sst_mysqldump.result b/mysql-test/suite/galera/r/galera_sst_mysqldump.result index e35c4055f45..5c0d9a45d41 100644 --- a/mysql-test/suite/galera/r/galera_sst_mysqldump.result +++ b/mysql-test/suite/galera/r/galera_sst_mysqldump.result @@ -1,4 +1,5 @@ Setting SST method to mysqldump ... +CREATE USER 'sst'; GRANT ALL PRIVILEGES ON *.* TO 'sst'; SET GLOBAL wsrep_sst_auth = 'sst:'; SET GLOBAL wsrep_sst_method = 'mysqldump'; diff --git a/mysql-test/suite/galera/r/galera_sst_mysqldump_with_key.result b/mysql-test/suite/galera/r/galera_sst_mysqldump_with_key.result index 7d30b356aa9..227e1c15444 100644 --- a/mysql-test/suite/galera/r/galera_sst_mysqldump_with_key.result +++ b/mysql-test/suite/galera/r/galera_sst_mysqldump_with_key.result @@ -1,4 +1,5 @@ Setting SST method to mysqldump ... +CREATE USER 'sst'; GRANT ALL PRIVILEGES ON *.* TO 'sst'; SET GLOBAL wsrep_sst_auth = 'sst:'; SET GLOBAL wsrep_sst_method = 'mysqldump'; diff --git a/mysql-test/suite/galera/r/galera_status_cluster.result b/mysql-test/suite/galera/r/galera_status_cluster.result index d7cf671cb10..ad92a51b775 100644 --- a/mysql-test/suite/galera/r/galera_status_cluster.result +++ b/mysql-test/suite/galera/r/galera_status_cluster.result @@ -1,9 +1,11 @@ +connection node_1; SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; VARIABLE_VALUE = 2 1 SELECT VARIABLE_VALUE = 'Primary' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status'; VARIABLE_VALUE = 'Primary' 1 +connection node_2; SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; VARIABLE_VALUE = 2 1 diff --git a/mysql-test/suite/galera/r/galera_status_local_index.result b/mysql-test/suite/galera/r/galera_status_local_index.result index 4e886ac8921..8c36b60cc5f 100644 --- a/mysql-test/suite/galera/r/galera_status_local_index.result +++ b/mysql-test/suite/galera/r/galera_status_local_index.result @@ -1,6 +1,9 @@ +connection node_1; CREATE TABLE wsrep_local_indexes (wsrep_local_index INTEGER); INSERT INTO wsrep_local_indexes VALUES ((SELECT variable_value FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE variable_name = 'wsrep_local_index')); +connection node_2; INSERT INTO wsrep_local_indexes VALUES ((SELECT variable_value FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE variable_name = 'wsrep_local_index')); +connection node_1; SELECT COUNT(*) = 2 FROM wsrep_local_indexes; COUNT(*) = 2 1 diff --git a/mysql-test/suite/galera/r/galera_suspend_slave.result b/mysql-test/suite/galera/r/galera_suspend_slave.result index 02904812dd5..380ecb395c3 100644 --- a/mysql-test/suite/galera/r/galera_suspend_slave.result +++ b/mysql-test/suite/galera/r/galera_suspend_slave.result @@ -1,9 +1,16 @@ +connection node_1; +connection node_2; +connection node_1; CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; +connection node_2; +disconnect node_2; +connection node_1; Suspending node_2 ... INSERT INTO t1 VALUES (1); Got one of the listed errors Resuming node_2 ... INSERT INTO t1 VALUES (1); +connection node_2a; SELECT COUNT(*) = 1 FROM t1; COUNT(*) = 1 1 diff --git a/mysql-test/suite/galera/r/galera_sync_wait_show.result b/mysql-test/suite/galera/r/galera_sync_wait_show.result index 2f030c26bb8..4a73a573041 100644 --- a/mysql-test/suite/galera/r/galera_sync_wait_show.result +++ b/mysql-test/suite/galera/r/galera_sync_wait_show.result @@ -1,38 +1,53 @@ +connection node_2; SET SESSION wsrep_sync_wait = 1; +connection node_1; CREATE DATABASE db1; +connection node_2; SHOW CREATE DATABASE db1; Database Create Database db1 CREATE DATABASE `db1` /*!40100 DEFAULT CHARACTER SET latin1 */ DROP DATABASE db1; +connection node_1; CREATE PROCEDURE p1 () SELECT 1 FROM DUAL; +connection node_2; SHOW CREATE PROCEDURE p1; Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation p1 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`() SELECT 1 FROM DUAL latin1 latin1_swedish_ci latin1_swedish_ci DROP PROCEDURE p1; +connection node_1; CREATE PROCEDURE p1 () SELECT 1 FROM DUAL; +connection node_2; SHOW PROCEDURE CODE p1; Pos Instruction 0 stmt 0 "SELECT 1 FROM DUAL" DROP PROCEDURE p1; +connection node_1; CREATE FUNCTION f1 () RETURNS INTEGER RETURN 123; +connection node_2; SHOW CREATE FUNCTION f1; Function sql_mode Create Function character_set_client collation_connection Database Collation f1 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `f1`() RETURNS int(11) RETURN 123 latin1 latin1_swedish_ci latin1_swedish_ci DROP FUNCTION f1; +connection node_1; CREATE FUNCTION f1 () RETURNS INTEGER RETURN 123; +connection node_2; SHOW FUNCTION CODE f1; Pos Instruction 0 freturn 3 123 DROP FUNCTION f1; +connection node_1; CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB; CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW SET NEW.f1 = 'a'; +connection node_2; SHOW CREATE TRIGGER tr1; Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation tr1 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW SET NEW.f1 = 'a' latin1 latin1_swedish_ci latin1_swedish_ci DROP TABLE t1; +connection node_1; CREATE EVENT event1 ON SCHEDULE AT '2038-01-01 23:59:59' DO SELECT 1; +connection node_2; SHOW CREATE EVENT event1; Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation event1 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `event1` ON SCHEDULE AT '2038-01-01 23:59:59' ON COMPLETION NOT PRESERVE DISABLE ON SLAVE DO SELECT 1 latin1 latin1_swedish_ci latin1_swedish_ci diff --git a/mysql-test/suite/galera/r/galera_toi_alter_auto_increment.result b/mysql-test/suite/galera/r/galera_toi_alter_auto_increment.result index f91415323ec..8a86dfd11e2 100644 --- a/mysql-test/suite/galera/r/galera_toi_alter_auto_increment.result +++ b/mysql-test/suite/galera/r/galera_toi_alter_auto_increment.result @@ -1,40 +1,54 @@ +connection node_1; CREATE TABLE ten (f1 INTEGER) ENGINE=InnoDB; INSERT INTO ten VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10); CREATE TABLE t1 (f1 INTEGER AUTO_INCREMENT PRIMARY KEY, f2 INTEGER) ENGINE=InnoDB; INSERT INTO t1 (f2) SELECT 1 FROM ten; +connection node_2; INSERT INTO t1 (f2) SELECT 1 FROM ten; ALTER TABLE t1 AUTO_INCREMENT = 1000; INSERT INTO t1 (f2) SELECT 1 FROM ten; +connection node_1; INSERT INTO t1 (f2) SELECT 1 FROM ten; SELECT MIN(f1) >= 1000, COUNT(*) = 20, COUNT(DISTINCT f1) = 20 FROM t1 WHERE f1 >= 1000; MIN(f1) >= 1000 COUNT(*) = 20 COUNT(DISTINCT f1) = 20 1 1 1 +connection node_2; SELECT MIN(f1) >= 1000, COUNT(*) = 20, COUNT(DISTINCT f1) = 20 FROM t1 WHERE f1 >= 1000; MIN(f1) >= 1000 COUNT(*) = 20 COUNT(DISTINCT f1) = 20 1 1 1 +connection node_1; ALTER TABLE t1 AUTO_INCREMENT = 5; INSERT INTO t1 (f2) SELECT 1 FROM ten; +connection node_2; INSERT INTO t1 (f2) SELECT 1 FROM ten; SELECT MIN(f1) >= 1000, COUNT(*) = 40, COUNT(DISTINCT f1) = 40 FROM t1 WHERE f1 >= 1000; MIN(f1) >= 1000 COUNT(*) = 40 COUNT(DISTINCT f1) = 40 1 1 1 +connection node_1; SELECT MIN(f1) >= 1000, COUNT(*) = 40, COUNT(DISTINCT f1) = 40 FROM t1 WHERE f1 >= 1000; MIN(f1) >= 1000 COUNT(*) = 40 COUNT(DISTINCT f1) = 40 1 1 1 DROP TABLE t1; +connection node_1; SET GLOBAL wsrep_auto_increment_control = OFF; SET GLOBAL auto_increment_increment = 1; SET GLOBAL auto_increment_offset = 1; +connection node_2; SET GLOBAL wsrep_auto_increment_control = OFF; SET GLOBAL auto_increment_increment = 1; SET GLOBAL auto_increment_offset = 1; +connection node_1a; CREATE TABLE t1 (f1 INTEGER AUTO_INCREMENT PRIMARY KEY, f2 INTEGER) ENGINE=InnoDB; +connection node_2a; ALTER TABLE t1 AUTO_INCREMENT=100; +connection node_1a; INSERT INTO t1 (f2) SELECT 1 FROM ten; +connection node_2a; INSERT INTO t1 (f2) SELECT 1 FROM ten; SELECT MIN(f1) = 100, MAX(f1) = 119, COUNT(f1) = 20, COUNT(DISTINCT f1) = 20 FROM t1; MIN(f1) = 100 MAX(f1) = 119 COUNT(f1) = 20 COUNT(DISTINCT f1) = 20 1 1 1 1 +connection node_1a; SELECT MIN(f1) = 100, MAX(f1) = 119, COUNT(f1) = 20, COUNT(DISTINCT f1) = 20 FROM t1; MIN(f1) = 100 MAX(f1) = 119 COUNT(f1) = 20 COUNT(DISTINCT f1) = 20 1 1 1 1 diff --git a/mysql-test/suite/galera/r/galera_toi_ddl_locking.result b/mysql-test/suite/galera/r/galera_toi_ddl_locking.result index f0a51db14d3..68743c024a0 100644 --- a/mysql-test/suite/galera/r/galera_toi_ddl_locking.result +++ b/mysql-test/suite/galera/r/galera_toi_ddl_locking.result @@ -1,7 +1,9 @@ CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB; CREATE TABLE t2 (f1 INTEGER) ENGINE=InnoDB; +connection node_1; SET DEBUG_SYNC = 'alter_table_before_open_tables WAIT_FOR continue'; ALTER TABLE t1 ADD COLUMN f2 INTEGER;; +connection node_1a; SET SESSION wsrep_sync_wait = 0; SELECT COUNT(*) = 0 FROM t1; COUNT(*) = 0 @@ -15,6 +17,7 @@ SET AUTOCOMMIT=OFF; START TRANSACTION; INSERT INTO t2 VALUES (1); COMMIT;; +connection node_1b; SET SESSION wsrep_sync_wait = 0; SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE INFO = 'Commit'; COUNT(*) = 1 @@ -23,19 +26,24 @@ SELECT COUNT(*) = 0 FROM t2; COUNT(*) = 0 1 SET DEBUG_SYNC= 'now SIGNAL continue'; +connection node_1a; +connection node_1; SELECT COUNT(*) = 0 FROM t1; COUNT(*) = 0 1 SELECT COUNT(*) = 1 FROM t2; COUNT(*) = 1 1 +connection node_2; SELECT COUNT(*) = 0 FROM t1; COUNT(*) = 0 1 SELECT COUNT(*) = 1 FROM t2; COUNT(*) = 1 1 +connection node_1; SET DEBUG_SYNC= 'RESET'; +connection node_1b; SET DEBUG_SYNC= 'RESET'; DROP TABLE t1; DROP TABLE t2; diff --git a/mysql-test/suite/galera/r/galera_toi_ddl_nonconflicting.result b/mysql-test/suite/galera/r/galera_toi_ddl_nonconflicting.result index 41e693c2b19..3844fa97d82 100644 --- a/mysql-test/suite/galera/r/galera_toi_ddl_nonconflicting.result +++ b/mysql-test/suite/galera/r/galera_toi_ddl_nonconflicting.result @@ -1,6 +1,9 @@ CREATE TABLE t1 (f1 INTEGER PRIMARY KEY AUTO_INCREMENT, f2 INTEGER); +connection node_2; ALTER TABLE t1 ADD COLUMN f3 INTEGER; INSERT INTO t1 (f1, f2) VALUES (DEFAULT, 123);; +connection node_1; CREATE UNIQUE INDEX i1 ON t1(f2);; +connection node_2; INSERT INTO t1 (f1, f2) VALUES (DEFAULT, 234); SELECT COUNT(*) = 3 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1'; COUNT(*) = 3 @@ -11,6 +14,7 @@ COUNT(*) = 2 SELECT COUNT(*) = 2 FROM t1; COUNT(*) = 2 1 +connection node_1; SELECT COUNT(*) = 3 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1'; COUNT(*) = 3 1 diff --git a/mysql-test/suite/galera/r/galera_toi_ddl_sequential.result b/mysql-test/suite/galera/r/galera_toi_ddl_sequential.result index 9dfa433d49f..722bb9d9e12 100644 --- a/mysql-test/suite/galera/r/galera_toi_ddl_sequential.result +++ b/mysql-test/suite/galera/r/galera_toi_ddl_sequential.result @@ -1,9 +1,12 @@ CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; INSERT INTO t1 VALUES (1); +connection node_2; ALTER TABLE t1 ADD COLUMN f2 INTEGER; INSERT INTO t1 VALUES (2, 3); +connection node_1; ALTER TABLE t1 DROP COLUMN f2; INSERT INTO t1 VALUES (4); +connection node_2; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( @@ -18,6 +21,7 @@ f1 1 2 4 +connection node_1; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( diff --git a/mysql-test/suite/galera/r/galera_toi_ftwrl.result b/mysql-test/suite/galera/r/galera_toi_ftwrl.result index 594717c96ff..0f13e95b689 100644 --- a/mysql-test/suite/galera/r/galera_toi_ftwrl.result +++ b/mysql-test/suite/galera/r/galera_toi_ftwrl.result @@ -1,6 +1,9 @@ CREATE TABLE t1 (id INT PRIMARY KEY) ENGINE=InnoDB; +connection node_2; FLUSH TABLES WITH READ LOCK; +connection node_1; ALTER TABLE t1 ADD COLUMN f2 INTEGER; +connection node_2; UNLOCK TABLES; SHOW CREATE TABLE t1; Table Create Table diff --git a/mysql-test/suite/galera/r/galera_toi_lock_exclusive.result b/mysql-test/suite/galera/r/galera_toi_lock_exclusive.result index eac50e8853c..c13b689f82b 100644 --- a/mysql-test/suite/galera/r/galera_toi_lock_exclusive.result +++ b/mysql-test/suite/galera/r/galera_toi_lock_exclusive.result @@ -1,15 +1,20 @@ CREATE TABLE t1 (id INT PRIMARY KEY) ENGINE=InnoDB; INSERT INTO t1 VALUES (1); +connection node_2; SET AUTOCOMMIT=OFF; START TRANSACTION; INSERT INTO t1 VALUES (2); +connection node_2a; ALTER TABLE t1 ADD COLUMN f2 INTEGER, LOCK=EXCLUSIVE; +connection node_2; COMMIT; ERROR 40001: Deadlock found when trying to get lock; try restarting transaction +connection node_1; INSERT INTO t1 VALUES (2, 2); SELECT COUNT(*) = 2 FROM t1; COUNT(*) = 2 1 +connection node_2; INSERT INTO t1 VALUES (3, 3); SELECT COUNT(*) = 3 FROM t1; COUNT(*) = 3 diff --git a/mysql-test/suite/galera/r/galera_toi_lock_shared.result b/mysql-test/suite/galera/r/galera_toi_lock_shared.result index 36c38860688..950c4d83c70 100644 --- a/mysql-test/suite/galera/r/galera_toi_lock_shared.result +++ b/mysql-test/suite/galera/r/galera_toi_lock_shared.result @@ -1,10 +1,13 @@ CREATE TABLE t1 (id INT PRIMARY KEY) ENGINE=InnoDB; INSERT INTO t1 VALUES (1); +connection node_2; ALTER TABLE t1 ADD COLUMN f2 INTEGER, LOCK=SHARED; +connection node_1; INSERT INTO t1 VALUES (2, 2); SELECT COUNT(*) = 2 FROM t1; COUNT(*) = 2 1 +connection node_2; INSERT INTO t1 VALUES (3, 3); SELECT COUNT(*) = 3 FROM t1; COUNT(*) = 3 diff --git a/mysql-test/suite/galera/r/galera_truncate.result b/mysql-test/suite/galera/r/galera_truncate.result index eeeb6721d12..4f3d72dbca7 100644 --- a/mysql-test/suite/galera/r/galera_truncate.result +++ b/mysql-test/suite/galera/r/galera_truncate.result @@ -1,24 +1,31 @@ CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) Engine=InnoDB; INSERT INTO t1 VALUES (1); +connection node_2; TRUNCATE TABLE t1; SELECT COUNT(*) = 0 FROM t1; COUNT(*) = 0 1 +connection node_1; SELECT COUNT(*) = 0 FROM t1; COUNT(*) = 0 1 +connection node_2; CREATE TABLE t2 (f1 VARCHAR(255)) Engine=InnoDB; INSERT INTO t2 VALUES ('abc'); +connection node_1; TRUNCATE TABLE t2; +connection node_2; SELECT COUNT(*) = 0 FROM t2; COUNT(*) = 0 1 +connection node_1; CREATE TABLE t3 (f1 INTEGER AUTO_INCREMENT PRIMARY KEY) Engine=InnoDB; INSERT INTO t3 VALUES (DEFAULT),(DEFAULT),(DEFAULT),(DEFAULT),(DEFAULT); CREATE TABLE t4 (f1 INTEGER AUTO_INCREMENT PRIMARY KEY) Engine=InnoDB AUTO_INCREMENT=1234; INSERT INTO t4 VALUES (DEFAULT),(DEFAULT),(DEFAULT),(DEFAULT),(DEFAULT); TRUNCATE TABLE t3; TRUNCATE TABLE t4; +connection node_2; SELECT AUTO_INCREMENT = 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME IN ('t3', 't4'); AUTO_INCREMENT = 1 1 diff --git a/mysql-test/suite/galera/r/galera_truncate_temporary.result b/mysql-test/suite/galera/r/galera_truncate_temporary.result index 0bdc4e3632a..183ebd9d24a 100644 --- a/mysql-test/suite/galera/r/galera_truncate_temporary.result +++ b/mysql-test/suite/galera/r/galera_truncate_temporary.result @@ -4,8 +4,10 @@ TRUNCATE TABLE t1; SELECT COUNT(*) = 0 FROM t1; COUNT(*) = 0 1 +connection node_2; SELECT * FROM t1; ERROR 42S02: Table 'test.t1' doesn't exist +connection node_1; DROP TABLE t1; CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB; INSERT INTO t1 VALUES (1); @@ -21,12 +23,14 @@ TRUNCATE TABLE t1; SELECT COUNT(*) = 0 FROM t1; COUNT(*) = 0 1 +connection node_2; SELECT COUNT(*) = 1 FROM t1; COUNT(*) = 1 1 SELECT f1 = 1 FROM t1; f1 = 1 1 +connection node_1; DROP TABLE t1; SELECT COUNT(*) = 1 FROM t1; COUNT(*) = 1 @@ -38,18 +42,23 @@ TRUNCATE TABLE t1; SELECT COUNT(*) = 0 FROM t1; COUNT(*) = 0 1 +connection node_2; SELECT COUNT(*) = 0 FROM t1; COUNT(*) = 0 1 +connection node_1; DROP TABLE t1; +connection node_1; CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB; INSERT INTO t1 VALUES (1); CREATE TEMPORARY TABLE t1 (f1 INTEGER) ENGINE=InnoDB; INSERT INTO t1 VALUES (2); +connection node_2; TRUNCATE TABLE t1; SELECT COUNT(*) = 0 FROM t1; COUNT(*) = 0 1 +connection node_1; SELECT f1 = 2 FROM t1; f1 = 2 1 diff --git a/mysql-test/suite/galera/r/galera_unicode_identifiers.result b/mysql-test/suite/galera/r/galera_unicode_identifiers.result index 8bea105c77e..146cc052152 100644 --- a/mysql-test/suite/galera/r/galera_unicode_identifiers.result +++ b/mysql-test/suite/galera/r/galera_unicode_identifiers.result @@ -1,5 +1,7 @@ SET GLOBAL wsrep_sync_wait = 7; +connection node_2; SET GLOBAL wsrep_sync_wait = 7; +connection node_1; CREATE DATABASE `database with space`; USE `database with space`; CREATE TABLE `table with space` ( @@ -24,6 +26,7 @@ CREATE TABLE `втора таблица` ( KEY `първи индекÑ` (`първа колона`) ); INSERT INTO `втора таблица` VALUES (1, 1); +connection node_2; USE `database with space`; SELECT `second column with space` FROM `table with space`; second column with space @@ -37,6 +40,7 @@ SELECT `втора колона` FROM `втора таблица`; втора колона 1 SET GLOBAL wsrep_sync_wait = (SELECT @@wsrep_sync_wait); +connection node_1; DROP TABLE `database with space`.`table with space`; DROP TABLE `база`.`таблица`; DROP TABLE `втора база`.`втора таблица`; diff --git a/mysql-test/suite/galera/r/galera_unicode_pk.result b/mysql-test/suite/galera/r/galera_unicode_pk.result index d59615b2542..2711e44b7cb 100644 --- a/mysql-test/suite/galera/r/galera_unicode_pk.result +++ b/mysql-test/suite/galera/r/galera_unicode_pk.result @@ -2,16 +2,21 @@ CREATE TABLE t1 ( f1 VARCHAR(255) PRIMARY KEY ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO t1 VALUES ('текÑÑ‚'); +connection node_2; SELECT f1 = 'текÑÑ‚' FROM t1; f1 = 'текÑÑ‚' 1 +connection node_1; SET AUTOCOMMIT=OFF; START TRANSACTION; UPDATE t1 SET f1 = 'текÑÑ‚2'; +connection node_2; SET AUTOCOMMIT=OFF; START TRANSACTION; UPDATE t1 SET f1 = 'текÑÑ‚3'; +connection node_1; COMMIT; +connection node_2; COMMIT; ERROR 40001: Deadlock found when trying to get lock; try restarting transaction SELECT f1 = 'текÑÑ‚2' FROM t1; @@ -20,11 +25,15 @@ f1 = 'текÑÑ‚2' SELECT f1 = 'текÑÑ‚2' FROM t1 WHERE f1 = 'текÑÑ‚2'; f1 = 'текÑÑ‚2' 1 +connection node_2; START TRANSACTION; INSERT INTO t1 VALUES ('текÑÑ‚4'); +connection node_1; START TRANSACTION; INSERT INTO t1 VALUES ('текÑÑ‚4'); +connection node_2; COMMIT; +connection node_1; COMMIT; ERROR 40001: Deadlock found when trying to get lock; try restarting transaction COMMIT; diff --git a/mysql-test/suite/galera/r/galera_update_limit.result b/mysql-test/suite/galera/r/galera_update_limit.result index c26eb1c29f6..20a94e6f504 100644 --- a/mysql-test/suite/galera/r/galera_update_limit.result +++ b/mysql-test/suite/galera/r/galera_update_limit.result @@ -1,8 +1,11 @@ +connection node_1; CREATE TABLE ten (f1 INTEGER) Engine=InnoDB; INSERT INTO ten VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10); CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) Engine=InnoDB; INSERT INTO t1 SELECT f1 FROM ten ORDER BY RAND(); +connection node_2; UPDATE IGNORE t1 SET f1 = FLOOR(1 + (RAND() * 10)) ORDER BY RAND() LIMIT 5; +connection node_1; sum_matches 1 max_matches @@ -10,7 +13,9 @@ max_matches DROP TABLE t1; CREATE TABLE t2 (f1 INTEGER) Engine=InnoDB; INSERT INTO t2 SELECT f1 FROM ten ORDER BY RAND(); +connection node_2; UPDATE IGNORE t2 SET f1 = FLOOR(1 + (RAND() * 10)) ORDER BY RAND() LIMIT 5; +connection node_1; sum_matches 1 DROP TABLE t2; diff --git a/mysql-test/suite/galera/r/galera_v1_row_events.result b/mysql-test/suite/galera/r/galera_v1_row_events.result index a6ab62350b1..b0ea2293119 100644 --- a/mysql-test/suite/galera/r/galera_v1_row_events.result +++ b/mysql-test/suite/galera/r/galera_v1_row_events.result @@ -1,9 +1,12 @@ CREATE TABLE t1 (f1 INT PRIMARY KEY) ENGINE=InnoDB; INSERT INTO t1 VALUES (1); +connection node_2; SELECT COUNT(*) = 1 FROM t1; COUNT(*) = 1 1 +connection node_1; UPDATE t1 SET f1 = 2 WHERE f1 = 1; +connection node_2; SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 2; COUNT(*) = 1 1 diff --git a/mysql-test/suite/galera/r/galera_var_OSU_method.result b/mysql-test/suite/galera/r/galera_var_OSU_method.result index 9a07873e1b9..18e8bd2271a 100644 --- a/mysql-test/suite/galera/r/galera_var_OSU_method.result +++ b/mysql-test/suite/galera/r/galera_var_OSU_method.result @@ -1,16 +1,24 @@ CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) Engine=InnoDB; +connection node_1; SET SESSION wsrep_OSU_method = "RSU"; SET DEBUG_SYNC = 'alter_table_before_open_tables WAIT_FOR continue'; ALTER TABLE t1 ADD COLUMN f2 INTEGER;; +connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1; +connection node_1a; SET GLOBAL wsrep_OSU_method = "TOI"; SET DEBUG_SYNC= 'now SIGNAL continue'; +connection node_1; SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1'; COUNT(*) = 2 1 +connection node_2; SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1'; COUNT(*) = 1 1 +connection node_1; SET SESSION wsrep_OSU_method = "TOI"; +connection node_1; SET DEBUG_SYNC= 'RESET'; +connection node_1a; SET DEBUG_SYNC= 'RESET'; DROP TABLE t1; diff --git a/mysql-test/suite/galera/r/galera_var_OSU_method2.result b/mysql-test/suite/galera/r/galera_var_OSU_method2.result index 08f2e6aa0d8..0e3751645a8 100644 --- a/mysql-test/suite/galera/r/galera_var_OSU_method2.result +++ b/mysql-test/suite/galera/r/galera_var_OSU_method2.result @@ -1,19 +1,26 @@ CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) Engine=InnoDB; +connection node_1; SET SESSION wsrep_OSU_method = "TOI"; SET DEBUG_SYNC = 'alter_table_before_open_tables WAIT_FOR continue'; ALTER TABLE t1 ADD COLUMN f2 INTEGER;; +connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1; +connection node_1a; SET SESSION wsrep_sync_wait = 0; SET GLOBAL wsrep_OSU_method = "RSU"; SET DEBUG_SYNC= 'now SIGNAL continue'; +connection node_1; SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1'; COUNT(*) = 2 1 INSERT INTO t1 VALUES (1,2); +connection node_2; SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1'; COUNT(*) = 2 1 INSERT INTO t1 VALUES (3,4); +connection node_1; SET GLOBAL wsrep_OSU_method = "TOI"; DROP TABLE t1; SET DEBUG_SYNC= 'RESET'; +connection node_1a; SET DEBUG_SYNC= 'RESET'; diff --git a/mysql-test/suite/galera/r/galera_var_auto_inc_control_off.result b/mysql-test/suite/galera/r/galera_var_auto_inc_control_off.result index 92b69fbbaa7..15bbe7c508a 100644 --- a/mysql-test/suite/galera/r/galera_var_auto_inc_control_off.result +++ b/mysql-test/suite/galera/r/galera_var_auto_inc_control_off.result @@ -1,9 +1,12 @@ +connection node_1; SET GLOBAL wsrep_auto_increment_control = OFF; SET GLOBAL auto_increment_increment = 1; SET GLOBAL auto_increment_offset = 1; +connection node_2; SET GLOBAL wsrep_auto_increment_control = OFF; SET GLOBAL auto_increment_increment = 1; SET GLOBAL auto_increment_offset = 1; +connection node_1a; SELECT @@auto_increment_increment = 1; @@auto_increment_increment = 1 1 @@ -18,6 +21,7 @@ t1 CREATE TABLE `t1` ( `node` varchar(10) DEFAULT NULL, PRIMARY KEY (`f1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 +connection node_2a; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( @@ -25,6 +29,7 @@ t1 CREATE TABLE `t1` ( `node` varchar(10) DEFAULT NULL, PRIMARY KEY (`f1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 +connection node_1a; SELECT @@auto_increment_increment = 1; @@auto_increment_increment = 1 1 @@ -37,6 +42,7 @@ INSERT INTO t1 (node) VALUES ('node1'); SELECT f1 FROM t1; f1 1 +connection node_2a; SELECT @@auto_increment_increment = 1; @@auto_increment_increment = 1 1 @@ -49,12 +55,16 @@ INSERT INTO t1 (node) VALUES ('node2'); SELECT f1 FROM t1; f1 1 +connection node_1a; COMMIT; +connection node_2a; COMMIT; ERROR 40001: Deadlock found when trying to get lock; try restarting transaction +connection node_1a; SELECT * FROM t1; f1 node 1 node1 +connection node_2a; SELECT * FROM t1; f1 node 1 node1 diff --git a/mysql-test/suite/galera/r/galera_var_certify_nonPK_off.result b/mysql-test/suite/galera/r/galera_var_certify_nonPK_off.result index e6f37792569..b13302d3ecd 100644 --- a/mysql-test/suite/galera/r/galera_var_certify_nonPK_off.result +++ b/mysql-test/suite/galera/r/galera_var_certify_nonPK_off.result @@ -1,11 +1,14 @@ SET GLOBAL wsrep_certify_nonPK = OFF; +connection node_2; SET GLOBAL wsrep_certify_nonPK = OFF; +connection node_1; CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB /* Table has no primary key */; CREATE TABLE t2 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; INSERT INTO t1 VALUES (1), (2); Got one of the listed errors INSERT INTO t2 VALUES (1), (2); UPDATE t2 SET f1 = 3 WHERE f1 = 1; +connection node_2; SELECT COUNT(*) = 0 FROM t1; COUNT(*) = 0 1 @@ -15,7 +18,9 @@ COUNT(*) = 2 SELECT COUNT(*) = 1 FROM t2 WHERE f1 = 3; COUNT(*) = 1 1 +connection node_1; SET GLOBAL wsrep_certify_nonPK = 1; +connection node_2; SET GLOBAL wsrep_certify_nonPK = 1; DROP TABLE t1; DROP TABLE t2; diff --git a/mysql-test/suite/galera/r/galera_var_cluster_address.result b/mysql-test/suite/galera/r/galera_var_cluster_address.result index f8bd869f8fe..09971c08580 100644 --- a/mysql-test/suite/galera/r/galera_var_cluster_address.result +++ b/mysql-test/suite/galera/r/galera_var_cluster_address.result @@ -1,3 +1,6 @@ +connection node_1; +connection node_2; +connection node_1; SET GLOBAL wsrep_cluster_address = 'foo://'; SET SESSION wsrep_sync_wait=0; SELECT * FROM INFORMATION_SCHEMA.GLOBAL_STATUS; @@ -14,19 +17,24 @@ wsrep_local_state 0 SHOW STATUS LIKE 'wsrep_local_state_comment'; Variable_name Value wsrep_local_state_comment Initialized +connection node_2; SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; VARIABLE_VALUE = 1 1 SELECT VARIABLE_VALUE = 'Primary' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status'; VARIABLE_VALUE = 'Primary' 1 +connection node_1; +connection node_2; SET GLOBAL wsrep_cluster_address = @@wsrep_cluster_address; +connection node_1; SELECT VARIABLE_VALUE = 'Primary' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status'; VARIABLE_VALUE = 'Primary' 1 SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; VARIABLE_VALUE = 2 1 +connection node_1; SET GLOBAL wsrep_cluster_address = 'gcomm://192.0.2.1'; SELECT * FROM INFORMATION_SCHEMA.GLOBAL_STATUS; ERROR 08S01: WSREP has not yet prepared node for application use @@ -42,7 +50,10 @@ wsrep_local_state 0 SHOW STATUS LIKE 'wsrep_local_state_comment'; Variable_name Value wsrep_local_state_comment Initialized +connection node_1; +connection node_2; SET GLOBAL wsrep_cluster_address = @@wsrep_cluster_address; +connection node_1; SELECT VARIABLE_VALUE = 'Primary' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status'; VARIABLE_VALUE = 'Primary' 1 diff --git a/mysql-test/suite/galera/r/galera_var_desync_on.result b/mysql-test/suite/galera/r/galera_var_desync_on.result index 0b5f34688b7..383e077f775 100644 --- a/mysql-test/suite/galera/r/galera_var_desync_on.result +++ b/mysql-test/suite/galera/r/galera_var_desync_on.result @@ -1,8 +1,10 @@ CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB; INSERT INTO t1 VALUES (1); +connection node_2; SET GLOBAL wsrep_provider_options = 'gcs.fc_limit=1'; SET GLOBAL wsrep_desync = TRUE; FLUSH TABLES WITH READ LOCK; +connection node_1; INSERT INTO t1 VALUES (2); INSERT INTO t1 VALUES (3); INSERT INTO t1 VALUES (4); @@ -12,6 +14,7 @@ INSERT INTO t1 VALUES (7); INSERT INTO t1 VALUES (8); INSERT INTO t1 VALUES (9); INSERT INTO t1 VALUES (10); +connection node_2; SET SESSION wsrep_sync_wait = 0; SELECT COUNT(*) = 1 FROM t1; COUNT(*) = 1 @@ -22,7 +25,9 @@ SET SESSION wsrep_sync_wait = 1; SELECT COUNT(*) = 10 FROM t1; COUNT(*) = 10 1 +connection node_1; INSERT INTO t1 VALUES (11); +connection node_2; SELECT COUNT(*) = 11 FROM t1; COUNT(*) = 11 1 diff --git a/mysql-test/suite/galera/r/galera_var_dirty_reads.result b/mysql-test/suite/galera/r/galera_var_dirty_reads.result index 6d703c8cf95..6b3a3ec0eb5 100644 --- a/mysql-test/suite/galera/r/galera_var_dirty_reads.result +++ b/mysql-test/suite/galera/r/galera_var_dirty_reads.result @@ -1,3 +1,4 @@ +connection node_2; CREATE TABLE t1(i INT) ENGINE=INNODB; INSERT INTO t1 VALUES(1); SELECT * FROM t1; @@ -18,8 +19,11 @@ SET @@session.wsrep_dirty_reads=ON; SELECT * FROM t1; i 1 +connection node_1; SELECT * FROM t1; i 1 DROP TABLE t1; +disconnect node_2; +disconnect node_1; # End of test diff --git a/mysql-test/suite/galera/r/galera_var_fkchecks.result b/mysql-test/suite/galera/r/galera_var_fkchecks.result index 342212a5241..8b1b913a584 100644 --- a/mysql-test/suite/galera/r/galera_var_fkchecks.result +++ b/mysql-test/suite/galera/r/galera_var_fkchecks.result @@ -12,6 +12,7 @@ INSERT INTO parent VALUES (1); INSERT INTO child VALUES (1,1); SET SESSION foreign_key_checks = 0; INSERT INTO child VALUES (2,2); +connection node_2; SELECT COUNT(*) = 1 FROM child WHERE id = 2; COUNT(*) = 1 1 @@ -19,6 +20,7 @@ INSERT INTO child VALUES (3,3); ERROR 23000: Cannot add or update a child row: a foreign key constraint fails (`test`.`child`, CONSTRAINT `child_ibfk_1` FOREIGN KEY (`parent_id`) REFERENCES `parent` (`id`)) SET SESSION foreign_key_checks = 0; DELETE FROM parent; +connection node_1; SELECT COUNT(*) = 0 FROM parent; COUNT(*) = 0 1 diff --git a/mysql-test/suite/galera/r/galera_var_gtid_domain_id.result b/mysql-test/suite/galera/r/galera_var_gtid_domain_id.result index 8e84236d5bf..1a8733e2e1a 100644 --- a/mysql-test/suite/galera/r/galera_var_gtid_domain_id.result +++ b/mysql-test/suite/galera/r/galera_var_gtid_domain_id.result @@ -1,4 +1,5 @@ # On node_1 +connection node_1; list of GTID variables : gtid_domain_id 1 gtid_binlog_pos @@ -8,6 +9,7 @@ gtid_slave_pos wsrep_gtid_domain_id 9999 wsrep_gtid_mode 1 # On node_2 +connection node_2; list of GTID variables : gtid_domain_id 2 gtid_binlog_pos @@ -17,6 +19,7 @@ gtid_slave_pos wsrep_gtid_domain_id 9999 wsrep_gtid_mode 1 # On node_1 +connection node_1; CREATE TABLE t1(i INT) ENGINE=INNODB; CREATE TABLE t2(i INT) ENGINE=MEMORY; INSERT INTO t1 VALUES(1); @@ -34,6 +37,7 @@ gtid_slave_pos wsrep_gtid_domain_id 9999 wsrep_gtid_mode 1 # On node_2 +connection node_2; SELECT * FROM t1; i 1 @@ -46,6 +50,7 @@ gtid_slave_pos wsrep_gtid_domain_id 9999 wsrep_gtid_mode 1 # On node_1 +connection node_1; INSERT INTO t2 VALUES(1); SELECT * FROM t2; i @@ -59,6 +64,7 @@ gtid_slave_pos wsrep_gtid_domain_id 9999 wsrep_gtid_mode 1 # On node_2 +connection node_2; SELECT * FROM t2; i list of GTID variables : @@ -70,5 +76,8 @@ gtid_slave_pos wsrep_gtid_domain_id 9999 wsrep_gtid_mode 1 # On node_1 +connection node_1; DROP TABLE t1, t2; +disconnect node_2; +disconnect node_1; # End of test diff --git a/mysql-test/suite/galera/r/galera_var_innodb_disallow_writes.result b/mysql-test/suite/galera/r/galera_var_innodb_disallow_writes.result index 912e45a14b1..5377a0af1b6 100644 --- a/mysql-test/suite/galera/r/galera_var_innodb_disallow_writes.result +++ b/mysql-test/suite/galera/r/galera_var_innodb_disallow_writes.result @@ -1,11 +1,16 @@ +connection node_1a; SET SESSION wsrep_sync_wait = 0; +connection node_1; CREATE TABLE t1 (f1 INTEGER) Engine=InnoDB; SET GLOBAL innodb_disallow_writes=ON; INSERT INTO t1 VALUES (1);; +connection node_1a; SET GLOBAL innodb_disallow_writes=OFF; +connection node_1; SELECT COUNT(*) = 1 FROM t1; COUNT(*) = 1 1 +connection node_2; SELECT COUNT(*) = 1 FROM t1; COUNT(*) = 1 1 diff --git a/mysql-test/suite/galera/r/galera_var_log_bin.result b/mysql-test/suite/galera/r/galera_var_log_bin.result index a6ab62350b1..b0ea2293119 100644 --- a/mysql-test/suite/galera/r/galera_var_log_bin.result +++ b/mysql-test/suite/galera/r/galera_var_log_bin.result @@ -1,9 +1,12 @@ CREATE TABLE t1 (f1 INT PRIMARY KEY) ENGINE=InnoDB; INSERT INTO t1 VALUES (1); +connection node_2; SELECT COUNT(*) = 1 FROM t1; COUNT(*) = 1 1 +connection node_1; UPDATE t1 SET f1 = 2 WHERE f1 = 1; +connection node_2; SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 2; COUNT(*) = 1 1 diff --git a/mysql-test/suite/galera/r/galera_var_max_ws_size.result b/mysql-test/suite/galera/r/galera_var_max_ws_size.result index d0bf7deafa5..71859ef82e0 100644 --- a/mysql-test/suite/galera/r/galera_var_max_ws_size.result +++ b/mysql-test/suite/galera/r/galera_var_max_ws_size.result @@ -1,3 +1,4 @@ +connection node_1; CREATE TABLE t1 (f1 INTEGER AUTO_INCREMENT PRIMARY KEY, f2 VARCHAR(1024)) Engine=InnoDB; SET GLOBAL wsrep_max_ws_size = 1024; INSERT INTO t1 VALUES (DEFAULT, REPEAT('X', 1024)); diff --git a/mysql-test/suite/galera/r/galera_var_mysql_replication_bundle.result b/mysql-test/suite/galera/r/galera_var_mysql_replication_bundle.result index f2a951c26b0..202633a020e 100644 --- a/mysql-test/suite/galera/r/galera_var_mysql_replication_bundle.result +++ b/mysql-test/suite/galera/r/galera_var_mysql_replication_bundle.result @@ -1,12 +1,17 @@ CREATE TABLE t1 (f1 INT PRIMARY KEY) Engine=InnoDB; SET GLOBAL wsrep_mysql_replication_bundle = 2; +connection node_1; INSERT INTO t1 VALUES (1); +connection node_2; SELECT COUNT(*) = 0 FROM t1; COUNT(*) = 0 0 +connection node_1; INSERT INTO t1 VALUES (2); +connection node_2; SELECT COUNT(*) = 2 FROM t1; COUNT(*) = 2 1 +connection node_1; SET GLOBAL wsrep_mysql_replication_bundle = 0; DROP TABLE t1; diff --git a/mysql-test/suite/galera/r/galera_var_node_address.result b/mysql-test/suite/galera/r/galera_var_node_address.result index fa88f4b3128..fe3b5613903 100644 --- a/mysql-test/suite/galera/r/galera_var_node_address.result +++ b/mysql-test/suite/galera/r/galera_var_node_address.result @@ -1,9 +1,14 @@ SELECT VARIABLE_VALUE = 4 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; VARIABLE_VALUE = 4 1 +connection node_1; CREATE TABLE t1 (f1 INTEGER); +connection node_2; INSERT INTO t1 VALUES (1); +connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3; +connection node_3; SELECT COUNT(*) = 1 FROM t1; COUNT(*) = 1 1 +connection node_1; DROP TABLE t1; diff --git a/mysql-test/suite/galera/r/galera_var_replicate_myisam_off.result b/mysql-test/suite/galera/r/galera_var_replicate_myisam_off.result index c8b79071d10..382466b1387 100644 --- a/mysql-test/suite/galera/r/galera_var_replicate_myisam_off.result +++ b/mysql-test/suite/galera/r/galera_var_replicate_myisam_off.result @@ -1,8 +1,10 @@ SET GLOBAL wsrep_replicate_myisam = FALSE; CREATE TABLE t1 (f1 INT PRIMARY KEY) Engine=MyISAM; INSERT INTO t1 VALUES (1); +connection node_2; SELECT COUNT(*) = 0 FROM t1; COUNT(*) = 0 1 +connection node_1; SET GLOBAL wsrep_replicate_myisam = 0; DROP TABLE t1; diff --git a/mysql-test/suite/galera/r/galera_var_replicate_myisam_on.result b/mysql-test/suite/galera/r/galera_var_replicate_myisam_on.result index 73a0576048b..bf5a09f6a77 100644 --- a/mysql-test/suite/galera/r/galera_var_replicate_myisam_on.result +++ b/mysql-test/suite/galera/r/galera_var_replicate_myisam_on.result @@ -1,17 +1,24 @@ +connection node_1; +connection node_1; SET GLOBAL wsrep_replicate_myisam = TRUE; +connection node_2; SET GLOBAL wsrep_replicate_myisam = TRUE; +connection node_1; CREATE TABLE t1 (f1 INT PRIMARY KEY) Engine=MyISAM; INSERT INTO t1 VALUES (1); INSERT INTO t1 VALUES (2), (3); INSERT INTO t1 SELECT 4 FROM DUAL UNION ALL SELECT 5 FROM DUAL; +connection node_2; SELECT COUNT(*) = 5 FROM t1; COUNT(*) = 5 1 DROP TABLE t1; +connection node_1; CREATE TABLE t1 (f1 INTEGER PRIMARY KEY, f2 VARCHAR(100)) ENGINE=MyISAM; INSERT INTO t1 VALUES (1, 'abc'),(2,'abc'), (3, 'xxx'); REPLACE INTO t1 VALUES (1, 'klm'), (2,'xyz'); REPLACE INTO t1 SELECT 3, 'yyy' FROM DUAL; +connection node_2; SELECT COUNT(*) = 3 FROM t1; COUNT(*) = 3 1 @@ -24,19 +31,26 @@ COUNT(*) = 1 SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 3 AND f2 = 'yyy'; COUNT(*) = 1 1 +connection node_1; UPDATE t1 SET f2 = 'zzz' WHERE f2 = 'yyy'; +connection node_2; SELECT COUNT(*) = 1 FROM t1 WHERE f2 = 'zzz'; COUNT(*) = 1 1 +connection node_1; DELETE FROM t1 WHERE f2 = 'zzz'; +connection node_2; SELECT COUNT(*) = 0 FROM t1 WHERE f2 = 'zzz'; COUNT(*) = 0 1 +connection node_1; TRUNCATE TABLE t1; +connection node_2; SELECT COUNT(*) = 0 FROM t1; COUNT(*) = 0 1 DROP TABLE t1; +connection node_1; CREATE TABLE t1 (f1 INTEGER) ENGINE=MyISAM; CREATE TABLE t2 (f1 INTEGER) ENGINE=InnoDB; SET AUTOCOMMIT=OFF; @@ -44,18 +58,21 @@ START TRANSACTION; INSERT INTO t1 VALUES (1); INSERT INTO t2 VALUES (1); COMMIT; +connection node_2; SELECT COUNT(*) = 1 FROM t1; COUNT(*) = 1 1 SELECT COUNT(*) = 1 FROM t2; COUNT(*) = 1 1 +connection node_1; START TRANSACTION; INSERT INTO t1 VALUES (2); INSERT INTO t2 VALUES (2); ROLLBACK; Warnings: Warning 1196 Some non-transactional changed tables couldn't be rolled back +connection node_2; SELECT COUNT(*) = 2 FROM t1; COUNT(*) = 2 1 @@ -64,15 +81,20 @@ COUNT(*) = 1 1 DROP TABLE t1; DROP TABLE t2; +connection node_1; CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=MyISAM; CREATE TABLE t2 (f2 INTEGER PRIMARY KEY) ENGINE=InnoDB; START TRANSACTION; INSERT INTO t1 VALUES (1); INSERT INTO t2 VALUES (1); +connection node_2; INSERT INTO t1 VALUES (1); ERROR 23000: Duplicate entry '1' for key 'PRIMARY' +connection node_1; COMMIT; DROP TABLE t1; DROP TABLE t2; +connection node_1; SET GLOBAL wsrep_replicate_myisam = 0; +connection node_2; SET GLOBAL wsrep_replicate_myisam = 0; diff --git a/mysql-test/suite/galera/r/galera_var_slave_threads.result b/mysql-test/suite/galera/r/galera_var_slave_threads.result index 603dfaeacc7..facc083544c 100644 --- a/mysql-test/suite/galera/r/galera_var_slave_threads.result +++ b/mysql-test/suite/galera/r/galera_var_slave_threads.result @@ -1,5 +1,7 @@ +connection node_1; CREATE TABLE t1 (f1 INT PRIMARY KEY) Engine=InnoDB; CREATE TABLE t2 (f1 INT AUTO_INCREMENT PRIMARY KEY) Engine=InnoDB; +connection node_2; SET GLOBAL wsrep_slave_threads = 0; Warnings: Warning 1292 Truncated incorrect wsrep_slave_threads value: '0' @@ -17,7 +19,9 @@ SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system use COUNT(*) = 1 1 SET GLOBAL wsrep_slave_threads = 64; +connection node_1; INSERT INTO t1 VALUES (1); +connection node_2; SELECT COUNT(*) = 1 FROM t1; COUNT(*) = 1 1 @@ -28,6 +32,7 @@ SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system use COUNT(*) = 1 1 SET GLOBAL wsrep_slave_threads = 1; +connection node_1; INSERT INTO t2 VALUES (DEFAULT); INSERT INTO t2 VALUES (DEFAULT); INSERT INTO t2 VALUES (DEFAULT); @@ -92,6 +97,7 @@ INSERT INTO t2 VALUES (DEFAULT); INSERT INTO t2 VALUES (DEFAULT); INSERT INTO t2 VALUES (DEFAULT); INSERT INTO t2 VALUES (DEFAULT); +connection node_2; SELECT COUNT(*) = 64 FROM t2; COUNT(*) = 64 1 @@ -107,7 +113,9 @@ DROP TABLE t2; # # lp:1372840 - Changing wsrep_slave_threads causes future connections to hang # +connection node_1; CREATE TABLE t1 (i INT AUTO_INCREMENT PRIMARY KEY) ENGINE=INNODB; +connection node_2; SET GLOBAL wsrep_slave_threads = 4; SET GLOBAL wsrep_slave_threads = 1; DROP TABLE t1; diff --git a/mysql-test/suite/galera/r/galera_var_sync_wait.result b/mysql-test/suite/galera/r/galera_var_sync_wait.result index f6136a4ddc4..40a6290374f 100644 --- a/mysql-test/suite/galera/r/galera_var_sync_wait.result +++ b/mysql-test/suite/galera/r/galera_var_sync_wait.result @@ -1,4 +1,6 @@ +connection node_1; CREATE TABLE t1 (f1 INT PRIMARY KEY) Engine=InnoDB; +connection node_2; SET GLOBAL wsrep_sync_wait = 1; SHOW TABLES LIKE '%t1'; Tables_in_test (%t1) @@ -6,15 +8,20 @@ t1 SELECT COUNT(*) = 0 FROM t1; COUNT(*) = 0 1 +connection node_1; CREATE TABLE t2 (f1 INT PRIMARY KEY) Engine=InnoDB; +connection node_2; SET GLOBAL wsrep_sync_wait = 4; INSERT INTO t2 VALUES (1); +connection node_1; CREATE TABLE t3 (f1 INT PRIMARY KEY) Engine=InnoDB; INSERT INTO t3 VALUES (1); +connection node_2; SET GLOBAL wsrep_sync_wait = 2; UPDATE t3 SET f1 = 2; affected rows: 1 info: Rows matched: 1 Changed: 1 Warnings: 0 +connection node_2; SET GLOBAL wsrep_sync_wait = 7; DROP TABLE t1; DROP TABLE t2; diff --git a/mysql-test/suite/galera/r/galera_var_wsrep_on_off.result b/mysql-test/suite/galera/r/galera_var_wsrep_on_off.result index 8b1c4ebf83b..36340f505ff 100644 --- a/mysql-test/suite/galera/r/galera_var_wsrep_on_off.result +++ b/mysql-test/suite/galera/r/galera_var_wsrep_on_off.result @@ -2,11 +2,14 @@ CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; INSERT INTO t1 VALUES (1); SET SESSION wsrep_on = FALSE; INSERT INTO t1 VALUES (2); +connection node_2; SELECT COUNT(*) = 1 FROM t1; COUNT(*) = 1 1 +connection node_1; SET GLOBAL wsrep_on = TRUE; INSERT INTO t1 VALUES (3); +connection node_2; SELECT COUNT(*) = 2 FROM t1; COUNT(*) = 2 1 diff --git a/mysql-test/suite/galera/r/galera_wan.result b/mysql-test/suite/galera/r/galera_wan.result index 6be32b291e5..73100636a0d 100644 --- a/mysql-test/suite/galera/r/galera_wan.result +++ b/mysql-test/suite/galera/r/galera_wan.result @@ -1,9 +1,14 @@ SELECT VARIABLE_VALUE = 4 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; VARIABLE_VALUE = 4 1 +connection node_1; CREATE TABLE t1 (f1 INTEGER); +connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3; +connection node_3; INSERT INTO t1 VALUES (1); CALL mtr.add_suppression("There are no nodes in the same segment that will ever be able to become donors, yet there is a suitable donor outside"); +connect node_4, 127.0.0.1, root, , test, $NODE_MYPORT_4; +connection node_4; SELECT VARIABLE_VALUE LIKE '%gmcast.segment = 3%' FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME = 'wsrep_provider_options'; VARIABLE_VALUE LIKE '%gmcast.segment = 3%' 1 diff --git a/mysql-test/suite/galera/r/galera_wsrep_new_cluster.result b/mysql-test/suite/galera/r/galera_wsrep_new_cluster.result index e3f2fa4046f..ca388496794 100644 --- a/mysql-test/suite/galera/r/galera_wsrep_new_cluster.result +++ b/mysql-test/suite/galera/r/galera_wsrep_new_cluster.result @@ -16,6 +16,7 @@ VARIABLE_VALUE = 4 SELECT VARIABLE_VALUE = 'Synced' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_state_comment'; VARIABLE_VALUE = 'Synced' 1 +connection node_2; SELECT VARIABLE_VALUE = 'Primary' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status'; VARIABLE_VALUE = 'Primary' 1 diff --git a/mysql-test/suite/galera/r/galera_zero_length_column.result b/mysql-test/suite/galera/r/galera_zero_length_column.result index 2e6119bd1ba..572d94d6756 100644 --- a/mysql-test/suite/galera/r/galera_zero_length_column.result +++ b/mysql-test/suite/galera/r/galera_zero_length_column.result @@ -1,9 +1,11 @@ +connection node_1; CREATE TABLE t1 (f1 INTEGER PRIMARY KEY , f2 VARCHAR(0)) ENGINE=InnoDB; CREATE TABLE t2 (f1 VARCHAR(0)) ENGINE=InnoDB; INSERT INTO t1 VALUES (1, NULL); INSERT INTO t1 VALUES (2, ''); INSERT INTO t2 VALUES (NULL); INSERT INTO t2 VALUES (''); +connection node_2; SELECT COUNT(*) = 2 FROM t1; COUNT(*) = 2 1 @@ -25,6 +27,7 @@ f1 = '' UPDATE t1 SET f2 = '' WHERE f1 = 1; UPDATE t1 SET f2 = NULL WHERE f1 = 2; UPDATE t2 SET f1 = '' WHERE f1 IS NULL; +connection node_1; SELECT f2 = '' FROM t1 WHERE f1 = 1; f2 = '' 1 diff --git a/mysql-test/suite/galera/r/grant.result b/mysql-test/suite/galera/r/grant.result index 8d257e7e8e2..a2ca72ee8ec 100644 --- a/mysql-test/suite/galera/r/grant.result +++ b/mysql-test/suite/galera/r/grant.result @@ -3,6 +3,7 @@ # # On node_1 +connection node_1; GRANT SELECT ON *.* TO 'user_6266'@'localhost' IDENTIFIED BY 'pass'; # Now, try changing password for 'user_6266'. This command should also @@ -10,8 +11,11 @@ GRANT SELECT ON *.* TO 'user_6266'@'localhost' IDENTIFIED BY 'pass'; SET PASSWORD FOR 'user_6266'@'localhost' = PASSWORD('newpass'); # On node_2 +connection node_2; SELECT user FROM mysql.user WHERE user='user_6266'; user user_6266 DROP USER 'user_6266'@'localhost'; +disconnect node_2; +disconnect node_1; # End of test diff --git a/mysql-test/suite/galera/r/lp1276424.result b/mysql-test/suite/galera/r/lp1276424.result index 5f09ec9ea8b..363758e0d66 100644 --- a/mysql-test/suite/galera/r/lp1276424.result +++ b/mysql-test/suite/galera/r/lp1276424.result @@ -1,6 +1,7 @@ CREATE TABLE t1 (f1 INT DEFAULT NULL, UNIQUE KEY i1 (f1)) ENGINE=InnoDB; INSERT INTO t1 VALUES (NULL); INSERT INTO t1 VALUES (NULL); +connection node_2; SELECT COUNT(*) = 2 FROM t1; COUNT(*) = 2 1 diff --git a/mysql-test/suite/galera/r/lp1438990.result b/mysql-test/suite/galera/r/lp1438990.result index b53bc186953..d48d2435faa 100644 --- a/mysql-test/suite/galera/r/lp1438990.result +++ b/mysql-test/suite/galera/r/lp1438990.result @@ -1,3 +1,4 @@ +connection node_1; CREATE TABLE t1 (f1 INTEGER PRIMARY KEY); CREATE TABLE t2 (f1 INTEGER PRIMARY KEY); CREATE TABLE t3 (f1 INTEGER PRIMARY KEY); diff --git a/mysql-test/suite/galera/r/mdev_9290.result b/mysql-test/suite/galera/r/mdev_9290.result index cb2f0813333..276ab9e8ecb 100644 --- a/mysql-test/suite/galera/r/mdev_9290.result +++ b/mysql-test/suite/galera/r/mdev_9290.result @@ -2,13 +2,18 @@ # MDEV-9290 : InnoDB: Assertion failure in file trx0sys.cc line 353 # InnoDB: Failing assertion: xid_seqno > trx_sys_cur_xid_seqno # +connection node_1; CREATE TABLE t1 (i INT) ENGINE=InnoDB; +connection node_2; START TRANSACTION; INSERT INTO t1 VALUES (1); INSERT INTO t1 VALUES (2); COMMIT; +connection node_1; SELECT * FROM t1; i 1 2 DROP TABLE t1; +disconnect node_2; +disconnect node_1; diff --git a/mysql-test/suite/galera/r/mysql-wsrep#110.result b/mysql-test/suite/galera/r/mysql-wsrep#110.result index 551c3666fb4..6d4031d71cd 100644 --- a/mysql-test/suite/galera/r/mysql-wsrep#110.result +++ b/mysql-test/suite/galera/r/mysql-wsrep#110.result @@ -1,3 +1,4 @@ +connection node_1; CREATE TABLE t1 (f1 INTEGER PRIMARY KEY); CREATE TABLE t2 (f1 INTEGER PRIMARY KEY); CREATE TABLE t3 (f1 INTEGER PRIMARY KEY); @@ -23,6 +24,7 @@ COUNT(*) = 1 SELECT COUNT(*) = 1 FROM t3; COUNT(*) = 1 1 +connection node_2; SELECT COUNT(*) = 1 FROM t1; COUNT(*) = 1 1 @@ -32,6 +34,7 @@ COUNT(*) = 1 SELECT COUNT(*) = 1 FROM t3; COUNT(*) = 1 1 +connection node_1; DROP TABLE t1; DROP TABLE t2; DROP TABLE t3; diff --git a/mysql-test/suite/galera/r/mysql-wsrep#198.result b/mysql-test/suite/galera/r/mysql-wsrep#198.result index 25ba2cb615c..afc2a07fb30 100644 --- a/mysql-test/suite/galera/r/mysql-wsrep#198.result +++ b/mysql-test/suite/galera/r/mysql-wsrep#198.result @@ -1,16 +1,26 @@ CREATE TABLE t1 (id INT PRIMARY KEY) ENGINE=InnoDB; CREATE TABLE t2 (id INT PRIMARY KEY) ENGINE=InnoDB; +connection node_2; LOCK TABLE t2 WRITE; +connect node_2a, 127.0.0.1, root, , test, $NODE_MYPORT_2; +connection node_2a; OPTIMIZE TABLE t1,t2;; +connect node_2b, 127.0.0.1, root, , test, $NODE_MYPORT_2; +connection node_2b; REPAIR TABLE t1,t2;; +connection node_2; SET SESSION wsrep_sync_wait = 0; +connection node_1; INSERT INTO t2 VALUES (1); +connection node_2; UNLOCK TABLES; +connection node_2a; Table Op Msg_type Msg_text test.t1 optimize note Table does not support optimize, doing recreate + analyze instead test.t1 optimize status OK test.t2 optimize note Table does not support optimize, doing recreate + analyze instead test.t2 optimize status OK +connection node_2b; Table Op Msg_type Msg_text test.t1 repair note The storage engine for the table doesn't support repair test.t2 repair note The storage engine for the table doesn't support repair diff --git a/mysql-test/suite/galera/r/mysql-wsrep#201.result b/mysql-test/suite/galera/r/mysql-wsrep#201.result index 1c0998e35ac..0f2980eddd2 100644 --- a/mysql-test/suite/galera/r/mysql-wsrep#201.result +++ b/mysql-test/suite/galera/r/mysql-wsrep#201.result @@ -1,4 +1,5 @@ CREATE TABLE t1 (id INT PRIMARY KEY AUTO_INCREMENT) ENGINE=InnoDB; INSERT INTO t1 VALUES (DEFAULT); +connection node_2; SET GLOBAL query_cache_size=1355776; SET SESSION wsrep_sync_wait = 7; diff --git a/mysql-test/suite/galera/r/mysql-wsrep#237.result b/mysql-test/suite/galera/r/mysql-wsrep#237.result index 3fd9aed1480..19503dd5781 100644 --- a/mysql-test/suite/galera/r/mysql-wsrep#237.result +++ b/mysql-test/suite/galera/r/mysql-wsrep#237.result @@ -1,10 +1,18 @@ CREATE TABLE t (f1 INTEGER PRIMARY KEY) Engine=InnoDB; +connection node_1; SET DEBUG_SYNC = 'wsrep_before_replication WAIT_FOR continue'; INSERT INTO t values (1);; +connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1; +connection node_1a; SET SESSION wsrep_sync_wait = 0; +connection node_2; FLUSH TABLES; +connection node_1a; SELECT SLEEP(1); SLEEP(1) 0 SET DEBUG_SYNC= 'now SIGNAL continue'; +connection node_1; DROP TABLE t; +connection node_1a; +SET DEBUG_SYNC= 'RESET'; diff --git a/mysql-test/suite/galera/r/mysql-wsrep#247.result b/mysql-test/suite/galera/r/mysql-wsrep#247.result index 1b00f511f03..e59c6d1a299 100644 --- a/mysql-test/suite/galera/r/mysql-wsrep#247.result +++ b/mysql-test/suite/galera/r/mysql-wsrep#247.result @@ -1,3 +1,4 @@ +connection node_1; SET GLOBAL wsrep_desync=1; SET wsrep_OSU_method=RSU; CREATE TABLE t1 (i int primary key); diff --git a/mysql-test/suite/galera/r/mysql-wsrep#31.result b/mysql-test/suite/galera/r/mysql-wsrep#31.result index a21bb3eccfd..973f11543fa 100644 --- a/mysql-test/suite/galera/r/mysql-wsrep#31.result +++ b/mysql-test/suite/galera/r/mysql-wsrep#31.result @@ -1,10 +1,13 @@ +connection node_1; CREATE TABLE t1 (f1 CHAR(255)) ENGINE=InnoDB; INSERT INTO t1 VALUES('test'); CREATE DATABASE db; +connection node_2; Shutting down server 2 ... Recovering server 2 ... Performing --wsrep-recover ... Restarting server ... Using --wsrep-start-position when starting mysqld ... +connection node_1; DROP TABLE t1; DROP DATABASE db; diff --git a/mysql-test/suite/galera/r/mysql-wsrep#33.result b/mysql-test/suite/galera/r/mysql-wsrep#33.result index 62af519ad32..fc647a2000d 100644 --- a/mysql-test/suite/galera/r/mysql-wsrep#33.result +++ b/mysql-test/suite/galera/r/mysql-wsrep#33.result @@ -1,4 +1,5 @@ Setting SST method to mysqldump ... +CREATE USER 'sst'; GRANT ALL PRIVILEGES ON *.* TO 'sst'; SET GLOBAL wsrep_sst_auth = 'sst:'; SET GLOBAL wsrep_sst_method = 'mysqldump'; diff --git a/mysql-test/suite/galera/r/partition.result b/mysql-test/suite/galera/r/partition.result index 3907b4f08c9..15f0275a04c 100644 --- a/mysql-test/suite/galera/r/partition.result +++ b/mysql-test/suite/galera/r/partition.result @@ -13,10 +13,12 @@ SELECT * FROM t1; pk i # On node_1 +connection node_1; SELECT * FROM t1; pk i # On node_2 +connection node_2; SELECT * FROM t1; pk i DROP TABLE t1; @@ -26,6 +28,7 @@ DROP TABLE t1; # # On node_1 +connection node_1; CREATE TABLE test.t1 ( i INT UNSIGNED NOT NULL AUTO_INCREMENT, PRIMARY KEY (i) @@ -46,6 +49,7 @@ i 9 # On node_2 +connection node_2; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( @@ -70,15 +74,18 @@ i 9 # On node_1 +connection node_1; ALTER TABLE t1 TRUNCATE PARTITION p2; SELECT * FROM test.t1; i # On node_2 +connection node_2; SELECT * FROM test.t1; i # On node_1 +connection node_1; ALTER TABLE t1 DROP PARTITION p2; SHOW CREATE TABLE t1; Table Create Table @@ -91,6 +98,7 @@ t1 CREATE TABLE `t1` ( PARTITION pMax VALUES LESS THAN MAXVALUE ENGINE = InnoDB) */ # On node_2 +connection node_2; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( @@ -104,11 +112,13 @@ DROP TABLE t1, p1; # # MDEV-5146: Bulk loads into partitioned table not working # +connection node_1; # Case 1: wsrep_load_data_splitting = ON & LOAD DATA with 20002 # entries. SET GLOBAL wsrep_load_data_splitting = ON; CREATE TABLE t1 (pk INT PRIMARY KEY) ENGINE=INNODB PARTITION BY HASH(pk) PARTITIONS 2; +connection node_2; SELECT COUNT(*) = 20002 FROM t1; COUNT(*) = 20002 1 @@ -116,9 +126,11 @@ wsrep_last_committed_diff 1 DROP TABLE t1; # Case 2: wsrep_load_data_splitting = ON & LOAD DATA with 101 entries. +connection node_1; SET GLOBAL wsrep_load_data_splitting = ON; CREATE TABLE t1 (pk INT PRIMARY KEY) ENGINE=INNODB PARTITION BY HASH(pk) PARTITIONS 2; +connection node_2; SELECT COUNT(*) = 101 FROM t1; COUNT(*) = 101 1 @@ -127,14 +139,19 @@ wsrep_last_committed_diff DROP TABLE t1; # Case 3: wsrep_load_data_splitting = OFF & LOAD DATA with 20002 # entries. +connection node_1; SET GLOBAL wsrep_load_data_splitting = OFF; CREATE TABLE t1 (pk INT PRIMARY KEY) ENGINE=INNODB PARTITION BY HASH(pk) PARTITIONS 2; +connection node_2; SELECT COUNT(*) = 20002 FROM t1; COUNT(*) = 20002 1 wsrep_last_committed_diff 1 DROP TABLE t1; +connection node_1; SET GLOBAL wsrep_load_data_splitting = 1;; +disconnect node_2; +disconnect node_1; # End of test diff --git a/mysql-test/suite/galera/r/rename.result b/mysql-test/suite/galera/r/rename.result index 3c81e8b6320..a7ec431657b 100644 --- a/mysql-test/suite/galera/r/rename.result +++ b/mysql-test/suite/galera/r/rename.result @@ -2,6 +2,7 @@ # MDEV-8598 : Failed MySQL DDL commands and Galera replication # # On node 1 +connection node_1; USE test; DROP TABLE IF EXISTS t1, t2; CREATE TABLE t1(i INT) ENGINE=INNODB; @@ -13,6 +14,8 @@ i CREATE USER foo@localhost; GRANT SELECT on test.* TO foo@localhost; # Open connection to the 1st node using 'test_user1' user. +connect foo_node_1,localhost,foo,,test,$port_1,; +connection foo_node_1; SELECT * FROM t1; i 1 @@ -20,20 +23,24 @@ i RENAME TABLE t1 TO t2; ERROR 42000: DROP, ALTER command denied to user 'foo'@'localhost' for table 't1' # On node 2 +connection node_2; USE test; SELECT * FROM t1; i 1 # On node_1 +connection node_1; RENAME TABLE t1 TO t2; SHOW TABLES; Tables_in_test t2 # On node 2 +connection node_2; USE test; SELECT * FROM t2; i 1 +connection node_1; DROP USER foo@localhost; DROP TABLE t2; # End of tests diff --git a/mysql-test/suite/galera/r/rpl_row_annotate.result b/mysql-test/suite/galera/r/rpl_row_annotate.result index ff8d49702ac..23de06f015b 100644 --- a/mysql-test/suite/galera/r/rpl_row_annotate.result +++ b/mysql-test/suite/galera/r/rpl_row_annotate.result @@ -1,14 +1,18 @@ # On node_2 +connection node_2; RESET MASTER; # On node_1 +connection node_1; RESET MASTER; CREATE TABLE t1(i INT)ENGINE=INNODB; INSERT INTO t1 VALUES(1); DELETE FROM t1 WHERE i = 1; # On node_2 +connection node_2; INSERT INTO t1 VALUES(2); DELETE FROM t1 WHERE i = 2; # On node_1 +connection node_1; SHOW BINLOG EVENTS IN 'mysqld-bin.000001' FROM <start_pos>; Log_name Pos Event_type Server_id End_log_pos Info mysqld-bin.000001 # Gtid_list 1 # [] @@ -36,6 +40,7 @@ mysqld-bin.000001 # Table_map 2 # table_id: # (test.t1) mysqld-bin.000001 # Delete_rows_v1 2 # table_id: # flags: STMT_END_F mysqld-bin.000001 # Xid 2 # COMMIT /* xid= */ # On node_2 +connection node_2; SHOW BINLOG EVENTS IN 'mysqld-bin.000001' FROM <start_pos>; Log_name Pos Event_type Server_id End_log_pos Info mysqld-bin.000001 # Gtid_list 2 # [] @@ -63,4 +68,6 @@ mysqld-bin.000001 # Table_map 2 # table_id: # (test.t1) mysqld-bin.000001 # Delete_rows_v1 2 # table_id: # flags: STMT_END_F mysqld-bin.000001 # Xid 2 # COMMIT /* xid= */ DROP TABLE t1; +disconnect node_2; +disconnect node_1; # End of test diff --git a/mysql-test/suite/galera/r/sql_log_bin.result b/mysql-test/suite/galera/r/sql_log_bin.result index 237725ec9a7..8b208ff82d5 100644 --- a/mysql-test/suite/galera/r/sql_log_bin.result +++ b/mysql-test/suite/galera/r/sql_log_bin.result @@ -1,5 +1,6 @@ # On node_1 +connection node_1; USE test; CREATE TABLE t1(c1 INT PRIMARY KEY) ENGINE=INNODB; INSERT INTO t1 VALUES (1); @@ -31,6 +32,7 @@ c1 2 # On node_2 +connection node_2; USE test; SELECT * FROM t1; c1 @@ -49,4 +51,6 @@ c1 1 2 DROP TABLE t1, t2, t3, t4; +disconnect node_2; +disconnect node_1; # End of test diff --git a/mysql-test/suite/galera/r/unique_key.result b/mysql-test/suite/galera/r/unique_key.result index ffb4f01c1f8..9f1fc858389 100644 --- a/mysql-test/suite/galera/r/unique_key.result +++ b/mysql-test/suite/galera/r/unique_key.result @@ -5,6 +5,7 @@ USE test; # On node_1 +connection node_1; CREATE TABLE t1(c1 INT DEFAULT NULL, UNIQUE KEY c1(c1)) ENGINE=INNODB; INSERT INTO t1 VALUES (NULL); INSERT INTO t1 VALUES (NULL); @@ -14,12 +15,14 @@ NULL NULL # On node_2 +connection node_2; SELECT * FROM test.t1; c1 NULL NULL # On node_1 +connection node_1; INSERT INTO t1 VALUES (1); UPDATE t1 SET c1=NULL WHERE c1=1; SELECT * FROM test.t1; @@ -29,6 +32,7 @@ NULL NULL # On node_2 +connection node_2; SELECT * FROM test.t1; c1 NULL @@ -36,12 +40,16 @@ NULL NULL # On node_1 +connection node_1; DELETE FROM t1 WHERE c1<=>NULL; SELECT * FROM test.t1; c1 # On node_2 +connection node_2; SELECT * FROM test.t1; c1 DROP TABLE t1; +disconnect node_2; +disconnect node_1; # End of test diff --git a/mysql-test/suite/galera/r/view.result b/mysql-test/suite/galera/r/view.result index 06d7bf072e8..f8da811f9cc 100644 --- a/mysql-test/suite/galera/r/view.result +++ b/mysql-test/suite/galera/r/view.result @@ -8,6 +8,7 @@ DROP VIEW v1; # MDEV-8464 : ALTER VIEW not replicated in some cases # # On node_1 +connection node_1; USE test; CREATE TABLE t1(i INT) ENGINE=INNODB; CREATE DEFINER=CURRENT_USER VIEW v1 AS SELECT * FROM t1; @@ -15,6 +16,7 @@ CREATE ALGORITHM=MERGE VIEW v2 AS SELECT * FROM t1; CREATE ALGORITHM=TEMPTABLE VIEW v3 AS SELECT * FROM t1; CREATE ALGORITHM=UNDEFINED DEFINER=CURRENT_USER VIEW v4 AS SELECT * FROM t1; # On node_2 +connection node_2; USE test; SHOW CREATE VIEW v1; View Create View character_set_client collation_connection @@ -29,11 +31,13 @@ SHOW CREATE VIEW v4; View Create View character_set_client collation_connection v4 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v4` AS select `t1`.`i` AS `i` from `t1` latin1 latin1_swedish_ci # On node_1 +connection node_1; ALTER ALGORITHM=MERGE VIEW v1 AS SELECT * FROM t1; ALTER ALGORITHM=UNDEFINED VIEW v2 AS SELECT * FROM t1; ALTER DEFINER=CURRENT_USER VIEW v3 AS SELECT * FROM t1; ALTER ALGORITHM=TEMPTABLE DEFINER=CURRENT_USER VIEW v4 AS SELECT * FROM t1; # On node_2 +connection node_2; SHOW CREATE VIEW v1; View Create View character_set_client collation_connection v1 CREATE ALGORITHM=MERGE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`i` AS `i` from `t1` latin1 latin1_swedish_ci diff --git a/mysql-test/suite/galera/t/mysql-wsrep#237.test b/mysql-test/suite/galera/t/mysql-wsrep#237.test index 7a65cb52ae9..f2dd6bce711 100644 --- a/mysql-test/suite/galera/t/mysql-wsrep#237.test +++ b/mysql-test/suite/galera/t/mysql-wsrep#237.test @@ -29,3 +29,5 @@ SET DEBUG_SYNC= 'now SIGNAL continue'; --reap DROP TABLE t; +--connection node_1a +SET DEBUG_SYNC= 'RESET'; diff --git a/mysql-test/suite/maria/maria.result b/mysql-test/suite/maria/maria.result index 1b80f5ef695..ea4e7896066 100644 --- a/mysql-test/suite/maria/maria.result +++ b/mysql-test/suite/maria/maria.result @@ -554,11 +554,11 @@ a explain select sql_big_result distinct t1.a from t1,t2 order by t2.a; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 system NULL NULL NULL NULL 1 Using temporary -1 SIMPLE t2 index NULL PRIMARY 4 NULL 2 Using index; Distinct +1 SIMPLE t2 index NULL PRIMARY 4 NULL 2 Using index explain select distinct t1.a from t1,t2 order by t2.a; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 system NULL NULL NULL NULL 1 Using temporary -1 SIMPLE t2 index NULL PRIMARY 4 NULL 2 Using index; Distinct +1 SIMPLE t2 index NULL PRIMARY 4 NULL 2 Using index drop table t1,t2; create table t1 ( c1 varchar(32), diff --git a/mysql-test/suite/rpl/r/rpl_begin_commit_rollback.result b/mysql-test/suite/rpl/r/rpl_begin_commit_rollback.result index 5e16befa87d..889db65d7ef 100644 --- a/mysql-test/suite/rpl/r/rpl_begin_commit_rollback.result +++ b/mysql-test/suite/rpl/r/rpl_begin_commit_rollback.result @@ -116,7 +116,6 @@ include/wait_for_slave_sql_to_start.inc # SAVEPOINT and ROLLBACK TO have the same problem in BUG#43263 # This was reported by BUG#50407 connection master; -SET SESSION AUTOCOMMIT=0 BEGIN; INSERT INTO db1.t1 VALUES(20); # @@ -164,7 +163,6 @@ master-bin.000001 # Query # # use `db1`; INSERT INTO db1.t2 VALUES("after rollba master-bin.000001 # Query # # use `db1`; INSERT INTO db1.t1 VALUES(50) master-bin.000001 # Xid # # COMMIT /* XID */ connection slave; -[on slave] # # Verify INSERT statements in savepoints are executed, for MyISAM table # is not effected by ROLLBACK TO diff --git a/mysql-test/suite/rpl/r/rpl_upgrade_master_info.result b/mysql-test/suite/rpl/r/rpl_upgrade_master_info.result new file mode 100644 index 00000000000..3e737267fbd --- /dev/null +++ b/mysql-test/suite/rpl/r/rpl_upgrade_master_info.result @@ -0,0 +1,102 @@ +include/master-slave.inc +[connection master] +*** MDEV-9383: Server fails to read master.info after upgrade 10.0 -> 10.1 *** +connection slave; +include/stop_slave.inc +CHANGE MASTER TO master_use_gtid=CURRENT_POS; +include/rpl_stop_server.inc [server_number=2] +include/rpl_start_server.inc [server_number=2] +connection master; +CREATE TABLE t1 (a INT PRIMARY KEY); +INSERT INTO t1 VALUES (1); +include/save_master_gtid.inc +connection slave; +CHANGE MASTER TO master_host='127.0.0.1', master_port=SERVER_MYPORT_1; +include/start_slave.inc +include/sync_with_master_gtid.inc +SELECT * FROM t1; +a +1 +include/stop_slave.inc +include/rpl_stop_server.inc [server_number=2] +include/rpl_start_server.inc [server_number=2] +connection master; +INSERT INTO t1 VALUES (2); +include/save_master_gtid.inc +connection slave; +CHANGE MASTER TO master_host='127.0.0.1', master_port=SERVER_MYPORT_1; +include/start_slave.inc +include/sync_with_master_gtid.inc +SELECT * FROM t1 ORDER BY a; +a +1 +2 +include/stop_slave.inc +include/rpl_stop_server.inc [server_number=2] +include/rpl_start_server.inc [server_number=2] +connection master; +INSERT INTO t1 VALUES (3); +include/save_master_gtid.inc +connection slave; +CHANGE MASTER TO master_host='127.0.0.1', master_port=SERVER_MYPORT_1; +include/start_slave.inc +include/sync_with_master_gtid.inc +SELECT * FROM t1 ORDER BY a; +a +1 +2 +3 +include/stop_slave.inc +include/rpl_stop_server.inc [server_number=2] +include/rpl_start_server.inc [server_number=2] +connection master; +INSERT INTO t1 VALUES (4); +include/save_master_gtid.inc +connection slave; +CHANGE MASTER TO master_host='127.0.0.1', master_port=SERVER_MYPORT_1; +include/start_slave.inc +include/sync_with_master_gtid.inc +SELECT * FROM t1 ORDER BY a; +a +1 +2 +3 +4 +include/stop_slave.inc +include/rpl_stop_server.inc [server_number=2] +include/rpl_start_server.inc [server_number=2] +connection master; +INSERT INTO t1 VALUES (5); +include/save_master_gtid.inc +connection slave; +CHANGE MASTER TO master_host='127.0.0.1', master_port=SERVER_MYPORT_1; +include/start_slave.inc +include/sync_with_master_gtid.inc +SELECT * FROM t1 ORDER BY a; +a +1 +2 +3 +4 +5 +include/stop_slave.inc +include/rpl_stop_server.inc [server_number=2] +include/rpl_start_server.inc [server_number=2] +connection master; +INSERT INTO t1 VALUES (6); +include/save_master_gtid.inc +connection slave; +CHANGE MASTER TO master_host='127.0.0.1', master_port=SERVER_MYPORT_1; +include/start_slave.inc +include/sync_with_master_gtid.inc +SELECT * FROM t1 ORDER BY a; +a +1 +2 +3 +4 +5 +6 +connection master; +DROP TABLE t1; +include/rpl_end.inc diff --git a/mysql-test/suite/rpl/t/rpl_begin_commit_rollback.test b/mysql-test/suite/rpl/t/rpl_begin_commit_rollback.test index 347e88412c1..f0ed5dc0123 100644 --- a/mysql-test/suite/rpl/t/rpl_begin_commit_rollback.test +++ b/mysql-test/suite/rpl/t/rpl_begin_commit_rollback.test @@ -129,7 +129,6 @@ source include/wait_for_slave_sql_to_start.inc; --echo # SAVEPOINT and ROLLBACK TO have the same problem in BUG#43263 --echo # This was reported by BUG#50407 connection master; -echo SET SESSION AUTOCOMMIT=0; let $binlog_start=query_get_value(SHOW MASTER STATUS, Position, 1); BEGIN; @@ -157,7 +156,6 @@ COMMIT; source include/show_binlog_events.inc; sync_slave_with_master; ---echo [on slave] --echo # --echo # Verify INSERT statements in savepoints are executed, for MyISAM table --echo # is not effected by ROLLBACK TO diff --git a/mysql-test/suite/rpl/t/rpl_upgrade_master_info.test b/mysql-test/suite/rpl/t/rpl_upgrade_master_info.test new file mode 100644 index 00000000000..e81e7c0d714 --- /dev/null +++ b/mysql-test/suite/rpl/t/rpl_upgrade_master_info.test @@ -0,0 +1,163 @@ +--source include/master-slave.inc + +--echo *** MDEV-9383: Server fails to read master.info after upgrade 10.0 -> 10.1 *** + +--connection slave +--source include/stop_slave.inc +CHANGE MASTER TO master_use_gtid=CURRENT_POS; +--let $datadir= `SELECT @@datadir` + +--let $rpl_server_number= 2 +--source include/rpl_stop_server.inc + +--remove_file $datadir/master.info +--copy_file $MYSQL_TEST_DIR/std_data/bad_master.info $datadir/master.info + +--let $rpl_server_number= 2 +--source include/rpl_start_server.inc + +--source include/wait_until_connected_again.inc + +--connection master +CREATE TABLE t1 (a INT PRIMARY KEY); +INSERT INTO t1 VALUES (1); +--source include/save_master_gtid.inc + +--connection slave +# Fix the port after we replaced master.info. +--replace_result $SERVER_MYPORT_1 SERVER_MYPORT_1 +eval CHANGE MASTER TO master_host='127.0.0.1', master_port=$SERVER_MYPORT_1; +--source include/start_slave.inc +--source include/sync_with_master_gtid.inc +SELECT * FROM t1; + +--source include/stop_slave.inc + +--let $rpl_server_number= 2 +--source include/rpl_stop_server.inc + +--remove_file $datadir/master.info +--copy_file $MYSQL_TEST_DIR/std_data/bad2_master.info $datadir/master.info + +--let $rpl_server_number= 2 +--source include/rpl_start_server.inc + +--source include/wait_until_connected_again.inc + +--connection master +INSERT INTO t1 VALUES (2); +--source include/save_master_gtid.inc + +--connection slave +# Fix the port after we replaced master.info. +--replace_result $SERVER_MYPORT_1 SERVER_MYPORT_1 +eval CHANGE MASTER TO master_host='127.0.0.1', master_port=$SERVER_MYPORT_1; +--source include/start_slave.inc +--source include/sync_with_master_gtid.inc +SELECT * FROM t1 ORDER BY a; + +--source include/stop_slave.inc + +--let $rpl_server_number= 2 +--source include/rpl_stop_server.inc + +--remove_file $datadir/master.info +--copy_file $MYSQL_TEST_DIR/std_data/bad3_master.info $datadir/master.info + +--let $rpl_server_number= 2 +--source include/rpl_start_server.inc + +--source include/wait_until_connected_again.inc + +--connection master +INSERT INTO t1 VALUES (3); +--source include/save_master_gtid.inc + +--connection slave +# Fix the port after we replaced master.info. +--replace_result $SERVER_MYPORT_1 SERVER_MYPORT_1 +eval CHANGE MASTER TO master_host='127.0.0.1', master_port=$SERVER_MYPORT_1; +--source include/start_slave.inc +--source include/sync_with_master_gtid.inc +SELECT * FROM t1 ORDER BY a; + +--source include/stop_slave.inc + +--let $rpl_server_number= 2 +--source include/rpl_stop_server.inc + +--remove_file $datadir/master.info +--copy_file $MYSQL_TEST_DIR/std_data/bad4_master.info $datadir/master.info + +--let $rpl_server_number= 2 +--source include/rpl_start_server.inc + +--source include/wait_until_connected_again.inc + +--connection master +INSERT INTO t1 VALUES (4); +--source include/save_master_gtid.inc + +--connection slave +# Fix the port after we replaced master.info. +--replace_result $SERVER_MYPORT_1 SERVER_MYPORT_1 +eval CHANGE MASTER TO master_host='127.0.0.1', master_port=$SERVER_MYPORT_1; +--source include/start_slave.inc +--source include/sync_with_master_gtid.inc +SELECT * FROM t1 ORDER BY a; + +--source include/stop_slave.inc + +--let $rpl_server_number= 2 +--source include/rpl_stop_server.inc + +--remove_file $datadir/master.info +--copy_file $MYSQL_TEST_DIR/std_data/bad5_master.info $datadir/master.info + +--let $rpl_server_number= 2 +--source include/rpl_start_server.inc + +--source include/wait_until_connected_again.inc + +--connection master +INSERT INTO t1 VALUES (5); +--source include/save_master_gtid.inc + +--connection slave +# Fix the port after we replaced master.info. +--replace_result $SERVER_MYPORT_1 SERVER_MYPORT_1 +eval CHANGE MASTER TO master_host='127.0.0.1', master_port=$SERVER_MYPORT_1; +--source include/start_slave.inc +--source include/sync_with_master_gtid.inc +SELECT * FROM t1 ORDER BY a; + +--source include/stop_slave.inc + +--let $rpl_server_number= 2 +--source include/rpl_stop_server.inc + +--remove_file $datadir/master.info +--copy_file $MYSQL_TEST_DIR/std_data/bad6_master.info $datadir/master.info + +--let $rpl_server_number= 2 +--source include/rpl_start_server.inc + +--source include/wait_until_connected_again.inc + +--connection master +INSERT INTO t1 VALUES (6); +--source include/save_master_gtid.inc + +--connection slave +# Fix the port after we replaced master.info. +--replace_result $SERVER_MYPORT_1 SERVER_MYPORT_1 +eval CHANGE MASTER TO master_host='127.0.0.1', master_port=$SERVER_MYPORT_1; +--source include/start_slave.inc +--source include/sync_with_master_gtid.inc +SELECT * FROM t1 ORDER BY a; + + +# Cleanup +--connection master +DROP TABLE t1; +--source include/rpl_end.inc diff --git a/mysql-test/t/connect2.test b/mysql-test/t/connect2.test index b4614a65a91..9d2a438aa0a 100644 --- a/mysql-test/t/connect2.test +++ b/mysql-test/t/connect2.test @@ -7,7 +7,7 @@ call mtr.add_suppression("Allocation failed"); SET @old_debug= @@session.debug; set @old_thread_cache_size=@@global.thread_cache_size; - +set @@global.thread_cache_size=0; # Test connections to the connect(con1,localhost,root,,test,,); @@ -32,7 +32,6 @@ select 1; disconnect con1; # Test connections to the extra port. - connect(con1,localhost,root,,test,$MASTER_EXTRA_PORT,); select 1; disconnect con1; diff --git a/mysql-test/t/cte_nonrecursive.test b/mysql-test/t/cte_nonrecursive.test index 5a6e07e0c0c..e3164f53887 100644 --- a/mysql-test/t/cte_nonrecursive.test +++ b/mysql-test/t/cte_nonrecursive.test @@ -434,3 +434,17 @@ with t(f1,f1) as (select * from t1 where b >= 'c') select t1.b from t2,t1 where t1.a = t2.c; drop table t1,t2; + +--echo # +--echo # Bug mdev-9937: View used in the specification of with table +--echo # refers to the base table with the same name +--echo # + +create table t1 (a int); +insert into t1 values (20), (30), (10); +create view v1 as select * from t1 where a > 10; + +with t1 as (select * from v1) select * from t1; + +drop view v1; +drop table t1; diff --git a/mysql-test/t/cte_recursive.test b/mysql-test/t/cte_recursive.test new file mode 100644 index 00000000000..34eee6d3bf2 --- /dev/null +++ b/mysql-test/t/cte_recursive.test @@ -0,0 +1,241 @@ +create table t1 (a int, b varchar(32)); +insert into t1 values +(4,'aaaa' ), (7,'bb'), (1,'ccc'), (4,'dd'); +insert into t1 values +(3,'eee'), (7,'bb'), (1,'fff'), (4,'ggg'); + +--ERROR 1984 +with recursive +a1(a,b) as +(select * from t1 where t1.a>3 +union +select * from b1 where b1.a >3 +union +select * from c1 where c1.a>3), +b1(a,b) as +(select * from a1 where a1.b > 'ccc' +union +select * from c1 where c1.b > 'ddd'), +c1(a,b) as +(select * from a1 where a1.a<6 and a1.b< 'zz' +union +select * from b1 where b1.b > 'auu') +select * from c1; + +drop table t1; + +create table folks(id int, name char(32), dob date, father int, mother int); + +insert into folks values +(100, 'Vasya', '2000-01-01', 20, 30), +(20, 'Dad', '1970-02-02', 10, 9), +(30, 'Mom', '1975-03-03', 8, 7), +(10, 'Grandpa Bill', '1940-04-05', null, null), +(9, 'Grandma Ann', '1941-10-15', null, null), +(25, 'Uncle Jim', '1968-11-18', 8, 7), +(98, 'Sister Amy', '2001-06-20', 20, 30), +(8, 'Grandma Sally', '1943-08-23', 5, 6), +(6, 'Grandgrandma Martha', '1923-05-17', null, null), +(67, 'Cousin Eddie', '1992-02-28', 25, 27), +(27, 'Auntie Melinda', '1971-03-29', null, null); + + +with recursive +ancestors +as +( + select * + from folks + where name = 'Vasya' and dob = '2000-01-01' + union + select p.id, p.name, p.dob, p.father, p.mother + from folks as p, ancestors AS a + where p.id = a.father or p.id = a.mother +) +select * from ancestors; + +with recursive +ancestors +as +( + select p.* + from folks as p, ancestors AS a + where p.id = a.father or p.id = a.mother + union + select * + from folks + where name = 'Vasya' and dob = '2000-01-01' +) +select * from ancestors; + +with recursive +ancestors +as +( + select * + from folks + where name = 'Cousin Eddie' + union + select p.* + from folks as p, ancestors as a + where p.id = a.father or p.id = a.mother +) +select * from ancestors; + +with recursive +ancestors +as +( + select * + from folks + where name = 'Vasya' or name='Sister Amy' + union + select p.* + from folks as p, ancestors as a + where p.id = a.father or p.id = a.mother +) +select * from ancestors; + +with recursive +prev_gen +as +( + select folks.* + from folks, prev_gen + where folks.id=prev_gen.father or folks.id=prev_gen.mother + union + select * + from folks + where name='Vasya' +), +ancestors +as +( + select * + from folks + where name='Vasya' + union + select * + from ancestors + union + select * + from prev_gen +) +select ancestors.name, ancestors.dob from ancestors; + + +with recursive +descendants +as +( + select * + from folks + where name = 'Grandpa Bill' + union + select folks.* + from folks, descendants as d + where d.id=folks.father or d.id=folks.mother +) +select * from descendants; + +with recursive +descendants +as +( + select * + from folks + where name = 'Grandma Sally' + union + select folks.* + from folks, descendants as d + where d.id=folks.father or d.id=folks.mother +) +select * from descendants; + + +with recursive +ancestors +as +( + select * + from folks + where name = 'Vasya' and dob = '2000-01-01' + union + select p.* + from folks as p, ancestors AS a + where p.id = a.father OR p.id = a.mother +) +select * + from ancestors t1, ancestors t2 + where exists (select * from ancestors a + where a.father=t1.id AND a.mother=t2.id); + +with +ancestor_couples(husband, h_dob, wife, w_dob) +as +( +with recursive +ancestors +as +( + select * + from folks + where name = 'Vasya' + union + select p.* + from folks as p, ancestors AS a + where p.id = a.father OR p.id = a.mother +) +select t1.name, t1.dob, t2.name, t2.dob + from ancestors t1, ancestors t2 + where exists (select * from ancestors a + where a.father=t1.id AND a.mother=t2.id) +) +select * from ancestor_couples; + +with recursive +ancestors +as +( + select * + from folks + where name = 'Vasya' and dob = '2000-01-01' + union + select p.* + from folks as p, ancestors AS a + where p.id = a.father + union + select p.* + from folks as p, ancestors AS a + where p.id = a.mother +) +select * from ancestors; + +with recursive +ancestor_couples(h_id, h_name, h_dob, h_father, h_mother, + w_id, w_name, w_dob, w_father, w_mother) +as +( + select h.*, w.* + from folks h, folks w, coupled_ancestors a + where a.father = h.id AND a.mother = w.id + union + select h.*, w.* + from folks v, folks h, folks w + where v.name = 'Vasya' and + (v.father = h.id AND v.mother= w.id) +), +coupled_ancestors (id, name, dob, father, mother) +as +( + select h_id, h_name, h_dob, h_father, h_mother + from ancestor_couples + union + select w_id, w_name, w_dob, w_father, w_mother + from ancestor_couples +) +select h_name, h_dob, w_name, w_dob + from ancestor_couples; + +drop table folks; + diff --git a/mysql-test/t/ctype_eucjpms.test b/mysql-test/t/ctype_eucjpms.test index d533e38b2a2..b5bd92d1d07 100644 --- a/mysql-test/t/ctype_eucjpms.test +++ b/mysql-test/t/ctype_eucjpms.test @@ -566,3 +566,19 @@ DROP TABLE t1; --echo # --echo # End of 10.1 tests --echo # + +--echo # +--echo # End of 10.2 tests +--echo # + +--echo # +--echo # MDEV-9842 LOAD DATA INFILE does not work well with a TEXT column when using sjis +--echo # +CREATE TABLE t1 (a TEXT CHARACTER SET eucjpms); +LOAD DATA INFILE '../../std_data/loaddata/mdev9823.ujis.txt' INTO TABLE t1 CHARACTER SET eucjpms IGNORE 4 LINES; +SELECT HEX(a) FROM t1; +DROP TABLE t1; + +--echo # +--echo # End of 10.2 tests +--echo # diff --git a/mysql-test/t/ctype_gbk_export_import.test b/mysql-test/t/ctype_gbk_export_import.test new file mode 100644 index 00000000000..02d18fe60d4 --- /dev/null +++ b/mysql-test/t/ctype_gbk_export_import.test @@ -0,0 +1,161 @@ +--source include/not_windows.inc +--source include/have_case_sensitive_file_system.inc +--source include/have_gbk.inc + +# +# Check if we're running on a POSIX-locale machine +# + +--disable_query_log +--exec locale -a > $MYSQLTEST_VARDIR/tmp/locale_a_gbk.output 2>/dev/null || true +SET @file=REPLACE(LOAD_FILE('../../tmp/locale_a_gbk.output'), '-', ''); +# Note, file content must be case sensitive. See mysql_locale_posix.test +--remove_file $MYSQLTEST_VARDIR/tmp/locale_a_gbk.output +if (`SELECT (IFNULL(@file,'') NOT LIKE '%\nzh_CN.gbk\n%')`) +{ + Skip Need POSIX locale zh_CN.gbk; +} +--enable_query_log + + +--disable_warnings +DROP DATABASE IF EXISTS gbk; +--enable_warnings + +CREATE DATABASE gbk DEFAULT CHARACTER SET gbk; +USE gbk; + +CREATE TABLE t1 ( + id INT NOT NULL, + a1 TEXT NOT NULL, + a2 TEXT CHARACTER SET utf8 NOT NULL, + b1 BLOB NOT NULL, + eol TEXT NOT NULL); + +DELIMITER |; +CREATE PROCEDURE populate() +BEGIN + TRUNCATE TABLE t1; + INSERT INTO t1 SET id=1, a1=0xEE5C, a2=_gbk 0xEE5C, b1=0xEE5C, eol='$'; + INSERT INTO t1 SET id=2, a1=0xEE5C5C, a2=_gbk 0xEE5C5C, b1=0xEE5C5C, eol='$'; +END| + +CREATE FUNCTION cmt(id INT, field_name TEXT, field_value BLOB) + RETURNS TEXT CHARACTER SET utf8 +BEGIN + DECLARE comment TEXT CHARACTER SET utf8; + DECLARE expected_value_01 BLOB; + DECLARE expected_value_02 BLOB; + SET comment= CASE field_name WHEN 'a1' THEN 'TEXT-GBK' WHEN 'a2' THEN 'TEXT-UTF8' WHEN 'b1' THEN 'BLOB' ELSE '' END; + SET expected_value_01= CASE field_name WHEN 'a1' THEN 0xEE5C WHEN 'a2' THEN 0xE9A0AB WHEN 'b1' THEN 0xEE5C ELSE '' END; + SET expected_value_02= CASE field_name WHEN 'a1' THEN 0xEE5C5C WHEN 'a2' THEN 0xE9A0AB5C WHEN 'b1' THEN 0xEE5C5C ELSE '' END; + RETURN IF(CASE id + WHEN 1 THEN expected_value_01 + WHEN 2 THEN expected_value_02 + ELSE '' + END <> field_value, + CONCAT('BAD-', comment), ''); +END| + +CREATE FUNCTION display_file(file BLOB) RETURNS TEXT CHARACTER SET utf8 +BEGIN + SET file=REPLACE(file, 0x09, '----'); + SET file=REPLACE(file, 0x0A, '++++'); + RETURN REPLACE(REPLACE(HEX(file), '2D2D2D2D','-'), '2B2B2B2B','|'); +END| + +DELIMITER ;| + +CREATE VIEW v1 AS +SELECT + id, + CONCAT(RPAD(HEX(a1),50,' '), cmt(id, 'a1', a1)) AS a1, + CONCAT(RPAD(HEX(a2),50,' '), cmt(id, 'a2', a2)) AS a2, + CONCAT(RPAD(HEX(b1),50,' '), cmt(id, 'b1', b1)) AS b1, + CONCAT(RPAD(HEX(eol),50,' '), IF(eol<>'$','BAD-EOL','')) AS eol, + '---' AS `---` +FROM t1; +SHOW CREATE TABLE t1; + +--echo # +--echo # Dump using SELECT INTO OUTFILE +--echo # + +--perl +my $dir= $ENV{'MYSQL_TMP_DIR'}; +open (my $FILE, '>', "$dir/tmpgbk.inc") or die "open(): $!"; +for $LOCALE ("zh_CN.gbk") { +for $DUMP_OPTIONS ("--default-character-set=auto", "--default-character-set=gbk","--default-character-set=utf8") { +for $DUMP_CHARSET_CLAUSE ("", "CHARACTER SET gbk", "CHARACTER SET utf8", "CHARACTER SET binary") { +for $RESTORE_OPTIONS ("--default-character-set=auto", "--default-character-set=gbk","--default-character-set=utf8") { +for $RESTORE_CHARSET_CLAUSE ("", "CHARACTER SET gbk", "CHARACTER SET utf8", "CHARACTER SET binary") { +print $FILE <<END +--echo Start of {$LOCALE}{$DUMP_OPTIONS $DUMP_CHARSET_CLAUSE}{$RESTORE_OPTIONS $RESTORE_CHARSET_CLAUSE} +--echo Locale: $LOCALE +--echo OUTFILE: $DUMP_OPTIONS $DUMP_CHARSET_CLAUSE +--echo INFILE: $RESTORE_OPTIONS $RESTORE_CHARSET_CLAUSE +--disable_query_log +CALL populate(); +--exec LC_ALL=$LOCALE \$MYSQL $DUMP_OPTIONS gbk -e "SELECT * INTO OUTFILE '\$MYSQLTEST_VARDIR/tmp/t1' $DUMP_CHARSET_CLAUSE FROM t1" +--vertical_results +TRUNCATE TABLE t1; +--eval SELECT display_file(LOAD_FILE('\$MYSQLTEST_VARDIR/tmp/t1')) AS file; +--exec LC_ALL=$LOCALE \$MYSQL $RESTORE_OPTIONS gbk -e "LOAD DATA INFILE '\$MYSQLTEST_VARDIR/tmp/t1' INTO TABLE t1 $RESTORE_CHARSET_CLAUSE" +SELECT * FROM v1; +--echo End of {$LOCALE}{$DUMP_OPTIONS $DUMP_CHARSET_CLAUSE}{$RESTORE_OPTIONS $RESTORE_CHARSET_CLAUSE} +--echo +--echo +--horizontal_results +--enable_query_log +--remove_file \$MYSQLTEST_VARDIR/tmp/t1 +END +}}}}} +close $FILE +EOF +--source $MYSQL_TMP_DIR/tmpgbk.inc +--remove_file $MYSQL_TMP_DIR/tmpgbk.inc + + +--echo # +--echo # Dump using mysqldump -Tdir +--echo # + +--exec mkdir $MYSQLTEST_VARDIR/tmp/tmpgbk +--perl +my $dir= $ENV{'MYSQL_TMP_DIR'}; +open (my $FILE, '>', "$dir/tmpgbk.inc") or die "open(): $!"; +for $LOCALE ("zh_CN.gbk") { +for $DUMP_OPTIONS ("--default-character-set=binary","--default-character-set=gbk","--default-character-set=utf8") { +for $RESTORE_OPTIONS ("--default-character-set=auto","--default-character-set=binary","--default-character-set=gbk","--default-character-set=utf8") { +for $RESTORE_CHARSET_CLAUSE ("", "CHARACTER SET gbk", "CHARACTER SET utf8", "CHARACTER SET binary") { +print $FILE <<END +--echo Start of {$LOCALE}{$DUMP_OPTIONS}{$RESTORE_OPTIONS $RESTORE_CHARSET_CLAUSE} +--echo Locale: $LOCALE +--echo mysqldump: $DUMP_OPTIONS +--echo INFILE: $RESTORE_OPTIONS $RESTORE_CHARSET_CLAUSE +--disable_query_log +CALL populate(); +--exec LC_ALL=$LOCALE \$MYSQL_DUMP $DUMP_OPTIONS -T\$MYSQLTEST_VARDIR/tmp/tmpgbk gbk t1 +--vertical_results +TRUNCATE TABLE t1; +--eval SELECT display_file(LOAD_FILE('\$MYSQLTEST_VARDIR/tmp/tmpgbk/t1.txt')) AS file; +--exec LC_ALL=$LOCALE \$MYSQL $RESTORE_OPTIONS gbk -e "LOAD DATA INFILE '\$MYSQLTEST_VARDIR/tmp/tmpgbk/t1.txt' INTO TABLE t1 $RESTORE_CHARSET_CLAUSE" +SELECT * FROM v1; +--echo End of {$LOCALE}{$DUMP_OPTIONS}{$RESTORE_OPTIONS $RESTORE_CHARSET_CLAUSE} +--echo +--echo +--horizontal_results +--enable_query_log +--remove_file \$MYSQLTEST_VARDIR/tmp/tmpgbk/t1.txt +--remove_file \$MYSQLTEST_VARDIR/tmp/tmpgbk/t1.sql +END +}}}} +close $FILE +EOF +--source $MYSQL_TMP_DIR/tmpgbk.inc +--remove_file $MYSQL_TMP_DIR/tmpgbk.inc +--rmdir $MYSQLTEST_VARDIR/tmp/tmpgbk + + +DROP DATABASE gbk; +USE test; diff --git a/mysql-test/t/ctype_ujis.test b/mysql-test/t/ctype_ujis.test index 3f444580b13..db85585efd9 100644 --- a/mysql-test/t/ctype_ujis.test +++ b/mysql-test/t/ctype_ujis.test @@ -1396,3 +1396,20 @@ SELECT HEX(a) FROM t1 ORDER BY a;DROP TABLE t1; --echo # --echo # End of 10.1 tests --echo # + + +--echo # +--echo # End of 10.2 tests +--echo # + +--echo # +--echo # MDEV-9842 LOAD DATA INFILE does not work well with a TEXT column when using sjis +--echo # +CREATE TABLE t1 (a TEXT CHARACTER SET ujis); +LOAD DATA INFILE '../../std_data/loaddata/mdev9823.ujis.txt' INTO TABLE t1 CHARACTER SET ujis IGNORE 4 LINES; +SELECT HEX(a) FROM t1; +DROP TABLE t1; + +--echo # +--echo # End of 10.2 tests +--echo # diff --git a/mysql-test/t/ctype_utf8.test b/mysql-test/t/ctype_utf8.test index f3a9e63b57d..61bc1c58ecb 100644 --- a/mysql-test/t/ctype_utf8.test +++ b/mysql-test/t/ctype_utf8.test @@ -1967,5 +1967,21 @@ SELECT c1 FROM t1; DROP TABLE t1; --echo # +--echo # MDEV-9842 LOAD DATA INFILE does not work well with a TEXT column when using sjis +--echo # +CREATE TABLE t1 (a TEXT CHARACTER SET utf8); +LOAD DATA INFILE '../../std_data/loaddata/mdev9823.utf8mb4.txt' INTO TABLE t1 CHARACTER SET utf8 IGNORE 4 LINES; +SELECT HEX(a) FROM t1; +DROP TABLE t1; + +--echo # +--echo # MDEV-9874 LOAD XML INFILE does not handle well broken multi-byte characters +--echo # +CREATE TABLE t1 (a TEXT CHARACTER SET utf8); +LOAD XML INFILE '../../std_data/loaddata/mdev9874.xml' INTO TABLE t1 CHARACTER SET utf8 ROWS IDENTIFIED BY '<row>'; +SELECT HEX(a) FROM t1; +DROP TABLE t1; + +--echo # --echo # End of 10.2 tests --echo # diff --git a/mysql-test/t/ctype_utf8mb4.test b/mysql-test/t/ctype_utf8mb4.test index 2fe9b5e6544..74e39a80e5b 100644 --- a/mysql-test/t/ctype_utf8mb4.test +++ b/mysql-test/t/ctype_utf8mb4.test @@ -1919,3 +1919,20 @@ DROP FUNCTION f1; --echo # --echo # End of 10.1 tests --echo # + + +--echo # +--echo # End of 10.2 tests +--echo # + +--echo # +--echo # MDEV-9842 LOAD DATA INFILE does not work well with a TEXT column when using sjis +--echo # +CREATE TABLE t1 (a TEXT CHARACTER SET utf8mb4); +LOAD DATA INFILE '../../std_data/loaddata/mdev9823.utf8mb4.txt' INTO TABLE t1 CHARACTER SET utf8mb4 IGNORE 4 LINES; +SELECT HEX(a) FROM t1; +DROP TABLE t1; + +--echo # +--echo # End of 10.2 tests +--echo # diff --git a/mysql-test/t/delayed.test b/mysql-test/t/delayed.test index 85f28de128b..dea16c84a51 100644 --- a/mysql-test/t/delayed.test +++ b/mysql-test/t/delayed.test @@ -1,5 +1,12 @@ # delayed works differently in embedded server --source include/not_embedded.inc +# Don't test this under valgrind, memory leaks will occur +--source include/not_valgrind.inc +# Avoid CrashReporter popup on Mac +--source include/not_crashrep.inc +# Binary must be compiled with debug for crash to occur +--source include/have_debug_sync.inc + # # test of DELAYED insert and timestamps # (Can't be tested with purify :( ) @@ -601,3 +608,37 @@ disconnect con1; --source include/wait_until_disconnected.inc connection default; drop tables tm, t1, t2; + +--echo # +--echo # MDEV-9621 INSERT DELAYED fails on insert for tables with many columns +--echo # + +CREATE TABLE t1 ( + a int,b int,c int,d int,e int,f int,g int,h int,i int,j int,k int,l int,m int,n int,o int,p int,q int,r int,s int,t int,u int,v int,x int,y int,z int +) ENGINE=MyISAM; + +INSERT DELAYED INTO t1 (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,x,y,z) +values (1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1); +INSERT DELAYED INTO t1 (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,x,y,z) +values (1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1); +drop table t1; + +--echo # +--echo # INSERT DELAYED hangs if table was crashed +--echo # + +create table t1 (a int, b int) engine=myisam; +insert into t1 values (1,1); + +# Will come back with t1 crashed. +--source include/crash_mysqld.inc + +call mtr.add_suppression(" marked as crashed and should be repaired"); +call mtr.add_suppression("Checking table"); + +--replace_result '\\' '/' +insert delayed into t1 values (2,2); +insert delayed into t1 values (3,3); +flush tables t1; +select * from t1; +drop table t1; diff --git a/mysql-test/t/func_analyse.test b/mysql-test/t/func_analyse.test index c77967a0cc9..6c30c0ca630 100644 --- a/mysql-test/t/func_analyse.test +++ b/mysql-test/t/func_analyse.test @@ -11,7 +11,7 @@ insert into t1 values (1,2,"","Y","2002-03-03"), (3,4,"","N","2002-03-04"), (5,6 select count(*) from t1 procedure analyse(); select * from t1 procedure analyse(); select * from t1 procedure analyse(2); ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR create table t2 select * from t1 procedure analyse(); drop table t1; @@ -127,7 +127,7 @@ CREATE TABLE t1(a INT); INSERT INTO t1 VALUES (1),(2); --echo # should not crash ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR CREATE TABLE t2 SELECT 1 FROM t1, t1 t3 GROUP BY t3.a PROCEDURE ANALYSE(); DROP TABLE t1; @@ -157,3 +157,27 @@ SELECT * FROM t2 LIMIT 1 PROCEDURE ANALYSE(); DROP TABLE t1, t2; --echo End of 5.1 tests + +--echo # +--echo # Start of 10.2 tests +--echo # +(SELECT 1 FROM DUAL PROCEDURE ANALYSE()); +((SELECT 1 FROM DUAL PROCEDURE ANALYSE())); + +# TODO: +--error ER_WRONG_USAGE +SELECT * FROM t1 UNION SELECT * FROM t1 PROCEDURE analyse(); + +--echo # +--echo # MDEV-10030 sql_yacc.yy: Split table_expression and remove PROCEDURE from create_select, select_paren_derived, select_derived2, query_specification +--echo # + +--error ER_PARSE_ERROR +SELECT * FROM (SELECT * FROM t1 PROCEDURE ANALYSE()); +--ERROR ER_PARSE_ERROR +SELECT * FROM t1 NATURAL JOIN (SELECT * FROM t2 PROCEDURE ANALYSE()); + +--error ER_PARSE_ERROR +SELECT (SELECT 1 FROM t1 PROCEDURE ANALYSE()) FROM t2; +--error ER_PARSE_ERROR +SELECT ((SELECT 1 FROM t1 PROCEDURE ANALYSE())) FROM t2; diff --git a/mysql-test/t/group_by.test b/mysql-test/t/group_by.test index fe9308cd20a..f0007186ab2 100644 --- a/mysql-test/t/group_by.test +++ b/mysql-test/t/group_by.test @@ -996,8 +996,33 @@ EXPLAIN SELECT a FROM t1 WHERE a < 2 ORDER BY a; EXPLAIN SELECT a FROM t1 WHERE a < 2 GROUP BY a; EXPLAIN SELECT a FROM t1 IGNORE INDEX (PRIMARY,i2); EXPLAIN SELECT a FROM t1 IGNORE INDEX FOR JOIN (PRIMARY,i2); + +--echo # +--echo # For this explain, the query plan is weird: if we are using +--echo # the primary key for reasons other than doing grouping, can't +--echo # GROUP BY code take advantage of this? Well, currently it doesnt: EXPLAIN SELECT a FROM t1 IGNORE INDEX FOR GROUP BY (PRIMARY,i2) GROUP BY a; +--echo # Here's a proof it is really doing sorting: +flush status; +--disable_result_log +SELECT a FROM t1 IGNORE INDEX FOR GROUP BY (PRIMARY,i2) GROUP BY a; +--enable_result_log +show status like 'Sort_%'; +--echo # Proof ends. +--echo # + +--echo # For this explain, the query plan is weird: if we are using +--echo # the primary key for reasons other than doing sorting, can't +--echo # ORDER BY code take advantage of this? Well, currently it doesnt: EXPLAIN SELECT a FROM t1 IGNORE INDEX FOR ORDER BY (PRIMARY,i2) ORDER BY a; +--echo # Here's a proof it is really doing sorting: +flush status; +--disable_result_log +SELECT a FROM t1 IGNORE INDEX FOR ORDER BY (PRIMARY,i2) ORDER BY a; +--enable_result_log +show status like 'Sort_%'; +--echo # Proof ends. +--echo # SELECT a FROM t1 IGNORE INDEX FOR ORDER BY (PRIMARY,i2) ORDER BY a; EXPLAIN SELECT a FROM t1 IGNORE INDEX FOR ORDER BY (PRIMARY) IGNORE INDEX FOR GROUP BY (i2) GROUP BY a; @@ -1793,3 +1818,13 @@ from t1 group by t1.b; drop table t0,t1,t2; + +--echo # +--echo # MDEV-9602 crash in st_key::actual_rec_per_key when group by constant +--echo # + +create table t1 (a date not null,unique (a)) engine=innodb; +select distinct a from t1 group by 'a'; +insert into t1 values("2001-02-02"),("2001-02-03"); +select distinct a from t1 group by 'a'; +drop table t1; diff --git a/mysql-test/t/limit_rows_examined.test b/mysql-test/t/limit_rows_examined.test index 45ee483c7aa..382530234be 100644 --- a/mysql-test/t/limit_rows_examined.test +++ b/mysql-test/t/limit_rows_examined.test @@ -305,7 +305,6 @@ select c1, sum(c2) from t3 group by c1; explain select c1, sum(c2) from t3 group by c1 LIMIT ROWS EXAMINED 0; select c1, sum(c2) from t3 group by c1 LIMIT ROWS EXAMINED 0; ---error 1028 select c1, sum(c2) from t3 group by c1 LIMIT ROWS EXAMINED 1; select c1, sum(c2) from t3 group by c1 LIMIT ROWS EXAMINED 20; select c1, sum(c2) from t3 group by c1 LIMIT ROWS EXAMINED 21; @@ -321,7 +320,6 @@ insert into t3i values explain select c1, sum(c2) from t3i group by c1 LIMIT ROWS EXAMINED 0; select c1, sum(c2) from t3i group by c1 LIMIT ROWS EXAMINED 0; ---error 1028 select c1, sum(c2) from t3i group by c1 LIMIT ROWS EXAMINED 1; select c1, sum(c2) from t3i group by c1 LIMIT ROWS EXAMINED 20; select c1, sum(c2) from t3i group by c1 LIMIT ROWS EXAMINED 21; @@ -432,7 +430,7 @@ drop table t1,t2,t1i,t2i; SET @@optimizer_switch='in_to_exists=on,outer_join_with_cache=on'; CREATE TABLE t1 ( a VARCHAR(3) ) ENGINE=MyISAM; -INSERT INTO t1 VALUES ('USA'); +INSERT INTO t1 VALUES ('USA'),('CAN'); CREATE TABLE t2 ( b INT ); INSERT INTO t2 VALUES (3899),(3914),(3888); diff --git a/mysql-test/t/myisam.test b/mysql-test/t/myisam.test index 9ac49a9063d..a454fa25ac4 100644 --- a/mysql-test/t/myisam.test +++ b/mysql-test/t/myisam.test @@ -552,6 +552,8 @@ insert t2 select * from t1; checksum table t1, t2, t3 quick; checksum table t1, t2, t3; checksum table t1, t2, t3 extended; +alter table t1 add d int default 30, add e bigint default 300000, add f decimal(30) default 442; +checksum table t1; #show table status; drop table t1,t2; diff --git a/mysql-test/t/order_by_optimizer.test b/mysql-test/t/order_by_optimizer.test new file mode 100644 index 00000000000..a4c134afec9 --- /dev/null +++ b/mysql-test/t/order_by_optimizer.test @@ -0,0 +1,34 @@ +--disable_warnings +drop table if exists t0,t1,t2,t3; + +--enable_warnings +--echo # +--echo # MDEV-7885: EXPLAIN shows wrong info for ORDER BY query +--echo # +create table t0(a int); +insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); +create table t1(a int); +insert into t1 select A.a + B.a* 10 + C.a * 100 from t0 A, t0 B, t0 C; + +create table t2 (key1 int, col1 int, key(key1)); +insert into t2 select a,a from t0; +insert into t2 select 15,15 from t1; +alter table t2 add key2 int, add key(key2); +--echo # This must show "Using filesort": +explain +select * from t2 ignore index for order by (key1) where col1<0 order by key1 limit 10; + +drop table t0, t1, t2; + +--echo # +--echo # MDEV-8857: [Upstream too] EXPLAIN incorrectly shows Distinct for tables using join buffer +--echo # +create table t0(a int); +insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); + +create table t1 (a int, filler char(200), key(a)); +insert into t1 select A.a + B.a* 10, 'AAAAAAAAAAAAAAAAAAAA' from t0 A, t0 B where B.a in (0,1); +explain select distinct A.a from t0 A, t1 B where A.a+B.a> 0; + +drop table t0, t1; + diff --git a/mysql-test/t/parser.test b/mysql-test/t/parser.test index 0a19b03a4eb..86cc3c47c37 100644 --- a/mysql-test/t/parser.test +++ b/mysql-test/t/parser.test @@ -806,7 +806,7 @@ SELECT 1 FROM (SELECT 1 FROM DUAL WHERE 1 GROUP BY 1 HAVING 1 ORDER BY 1 FOR UPDATE) a; ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR SELECT 1 FROM (SELECT 1 FROM DUAL WHERE 1 GROUP BY 1 HAVING 1 ORDER BY 1 PROCEDURE ANALYSE() FOR UPDATE) a; @@ -815,7 +815,7 @@ SELECT 1 FROM t1 WHERE EXISTS(SELECT 1 FROM DUAL WHERE 1 GROUP BY 1 HAVING 1 ORDER BY 1 FOR UPDATE); ---error ER_WRONG_USAGE +--error ER_PARSE_ERROR SELECT 1 FROM t1 WHERE EXISTS(SELECT 1 FROM DUAL WHERE 1 GROUP BY 1 HAVING 1 ORDER BY 1 PROCEDURE ANALYSE() FOR UPDATE); diff --git a/mysql-test/t/subselect.test b/mysql-test/t/subselect.test index 7a7c01e78bd..5313a4b8a39 100644 --- a/mysql-test/t/subselect.test +++ b/mysql-test/t/subselect.test @@ -51,7 +51,7 @@ SELECT * FROM (SELECT 1 as id) b WHERE id IN (SELECT * FROM (SELECT 1 as id) c O SELECT * FROM (SELECT 1) a WHERE 1 IN (SELECT 1,1); SELECT 1 IN (SELECT 1); SELECT 1 FROM (SELECT 1 as a) b WHERE 1 IN (SELECT (SELECT a)); --- error ER_WRONG_USAGE +-- error ER_PARSE_ERROR select (SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE(1)); -- error ER_PARSE_ERROR SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE((SELECT 1)); diff --git a/mysql-test/t/win.test b/mysql-test/t/win.test new file mode 100644 index 00000000000..09ddf41b4f0 --- /dev/null +++ b/mysql-test/t/win.test @@ -0,0 +1,1203 @@ +# +# Window Functions Tests +# + +--disable_warnings +drop table if exists t1,t2; +drop view if exists v1; +--enable_warnings + +--echo # ######################################################################## +--echo # # Parser tests +--echo # ######################################################################## +--echo # +--echo # Check what happens when one attempts to use window function without OVER clause +create table t1 (a int, b int); +insert into t1 values (1,1),(2,2); + +--error ER_PARSE_ERROR +select row_number() from t1; +--error ER_PARSE_ERROR +select rank() from t1; + +--echo # Attempt to use window function in the WHERE clause +--error ER_WRONG_PLACEMENT_OF_WINDOW_FUNCTION +select * from t1 where 1=rank() over (order by a); +--error ER_WRONG_PLACEMENT_OF_WINDOW_FUNCTION +select * from t1 where 1>row_number() over (partition by b order by a); +drop table t1; + +--echo # ######################################################################## +--echo # # Functionality tests +--echo # ######################################################################## +--echo # +--echo # Check if ROW_NUMBER() works in basic cases +create table t1(a int, b int, x char(32)); +insert into t1 values (2, 10, 'xx'); +insert into t1 values (2, 10, 'zz'); +insert into t1 values (2, 20, 'yy'); +insert into t1 values (3, 10, 'xxx'); +insert into t1 values (3, 20, 'vvv'); + +--sorted_result +select a, row_number() over (partition by a order by b) from t1; + +select a, b, x, row_number() over (partition by a order by x) from t1; + +drop table t1; + +create table t1 (pk int primary key, a int, b int); +insert into t1 values + (1, 10, 22), + (2, 11, 21), + (3, 12, 20), + (4, 13, 19), + (5, 14, 18); + +select + pk, a, b, + row_number() over (order by a), + row_number() over (order by b) +from t1; + +drop table t1; + +--echo # +--echo # Try RANK() function +--echo # +create table t2 ( + pk int primary key, + a int +); + +insert into t2 values +( 1 , 0), +( 2 , 0), +( 3 , 1), +( 4 , 1), +( 8 , 2), +( 5 , 2), +( 6 , 2), +( 7 , 2), +( 9 , 4), +(10 , 4); + +select pk, a, rank() over (order by a) from t2; +select pk, a, rank() over (order by a desc) from t2; + +drop table t2; + +--echo # +--echo # Try Aggregates as window functions. With frames. +--echo # +create table t0 (a int); +insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); + +create table t1 (pk int, c int); +insert into t1 select a+1,1 from t0; +update t1 set c=2 where pk not in (1,2,3,4); +select * from t1; + +select + pk, c, + count(*) over (partition by c order by pk + rows between 2 preceding and 2 following) as CNT +from t1; + +select + pk, c, + count(*) over (partition by c order by pk + rows between 1 preceding and 2 following) as CNT +from t1; + +select + pk, c, + count(*) over (partition by c order by pk + rows between 2 preceding and current row) as CNT +from t1; + +select + pk,c, + count(*) over (partition by c order by pk rows + between 1 following and 2 following) as CNT +from t1; + +select + pk,c, + count(*) over (partition by c order by pk rows + between 2 preceding and 1 preceding) as CNT +from t1; + +select + pk, c, + count(*) over (partition by c order by pk + rows between current row and 1 following) as CNT +from t1; + +--echo # Check ORDER BY DESC +select + pk, c, + count(*) over (partition by c order by pk desc + rows between 2 preceding and 2 following) as CNT +from t1; + +drop table t0,t1; + +--echo # +--echo # Resolution of window names +--echo # + +create table t0 (a int); +insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); + +create table t1 (pk int, c int); +insert into t1 select a+1,1 from t0; +update t1 set c=2 where pk not in (1,2,3,4); +select * from t1; + +select + pk, c, + count(*) over w1 as CNT +from t1 +window w1 as (partition by c order by pk + rows between 2 preceding and 2 following); + +select + pk, c, + count(*) over (w1 rows between 2 preceding and 2 following) as CNT +from t1 +window w1 as (partition by c order by pk); + +select + pk, c, + count(*) over (w1 order by pk rows between 2 preceding and 2 following) as CNT +from t1 +window w1 as (partition by c); + +select + pk, c, + count(*) over (w2 rows between 2 preceding and 2 following) as CNT +from t1 +window w1 as (partition by c), w2 as (w1 order by pk); + +select + pk, c, + count(*) over w3 as CNT +from t1 +window + w1 as (partition by c), + w2 as (w1 order by pk), + w3 as (w2 rows between 2 preceding and 2 following); + +--error ER_WRONG_WINDOW_SPEC_NAME +select + pk, c, + count(*) over w as CNT +from t1 +window w1 as (partition by c order by pk + rows between 2 preceding and 2 following); + +--error ER_DUP_WINDOW_NAME +select + pk, c, + count(*) over (w2 rows between 2 preceding and 2 following) as CNT +from t1 +window w1 as (partition by c), w1 as (order by pk); + +--error ER_WRONG_WINDOW_SPEC_NAME +select + pk, c, + count(*) over (w2 rows between 2 preceding and 2 following) as CNT +from t1 +window w1 as (partition by c), w2 as (w partition by c order by pk); + +--error ER_PARTITION_LIST_IN_REFERENCING_WINDOW_SPEC +select + pk, c, + count(*) over (w2 rows between 2 preceding and 2 following) as CNT +from t1 +window w1 as (partition by c), w2 as (w1 partition by c order by pk); + +--error ER_ORDER_LIST_IN_REFERENCING_WINDOW_SPEC +select + pk, c, + count(*) over (w2 rows between 2 preceding and 2 following) as CNT +from t1 +window w1 as (partition by c order by pk), w2 as (w1 order by pk); + +--error ER_WINDOW_FRAME_IN_REFERENCED_WINDOW_SPEC +select + pk, c, + count(*) over w3 as CNT +from t1 +window + w1 as (partition by c), + w2 as (w1 order by pk rows between 3 preceding and 2 following), + w3 as (w2 rows between 2 preceding and 2 following); + +--error ER_BAD_COMBINATION_OF_WINDOW_FRAME_BOUND_SPECS +select + pk, c, + count(*) over w1 as CNT +from t1 +window w1 as (partition by c order by pk + rows between unbounded following and 2 following); + +--error ER_BAD_COMBINATION_OF_WINDOW_FRAME_BOUND_SPECS +select + pk, c, + count(*) over (w1 rows between 2 preceding and unbounded preceding) as CNT +from t1 +window w1 as (partition by c order by pk); + +--error ER_BAD_COMBINATION_OF_WINDOW_FRAME_BOUND_SPECS +select + pk, c, + count(*) over (w1 order by pk rows between current row and 2 preceding) as CNT +from t1 +window w1 as (partition by c); + +--error ER_BAD_COMBINATION_OF_WINDOW_FRAME_BOUND_SPECS +select + pk, c, + count(*) over (w2 rows between 2 following and current row) as CNT +from t1 +window w1 as (partition by c), w2 as (w1 order by pk); + +--error ER_WRONG_PLACEMENT_OF_WINDOW_FUNCTION +select + pk, c +from t1 where rank() over w1 > 2 +window w1 as (partition by c order by pk); + +--error ER_WRONG_PLACEMENT_OF_WINDOW_FUNCTION +select + c, max(pk) as m +from t1 + group by c + rank() over w1 +window w1 as (order by m); + +--error ER_WRONG_PLACEMENT_OF_WINDOW_FUNCTION +select + c, max(pk) as m, rank() over w1 as r +from t1 + group by c+r +window w1 as (order by m); + +--error ER_WRONG_PLACEMENT_OF_WINDOW_FUNCTION +select + c, max(pk) as m, rank() over w1 as r +from t1 + group by c having c+r > 3 +window w1 as (order by m); + +--error ER_WINDOW_FUNCTION_IN_WINDOW_SPEC +select + c, max(pk) as m, rank() over w1 as r, + rank() over (partition by r+1 order by m) +from t1 + group by c +window w1 as (order by m); + +--error ER_WINDOW_FUNCTION_IN_WINDOW_SPEC +select + c, max(pk) as m, rank() over w1 as r, + rank() over (partition by m order by r) +from t1 + group by c +window w1 as (order by m); + +--error ER_WINDOW_FUNCTION_IN_WINDOW_SPEC +select + c, max(pk) as m, rank() over w1 as r, dense_rank() over w2 as dr +from t1 + group by c +window w1 as (order by m), w2 as (partition by r order by m); + +--error ER_NOT_ALLOWED_WINDOW_FRAME +select + pk, c, + row_number() over (partition by c order by pk + range between unbounded preceding and current row) as r +from t1; + +--error ER_NOT_ALLOWED_WINDOW_FRAME +select + pk, c, + rank() over w1 as r +from t1 +window w1 as (partition by c order by pk + rows between 2 preceding and 2 following); + +--error ER_NOT_ALLOWED_WINDOW_FRAME +select + pk, c, + dense_rank() over (partition by c order by pk + rows between 1 preceding and 1 following) as r +from t1; + +--error ER_NO_ORDER_LIST_IN_WINDOW_SPEC +select + pk, c, + rank() over w1 as r +from t1 +window w1 as (partition by c); + +--error ER_NO_ORDER_LIST_IN_WINDOW_SPEC +select + pk, c, + dense_rank() over (partition by c) as r +from t1; + +drop table t0,t1; + +--echo # +--echo # MDEV-9634: Window function produces incorrect value +--echo # + +create table t0 (a int); +insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); +create table t2 (part_id int, pk int, a int); +insert into t2 select + if(a<5, 0, 1), a, if(a<5, NULL, 1) from t0; +select * from t2; + +select + part_id, pk, a, + count(a) over (partition by part_id order by pk + rows between 1 preceding and 1 following) as CNT +from t2; + +drop table t0, t2; + +--echo # +--echo # RANGE-type bounds +--echo # + +create table t3 ( + pk int, + val int +); + +insert into t3 values +(0, 1), +(1, 1), +(2, 1), +(3, 2), +(4, 2), +(5, 2), +(6, 2); + +select + pk, + val, + count(val) over (order by val + range between current row and + current row) + as CNT +from t3; + +insert into t3 values +(7, 3), +(8, 3); + +select + pk, + val, + count(val) over (order by val + range between current row and + current row) + as CNT +from t3; + +drop table t3; + +--echo # Now, check with PARTITION BY +create table t4 ( + part_id int, + pk int, + val int +); + +insert into t4 values +(1234, 100, 1), +(1234, 101, 1), +(1234, 102, 1), +(1234, 103, 2), +(1234, 104, 2), +(1234, 105, 2), +(1234, 106, 2), +(1234, 107, 3), +(1234, 108, 3), + +(5678, 200, 1), +(5678, 201, 1), +(5678, 202, 1), +(5678, 203, 2), +(5678, 204, 2), +(5678, 205, 2), +(5678, 206, 2), +(5678, 207, 3), +(5678, 208, 3); + +select + part_id, + pk, + val, + count(val) over (partition by part_id + order by val + range between current row and + current row) + as CNT +from t4; + +--echo # +--echo # Try RANGE UNBOUNDED PRECEDING | FOLLOWING +--echo # +select + part_id, + pk, + val, + count(val) over (partition by part_id + order by val + range between unbounded preceding and + current row) + as CNT +from t4; + +select + part_id, + pk, + val, + count(val) over (partition by part_id + order by val + range between current row and + unbounded following) + as CNT +from t4; + +select + part_id, + pk, + val, + count(val) over (partition by part_id + order by val + range between unbounded preceding and + unbounded following) + as CNT +from t4; + +drop table t4; + +--echo # +--echo # MDEV-9695: Wrong window frame when using RANGE BETWEEN N FOLLOWING AND PRECEDING +--echo # +create table t1 (pk int, a int, b int); +insert into t1 values +( 1 , 0, 1), +( 2 , 0, 2), +( 3 , 1, 4), +( 4 , 1, 8), +( 5 , 2, 32), +( 6 , 2, 64), +( 7 , 2, 128), +( 8 , 2, 16); + +select pk, a, b, +bit_or(b) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) as bit_or +from t1; + +--echo # Extra ROWS n PRECEDING tests +select pk, a, b, +bit_or(b) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) as bit_or +from t1; +drop table t1; + + +create table t2 ( + pk int, + a int, + b int +); + +insert into t2 values +( 1, 0, 1), +( 2, 0, 2), +( 3, 0, 4), +( 4, 0, 8), +( 5, 1, 16), +( 6, 1, 32), +( 7, 1, 64), +( 8, 1, 128), +( 9, 2, 256), +(10, 2, 512), +(11, 2, 1024), +(12, 2, 2048); + +select pk, a, b, +bit_or(b) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) as bit_or +from t2; + +select pk, a, b, +bit_or(b) over (partition by a order by pk ROWS BETWEEN 2 PRECEDING AND 2 PRECEDING) as bit_or +from t2; + +select pk, a, b, +bit_or(b) over (partition by a order by pk ROWS BETWEEN 2 PRECEDING AND 1 PRECEDING) as bit_or +from t2; + +--echo # Check CURRENT ROW + +select pk, a, b, +bit_or(b) over (partition by a order by pk ROWS BETWEEN CURRENT ROW AND CURRENT ROW) as bit_or +from t2; + +drop table t2; + +--echo # +--echo # Try RANGE PRECEDING|FOLLWING n +--echo # +create table t1 ( + part_id int, + pk int, + a int +); + +insert into t1 values +(10, 1, 1), +(10, 2, 2), +(10, 3, 4), +(10, 4, 8), +(10, 5,26), +(10, 6,27), +(10, 7,40), +(10, 8,71), +(10, 9,72); + +select + pk, a, + count(a) over (ORDER BY a + RANGE BETWEEN UNBOUNDED PRECEDING + AND 10 FOLLOWING) as cnt +from t1; + +select + pk, a, + count(a) over (ORDER BY a DESC + RANGE BETWEEN UNBOUNDED PRECEDING + AND 10 FOLLOWING) as cnt +from t1; + +select + pk, a, + count(a) over (ORDER BY a + RANGE BETWEEN UNBOUNDED PRECEDING + AND 1 FOLLOWING) as cnt +from t1; + +select + pk, a, + count(a) over (ORDER BY a + RANGE BETWEEN UNBOUNDED PRECEDING + AND 10 PRECEDING) as cnt +from t1; + +select + pk, a, + count(a) over (ORDER BY a DESC + RANGE BETWEEN UNBOUNDED PRECEDING + AND 10 PRECEDING) as cnt +from t1; + +select + pk, a, + count(a) over (ORDER BY a + RANGE BETWEEN UNBOUNDED PRECEDING + AND 1 PRECEDING) as cnt +from t1; + +# Try bottom bound +select + pk, a, + count(a) over (ORDER BY a + RANGE BETWEEN 1 PRECEDING + AND CURRENT ROW) as cnt +from t1; + +select + pk, a, + count(a) over (ORDER BY a DESC + RANGE BETWEEN 1 PRECEDING + AND CURRENT ROW) as cnt +from t1; + +select + pk, a, + count(a) over (ORDER BY a + RANGE BETWEEN 1 FOLLOWING + AND 3 FOLLOWING) as cnt +from t1; + +--echo # Try CURRENT ROW with[out] DESC +select + pk, a, + count(a) over (ORDER BY a + RANGE BETWEEN CURRENT ROW + AND 1 FOLLOWING) as cnt +from t1; + +select + pk, a, + count(a) over (order by a desc + range between current row + and 1 following) as cnt +from t1; + + +# Try with partitions +insert into t1 select 22, pk, a from t1; +select + part_id, pk, a, + count(a) over (PARTITION BY part_id + ORDER BY a + RANGE BETWEEN UNBOUNDED PRECEDING + AND 10 FOLLOWING) as cnt +from t1; + +select + pk, a, + count(a) over (PARTITION BY part_id + ORDER BY a + RANGE BETWEEN UNBOUNDED PRECEDING + AND 1 PRECEDING) as cnt +from t1; + +drop table t1; + +--echo # Try a RANGE frame over non-integer datatype: + +create table t1 ( + col1 int, + a decimal(5,3) +); + +insert into t1 values (1, 0.45); +insert into t1 values (1, 0.5); +insert into t1 values (1, 0.55); +insert into t1 values (1, 1.21); +insert into t1 values (1, 1.22); +insert into t1 values (1, 3.33); + +select + a, + count(col1) over (order by a + range between 0.1 preceding + and 0.1 following) +from t1; + +drop table t1; + +--echo # +--echo # RANGE-type frames and NULL values +--echo # +create table t1 ( + pk int, + a int, + b int +); + +insert into t1 values (1, NULL,1); +insert into t1 values (2, NULL,1); +insert into t1 values (3, NULL,1); +insert into t1 values (4, 10 ,1); +insert into t1 values (5, 11 ,1); +insert into t1 values (6, 12 ,1); +insert into t1 values (7, 13 ,1); +insert into t1 values (8, 14 ,1); + + +select + pk, a, + count(b) over (order by a + range between 2 preceding + and 2 following) as CNT +from t1; +drop table t1; + +--echo # +--echo # Try ranges that have bound1 > bound2. The standard actually allows them +--echo # + +create table t0 (a int); +insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); + +create table t1 (pk int, c int); +insert into t1 select a+1,1 from t0; +update t1 set c=2 where pk not in (1,2,3,4); +select * from t1; + +select + pk, c, + count(*) over (partition by c + order by pk + rows between 1 preceding + and 2 preceding) + as cnt +from t1; + + +select + pk, c, + count(*) over (partition by c + order by pk + range between 1 preceding + and 2 preceding) + as cnt +from t1; +drop table t0, t1; + +--echo # +--echo # Error checking for frame bounds +--echo # + +create table t1 (a int, b int, c varchar(32)); +insert into t1 values (1,1,'foo'); +insert into t1 values (2,2,'bar'); +--error ER_RANGE_FRAME_NEEDS_SIMPLE_ORDERBY +select + count(*) over (order by a,b + range between unbounded preceding and current row) +from t1; + +--error ER_WRONG_TYPE_FOR_RANGE_FRAME +select + count(*) over (order by c + range between unbounded preceding and current row) +from t1; + +--error ER_WRONG_TYPE_FOR_RANGE_FRAME +select + count(*) over (order by a + range between 'abcd' preceding and current row) +from t1; + +--error ER_WRONG_TYPE_FOR_RANGE_FRAME +select + count(*) over (order by a + range between current row and 'foo' following) +from t1; + +--echo # Try range frame with invalid bounds +--error ER_WRONG_TYPE_FOR_ROWS_FRAME +select + count(*) over (order by a + rows between 0.5 preceding and current row) +from t1; + +--error ER_WRONG_TYPE_FOR_ROWS_FRAME +select + count(*) over (order by a + rows between current row and 3.14 following) +from t1; + +--echo # +--echo # EXCLUDE clause is parsed but not supported +--echo # + +--error ER_FRAME_EXCLUSION_NOT_SUPPORTED +select + count(*) over (order by a + rows between 1 preceding and 1 following + exclude current row) +from t1; + +--error ER_FRAME_EXCLUSION_NOT_SUPPORTED +select + count(*) over (order by a + range between 1 preceding and 1 following + exclude ties) +from t1; + +--error ER_FRAME_EXCLUSION_NOT_SUPPORTED +select + count(*) over (order by a + range between 1 preceding and 1 following + exclude group) +from t1; + +# EXCLUDE NO OTHERS means 'don't exclude anything' +select + count(*) over (order by a + rows between 1 preceding and 1 following + exclude no others) +from t1; + +drop table t1; + +--echo # +--echo # Window function in grouping query +--echo # + +create table t1 ( + username varchar(32), + amount int +); + +insert into t1 values +('user1',1), +('user1',5), +('user1',3), +('user2',10), +('user2',20), +('user2',30); + +select + username, + sum(amount) as s, + rank() over (order by s desc) +from t1 +group by username; + +drop table t1; + +--echo # +--echo # mdev-9719: Window function in prepared statement +--echo # + +create table t1(a int, b int, x char(32)); +insert into t1 values (2, 10, 'xx'); +insert into t1 values (2, 10, 'zz'); +insert into t1 values (2, 20, 'yy'); +insert into t1 values (3, 10, 'xxx'); +insert into t1 values (3, 20, 'vvv'); + +prepare stmt from 'select a, row_number() over (partition by a order by b) from t1'; +--sorted_result +execute stmt; + +drop table t1; + +--echo # +--echo # mdev-9754: Window name resolution in prepared statement +--echo # + +create table t0 (a int); +insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); + +create table t1 (pk int, c int); +insert into t1 select a+1,1 from t0; +update t1 set c=2 where pk not in (1,2,3,4); +select * from t1; + +prepare stmt from +'select + pk, c, + count(*) over w1 as CNT +from t1 +window w1 as (partition by c order by pk + rows between 2 preceding and 2 following)'; +execute stmt; + +drop table t0,t1; + +--echo # +--echo # EXPLAIN FORMAT=JSON support for window functions +--echo # +create table t0 (a int); +insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); + +explain format=json select rank() over (order by a) from t0; + +create table t1 (a int, b int, c int); +insert into t1 select a,a,a from t0; + +explain format=json +select + a, + rank() over (order by sum(b)) +from t1 +group by a; + +explain format=json +select + a, + rank() over (order by sum(b)) +from t1 +group by a +order by null; + +--echo # +--echo # Check how window function works together with GROUP BY and HAVING +--echo # + +select b,max(a) as MX, rank() over (order by b) from t1 group by b having MX in (3,5,7); +explain format=json +select b,max(a) as MX, rank() over (order by b) from t1 group by b having MX in (3,5,7); + +drop table t1; +drop table t0; + +--echo # +--echo # Building ordering index for window functions +--echo # + +create table t1 ( + pk int primary key, + a int, + b int, + c int +); + +insert into t1 values +(101 , 0, 10, 1), +(102 , 0, 10, 2), +(103 , 1, 10, 3), +(104 , 1, 10, 4), +(108 , 2, 10, 5), +(105 , 2, 20, 6), +(106 , 2, 20, 7), +(107 , 2, 20, 8), +(109 , 4, 20, 9), +(110 , 4, 20, 10), +(111 , 5, NULL, 11), +(112 , 5, 1, 12), +(113 , 5, NULL, 13), +(114 , 5, NULL, 14), +(115 , 5, NULL, 15), +(116 , 6, 1, NULL), +(117 , 6, 1, 10), +(118 , 6, 1, 1), +(119 , 6, 1, NULL), +(120 , 6, 1, NULL), +(121 , 6, 1, NULL), +(122 , 6, 1, 2), +(123 , 6, 1, 20), +(124 , 6, 1, -10), +(125 , 6, 1, NULL), +(126 , 6, 1, NULL), +(127 , 6, 1, NULL); + +--sorted_result +select sum(b) over (partition by a order by b,pk + rows between unbounded preceding and current row) as c1, + avg(b) over (w1 rows between 1 preceding and 1 following) as c2, + sum(c) over (w2 rows between 1 preceding and 1 following) as c5, + avg(b) over (w1 rows between 5 preceding and 5 following) as c3, + sum(b) over (w1 rows between 1 preceding and 1 following) as c4 +from t1 +window w1 as (partition by a order by b,pk), + w2 as (partition by b order by c,pk); + +drop table t1; + + +--echo # +--echo # MDEV-9848: Window functions: reuse sorting and/or scanning +--echo # + +create table t1 (a int, b int, c int); +insert into t1 values +(1,3,1), +(2,2,1), +(3,1,1); + +--echo # Check using counters +flush status; +select + rank() over (partition by c order by a), + rank() over (partition by c order by b) +from t1; +show status like '%sort%'; + +flush status; +select + rank() over (partition by c order by a), + rank() over (partition by c order by a) +from t1; +show status like '%sort%'; + +# Check using EXPLAIN FORMAT=JSON +explain format=json +select + rank() over (partition by c order by a), + rank() over (partition by c order by a) +from t1; + +explain format=json +select + rank() over (order by a), + row_number() over (order by a) +from t1; + +explain format=json +select + rank() over (partition by c order by a), + count(*) over (partition by c) +from t1; + +explain format=json +select + count(*) over (partition by c), + rank() over (partition by c order by a) +from t1; + +drop table t1; + + +--echo # +--echo # MDEV-9847: Window functions: crash with big_tables=1 +--echo # +create table t1(a int); +insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); +set @tmp=@@big_tables; +set big_tables=1; +select rank() over (order by a) from t1; +set big_tables=@tmp; +drop table t1; + +--echo # +--echo # Check if "ORDER BY window_func" works +--echo # + +create table t1 (s1 int, s2 char(5)); +insert into t1 values (1,'a'); +insert into t1 values (null,null); +insert into t1 values (1,null); +insert into t1 values (null,'a'); +insert into t1 values (2,'b'); +insert into t1 values (-1,''); + +explain format=json +select *, row_number() over (order by s1, s2) as X from t1 order by X desc; +select *, row_number() over (order by s1, s2) as X from t1 order by X desc; +drop table t1; + +--echo # +--echo # Try window functions that are not directly present in the select list +--echo # +create table t1 (a int, b int); +insert into t1 values + (1,3), + (2,2), + (3,1); + +select + rank() over (order by a) - + rank() over (order by b) +from + t1; + +drop table t1; + +--echo # +--echo # MDEV-9894: Assertion `0' failed in Window_func_runner::setup +--echo # return ER_NOT_SUPPORTED_YET for aggregates that are not yet supported +--echo # as window functions. +--echo # +create table t1 (i int); +insert into t1 values (1),(2); +--error ER_NOT_SUPPORTED_YET +SELECT MAX(i) OVER (PARTITION BY (i)) FROM t1; +drop table t1; + +--echo # +--echo # Check the 0 in ROWS 0 PRECEDING +--echo # + +create table t1 ( + part_id int, + pk int, + a int +); + +insert into t1 values (1, 1, 1); +insert into t1 values (1, 2, 2); +insert into t1 values (1, 3, 4); +insert into t1 values (1, 4, 8); + +select + pk, a, + sum(a) over (order by pk rows between 0 preceding and current row) +from t1; + +select + pk, a, + sum(a) over (order by pk rows between 1 preceding and 0 preceding) +from t1; + +insert into t1 values (200, 1, 1); +insert into t1 values (200, 2, 2); +insert into t1 values (200, 3, 4); +insert into t1 values (200, 4, 8); +select + part_id, pk, a, + sum(a) over (partition by part_id order by pk rows between 0 preceding and current row) +from t1; + +select + part_id, pk, a, + sum(a) over (partition by part_id order by pk rows between 1 preceding and 0 preceding) +from t1; + +drop table t1; +--echo # +--echo # MDEV-9780, The "DISTINCT must not bet converted into GROUP BY when +--echo # window functions are present" part +--echo # + +create table t1 (part_id int, a int); +insert into t1 values +(100, 1), +(100, 2), +(100, 2), +(100, 3), +(2000, 1), +(2000, 2), +(2000, 3), +(2000, 3), +(2000, 3); + +select rank() over (partition by part_id order by a) from t1; +select distinct rank() over (partition by part_id order by a) from t1; +explain format=json +select distinct rank() over (partition by part_id order by a) from t1; + +drop table t1; + +--echo # +--echo # MDEV-9893: Window functions with different ORDER BY lists, +--echo # one of these lists containing an expression +--echo # + +create table t1 (s1 int, s2 char(5)); +insert into t1 values (1,'a'); +insert into t1 values (null,null); +insert into t1 values (3,null); +insert into t1 values (4,'a'); +insert into t1 values (2,'b'); +insert into t1 values (-1,''); + +select + *, + ROW_NUMBER() OVER (order by s1), + CUME_DIST() OVER (order by -s1) +from t1; + +drop table t1; + + +--echo # +--echo # MDEV-9925: Wrong result with aggregate function as a window function +--echo # +create table t1 (i int); +insert into t1 values (1),(2); +select i, sum(i) over (partition by i) from t1; +drop table t1; + +--echo # +--echo # MDEV-9922: Assertion `!join->only_const_tables() && fsort' failed in int create_sort_index +--echo # +create view v1 as select 1 as i; +select rank() over (order by i) from v1; +drop view v1; + diff --git a/mysql-test/t/win_avg.test b/mysql-test/t/win_avg.test new file mode 100644 index 00000000000..23a3652d943 --- /dev/null +++ b/mysql-test/t/win_avg.test @@ -0,0 +1,47 @@ +create table t1 ( + pk int primary key, + a int, + b int, + c real +); + + +insert into t1 values +(101 , 0, 10, 1.1), +(102 , 0, 10, 2.1), +(103 , 1, 10, 3.1), +(104 , 1, 10, 4.1), +(108 , 2, 10, 5.1), +(105 , 2, 20, 6.1), +(106 , 2, 20, 7.1), +(107 , 2, 20, 8.15), +(109 , 4, 20, 9.15), +(110 , 4, 20, 10.15), +(111 , 5, NULL, 11.15), +(112 , 5, 1, 12.25), +(113 , 5, NULL, 13.35), +(114 , 5, NULL, 14.50), +(115 , 5, NULL, 15.65), +(116 , 6, 1, NULL), +(117 , 6, 1, 10), +(118 , 6, 1, 1.1), +(119 , 6, 1, NULL), +(120 , 6, 1, NULL), +(121 , 6, 1, NULL), +(122 , 6, 1, 2.2), +(123 , 6, 1, 20.1), +(124 , 6, 1, -10.4), +(125 , 6, 1, NULL), +(126 , 6, 1, NULL), +(127 , 6, 1, NULL); + + +--sorted_result +select pk, a, b, avg(b) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) +from t1; + +--sorted_result +select pk, a, c, avg(c) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) +from t1; + +drop table t1; diff --git a/mysql-test/t/win_bit.test b/mysql-test/t/win_bit.test new file mode 100644 index 00000000000..f077d0d67a0 --- /dev/null +++ b/mysql-test/t/win_bit.test @@ -0,0 +1,89 @@ +create table t1 ( + pk int primary key, + a int, + b int +); + +create table t2 ( + pk int primary key, + a int, + b int +); + + + +insert into t1 values +( 1 , 0, 1), +( 2 , 0, 2), +( 3 , 1, 4), +( 4 , 1, 8), +( 5 , 2, 32), +( 6 , 2, 64), +( 7 , 2, 128), +( 8 , 2, 16); + +insert into t2 values +( 1 , 0, 2), +( 2 , 0, 2), +( 3 , 1, 4), +( 4 , 1, 4), +( 5 , 2, 16), +( 6 , 2, 64), +( 7 , 2, 128), +( 8 , 2, 16); + + + +--echo # Test bit functions on only one partition. +select pk, a, b, + bit_or(b) over (order by pk) as bit_or, + bit_and(b) over (order by pk) as bit_and, + bit_xor(b) over (order by pk) as bit_xor +from t1; + +select pk, a, b, + bit_or(b) over (order by pk) as bit_or, + bit_and(b) over (order by pk) as bit_and, + bit_xor(b) over (order by pk) as bit_xor +from t2; + +--echo # Test multiple partitions with bit functions. +select pk, a, b, + bit_or(b) over (partition by a order by pk) as bit_or, + bit_and(b) over (partition by a order by pk) as bit_and, + bit_xor(b) over (partition by a order by pk) as bit_xor +from t1; + +select pk, a, b, + bit_or(b) over (partition by a order by pk) as bit_or, + bit_and(b) over (partition by a order by pk) as bit_and, + bit_xor(b) over (partition by a order by pk) as bit_xor +from t2; + +--echo # Test remove function for bit functions using a sliding window. +select pk, a, b, + bit_or(b) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) as bit_or, + bit_and(b) over (partition by a order by pk) as bit_and, + bit_xor(b) over (partition by a order by pk) as bit_xor +from t1; + +select pk, a, b, + bit_or(b) over (partition by a order by pk) as bit_or, + bit_and(b) over (partition by a order by pk) as bit_and, + bit_xor(b) over (partition by a order by pk) as bit_xor +from t2; + + + + + + + +#select pk, a, b, bit_or(b) over (order by a) as count from t1 order by a, pk; +#select pk, a, b, bit_and(b) over (order by a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) as count from t1 order by a, pk; +#select pk, a, b, bit_xor(b) over (order by a, pk ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) as count from t2 order by pk; +#select pk, a, b, bit_or(b) over (order by a, pk ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) as count from t2 order by pk; +#select pk, a, b, bit_and(b) over (order by a, pk ROWS BETWEEN 2 PRECEDING AND CURRENT ROW) as count from t3 order by pk; + +drop table t1; +drop table t2; diff --git a/mysql-test/t/win_ntile.test b/mysql-test/t/win_ntile.test new file mode 100644 index 00000000000..6f12e1f4005 --- /dev/null +++ b/mysql-test/t/win_ntile.test @@ -0,0 +1,171 @@ +create table t1 ( + pk int primary key, + a int, + b int +); + + +insert into t1 values +(11 , 0, 10), +(12 , 0, 10), +(13 , 1, 10), +(14 , 1, 10), +(18 , 2, 10), +(15 , 2, 20), +(16 , 2, 20), +(17 , 2, 20), +(19 , 4, 20), +(20 , 4, 20); + +# TODO Try invalid queries too. + +--error ER_INVALID_NTILE_ARGUMENT +select pk, a, b, ntile(-1) over (order by a) +from t1; + +--error ER_INVALID_NTILE_ARGUMENT +select pk, a, b, + ntile(0) over (order by a) +from t1; + +--sorted_result +select pk, a, b, + ntile(1) over (order by pk) +from t1; + +--sorted_result +select pk, a, b, + ntile(2) over (order by pk) +from t1; + +--sorted_result +select pk, a, b, + ntile(3) over (order by pk) +from t1; + +--sorted_result +select pk, a, b, + ntile(4) over (order by pk) +from t1; + +--sorted_result +select pk, a, b, + ntile(5) over (order by pk) +from t1; + +--sorted_result +select pk, a, b, + ntile(6) over (order by pk) +from t1; + +--sorted_result +select pk, a, b, + ntile(7) over (order by pk) +from t1; + +--sorted_result +select pk, a, b, + ntile(8) over (order by pk) +from t1; + +--sorted_result +select pk, a, b, + ntile(9) over (order by pk) +from t1; + +--sorted_result +select pk, a, b, + ntile(10) over (order by pk) +from t1; + +--sorted_result +select pk, a, b, + ntile(11) over (order by pk) +from t1; + +--sorted_result +select pk, a, b, + ntile(20) over (order by pk) +from t1; + + +select pk, a, b, + ntile(1) over (partition by b order by pk) +from t1; + +select pk, a, b, + ntile(2) over (partition by b order by pk) +from t1; + +select pk, a, b, + ntile(3) over (partition by b order by pk) +from t1; + +select pk, a, b, + ntile(4) over (partition by b order by pk) +from t1; + +select pk, a, b, + ntile(5) over (partition by b order by pk) +from t1; + +select pk, a, b, + ntile(6) over (partition by b order by pk) +from t1; + +select pk, a, b, + ntile(7) over (partition by b order by pk) +from t1; + +select pk, a, b, + ntile(8) over (partition by b order by pk) +from t1; + +select pk, a, b, + ntile(9) over (partition by b order by pk) +from t1; + +select pk, a, b, + ntile(10) over (partition by b order by pk) +from t1; + +select pk, a, b, + ntile(11) over (partition by b order by pk) +from t1; + +select pk, a, b, + ntile(20) over (partition by b order by pk) +from t1; + +select pk, a, b, + ntile(1 + 3) over (partition by b order by pk) +from t1; + +select pk, a, b, + ntile((select 4)) over (partition by b order by pk) +from t1; + +select t1.a from t1 where pk = 11; +--error ER_INVALID_NTILE_ARGUMENT +select pk, a, b, + ntile((select a from t1 where pk=11)) over (partition by b order by pk) +from t1; + +select t1.a from t1 where pk = 13; +select pk, a, b, + ntile((select a from t1 where pk=13)) over (partition by b order by pk) +from t1; + +explain +select pk, a, b, + ntile((select a from t1 where pk=13)) over (partition by b order by pk) +from t1; + +select a from t1; +--error ER_SUBQUERY_NO_1_ROW +select pk, a, b, + ntile((select a from t1)) over (partition by b order by pk) +from t1; + + +drop table t1; diff --git a/mysql-test/t/win_orderby.test b/mysql-test/t/win_orderby.test new file mode 100644 index 00000000000..0d42c606486 --- /dev/null +++ b/mysql-test/t/win_orderby.test @@ -0,0 +1,32 @@ +# +# Tests for window functions and ORDER BY +# + +--disable_warnings +drop table if exists t0,t1; +--enable_warnings + +create table t0(a int primary key); +insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); + +create table t1( + pk int, + a int, + key(pk) +); + +insert into t1 +select + A.a + B.a* 10 + C.a * 100, + 1 +from t0 A, t0 B, t0 C; + +select + pk, + count(a) over (order by pk rows between 2 preceding and 2 following) +from t1 +where pk between 1 and 30 +order by pk desc +limit 4; + +drop table t0,t1; diff --git a/mysql-test/t/win_percent_cume.test b/mysql-test/t/win_percent_cume.test new file mode 100644 index 00000000000..b851185cb32 --- /dev/null +++ b/mysql-test/t/win_percent_cume.test @@ -0,0 +1,36 @@ +create table t1 ( + pk int primary key, + a int, + b int +); + + +insert into t1 values +( 1 , 0, 10), +( 2 , 0, 10), +( 3 , 1, 10), +( 4 , 1, 10), +( 8 , 2, 10), +( 5 , 2, 20), +( 6 , 2, 20), +( 7 , 2, 20), +( 9 , 4, 20), +(10 , 4, 20); + +select pk, a, b, + percent_rank() over (order by a), + cume_dist() over (order by a) +from t1; + +select pk, a, b, + percent_rank() over (order by pk), + cume_dist() over (order by pk) +from t1 order by pk; + +select pk, a, b, + percent_rank() over (partition by a order by a), + cume_dist() over (partition by a order by a) +from t1; + +drop table t1; + diff --git a/mysql-test/t/win_rank.test b/mysql-test/t/win_rank.test new file mode 100644 index 00000000000..eda1f458205 --- /dev/null +++ b/mysql-test/t/win_rank.test @@ -0,0 +1,58 @@ +--echo # +--echo # Try DENSE_RANK() function +--echo # + +create table t1 ( + pk int primary key, + a int, + b int +); + +insert into t1 values +( 1 , 0, 10), +( 2 , 0, 10), +( 3 , 1, 10), +( 4 , 1, 10), +( 8 , 2, 10), +( 5 , 2, 20), +( 6 , 2, 20), +( 7 , 2, 20), +( 9 , 4, 20), +(10 , 4, 20); + +select pk, a, b, rank() over (order by a) as rank, + dense_rank() over (order by a) as dense_rank +from t1; +select pk, a, b, rank() over (partition by b order by a) as rank, + dense_rank() over (partition by b order by a) as dense_rank +from t1; + +drop table t1; + +--echo # +--echo # Test with null values in the table. +--echo # + +create table t2 (s1 int, s2 char(5)); +insert into t2 values (1,'a'); +insert into t2 values (null,null); +insert into t2 values (1,null); +insert into t2 values (null,'a'); +insert into t2 values (null,'c'); +insert into t2 values (2,'b'); +insert into t2 values (-1,''); + +select *, rank() over (order by s1) as rank, + dense_rank() over (order by s1) as dense_rank +from t2; +select *, rank() over (partition by s2 order by s1) as rank, + dense_rank() over (partition by s2 order by s1) as dense_rank +from t2; +select *, rank() over (order by s2) as rank, + dense_rank() over (order by s2) as dense_rank +from t2; +select *, rank() over (partition by s1 order by s2) as rank, + dense_rank() over (partition by s1 order by s2) as dense_rank +from t2; + +drop table t2; diff --git a/mysql-test/t/win_sum.test b/mysql-test/t/win_sum.test new file mode 100644 index 00000000000..aa4965bfd5a --- /dev/null +++ b/mysql-test/t/win_sum.test @@ -0,0 +1,47 @@ +create table t1 ( + pk int primary key, + a int, + b int, + c real +); + + +insert into t1 values +(101 , 0, 10, 1.1), +(102 , 0, 10, 2.1), +(103 , 1, 10, 3.1), +(104 , 1, 10, 4.1), +(108 , 2, 10, 5.1), +(105 , 2, 20, 6.1), +(106 , 2, 20, 7.1), +(107 , 2, 20, 8.15), +(109 , 4, 20, 9.15), +(110 , 4, 20, 10.15), +(111 , 5, NULL, 11.15), +(112 , 5, 1, 12.25), +(113 , 5, NULL, 13.35), +(114 , 5, NULL, 14.50), +(115 , 5, NULL, 15.65), +(116 , 6, 1, NULL), +(117 , 6, 1, 10), +(118 , 6, 1, 1.1), +(119 , 6, 1, NULL), +(120 , 6, 1, NULL), +(121 , 6, 1, NULL), +(122 , 6, 1, 2.2), +(123 , 6, 1, 20.1), +(124 , 6, 1, -10.4), +(125 , 6, 1, NULL), +(126 , 6, 1, NULL), +(127 , 6, 1, NULL); + + +--sorted_result +select pk, a, b, sum(b) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) +from t1; + +--sorted_result +select pk, a, c, sum(c) over (partition by a order by pk ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) +from t1; + +drop table t1; |