summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <magnus@neptunus.(none)>2004-04-29 09:58:38 +0200
committerunknown <magnus@neptunus.(none)>2004-04-29 09:58:38 +0200
commit540c19bd4a74c279eba66325ac23df6f46821b1f (patch)
treeee5da5176d2d8ec8c9f3175d8a539e028e83b388
parent39ef383cc4eab1d10604222a3737b3a82a76f358 (diff)
downloadmariadb-git-540c19bd4a74c279eba66325ac23df6f46821b1f.tar.gz
Added new mysql-test files for NDB
-rw-r--r--mysql-test/r/ndb_index.result160
-rw-r--r--mysql-test/r/ndb_index_ordered.result121
-rw-r--r--mysql-test/r/ndb_index_unique.result371
-rw-r--r--mysql-test/t/ndb_index.test126
-rw-r--r--mysql-test/t/ndb_index_ordered.test107
-rw-r--r--mysql-test/t/ndb_index_unique.test134
6 files changed, 1019 insertions, 0 deletions
diff --git a/mysql-test/r/ndb_index.result b/mysql-test/r/ndb_index.result
new file mode 100644
index 00000000000..47fcf03b6c9
--- /dev/null
+++ b/mysql-test/r/ndb_index.result
@@ -0,0 +1,160 @@
+drop table if exists t1;
+CREATE TABLE t1 (
+PORT varchar(16) NOT NULL,
+ACCESSNODE varchar(16) NOT NULL,
+POP varchar(48) NOT NULL,
+ACCESSTYPE int unsigned NOT NULL,
+CUSTOMER_ID varchar(20) NOT NULL,
+PROVIDER varchar(16),
+TEXPIRE int unsigned,
+NUM_IP int unsigned,
+LEASED_NUM_IP int unsigned,
+LOCKED_IP int unsigned,
+STATIC_DNS int unsigned,
+SUSPENDED_SERVICE int unsigned,
+SUSPENDED_REASON int unsigned,
+BGP_COMMUNITY int unsigned,
+INDEX CUSTOMER_ID_INDEX(CUSTOMER_ID),
+INDEX FQPN_INDEX(POP,ACCESSNODE,PORT),
+PRIMARY KEY(POP,ACCESSNODE,PORT,ACCESSTYPE)
+) engine=ndbcluster;
+INSERT INTO t1 VALUES ('port67', 'node78', 'pop98', 1, 'kllopmn', 'pr_43', 121212, 1, 2, 3, 8, NULL, NULL, NULL);
+INSERT INTO t1 VALUES ('port67', 'node78', 'pop99', 2, 'klkighh', 'pr_44', 121213, 3, 3, 6, 7, NULL, NULL, NULL);
+INSERT INTO t1 VALUES ('port79', 'node79', 'pop79', 2, 'kpongfaa', 'pr_44', 981213, 2, 4, 10, 11, 2, 99, 1278);
+select port, accessnode, pop, accesstype from t1 where port='port67' order by accesstype;
+port accessnode pop accesstype
+port67 node78 pop98 1
+port67 node78 pop99 2
+select port, accessnode, pop, accesstype from t1 where port='foo';
+port accessnode pop accesstype
+select port, accessnode, pop, accesstype from t1 where accessnode='node78' order by accesstype;
+port accessnode pop accesstype
+port67 node78 pop98 1
+port67 node78 pop99 2
+select port, accessnode, pop, accesstype from t1 where accessnode='foo';
+port accessnode pop accesstype
+select port, accessnode, pop, accesstype from t1 where pop='pop98';
+port accessnode pop accesstype
+port67 node78 pop98 1
+select port, accessnode, pop, accesstype from t1 where pop='pop98';
+port accessnode pop accesstype
+port67 node78 pop98 1
+select port, accessnode, pop, accesstype from t1 where pop='pop98';
+port accessnode pop accesstype
+port67 node78 pop98 1
+select port, accessnode, pop, accesstype from t1 where pop='pop98' order by accesstype;
+port accessnode pop accesstype
+port67 node78 pop98 1
+select port, accessnode, pop, accesstype from t1 where pop='POP98';
+port accessnode pop accesstype
+port67 node78 pop98 1
+select port, accessnode, pop, accesstype from t1 where pop='POP98' order by accesstype;
+port accessnode pop accesstype
+port67 node78 pop98 1
+select port, accessnode, pop, accesstype from t1 where pop='foo';
+port accessnode pop accesstype
+select port, accessnode, pop, accesstype from t1 where accesstype=1;
+port accessnode pop accesstype
+port67 node78 pop98 1
+select port, accessnode, pop, accesstype from t1 where accesstype=2 order by port;
+port accessnode pop accesstype
+port67 node78 pop99 2
+port79 node79 pop79 2
+select port, accessnode, pop, accesstype from t1 where accesstype=98 order by port;
+port accessnode pop accesstype
+select port, accessnode, pop, accesstype from t1 where customer_id='kllopmn';
+port accessnode pop accesstype
+port67 node78 pop98 1
+select port, accessnode, pop, accesstype from t1 where customer_id='KLLOPMN';
+port accessnode pop accesstype
+select port, accessnode, pop, accesstype from t1 where customer_id='kLLoPMn';
+port accessnode pop accesstype
+select port, accessnode, pop, accesstype from t1 where customer_id='foo';
+port accessnode pop accesstype
+select port, accessnode, pop, accesstype from t1 where provider='pr_43';
+port accessnode pop accesstype
+port67 node78 pop98 1
+select port, accessnode, pop, accesstype from t1 where provider='foo';
+port accessnode pop accesstype
+select port, accessnode from t1 where texpire=121212;
+port accessnode
+port67 node78
+select port, accessnode from t1 where texpire=2323;
+port accessnode
+select port, accessnode, pop, accesstype from t1 where num_ip=1;
+port accessnode pop accesstype
+port67 node78 pop98 1
+select port, accessnode, pop, accesstype from t1 where num_ip=89;
+port accessnode pop accesstype
+select port, accessnode, pop, accesstype from t1 where leased_num_ip=2;
+port accessnode pop accesstype
+port67 node78 pop98 1
+select port, accessnode, pop, accesstype from t1 where leased_num_ip=89;
+port accessnode pop accesstype
+select port, accessnode, pop, accesstype from t1 where locked_ip=3;
+port accessnode pop accesstype
+port67 node78 pop98 1
+select port, accessnode, pop, accesstype from t1 where locked_ip=89;
+port accessnode pop accesstype
+select port, accessnode, pop, accesstype from t1 where static_dns=8;
+port accessnode pop accesstype
+port67 node78 pop98 1
+select port, accessnode, pop, accesstype from t1 where static_dns=89;
+port accessnode pop accesstype
+select port, accessnode, pop, accesstype from t1 where suspended_service=8;
+port accessnode pop accesstype
+select port, accessnode, pop, accesstype from t1 where suspended_service=89;
+port accessnode pop accesstype
+select port, accessnode, pop, accesstype from t1 where suspended_reason=NULL;
+port accessnode pop accesstype
+select port, accessnode, pop, accesstype from t1 where suspended_reason=89;
+port accessnode pop accesstype
+select port, accessnode, pop, accesstype from t1 where suspended_reason=0;
+port accessnode pop accesstype
+select port, accessnode, pop, accesstype from t1 where bgp_community=NULL;
+port accessnode pop accesstype
+select port, accessnode, pop, accesstype from t1 where bgp_community=89;
+port accessnode pop accesstype
+select port, accessnode, pop, accesstype from t1 where bgp_community=0;
+port accessnode pop accesstype
+select port, accessnode, pop, accesstype from t1 where port='port67' and accessnode='node78' and pop='pop98' and accesstype=1;
+port accessnode pop accesstype
+port67 node78 pop98 1
+select port, accessnode, pop, accesstype from t1 where port='port67' and accesstype=1 and accessnode='node78' and pop='pop98';
+port accessnode pop accesstype
+port67 node78 pop98 1
+select port, accessnode, pop, accesstype from t1 where pop='pop98' and port='port67' and accesstype=1 and accessnode='node78';
+port accessnode pop accesstype
+port67 node78 pop98 1
+select port, accessnode from t1 where port='foo' and accessnode='foo' and pop='foo' and accesstype=99;
+port accessnode
+select port, accessnode, pop, accesstype from t1 where port='port67' and pop='pop98' and accesstype=1;
+port accessnode pop accesstype
+port67 node78 pop98 1
+select port, accessnode, pop, accesstype from t1 where accesstype=1 and accessnode='node78' and pop='pop98';
+port accessnode pop accesstype
+port67 node78 pop98 1
+select port, accessnode, pop, accesstype from t1 where port='port67' and accesstype=1 and accessnode='node78';
+port accessnode pop accesstype
+port67 node78 pop98 1
+select port, accessnode from t1 where port='foo' and accessnode='foo' and pop='foo';
+port accessnode
+select port, accessnode, pop, accesstype from t1 where customer_id='kllopmn';
+port accessnode pop accesstype
+port67 node78 pop98 1
+select port, accessnode, pop, accesstype from t1 where customer_id='kllopmn' and accesstype=1;
+port accessnode pop accesstype
+port67 node78 pop98 1
+select port, accessnode, pop, accesstype from t1 where customer_id='kllopmn' and accesstype=2;
+port accessnode pop accesstype
+select port, accessnode, pop, accesstype from t1 where accesstype=2 and customer_id='kllopmn';
+port accessnode pop accesstype
+select port, accessnode, pop, accesstype from t1 where pop='pop98' and accessnode='node78' and port='port67';
+port accessnode pop accesstype
+port67 node78 pop98 1
+select port, accessnode, pop, accesstype from t1 where pop='pop98' and accessnode='node78' and port='port67' and customer_id='kllopmn';
+port accessnode pop accesstype
+port67 node78 pop98 1
+select port, accessnode, pop, accesstype from t1 where pop='pop98' and accessnode='node78' and port='port67' and customer_id='foo';
+port accessnode pop accesstype
+drop table t1;
diff --git a/mysql-test/r/ndb_index_ordered.result b/mysql-test/r/ndb_index_ordered.result
new file mode 100644
index 00000000000..46cb74bcf6d
--- /dev/null
+++ b/mysql-test/r/ndb_index_ordered.result
@@ -0,0 +1,121 @@
+drop table if exists t1;
+CREATE TABLE t1 (
+a int unsigned NOT NULL PRIMARY KEY,
+b int unsigned not null,
+c int unsigned,
+KEY(b)
+) engine=ndbcluster;
+insert t1 values(1, 2, 3), (2,3, 5), (3, 4, 6), (4, 5, 8), (5,6, 2), (6,7, 2);
+select * from t1 order by b;
+a b c
+1 2 3
+2 3 5
+3 4 6
+4 5 8
+5 6 2
+6 7 2
+select * from t1 where b >= 4 order by b;
+a b c
+3 4 6
+4 5 8
+5 6 2
+6 7 2
+select * from t1 where b = 4 order by b;
+a b c
+3 4 6
+select * from t1 where b > 4 order by b;
+a b c
+4 5 8
+5 6 2
+6 7 2
+select * from t1 where b < 4 order by b;
+a b c
+1 2 3
+2 3 5
+select * from t1 where b <= 4 order by b;
+a b c
+1 2 3
+2 3 5
+3 4 6
+update t1 set c = 3 where b = 3;
+select * from t1 order by a;
+a b c
+1 2 3
+2 3 3
+3 4 6
+4 5 8
+5 6 2
+6 7 2
+update t1 set c = 10 where b >= 6;
+select * from t1 order by a;
+a b c
+1 2 3
+2 3 3
+3 4 6
+4 5 8
+5 6 10
+6 7 10
+update t1 set c = 11 where b < 5;
+select * from t1 order by a;
+a b c
+1 2 11
+2 3 11
+3 4 11
+4 5 8
+5 6 10
+6 7 10
+update t1 set c = 12 where b > 0;
+select * from t1 order by a;
+a b c
+1 2 12
+2 3 12
+3 4 12
+4 5 12
+5 6 12
+6 7 12
+update t1 set c = 13 where b <= 3;
+select * from t1 order by a;
+a b c
+1 2 13
+2 3 13
+3 4 12
+4 5 12
+5 6 12
+6 7 12
+drop table t1;
+CREATE TABLE t1 (
+a int unsigned NOT NULL PRIMARY KEY,
+b int unsigned not null,
+c int unsigned,
+KEY(b)
+) engine=ndbcluster;
+insert t1 values(1, 2, 13), (2,3, 13), (3, 4, 12), (4, 5, 12), (5,6, 12), (6,7, 12);
+delete from t1 where b = 3;
+select * from t1 order by a;
+a b c
+1 2 13
+3 4 12
+4 5 12
+5 6 12
+6 7 12
+delete from t1 where b >= 6;
+select * from t1 order by a;
+a b c
+1 2 13
+3 4 12
+4 5 12
+delete from t1 where b < 4;
+select * from t1 order by a;
+a b c
+3 4 12
+4 5 12
+delete from t1 where b > 5;
+select * from t1 order by a;
+a b c
+3 4 12
+4 5 12
+delete from t1 where b <= 4;
+select * from t1 order by a;
+a b c
+4 5 12
+drop table t1;
diff --git a/mysql-test/r/ndb_index_unique.result b/mysql-test/r/ndb_index_unique.result
new file mode 100644
index 00000000000..59ff07fffda
--- /dev/null
+++ b/mysql-test/r/ndb_index_unique.result
@@ -0,0 +1,371 @@
+drop table if exists t1, t2, t3, t4, t5, t6, t7;
+CREATE TABLE t1 (
+a int unsigned NOT NULL PRIMARY KEY,
+b int unsigned not null,
+c int unsigned,
+UNIQUE(b)
+) engine=ndbcluster;
+insert t1 values(1, 2, 3), (2, 3, 5), (3, 4, 6), (4, 5, 8), (5,6, 2), (6,7, 2);
+select * from t1 order by b;
+a b c
+1 2 3
+2 3 5
+3 4 6
+4 5 8
+5 6 2
+6 7 2
+select * from t1 where b = 4 order by b;
+a b c
+3 4 6
+insert into t1 values(7,8,3);
+select * from t1 where b = 4 order by a;
+a b c
+3 4 6
+drop table t1;
+CREATE TABLE t1 (
+cid smallint(5) unsigned NOT NULL default '0',
+cv varchar(250) NOT NULL default '',
+PRIMARY KEY (cid),
+UNIQUE KEY cv (cv)
+) engine=ndbcluster;
+INSERT INTO t1 VALUES (8,'dummy');
+CREATE TABLE t2 (
+cid bigint(20) unsigned NOT NULL auto_increment,
+cap varchar(255) NOT NULL default '',
+PRIMARY KEY (cid),
+) engine=ndbcluster;
+CREATE TABLE t3 (
+gid bigint(20) unsigned NOT NULL auto_increment,
+gn varchar(255) NOT NULL default '',
+must tinyint(4) default NULL,
+PRIMARY KEY (gid),
+) engine=ndbcluster;
+INSERT INTO t3 VALUES (1,'V1',NULL);
+CREATE TABLE t4 (
+uid bigint(20) unsigned NOT NULL default '0',
+gid bigint(20) unsigned NOT NULL,
+rid bigint(20) unsigned NOT NULL default '-1',
+cid bigint(20) unsigned NOT NULL default '-1',
+UNIQUE KEY m (uid,gid,rid,cid),
+) engine=ndbcluster;
+INSERT INTO t4 VALUES (1,1,2,4);
+INSERT INTO t4 VALUES (1,1,2,3);
+INSERT INTO t4 VALUES (1,1,5,7);
+INSERT INTO t4 VALUES (1,1,10,8);
+CREATE TABLE t5 (
+rid bigint(20) unsigned NOT NULL auto_increment,
+rl varchar(255) NOT NULL default '',
+PRIMARY KEY (rid),
+) engine=ndbcluster;
+CREATE TABLE t6 (
+uid bigint(20) unsigned NOT NULL auto_increment,
+un varchar(250) NOT NULL default '',
+uc smallint(5) unsigned NOT NULL default '0',
+PRIMARY KEY (uid),
+UNIQUE KEY nc (un,uc),
+) engine=ndbcluster;
+INSERT INTO t6 VALUES (1,'test',8);
+INSERT INTO t6 VALUES (2,'test2',9);
+INSERT INTO t6 VALUES (3,'tre',3);
+CREATE TABLE t7 (
+mid bigint(20) unsigned NOT NULL PRIMARY KEY,
+uid bigint(20) unsigned NOT NULL default '0',
+gid bigint(20) unsigned NOT NULL,
+rid bigint(20) unsigned NOT NULL default '-1',
+cid bigint(20) unsigned NOT NULL default '-1',
+UNIQUE KEY m (uid,gid,rid,cid),
+) engine=ndbcluster;
+INSERT INTO t7 VALUES(1, 1, 1, 1, 1);
+INSERT INTO t7 VALUES(2, 2, 1, 1, 1);
+INSERT INTO t7 VALUES(3, 3, 1, 1, 1);
+INSERT INTO t7 VALUES(4, 4, 1, 1, 1);
+INSERT INTO t7 VALUES(5, 5, 1, 1, 1);
+INSERT INTO t7 VALUES(6, 1, 1, 1, 6);
+INSERT INTO t7 VALUES(7, 2, 1, 1, 7);
+INSERT INTO t7 VALUES(8, 3, 1, 1, 8);
+INSERT INTO t7 VALUES(9, 4, 1, 1, 9);
+INSERT INTO t7 VALUES(10, 5, 1, 1, 10);
+select * from t1 where cv = 'dummy';
+cid cv
+8 dummy
+select * from t1 where cv = 'test';
+cid cv
+select * from t4 where uid = 1 and gid=1 and rid=2 and cid=4;
+uid gid rid cid
+1 1 2 4
+select * from t4 where uid = 1 and gid=1 and rid=1 and cid=4;
+uid gid rid cid
+select * from t4 where uid = 1 order by cid;
+uid gid rid cid
+1 1 2 3
+1 1 2 4
+1 1 5 7
+1 1 10 8
+select * from t4 where rid = 2 order by cid;
+uid gid rid cid
+1 1 2 3
+1 1 2 4
+select * from t6 where un='test' and uc=8;
+uid un uc
+1 test 8
+select * from t6 where un='test' and uc=7;
+uid un uc
+select * from t6 where un='test';
+uid un uc
+1 test 8
+select * from t7 where mid = 8;
+mid uid gid rid cid
+8 3 1 1 8
+select * from t7 where uid = 8;
+mid uid gid rid cid
+select * from t7 where uid = 1 order by mid;
+mid uid gid rid cid
+1 1 1 1 1
+6 1 1 1 6
+select * from t7 where uid = 4 order by mid;
+mid uid gid rid cid
+4 4 1 1 1
+9 4 1 1 9
+select * from t7 where gid = 4;
+mid uid gid rid cid
+select * from t7 where gid = 1 order by mid;
+mid uid gid rid cid
+1 1 1 1 1
+2 2 1 1 1
+3 3 1 1 1
+4 4 1 1 1
+5 5 1 1 1
+6 1 1 1 6
+7 2 1 1 7
+8 3 1 1 8
+9 4 1 1 9
+10 5 1 1 10
+select * from t7 where cid = 4;
+mid uid gid rid cid
+select * from t7 where cid = 8;
+mid uid gid rid cid
+8 3 1 1 8
+select * from t4 where uid = 1 and gid=1 and rid=2 and cid=4;
+uid gid rid cid
+1 1 2 4
+select * from t4 where uid = 1 and gid=1 and rid=1 and cid=4;
+uid gid rid cid
+select * from t4 where uid = 1 order by gid,cid;
+uid gid rid cid
+1 1 2 3
+1 1 2 4
+1 1 5 7
+1 1 10 8
+1 1 5 12
+1 2 5 12
+1 3 9 11
+1 3 5 12
+1 4 5 12
+1 5 5 12
+1 6 5 12
+1 7 5 12
+1 8 5 12
+1 9 5 12
+1 10 5 12
+1 11 5 12
+1 12 5 12
+1 13 5 12
+1 14 5 12
+1 15 5 12
+1 16 5 12
+1 17 5 12
+1 18 5 12
+1 19 5 12
+1 20 5 12
+1 21 5 12
+1 22 5 12
+1 23 5 12
+1 24 5 12
+1 25 5 12
+1 26 5 12
+1 27 5 12
+1 28 5 12
+1 29 5 12
+1 30 5 12
+1 31 5 12
+1 32 5 12
+1 33 5 12
+1 34 5 12
+1 35 5 12
+1 36 5 12
+1 37 5 12
+1 38 5 12
+1 39 5 12
+1 40 5 12
+1 41 5 12
+1 42 5 12
+1 43 5 12
+1 44 5 12
+1 45 5 12
+1 46 5 12
+1 47 5 12
+1 48 5 12
+1 49 5 12
+1 50 5 12
+1 51 5 12
+1 52 5 12
+1 53 5 12
+1 54 5 12
+1 55 5 12
+1 56 5 12
+1 57 5 12
+1 58 5 12
+1 59 5 12
+1 60 5 12
+1 61 5 12
+1 62 5 12
+1 63 5 12
+1 64 5 12
+1 65 5 12
+1 66 5 12
+1 67 5 12
+1 68 5 12
+1 69 5 12
+1 70 5 12
+1 71 5 12
+1 72 5 12
+1 73 5 12
+1 74 5 12
+1 75 5 12
+1 76 5 12
+1 77 5 12
+1 78 5 12
+1 79 5 12
+1 80 5 12
+1 81 5 12
+1 82 5 12
+1 83 5 12
+1 84 5 12
+1 85 5 12
+1 86 5 12
+1 87 5 12
+1 88 5 12
+1 89 5 12
+1 90 5 12
+1 91 5 12
+1 92 5 12
+1 93 5 12
+1 94 5 12
+1 95 5 12
+1 96 5 12
+1 97 5 12
+1 98 5 12
+1 99 5 12
+1 100 5 12
+select * from t4 where uid = 1 order by gid,cid;
+uid gid rid cid
+1 1 2 3
+1 1 2 4
+1 1 5 7
+1 1 10 8
+1 1 5 12
+1 2 5 12
+1 3 9 11
+1 3 5 12
+1 4 5 12
+1 5 5 12
+1 6 5 12
+1 7 5 12
+1 8 5 12
+1 9 5 12
+1 10 5 12
+1 11 5 12
+1 12 5 12
+1 13 5 12
+1 14 5 12
+1 15 5 12
+1 16 5 12
+1 17 5 12
+1 18 5 12
+1 19 5 12
+1 20 5 12
+1 21 5 12
+1 22 5 12
+1 23 5 12
+1 24 5 12
+1 25 5 12
+1 26 5 12
+1 27 5 12
+1 28 5 12
+1 29 5 12
+1 30 5 12
+1 31 5 12
+1 32 5 12
+1 33 5 12
+1 34 5 12
+1 35 5 12
+1 36 5 12
+1 37 5 12
+1 38 5 12
+1 39 5 12
+1 40 5 12
+1 41 5 12
+1 42 5 12
+1 43 5 12
+1 44 5 12
+1 45 5 12
+1 46 5 12
+1 47 5 12
+1 48 5 12
+1 49 5 12
+1 50 5 12
+1 51 5 12
+1 52 5 12
+1 53 5 12
+1 54 5 12
+1 55 5 12
+1 56 5 12
+1 57 5 12
+1 58 5 12
+1 59 5 12
+1 60 5 12
+1 61 5 12
+1 62 5 12
+1 63 5 12
+1 64 5 12
+1 65 5 12
+1 66 5 12
+1 67 5 12
+1 68 5 12
+1 69 5 12
+1 70 5 12
+1 71 5 12
+1 72 5 12
+1 73 5 12
+1 74 5 12
+1 75 5 12
+1 76 5 12
+1 77 5 12
+1 78 5 12
+1 79 5 12
+1 80 5 12
+1 81 5 12
+1 82 5 12
+1 83 5 12
+1 84 5 12
+1 85 5 12
+1 86 5 12
+1 87 5 12
+1 88 5 12
+1 89 5 12
+1 90 5 12
+1 91 5 12
+1 92 5 12
+1 93 5 12
+1 94 5 12
+1 95 5 12
+1 96 5 12
+1 97 5 12
+1 98 5 12
+1 99 5 12
+1 100 5 12
+select * from t4 where rid = 2 order by cid;
+uid gid rid cid
+1 1 2 3
+1 1 2 4
+drop table t1,t2,t3,t4,t5,t6,t7;
diff --git a/mysql-test/t/ndb_index.test b/mysql-test/t/ndb_index.test
new file mode 100644
index 00000000000..a4a4b92a66b
--- /dev/null
+++ b/mysql-test/t/ndb_index.test
@@ -0,0 +1,126 @@
+-- source include/have_ndb.inc
+
+--disable_warnings
+drop table if exists t1;
+--enable_warnings
+
+CREATE TABLE t1 (
+ PORT varchar(16) NOT NULL,
+ ACCESSNODE varchar(16) NOT NULL,
+ POP varchar(48) NOT NULL,
+ ACCESSTYPE int unsigned NOT NULL,
+ CUSTOMER_ID varchar(20) NOT NULL,
+ PROVIDER varchar(16),
+ TEXPIRE int unsigned,
+ NUM_IP int unsigned,
+ LEASED_NUM_IP int unsigned,
+ LOCKED_IP int unsigned,
+ STATIC_DNS int unsigned,
+ SUSPENDED_SERVICE int unsigned,
+ SUSPENDED_REASON int unsigned,
+ BGP_COMMUNITY int unsigned,
+ INDEX CUSTOMER_ID_INDEX(CUSTOMER_ID),
+ INDEX FQPN_INDEX(POP,ACCESSNODE,PORT),
+ PRIMARY KEY(POP,ACCESSNODE,PORT,ACCESSTYPE)
+) engine=ndbcluster;
+
+INSERT INTO t1 VALUES ('port67', 'node78', 'pop98', 1, 'kllopmn', 'pr_43', 121212, 1, 2, 3, 8, NULL, NULL, NULL);
+INSERT INTO t1 VALUES ('port67', 'node78', 'pop99', 2, 'klkighh', 'pr_44', 121213, 3, 3, 6, 7, NULL, NULL, NULL);
+INSERT INTO t1 VALUES ('port79', 'node79', 'pop79', 2, 'kpongfaa', 'pr_44', 981213, 2, 4, 10, 11, 2, 99, 1278);
+
+
+# Test select using port
+select port, accessnode, pop, accesstype from t1 where port='port67' order by accesstype;
+select port, accessnode, pop, accesstype from t1 where port='foo';
+
+# Test select using accessnode
+select port, accessnode, pop, accesstype from t1 where accessnode='node78' order by accesstype;
+select port, accessnode, pop, accesstype from t1 where accessnode='foo';
+
+# Test select using pop
+select port, accessnode, pop, accesstype from t1 where pop='pop98';
+select port, accessnode, pop, accesstype from t1 where pop='pop98';
+select port, accessnode, pop, accesstype from t1 where pop='pop98';
+select port, accessnode, pop, accesstype from t1 where pop='pop98' order by accesstype;
+select port, accessnode, pop, accesstype from t1 where pop='POP98';
+select port, accessnode, pop, accesstype from t1 where pop='POP98' order by accesstype;
+select port, accessnode, pop, accesstype from t1 where pop='foo';
+
+# Test select using accesstype
+select port, accessnode, pop, accesstype from t1 where accesstype=1;
+select port, accessnode, pop, accesstype from t1 where accesstype=2 order by port;
+select port, accessnode, pop, accesstype from t1 where accesstype=98 order by port;
+
+# Test select using customer_id
+# NOTE! customer_id has a INDEX (ordered index in NDB), it's case sensitive!
+select port, accessnode, pop, accesstype from t1 where customer_id='kllopmn';
+select port, accessnode, pop, accesstype from t1 where customer_id='KLLOPMN';
+select port, accessnode, pop, accesstype from t1 where customer_id='kLLoPMn';
+select port, accessnode, pop, accesstype from t1 where customer_id='foo';
+
+# Test select using provider
+select port, accessnode, pop, accesstype from t1 where provider='pr_43';
+select port, accessnode, pop, accesstype from t1 where provider='foo';
+
+# Test select using texpire
+select port, accessnode from t1 where texpire=121212;
+select port, accessnode from t1 where texpire=2323;
+
+# Test select using num_ip
+select port, accessnode, pop, accesstype from t1 where num_ip=1;
+select port, accessnode, pop, accesstype from t1 where num_ip=89;
+
+# Test select using leased_num_ip
+select port, accessnode, pop, accesstype from t1 where leased_num_ip=2;
+select port, accessnode, pop, accesstype from t1 where leased_num_ip=89;
+
+# Test select using locked_ip
+select port, accessnode, pop, accesstype from t1 where locked_ip=3;
+select port, accessnode, pop, accesstype from t1 where locked_ip=89;
+
+# Test select using static_dns
+select port, accessnode, pop, accesstype from t1 where static_dns=8;
+select port, accessnode, pop, accesstype from t1 where static_dns=89;
+
+# Test select using suspended_service
+select port, accessnode, pop, accesstype from t1 where suspended_service=8;
+select port, accessnode, pop, accesstype from t1 where suspended_service=89;
+
+# Test select using suspended_reason
+select port, accessnode, pop, accesstype from t1 where suspended_reason=NULL;
+select port, accessnode, pop, accesstype from t1 where suspended_reason=89;
+select port, accessnode, pop, accesstype from t1 where suspended_reason=0;
+
+# Test select using bgp_community
+select port, accessnode, pop, accesstype from t1 where bgp_community=NULL;
+select port, accessnode, pop, accesstype from t1 where bgp_community=89;
+select port, accessnode, pop, accesstype from t1 where bgp_community=0;
+
+# Test select using full primary key
+select port, accessnode, pop, accesstype from t1 where port='port67' and accessnode='node78' and pop='pop98' and accesstype=1;
+select port, accessnode, pop, accesstype from t1 where port='port67' and accesstype=1 and accessnode='node78' and pop='pop98';
+select port, accessnode, pop, accesstype from t1 where pop='pop98' and port='port67' and accesstype=1 and accessnode='node78';
+select port, accessnode from t1 where port='foo' and accessnode='foo' and pop='foo' and accesstype=99;
+
+# Test select using partial primary key
+select port, accessnode, pop, accesstype from t1 where port='port67' and pop='pop98' and accesstype=1;
+select port, accessnode, pop, accesstype from t1 where accesstype=1 and accessnode='node78' and pop='pop98';
+select port, accessnode, pop, accesstype from t1 where port='port67' and accesstype=1 and accessnode='node78';
+select port, accessnode from t1 where port='foo' and accessnode='foo' and pop='foo';
+
+# Test select using CUSTOMER_ID_INDEX
+select port, accessnode, pop, accesstype from t1 where customer_id='kllopmn';
+select port, accessnode, pop, accesstype from t1 where customer_id='kllopmn' and accesstype=1;
+select port, accessnode, pop, accesstype from t1 where customer_id='kllopmn' and accesstype=2;
+select port, accessnode, pop, accesstype from t1 where accesstype=2 and customer_id='kllopmn';
+
+# Test select using FQPN_INDEX
+select port, accessnode, pop, accesstype from t1 where pop='pop98' and accessnode='node78' and port='port67';
+#select port, accessnode, pop, accesstype from t1 where pop='pop98' and accessnode='node78' and port='port67' order by accesstype;
+#select port, accessnode, pop, accesstype from t1 where accessnode='node78' and port='port67' and pop='pop98' order by accesstype;
+#select port, accessnode, pop, accesstype from t1 where port='port67' and pop='pop98' and accessnode='node78' order by accesstype;
+select port, accessnode, pop, accesstype from t1 where pop='pop98' and accessnode='node78' and port='port67' and customer_id='kllopmn';
+select port, accessnode, pop, accesstype from t1 where pop='pop98' and accessnode='node78' and port='port67' and customer_id='foo';
+
+
+drop table t1;
diff --git a/mysql-test/t/ndb_index_ordered.test b/mysql-test/t/ndb_index_ordered.test
new file mode 100644
index 00000000000..3392192dee1
--- /dev/null
+++ b/mysql-test/t/ndb_index_ordered.test
@@ -0,0 +1,107 @@
+-- source include/have_ndb.inc
+
+--disable_warnings
+drop table if exists t1;
+--enable_warnings
+
+#
+# Simple test to show use of ordered indexes
+#
+
+CREATE TABLE t1 (
+ a int unsigned NOT NULL PRIMARY KEY,
+ b int unsigned not null,
+ c int unsigned,
+ KEY(b)
+) engine=ndbcluster;
+
+insert t1 values(1, 2, 3), (2,3, 5), (3, 4, 6), (4, 5, 8), (5,6, 2), (6,7, 2);
+select * from t1 order by b;
+select * from t1 where b >= 4 order by b;
+select * from t1 where b = 4 order by b;
+select * from t1 where b > 4 order by b;
+select * from t1 where b < 4 order by b;
+select * from t1 where b <= 4 order by b;
+
+#
+# Here we should add some "explain select" to verify that the ordered index is
+# used for these queries.
+#
+
+#
+# Update using ordered index scan
+#
+
+# MASV update t1 set c = 3 where b = 3;
+select * from t1 order by a;
+update t1 set c = 10 where b >= 6;
+select * from t1 order by a;
+update t1 set c = 11 where b < 5;
+select * from t1 order by a;
+update t1 set c = 12 where b > 0;
+select * from t1 order by a;
+update t1 set c = 13 where b <= 3;
+select * from t1 order by a;
+
+
+#
+# Delete using ordered index scan
+#
+
+drop table t1;
+
+CREATE TABLE t1 (
+ a int unsigned NOT NULL PRIMARY KEY,
+ b int unsigned not null,
+ c int unsigned,
+ KEY(b)
+) engine=ndbcluster;
+
+insert t1 values(1, 2, 13), (2,3, 13), (3, 4, 12), (4, 5, 12), (5,6, 12), (6,7, 12);
+
+# MASV delete from t1 where b = 3;
+select * from t1 order by a;
+delete from t1 where b >= 6;
+select * from t1 order by a;
+delete from t1 where b < 4;
+select * from t1 order by a;
+delete from t1 where b > 5;
+select * from t1 order by a;
+delete from t1 where b <= 4;
+select * from t1 order by a;
+
+drop table t1;
+
+
+#
+#multi part key
+#
+CREATE TABLE t1 (
+ a int unsigned NOT NULL PRIMARY KEY,
+ b int unsigned not null,
+ c int unsigned not null,
+) engine = ndb;
+
+create index a1 on t1 (b, c);
+
+insert into t1 values (1, 2, 13);
+insert into t1 values (2,3, 13);
+insert into t1 values (3, 4, 12);
+insert into t1 values (4, 5, 12);
+insert into t1 values (5,6, 12);
+insert into t1 values (6,7, 12);
+insert into t1 values (7, 2, 1);
+insert into t1 values (8,3, 6);
+insert into t1 values (9, 4, 12);
+insert into t1 values (14, 5, 4);
+insert into t1 values (15,5,5);
+insert into t1 values (16,5, 6);
+insert into t1 values (17,4,4);
+
+select * from t1 order by a;
+select * from t1 where b<=5;
+#select * from t1 where b<=5 and c=0;
+#select * from t1 where b=4 and c<=5;
+select * from t1 where b<=4 and c<=5;
+# MASV select * from t1 where b<=5 and c=0 or b<=5 and c=2;
+drop table t1;
diff --git a/mysql-test/t/ndb_index_unique.test b/mysql-test/t/ndb_index_unique.test
new file mode 100644
index 00000000000..bfab6225efd
--- /dev/null
+++ b/mysql-test/t/ndb_index_unique.test
@@ -0,0 +1,134 @@
+-- source include/have_ndb.inc
+
+--disable_warnings
+drop table if exists t1, t2, t3, t4, t5, t6, t7;
+--enable_warnings
+
+#
+# Simple test to show use of UNIQUE indexes
+#
+
+CREATE TABLE t1 (
+ a int unsigned NOT NULL PRIMARY KEY,
+ b int unsigned not null,
+ c int unsigned,
+ UNIQUE(b)
+) engine=ndbcluster;
+
+insert t1 values(1, 2, 3), (2, 3, 5), (3, 4, 6), (4, 5, 8), (5,6, 2), (6,7, 2);
+select * from t1 order by b;
+select * from t1 where b = 4 order by b;
+insert into t1 values(7,8,3);
+select * from t1 where b = 4 order by a;
+
+drop table t1;
+
+#
+# More complex tables
+#
+
+CREATE TABLE t1 (
+ cid smallint(5) unsigned NOT NULL default '0',
+ cv varchar(250) NOT NULL default '',
+ PRIMARY KEY (cid),
+ UNIQUE KEY cv (cv)
+) engine=ndbcluster;
+INSERT INTO t1 VALUES (8,'dummy');
+CREATE TABLE t2 (
+ cid bigint(20) unsigned NOT NULL auto_increment,
+ cap varchar(255) NOT NULL default '',
+ PRIMARY KEY (cid),
+) engine=ndbcluster;
+CREATE TABLE t3 (
+ gid bigint(20) unsigned NOT NULL auto_increment,
+ gn varchar(255) NOT NULL default '',
+ must tinyint(4) default NULL,
+ PRIMARY KEY (gid),
+) engine=ndbcluster;
+INSERT INTO t3 VALUES (1,'V1',NULL);
+CREATE TABLE t4 (
+ uid bigint(20) unsigned NOT NULL default '0',
+ gid bigint(20) unsigned NOT NULL,
+ rid bigint(20) unsigned NOT NULL default '-1',
+ cid bigint(20) unsigned NOT NULL default '-1',
+ UNIQUE KEY m (uid,gid,rid,cid),
+) engine=ndbcluster;
+INSERT INTO t4 VALUES (1,1,2,4);
+INSERT INTO t4 VALUES (1,1,2,3);
+INSERT INTO t4 VALUES (1,1,5,7);
+INSERT INTO t4 VALUES (1,1,10,8);
+CREATE TABLE t5 (
+ rid bigint(20) unsigned NOT NULL auto_increment,
+ rl varchar(255) NOT NULL default '',
+ PRIMARY KEY (rid),
+) engine=ndbcluster;
+CREATE TABLE t6 (
+ uid bigint(20) unsigned NOT NULL auto_increment,
+ un varchar(250) NOT NULL default '',
+ uc smallint(5) unsigned NOT NULL default '0',
+ PRIMARY KEY (uid),
+ UNIQUE KEY nc (un,uc),
+) engine=ndbcluster;
+INSERT INTO t6 VALUES (1,'test',8);
+INSERT INTO t6 VALUES (2,'test2',9);
+INSERT INTO t6 VALUES (3,'tre',3);
+CREATE TABLE t7 (
+ mid bigint(20) unsigned NOT NULL PRIMARY KEY,
+ uid bigint(20) unsigned NOT NULL default '0',
+ gid bigint(20) unsigned NOT NULL,
+ rid bigint(20) unsigned NOT NULL default '-1',
+ cid bigint(20) unsigned NOT NULL default '-1',
+ UNIQUE KEY m (uid,gid,rid,cid),
+) engine=ndbcluster;
+INSERT INTO t7 VALUES(1, 1, 1, 1, 1);
+INSERT INTO t7 VALUES(2, 2, 1, 1, 1);
+INSERT INTO t7 VALUES(3, 3, 1, 1, 1);
+INSERT INTO t7 VALUES(4, 4, 1, 1, 1);
+INSERT INTO t7 VALUES(5, 5, 1, 1, 1);
+INSERT INTO t7 VALUES(6, 1, 1, 1, 6);
+INSERT INTO t7 VALUES(7, 2, 1, 1, 7);
+INSERT INTO t7 VALUES(8, 3, 1, 1, 8);
+INSERT INTO t7 VALUES(9, 4, 1, 1, 9);
+INSERT INTO t7 VALUES(10, 5, 1, 1, 10);
+
+select * from t1 where cv = 'dummy';
+select * from t1 where cv = 'test';
+select * from t4 where uid = 1 and gid=1 and rid=2 and cid=4;
+select * from t4 where uid = 1 and gid=1 and rid=1 and cid=4;
+select * from t4 where uid = 1 order by cid;
+select * from t4 where rid = 2 order by cid;
+select * from t6 where un='test' and uc=8;
+select * from t6 where un='test' and uc=7;
+select * from t6 where un='test';
+select * from t7 where mid = 8;
+select * from t7 where uid = 8;
+select * from t7 where uid = 1 order by mid;
+select * from t7 where uid = 4 order by mid;
+select * from t7 where gid = 4;
+select * from t7 where gid = 1 order by mid;
+select * from t7 where cid = 4;
+select * from t7 where cid = 8;
+
+#
+# insert more records into t4
+#
+let $1=100;
+disable_query_log;
+while ($1)
+{
+ eval insert into t4 values(1, $1, 5, 12);
+ eval insert into t4 values($1, 3, 9, 11);
+ dec $1;
+}
+enable_query_log;
+
+select * from t4 where uid = 1 and gid=1 and rid=2 and cid=4;
+select * from t4 where uid = 1 and gid=1 and rid=1 and cid=4;
+select * from t4 where uid = 1 order by gid,cid;
+select * from t4 where uid = 1 order by gid,cid;
+select * from t4 where rid = 2 order by cid;
+
+
+drop table t1,t2,t3,t4,t5,t6,t7;
+
+