summaryrefslogtreecommitdiff
path: root/mysql-test
diff options
context:
space:
mode:
authorunknown <mskold@mysql.com>2004-08-13 14:34:51 +0200
committerunknown <mskold@mysql.com>2004-08-13 14:34:51 +0200
commiteddc4fdeb548b1f1c6d439d1462452149f7185e4 (patch)
tree4b3d9b7c8e378948d1be78052815e50fce1e830e /mysql-test
parentfe61e5d2e4be0f80d0ed60b73293cd7ed8e46283 (diff)
parentb8c73f8100c386867a285958d3ec78b20682019e (diff)
downloadmariadb-git-eddc4fdeb548b1f1c6d439d1462452149f7185e4.tar.gz
Merge mskold@bk-internal.mysql.com:/home/bk/mysql-4.1-ndb
into mysql.com:/usr/local/home/marty/MySQL/mysql-4.1-ndb
Diffstat (limited to 'mysql-test')
-rw-r--r--mysql-test/r/ndb_index_unique.result51
-rw-r--r--mysql-test/t/ndb_index_ordered.test20
-rw-r--r--mysql-test/t/ndb_index_unique.test61
3 files changed, 130 insertions, 2 deletions
diff --git a/mysql-test/r/ndb_index_unique.result b/mysql-test/r/ndb_index_unique.result
index ed97e0b110a..7ec2ef3a2f1 100644
--- a/mysql-test/r/ndb_index_unique.result
+++ b/mysql-test/r/ndb_index_unique.result
@@ -21,6 +21,28 @@ insert into t1 values(7,8,3);
select * from t1 where b = 4 order by a;
a b c
3 4 6
+insert into t1 values(8, 2, 3);
+ERROR 23000: Can't write, because of unique constraint, to table 't1'
+select * from t1 order by a;
+a b c
+1 2 3
+2 3 5
+3 4 6
+4 5 8
+5 6 2
+6 7 2
+7 8 3
+delete from t1 where a = 1;
+insert into t1 values(8, 2, 3);
+select * from t1 order by a;
+a b c
+2 3 5
+3 4 6
+4 5 8
+5 6 2
+6 7 2
+7 8 3
+8 2 3
drop table t1;
CREATE TABLE t2 (
a int unsigned NOT NULL PRIMARY KEY,
@@ -42,6 +64,28 @@ insert into t2 values(7,8,3);
select * from t2 where b = 4 order by a;
a b c
3 4 6
+insert into t2 values(8, 2, 3);
+ERROR 23000: Can't write, because of unique constraint, to table 't2'
+select * from t2 order by a;
+a b c
+1 2 3
+2 3 5
+3 4 6
+4 5 8
+5 6 2
+6 7 2
+7 8 3
+delete from t2 where a = 1;
+insert into t2 values(8, 2, 3);
+select * from t2 order by a;
+a b c
+2 3 5
+3 4 6
+4 5 8
+5 6 2
+6 7 2
+7 8 3
+8 2 3
drop table t2;
CREATE TABLE t3 (
a int unsigned NOT NULL,
@@ -74,8 +118,10 @@ 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)
+PRIMARY KEY (cid),
+UNIQUE KEY (cid, cap)
) engine=ndbcluster;
+INSERT INTO t2 VALUES (NULL,'another dummy');
CREATE TABLE t3 (
gid bigint(20) unsigned NOT NULL auto_increment,
gn varchar(255) NOT NULL default '',
@@ -132,6 +178,9 @@ cid cv
8 dummy
select * from t1 where cv = 'test';
cid cv
+select * from t2 where cap = 'another dummy';
+cid cap
+0 another dummy
select * from t4 where uid = 1 and gid=1 and rid=2 and cid=4;
uid gid rid cid
1 1 2 4
diff --git a/mysql-test/t/ndb_index_ordered.test b/mysql-test/t/ndb_index_ordered.test
index 09c87a44084..3def52e865c 100644
--- a/mysql-test/t/ndb_index_ordered.test
+++ b/mysql-test/t/ndb_index_ordered.test
@@ -114,3 +114,23 @@ select * from t1 where b=4 and c<=5 order by a;
select * from t1 where b<=4 and c<=5 order by a;
select * from t1 where b<=5 and c=0 or b<=5 and c=2;
drop table t1;
+
+#
+# Indexing NULL values
+#
+
+#CREATE TABLE t1 (
+# a int unsigned NOT NULL PRIMARY KEY,
+# b int unsigned,
+# c int unsigned,
+# KEY bc(b,c)
+#) engine = ndb;
+
+#insert into t1 values(1,1,1),(2,NULL,2),(3,NULL,NULL),(4,4,NULL);
+#select * from t1 use index (bc);
+#select count(*) from t1 use index (bc);
+#select count(*) from t1 use index (PRIMARY) where b IS NULL;
+#select count(*) from t1 use index (bc) where b IS NULL;
+#select count(*) from t1 use index (bc) where b IS NULL and c = 2;
+#select count(*) from t1 use index (bc) where b IS NOT NULL;
+#drop table t1;
diff --git a/mysql-test/t/ndb_index_unique.test b/mysql-test/t/ndb_index_unique.test
index 7cfc9a77452..96abc842639 100644
--- a/mysql-test/t/ndb_index_unique.test
+++ b/mysql-test/t/ndb_index_unique.test
@@ -21,6 +21,13 @@ 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;
+-- error 1169
+insert into t1 values(8, 2, 3);
+select * from t1 order by a;
+delete from t1 where a = 1;
+insert into t1 values(8, 2, 3);
+select * from t1 order by a;
+
drop table t1;
@@ -42,6 +49,13 @@ select * from t2 where c = 6;
insert into t2 values(7,8,3);
select * from t2 where b = 4 order by a;
+-- error 1169
+insert into t2 values(8, 2, 3);
+select * from t2 order by a;
+delete from t2 where a = 1;
+insert into t2 values(8, 2, 3);
+select * from t2 order by a;
+
drop table t2;
#
@@ -65,6 +79,48 @@ select * from t3 where b = 4 order by a;
drop table t3;
#
+# Indexes on NULL-able columns
+#
+
+#CREATE TABLE t1 (
+# pk int NOT NULL PRIMARY KEY,
+# a int unsigned,
+# UNIQUE KEY (a)
+#) engine=ndbcluster;
+
+#insert into t1 values (-1,NULL), (0,0), (1,NULL),(2,2),(3,NULL),(4,4);
+
+#select * from t1 order by pk;
+
+#--error 1169
+#insert into t1 values (5,0);
+#select * from t1 order by pk;
+#delete from t1 where a = 0;
+#insert into t1 values (5,0);
+#select * from t1 order by pk;
+
+#CREATE TABLE t2 (
+# pk int NOT NULL PRIMARY KEY,
+# a int unsigned,
+# b tinyint NOT NULL,
+# c VARCHAR(10),
+# UNIQUE KEY si(a, c)
+#) engine=ndbcluster;
+
+#insert into t2 values (-1,1,17,NULL),(0,NULL,18,NULL),(1,3,19,'abc');
+
+#select * from t2 order by pk;
+
+#--error 1169
+#insert into t2 values(2,3,19,'abc');
+#select * from t2 order by pk;
+#delete from t2 where c IS NOT NULL;
+#insert into t2 values(2,3,19,'abc');
+#select * from t2 order by pk;
+
+#drop table t1, t2;
+
+#
# More complex tables
#
@@ -78,8 +134,10 @@ 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)
+ PRIMARY KEY (cid),
+ UNIQUE KEY (cid, cap)
) engine=ndbcluster;
+INSERT INTO t2 VALUES (NULL,'another dummy');
CREATE TABLE t3 (
gid bigint(20) unsigned NOT NULL auto_increment,
gn varchar(255) NOT NULL default '',
@@ -134,6 +192,7 @@ INSERT INTO t7 VALUES(10, 5, 1, 1, 10);
select * from t1 where cv = 'dummy';
select * from t1 where cv = 'test';
+select * from t2 where cap = 'another dummy';
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;