mirror of
https://github.com/MariaDB/server.git
synced 2025-10-21 08:47:42 +03:00
Test case fixes. mysql-test/r/binlog_multi_engine.result: Result change. mysql-test/r/rpl_ndb_stm_innodb.result: Result change. mysql-test/t/binlog_multi_engine.test: NDB tests only work in MIXED or ROW mode. Adding some cleanup actions. mysql-test/t/loaddata_autocom_ndb.test: NDB requires MIXED or ROW mode. mysql-test/t/ndb_alter_table.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_alter_table2.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_alter_table3.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_autodiscover.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_autodiscover2.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_autodiscover3.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_basic.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_binlog_log_bin.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_binlog_multi.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_bitfield.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_blob.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_blob_partition.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_cache.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_cache2.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_cache_multi.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_cache_multi2.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_charset.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_condition_pushdown.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_config.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_config2.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_cursor.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_database.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_dd_alter.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_dd_backuprestore.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_dd_basic.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_dd_ddl.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_dd_disk2memory.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_dd_dump.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_dd_sql_features.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_gis.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_index.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_index_ordered.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_index_unique.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_insert.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_limit.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_loaddatalocal.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_lock.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_minmax.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_multi.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_partition_error.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_partition_key.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_partition_list.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_partition_range.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_read_multi_range.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_rename.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_replace.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_restore.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_restore_partition.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_restore_print.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_row_format.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_single_user.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_sp.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_subquery.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_temporary.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_transaction.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_trigger.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_truncate.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_types.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_update.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndb_view.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ndbapi.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/ps_7ndb.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/rpl_ndb_commit_afterflush.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/rpl_ndb_innodb_trans.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode. mysql-test/t/rpl_ndb_stm_innodb.test: We need MIXED mode on slave since it is necessary to let the slave switch to row format when executing replicated statements. mysql-test/t/strict_autoinc_5ndb.test: NDB requires MIXED or ROW mode, but will switch to row format automatically, so we only run these tests under ROW mode.
259 lines
6.2 KiB
Plaintext
259 lines
6.2 KiB
Plaintext
--source include/have_ndb.inc
|
|
-- source include/have_binlog_format_row.inc
|
|
-- source include/not_embedded.inc
|
|
|
|
--disable_warnings
|
|
drop table if exists t1;
|
|
--enable_warnings
|
|
|
|
#
|
|
# Minimal NDB charset test.
|
|
#
|
|
|
|
# pk - binary
|
|
|
|
create table t1 (
|
|
a char(3) character set latin1 collate latin1_bin primary key
|
|
) engine=ndb;
|
|
# ok
|
|
insert into t1 values('aAa');
|
|
insert into t1 values('aaa');
|
|
insert into t1 values('AAA');
|
|
# 3
|
|
select * from t1 order by a;
|
|
# 1
|
|
select * from t1 where a = 'aAa';
|
|
# 1
|
|
select * from t1 where a = 'aaa';
|
|
# 0
|
|
select * from t1 where a = 'AaA';
|
|
# 1
|
|
select * from t1 where a = 'AAA';
|
|
drop table t1;
|
|
|
|
# pk - case insensitive
|
|
|
|
create table t1 (
|
|
a char(3) character set latin1 collate latin1_swedish_ci primary key
|
|
) engine=ndb;
|
|
# ok
|
|
insert into t1 values('aAa');
|
|
# fail
|
|
--error ER_DUP_ENTRY_WITH_KEY_NAME
|
|
insert into t1 values('aaa');
|
|
--error ER_DUP_ENTRY_WITH_KEY_NAME
|
|
insert into t1 values('AAA');
|
|
# 1
|
|
select * from t1 order by a;
|
|
# 1
|
|
select * from t1 where a = 'aAa';
|
|
# 1
|
|
select * from t1 where a = 'aaa';
|
|
# 1
|
|
select * from t1 where a = 'AaA';
|
|
# 1
|
|
select * from t1 where a = 'AAA';
|
|
drop table t1;
|
|
|
|
# pk - varchar
|
|
|
|
create table t1 (
|
|
a varchar(20) character set latin1 collate latin1_swedish_ci primary key
|
|
) engine=ndb;
|
|
#
|
|
insert into t1 values ('A'),('b '),('C '),('d '),('E'),('f');
|
|
-- error ER_DUP_ENTRY_WITH_KEY_NAME
|
|
insert into t1 values('b');
|
|
-- error ER_DUP_ENTRY_WITH_KEY_NAME
|
|
insert into t1 values('a ');
|
|
#
|
|
select a,length(a) from t1 order by a;
|
|
select a,length(a) from t1 order by a desc;
|
|
select * from t1 where a = 'a';
|
|
select * from t1 where a = 'a ';
|
|
select * from t1 where a = 'd';
|
|
drop table t1;
|
|
|
|
# unique hash index - binary
|
|
|
|
create table t1 (
|
|
p int primary key,
|
|
a char(3) character set latin1 collate latin1_bin not null,
|
|
unique key(a)
|
|
) engine=ndb;
|
|
# ok
|
|
insert into t1 values(1, 'aAa');
|
|
insert into t1 values(2, 'aaa');
|
|
insert into t1 values(3, 'AAA');
|
|
# 3
|
|
select * from t1 order by p;
|
|
# 1
|
|
select * from t1 where a = 'aAa';
|
|
# 1
|
|
select * from t1 where a = 'aaa';
|
|
# 0
|
|
select * from t1 where a = 'AaA';
|
|
# 1
|
|
select * from t1 where a = 'AAA';
|
|
drop table t1;
|
|
|
|
# unique hash index - case insensitive
|
|
|
|
create table t1 (
|
|
p int primary key,
|
|
a char(3) character set latin1 collate latin1_swedish_ci not null,
|
|
unique key(a)
|
|
) engine=ndb;
|
|
# ok
|
|
insert into t1 values(1, 'aAa');
|
|
# fail
|
|
--error ER_DUP_ENTRY_WITH_KEY_NAME
|
|
insert into t1 values(2, 'aaa');
|
|
--error ER_DUP_ENTRY_WITH_KEY_NAME
|
|
insert into t1 values(3, 'AAA');
|
|
# 1
|
|
select * from t1 order by p;
|
|
# 1
|
|
select * from t1 where a = 'aAa';
|
|
# 1
|
|
select * from t1 where a = 'aaa';
|
|
# 1
|
|
select * from t1 where a = 'AaA';
|
|
# 1
|
|
select * from t1 where a = 'AAA';
|
|
drop table t1;
|
|
|
|
# unique hash index - varchar
|
|
|
|
create table t1 (
|
|
p int primary key,
|
|
a varchar(20) character set latin1 collate latin1_swedish_ci not null,
|
|
unique key(a)
|
|
) engine=ndb;
|
|
#
|
|
insert into t1 values (1,'A'),(2,'b '),(3,'C '),(4,'d '),(5,'E'),(6,'f');
|
|
-- error ER_DUP_ENTRY_WITH_KEY_NAME
|
|
insert into t1 values(99,'b');
|
|
-- error ER_DUP_ENTRY_WITH_KEY_NAME
|
|
insert into t1 values(99,'a ');
|
|
#
|
|
select a,length(a) from t1 order by a;
|
|
select a,length(a) from t1 order by a desc;
|
|
select * from t1 where a = 'a';
|
|
select * from t1 where a = 'a ';
|
|
select * from t1 where a = 'd';
|
|
drop table t1;
|
|
|
|
# ordered index - binary
|
|
|
|
create table t1 (
|
|
p int primary key,
|
|
a char(3) character set latin1 collate latin1_bin not null,
|
|
index(a)
|
|
) engine=ndb;
|
|
# ok
|
|
insert into t1 values(1, 'aAa');
|
|
insert into t1 values(2, 'aaa');
|
|
insert into t1 values(3, 'AAA');
|
|
insert into t1 values(4, 'aAa');
|
|
insert into t1 values(5, 'aaa');
|
|
insert into t1 values(6, 'AAA');
|
|
# 6
|
|
select * from t1 order by p;
|
|
# plan too flaky
|
|
#--replace_column 9 #
|
|
#explain select * from t1 where a = 'zZz' order by p;
|
|
# 2
|
|
select * from t1 where a = 'aAa' order by p;
|
|
# 2
|
|
select * from t1 where a = 'aaa' order by p;
|
|
# 0
|
|
select * from t1 where a = 'AaA' order by p;
|
|
# 2
|
|
select * from t1 where a = 'AAA' order by p;
|
|
drop table t1;
|
|
|
|
# ordered index - case insensitive
|
|
|
|
create table t1 (
|
|
p int primary key,
|
|
a char(3) character set latin1 collate latin1_swedish_ci not null,
|
|
index(a)
|
|
) engine=ndb;
|
|
# ok
|
|
insert into t1 values(1, 'aAa');
|
|
insert into t1 values(2, 'aaa');
|
|
insert into t1 values(3, 'AAA');
|
|
insert into t1 values(4, 'aAa');
|
|
insert into t1 values(5, 'aaa');
|
|
insert into t1 values(6, 'AAA');
|
|
# 6
|
|
select * from t1 order by p;
|
|
# plan too flaky
|
|
#--replace_column 9 #
|
|
#explain select * from t1 where a = 'zZz' order by p;
|
|
# 6
|
|
select * from t1 where a = 'aAa' order by p;
|
|
# 6
|
|
select * from t1 where a = 'aaa' order by p;
|
|
# 6
|
|
select * from t1 where a = 'AaA' order by p;
|
|
# 6
|
|
select * from t1 where a = 'AAA' order by p;
|
|
drop table t1;
|
|
|
|
# ordered index - varchar
|
|
|
|
create table t1 (
|
|
p int primary key,
|
|
a varchar(20) character set latin1 collate latin1_swedish_ci not null,
|
|
index(a, p)
|
|
) engine=ndb;
|
|
#
|
|
insert into t1 values (1,'A'),(2,'b '),(3,'C '),(4,'d '),(5,'E'),(6,'f');
|
|
insert into t1 values (7,'a'),(8,'B '),(9,'c '),(10,'D'),(11,'e'),(12,'F ');
|
|
select p,a,length(a) from t1 order by a, p;
|
|
select * from t1 where a = 'a ' order by a desc, p desc;
|
|
select * from t1 where a >= 'D' order by a, p;
|
|
select * from t1 where a < 'D' order by a, p;
|
|
#
|
|
select count(*) from t1 x, t1 y, t1 z where x.a = y.a and y.a = z.a;
|
|
drop table t1;
|
|
|
|
# minimal multi-byte test
|
|
# removed by jonas as this requires a configure --with-extra-charsets
|
|
#create table t1 (
|
|
# a char(5) character set ucs2,
|
|
# b varchar(7) character set utf8,
|
|
# primary key(a, b)
|
|
#) engine=ndb;
|
|
#
|
|
#insert into t1 values
|
|
# ('a','A '),('B ','b'),('c','C '),('D','d'),('e ','E'),('F','f '),
|
|
# ('A','b '),('b ','C'),('C','d '),('d','E'),('E ','f'),
|
|
# ('a','C '),('B ','d'),('c','E '),('D','f');
|
|
#-- error ER_DUP_ENTRY_WITH_KEY_NAME
|
|
#insert into t1 values('d','f');
|
|
#
|
|
#select a,b,length(a),length(b) from t1 order by a,b limit 3;
|
|
#select a,b,length(a),length(b) from t1 order by a desc, b desc limit 3;
|
|
#select a,b,length(a),length(b) from t1 where a='c' and b='c';
|
|
#drop table t1;
|
|
|
|
# bug#14007
|
|
create table t1 (
|
|
a char(10) primary key
|
|
) engine=ndbcluster default charset=latin1;
|
|
|
|
insert into t1 values ('aaabb');
|
|
select * from t1;
|
|
replace into t1 set a = 'AAABB';
|
|
select * from t1;
|
|
replace into t1 set a = 'aAaBb';
|
|
select * from t1;
|
|
replace into t1 set a = 'aaabb';
|
|
select * from t1;
|
|
drop table t1;
|
|
|
|
# End of 4.1 tests
|