mirror of
https://github.com/MariaDB/server.git
synced 2025-01-20 05:52:27 +01:00
f3dc047890
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.
500 lines
13 KiB
Text
500 lines
13 KiB
Text
--source include/have_ndb.inc
|
|
-- source include/have_binlog_format_row.inc
|
|
-- source include/not_embedded.inc
|
|
|
|
--disable_warnings
|
|
drop table if exists t1;
|
|
drop database if exists test2;
|
|
--enable_warnings
|
|
|
|
#
|
|
# Minimal NDB blobs test.
|
|
#
|
|
# On NDB API level there is an extensive test program "testBlobs".
|
|
# A prerequisite for this handler test is that "testBlobs" succeeds.
|
|
#
|
|
|
|
# -- general test starts --
|
|
|
|
# make test harder with autocommit off
|
|
set autocommit=0;
|
|
|
|
create table t1 (
|
|
a int not null primary key,
|
|
b text not null,
|
|
c int not null,
|
|
d longblob,
|
|
key (c)
|
|
) engine=ndbcluster;
|
|
|
|
# -- values --
|
|
|
|
# x0 size 256 (current inline size)
|
|
set @x0 = '01234567012345670123456701234567';
|
|
set @x0 = concat(@x0,@x0,@x0,@x0,@x0,@x0,@x0,@x0);
|
|
|
|
# b1 length 2000+256 (blob part aligned)
|
|
set @b1 = 'b1';
|
|
set @b1 = concat(@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1);
|
|
set @b1 = concat(@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1);
|
|
set @b1 = concat(@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1);
|
|
set @b1 = concat(@b1,@x0);
|
|
# d1 length 3000
|
|
set @d1 = 'dd1';
|
|
set @d1 = concat(@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1);
|
|
set @d1 = concat(@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1);
|
|
set @d1 = concat(@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1);
|
|
|
|
# b2 length 20000
|
|
set @b2 = 'b2';
|
|
set @b2 = concat(@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2);
|
|
set @b2 = concat(@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2);
|
|
set @b2 = concat(@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2);
|
|
set @b2 = concat(@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2);
|
|
# d2 length 30000
|
|
set @d2 = 'dd2';
|
|
set @d2 = concat(@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2);
|
|
set @d2 = concat(@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2);
|
|
set @d2 = concat(@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2);
|
|
set @d2 = concat(@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2);
|
|
|
|
select length(@x0),length(@b1),length(@d1) from dual;
|
|
select length(@x0),length(@b2),length(@d2) from dual;
|
|
|
|
# -- pk ops --
|
|
|
|
insert into t1 values(1,@b1,111,@d1);
|
|
insert into t1 values(2,@b2,222,@d2);
|
|
commit;
|
|
--replace_column 9 #
|
|
explain select * from t1 where a = 1;
|
|
|
|
# pk read
|
|
select a,length(b),substr(b,1+2*900,2),length(d),substr(d,1+3*900,3)
|
|
from t1 where a=1;
|
|
select a,length(b),substr(b,1+2*9000,2),length(d),substr(d,1+3*9000,3)
|
|
from t1 where a=2;
|
|
|
|
# pk update
|
|
update t1 set b=@b2,d=@d2 where a=1;
|
|
update t1 set b=@b1,d=@d1 where a=2;
|
|
commit;
|
|
select a,length(b),substr(b,1+2*9000,2),length(d),substr(d,1+3*9000,3)
|
|
from t1 where a=1;
|
|
select a,length(b),substr(b,1+2*900,2),length(d),substr(d,1+3*900,3)
|
|
from t1 where a=2;
|
|
|
|
# pk update
|
|
update t1 set b=concat(b,b),d=concat(d,d) where a=1;
|
|
update t1 set b=concat(b,b),d=concat(d,d) where a=2;
|
|
commit;
|
|
select a,length(b),substr(b,1+4*9000,2),length(d),substr(d,1+6*9000,3)
|
|
from t1 where a=1;
|
|
select a,length(b),substr(b,1+4*900,2),length(d),substr(d,1+6*900,3)
|
|
from t1 where a=2;
|
|
|
|
# pk update to null
|
|
update t1 set d=null where a=1;
|
|
commit;
|
|
select a from t1 where d is null;
|
|
|
|
# bug#24028 - does not occur on MySQL level
|
|
# bug#17986 - not seen by us anymore but could show as warning here
|
|
delete from t1 where a=45567;
|
|
commit;
|
|
|
|
# pk delete
|
|
delete from t1 where a=1;
|
|
delete from t1 where a=2;
|
|
commit;
|
|
select count(*) from t1;
|
|
|
|
# -- replace ( bug-6018 ) --
|
|
|
|
# insert
|
|
replace t1 set a=1,b=@b1,c=111,d=@d1;
|
|
replace t1 set a=2,b=@b2,c=222,d=@d2;
|
|
commit;
|
|
--replace_column 9 #
|
|
explain select * from t1 where a = 1;
|
|
|
|
# pk read
|
|
select a,length(b),substr(b,1+2*900,2),length(d),substr(d,1+3*900,3)
|
|
from t1 where a=1;
|
|
select a,length(b),substr(b,1+2*9000,2),length(d),substr(d,1+3*9000,3)
|
|
from t1 where a=2;
|
|
|
|
# update
|
|
replace t1 set a=1,b=@b2,c=111,d=@d2;
|
|
replace t1 set a=2,b=@b1,c=222,d=@d1;
|
|
commit;
|
|
select a,length(b),substr(b,1+2*9000,2),length(d),substr(d,1+3*9000,3)
|
|
from t1 where a=1;
|
|
select a,length(b),substr(b,1+2*900,2),length(d),substr(d,1+3*900,3)
|
|
from t1 where a=2;
|
|
|
|
# update
|
|
replace t1 set a=1,b=concat(@b2,@b2),c=111,d=concat(@d2,@d2);
|
|
replace t1 set a=2,b=concat(@b1,@b1),c=222,d=concat(@d1,@d1);
|
|
commit;
|
|
select a,length(b),substr(b,1+4*9000,2),length(d),substr(d,1+6*9000,3)
|
|
from t1 where a=1;
|
|
select a,length(b),substr(b,1+4*900,2),length(d),substr(d,1+6*900,3)
|
|
from t1 where a=2;
|
|
|
|
# update to null
|
|
replace t1 set a=1,b='xyz',c=111,d=null;
|
|
commit;
|
|
select a,b from t1 where d is null;
|
|
|
|
# pk delete
|
|
delete from t1 where a=1;
|
|
delete from t1 where a=2;
|
|
commit;
|
|
select count(*) from t1;
|
|
|
|
# -- hash index ops --
|
|
|
|
insert into t1 values(1,@b1,111,@d1);
|
|
insert into t1 values(2,@b2,222,@d2);
|
|
commit;
|
|
--replace_column 9 #
|
|
explain select * from t1 where c = 111;
|
|
|
|
# hash key read
|
|
select a,length(b),substr(b,1+2*900,2),length(d),substr(d,1+3*900,3)
|
|
from t1 where c=111;
|
|
select a,length(b),substr(b,1+2*9000,2),length(d),substr(d,1+3*9000,3)
|
|
from t1 where c=222;
|
|
|
|
# hash key update
|
|
update t1 set b=@b2,d=@d2 where c=111;
|
|
update t1 set b=@b1,d=@d1 where c=222;
|
|
commit;
|
|
select a,length(b),substr(b,1+2*9000,2),length(d),substr(d,1+3*9000,3)
|
|
from t1 where c=111;
|
|
select a,length(b),substr(b,1+2*900,2),length(d),substr(d,1+3*900,3)
|
|
from t1 where c=222;
|
|
|
|
# hash key update to null
|
|
update t1 set d=null where c=111;
|
|
commit;
|
|
select a from t1 where d is null;
|
|
|
|
# hash key delete
|
|
delete from t1 where c=111;
|
|
delete from t1 where c=222;
|
|
commit;
|
|
select count(*) from t1;
|
|
|
|
# -- table scan ops, short values --
|
|
|
|
insert into t1 values(1,'b1',111,'dd1');
|
|
insert into t1 values(2,'b2',222,'dd2');
|
|
insert into t1 values(3,'b3',333,'dd3');
|
|
insert into t1 values(4,'b4',444,'dd4');
|
|
insert into t1 values(5,'b5',555,'dd5');
|
|
insert into t1 values(6,'b6',666,'dd6');
|
|
insert into t1 values(7,'b7',777,'dd7');
|
|
insert into t1 values(8,'b8',888,'dd8');
|
|
insert into t1 values(9,'b9',999,'dd9');
|
|
commit;
|
|
--replace_column 9 #
|
|
explain select * from t1;
|
|
|
|
# table scan read
|
|
select * from t1 order by a;
|
|
|
|
# table scan update
|
|
update t1 set b=concat(a,'x',b),d=concat(a,'x',d);
|
|
commit;
|
|
select * from t1 order by a;
|
|
|
|
# table scan delete
|
|
delete from t1;
|
|
commit;
|
|
select count(*) from t1;
|
|
|
|
# -- table scan ops, long values --
|
|
|
|
insert into t1 values(1,@b1,111,@d1);
|
|
insert into t1 values(2,@b2,222,@d2);
|
|
commit;
|
|
--replace_column 9 #
|
|
explain select * from t1;
|
|
|
|
# table scan read
|
|
select a,length(b),substr(b,1+2*900,2),length(d),substr(d,1+3*900,3)
|
|
from t1 order by a;
|
|
|
|
# table scan update
|
|
update t1 set b=concat(b,b),d=concat(d,d);
|
|
commit;
|
|
select a,length(b),substr(b,1+4*9000,2),length(d),substr(d,1+6*9000,3)
|
|
from t1 order by a;
|
|
|
|
# table scan delete
|
|
delete from t1;
|
|
commit;
|
|
select count(*) from t1;
|
|
|
|
# -- range scan ops, short values --
|
|
|
|
insert into t1 values(1,'b1',111,'dd1');
|
|
insert into t1 values(2,'b2',222,'dd2');
|
|
insert into t1 values(3,'b3',333,'dd3');
|
|
insert into t1 values(4,'b4',444,'dd4');
|
|
insert into t1 values(5,'b5',555,'dd5');
|
|
insert into t1 values(6,'b6',666,'dd6');
|
|
insert into t1 values(7,'b7',777,'dd7');
|
|
insert into t1 values(8,'b8',888,'dd8');
|
|
insert into t1 values(9,'b9',999,'dd9');
|
|
commit;
|
|
--replace_column 9 #
|
|
explain select * from t1 where c >= 100 order by a;
|
|
|
|
# range scan read
|
|
select * from t1 where c >= 100 order by a;
|
|
|
|
# range scan update
|
|
update t1 set b=concat(a,'x',b),d=concat(a,'x',d)
|
|
where c >= 100;
|
|
commit;
|
|
select * from t1 where c >= 100 order by a;
|
|
|
|
# range scan delete
|
|
delete from t1 where c >= 100;
|
|
commit;
|
|
select count(*) from t1;
|
|
|
|
# -- range scan ops, long values --
|
|
|
|
insert into t1 values(1,@b1,111,@d1);
|
|
insert into t1 values(2,@b2,222,@d2);
|
|
commit;
|
|
--replace_column 9 #
|
|
explain select * from t1 where c >= 100 order by a;
|
|
|
|
# range scan read
|
|
select a,length(b),substr(b,1+2*900,2),length(d),substr(d,1+3*900,3)
|
|
from t1 where c >= 100 order by a;
|
|
|
|
# range scan update
|
|
update t1 set b=concat(b,b),d=concat(d,d);
|
|
commit;
|
|
select a,length(b),substr(b,1+4*9000,2),length(d),substr(d,1+6*9000,3)
|
|
from t1 where c >= 100 order by a;
|
|
|
|
# range scan delete
|
|
delete from t1 where c >= 100;
|
|
commit;
|
|
select count(*) from t1;
|
|
|
|
# -- rollback --
|
|
|
|
insert into t1 values(1,@b1,111,@d1);
|
|
insert into t1 values(2,@b2,222,@d2);
|
|
# 626
|
|
select a,length(b),substr(b,1+2*900,2),length(d),substr(d,1+3*900,3)
|
|
from t1 where a = 0;
|
|
select a,length(b),substr(b,1+2*900,2),length(d),substr(d,1+3*900,3)
|
|
from t1 where a = 1;
|
|
select a,length(b),substr(b,1+2*900,2),length(d),substr(d,1+3*900,3)
|
|
from t1 where a = 2;
|
|
select a,length(b),substr(b,1+2*900,2),length(d),substr(d,1+3*900,3)
|
|
from t1 order by a;
|
|
rollback;
|
|
select count(*) from t1;
|
|
|
|
# -- alter table and multi db --
|
|
|
|
insert into t1 values(1,'b1',111,'dd1');
|
|
insert into t1 values(2,'b2',222,'dd2');
|
|
insert into t1 values(3,'b3',333,'dd3');
|
|
insert into t1 values(4,'b4',444,'dd4');
|
|
insert into t1 values(5,'b5',555,'dd5');
|
|
insert into t1 values(6,'b6',666,'dd6');
|
|
insert into t1 values(7,'b7',777,'dd7');
|
|
insert into t1 values(8,'b8',888,'dd8');
|
|
insert into t1 values(9,'b9',999,'dd9');
|
|
commit;
|
|
|
|
select * from t1 order by a;
|
|
alter table t1 add x int;
|
|
select * from t1 order by a;
|
|
alter table t1 drop x;
|
|
select * from t1 order by a;
|
|
|
|
create database test2;
|
|
use test2;
|
|
|
|
CREATE TABLE t2 (
|
|
a bigint unsigned NOT NULL PRIMARY KEY,
|
|
b int unsigned not null,
|
|
c int unsigned
|
|
) engine=ndbcluster;
|
|
|
|
insert into t2 values (1,1,1),(2,2,2);
|
|
select * from test.t1,t2 where test.t1.a = t2.a order by test.t1.a;
|
|
|
|
drop table t2;
|
|
use test;
|
|
|
|
select * from t1 order by a;
|
|
alter table t1 add x int;
|
|
select * from t1 order by a;
|
|
alter table t1 drop x;
|
|
select * from t1 order by a;
|
|
|
|
# -- end general test --
|
|
|
|
drop table t1;
|
|
drop database test2;
|
|
|
|
# -- bug-5252 tinytext crashes + no-commit result + replace --
|
|
|
|
set autocommit=0;
|
|
create table t1 (
|
|
a int not null primary key,
|
|
b tinytext
|
|
) engine=ndbcluster;
|
|
|
|
insert into t1 values(1, 'x');
|
|
update t1 set b = 'y';
|
|
select * from t1;
|
|
delete from t1;
|
|
select * from t1;
|
|
commit;
|
|
replace t1 set a=2, b='y';
|
|
select * from t1;
|
|
delete from t1;
|
|
select * from t1;
|
|
drop table t1;
|
|
|
|
# -- bug-5013 insert empty string to text --
|
|
|
|
set autocommit=0;
|
|
create table t1 (
|
|
a int not null primary key,
|
|
b text not null
|
|
) engine=ndbcluster;
|
|
|
|
insert into t1 values(1, '');
|
|
select * from t1;
|
|
commit;
|
|
drop table t1;
|
|
|
|
# -- bug #5349 --
|
|
set autocommit=1;
|
|
use test;
|
|
CREATE TABLE t1 (
|
|
a int,
|
|
b text,
|
|
PRIMARY KEY (a)
|
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
|
|
|
INSERT INTO t1 VALUES
|
|
(1,'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA');
|
|
INSERT INTO t1 VALUES
|
|
(2,'BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB');
|
|
|
|
select * from t1 order by a;
|
|
alter table t1 engine=ndb;
|
|
select * from t1 order by a;
|
|
|
|
# -- bug #5872 --
|
|
set autocommit=1;
|
|
alter table t1 engine=myisam;
|
|
select * from t1 order by a;
|
|
drop table t1;
|
|
|
|
# -- bug #7340 --
|
|
create table t1 (
|
|
id int(11) unsigned primary key NOT NULL auto_increment,
|
|
msg text NOT NULL
|
|
) engine=ndbcluster default charset=utf8;
|
|
insert into t1 (msg) values(
|
|
'Tries to validate (8 byte length + inline bytes) as UTF8 :(
|
|
Fast fix: removed validation for Text. It is not yet indexable
|
|
so bad data will not crash kernel.');
|
|
select * from t1;
|
|
drop table t1;
|
|
|
|
# -- bug #19201
|
|
create table t1 (
|
|
a int primary key not null auto_increment,
|
|
b text
|
|
) engine=ndbcluster;
|
|
--disable_query_log
|
|
set autocommit=1;
|
|
# more rows than batch size (64)
|
|
# for this bug no blob parts would be necessary
|
|
let $1 = 500;
|
|
while ($1)
|
|
{
|
|
insert into t1 (b) values (repeat('x',4000));
|
|
dec $1;
|
|
}
|
|
--enable_query_log
|
|
select count(*) from t1;
|
|
truncate t1;
|
|
select count(*) from t1;
|
|
drop table t1;
|
|
|
|
# -- bug#19956 - var* key, complex key
|
|
|
|
create table t1 (
|
|
a varchar(40) not null,
|
|
b mediumint not null,
|
|
t text,
|
|
c varchar(2) not null,
|
|
d bigint not null,
|
|
primary key (a,b,c),
|
|
key (c,a),
|
|
unique key (d)
|
|
) engine=ndb;
|
|
|
|
--disable_query_log
|
|
set @s1 = 'rggurloniukyehuxdbfkkyzlceixzrehqhvxvxbpwizzvjzpucqmzrhzxzfau';
|
|
set @s2 = 'ykyymbzqgqlcjhlhmyqelfoaaohvtbekvifukdtnvcrrjveevfakxarxexomz';
|
|
set @s3 = 'dbnfqyzgtqxalcrwtfsqabknvtfcbpoonxsjiqvmhnfikxxhcgoexlkoezvah';
|
|
set @v1 = repeat(@s1,123);
|
|
set @v2 = repeat(@s2,234);
|
|
set @v3 = repeat(@s3,345);
|
|
set @v4 = NULL;
|
|
--enable_query_log
|
|
|
|
insert into t1 (a,b,c,d,t) values ('a',1110,'a',1,@v1);
|
|
insert into t1 (a,b,c,d,t) values ('b',1110,'a',2,@v2);
|
|
insert into t1 (a,b,c,d,t) values ('a',1110,'b',3,@v3);
|
|
insert into t1 (a,b,c,d,t) values ('b',1110,'b',4,@v4);
|
|
select a,b,c,d,sha1(t) from t1 order by c,a;
|
|
|
|
select a,b,c,d,sha1(t) from t1 where a='a' and b=1110 and c='a';
|
|
select a,b,c,d,sha1(t) from t1 where a='a' and b=1110 and c='b';
|
|
|
|
update t1 set t=@v4 where a='b' and b=1110 and c='a';
|
|
update t1 set t=@v2 where a='b' and b=1110 and c='b';
|
|
select a,b,c,d,sha1(t) from t1 order by c,a;
|
|
|
|
update t1 set t=@v2 where d=2;
|
|
update t1 set t=@v4 where d=4;
|
|
select a,b,c,d,sha1(t) from t1 order by c,a;
|
|
|
|
update t1 set t=@v4 where a='b' and c='a';
|
|
update t1 set t=@v2 where a='b' and c='b';
|
|
select a,b,c,d,sha1(t) from t1 order by c,a;
|
|
|
|
update t1 set t=@v2 where b+d=1112;
|
|
update t1 set t=@v4 where b+d=1114;
|
|
select a,b,c,d,sha1(t) from t1 order by c,a;
|
|
|
|
delete from t1 where a='a' and b=1110 and c='a';
|
|
delete from t1 where a='b' and c='a';
|
|
delete from t1 where d=3;
|
|
delete from t1 where b+d=1114;
|
|
select count(*) from t1;
|
|
|
|
drop table t1;
|
|
|
|
# End of 4.1 tests
|