Commit 73c82c81 authored by unknown's avatar unknown
Browse files

Merge mysql.com:/home/jonas/src/mysql-4.1

into mysql.com:/home/jonas/src/mysql-4.1-ndb


ndb/src/kernel/vm/Configuration.cpp:
  Auto merged
parents 90bcde83 7f1fcf66
Loading
Loading
Loading
Loading
+191 −0
Original line number Diff line number Diff line
drop table if exists t1;
create table t1 (
a char(3) character set latin1 collate latin1_bin primary key
) engine=ndb;
insert into t1 values('aAa');
insert into t1 values('aaa');
insert into t1 values('AAA');
select * from t1 order by a;
a
AAA
aAa
aaa
select * from t1 where a = 'aAa';
a
aAa
select * from t1 where a = 'aaa';
a
aaa
select * from t1 where a = 'AaA';
a
select * from t1 where a = 'AAA';
a
AAA
drop table t1;
create table t1 (
a char(3) character set latin1 collate latin1_swedish_ci primary key
) engine=ndb;
insert into t1 values('aAa');
insert into t1 values('aaa');
ERROR 23000: Duplicate entry 'aaa' for key 1
insert into t1 values('AAA');
ERROR 23000: Duplicate entry 'AAA' for key 1
select * from t1 order by a;
a
aAa
select * from t1 where a = 'aAa';
a
aAa
select * from t1 where a = 'aaa';
a
aAa
select * from t1 where a = 'AaA';
a
aAa
select * from t1 where a = 'AAA';
a
aAa
drop table t1;
create table t1 (
p int primary key,
a char(3) character set latin1 collate latin1_bin not null,
unique key(a)
) engine=ndb;
insert into t1 values(1, 'aAa');
insert into t1 values(2, 'aaa');
insert into t1 values(3, 'AAA');
select * from t1 order by p;
p	a
1	aAa
2	aaa
3	AAA
select * from t1 where a = 'aAa';
p	a
1	aAa
select * from t1 where a = 'aaa';
p	a
2	aaa
select * from t1 where a = 'AaA';
p	a
select * from t1 where a = 'AAA';
p	a
3	AAA
drop table t1;
create table t1 (
p int primary key,
a char(3) character set latin1 collate latin1_swedish_ci not null,
unique key(a)
) engine=ndb;
insert into t1 values(1, 'aAa');
insert into t1 values(2, 'aaa');
ERROR 23000: Can't write, because of unique constraint, to table 't1'
insert into t1 values(3, 'AAA');
ERROR 23000: Can't write, because of unique constraint, to table 't1'
select * from t1 order by p;
p	a
1	aAa
select * from t1 where a = 'aAa';
p	a
1	aAa
select * from t1 where a = 'aaa';
p	a
1	aAa
select * from t1 where a = 'AaA';
p	a
1	aAa
select * from t1 where a = 'AAA';
p	a
1	aAa
drop table t1;
create table t1 (
p int primary key,
a char(3) character set latin1 collate latin1_bin not null,
index(a)
) engine=ndb;
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');
select * from t1 order by p;
p	a
1	aAa
2	aaa
3	AAA
4	aAa
5	aaa
6	AAA
explain select * from t1 where a = 'zZz' order by p;
id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
1	SIMPLE	t1	ref	a	a	3	const	10	Using where; Using filesort
select * from t1 where a = 'aAa' order by p;
p	a
1	aAa
4	aAa
select * from t1 where a = 'aaa' order by p;
p	a
2	aaa
5	aaa
select * from t1 where a = 'AaA' order by p;
p	a
select * from t1 where a = 'AAA' order by p;
p	a
3	AAA
6	AAA
drop table t1;
create table t1 (
p int primary key,
a char(3) character set latin1 collate latin1_swedish_ci not null,
index(a)
) engine=ndb;
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');
select * from t1 order by p;
p	a
1	aAa
2	aaa
3	AAA
4	aAa
5	aaa
6	AAA
explain select * from t1 where a = 'zZz' order by p;
id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
1	SIMPLE	t1	ref	a	a	3	const	10	Using where; Using filesort
select * from t1 where a = 'aAa' order by p;
p	a
1	aAa
2	aaa
3	AAA
4	aAa
5	aaa
6	AAA
select * from t1 where a = 'aaa' order by p;
p	a
1	aAa
2	aaa
3	AAA
4	aAa
5	aaa
6	AAA
select * from t1 where a = 'AaA' order by p;
p	a
1	aAa
2	aaa
3	AAA
4	aAa
5	aaa
6	AAA
select * from t1 where a = 'AAA' order by p;
p	a
1	aAa
2	aaa
3	AAA
4	aAa
5	aaa
6	AAA
drop table t1;
+1 −1
Original line number Diff line number Diff line
@@ -4,7 +4,7 @@ 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,
CUSTOMER_ID varchar(20) collate latin1_bin NOT NULL,
PROVIDER varchar(16),
TEXPIRE int unsigned,
NUM_IP int unsigned,
+159 −0
Original line number Diff line number Diff line
--source include/have_ndb.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 1062
insert into t1 values('aaa');
--error 1062
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;

# 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 1169
insert into t1 values(2, 'aaa');
--error 1169
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;

# 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
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
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;
+1 −1
Original line number Diff line number Diff line
@@ -9,7 +9,7 @@ CREATE TABLE t1 (
  ACCESSNODE varchar(16) NOT NULL,
  POP varchar(48) NOT NULL,
  ACCESSTYPE int unsigned NOT NULL,
  CUSTOMER_ID varchar(20) NOT NULL,
  CUSTOMER_ID varchar(20) collate latin1_bin NOT NULL,
  PROVIDER varchar(16),
  TEXPIRE int unsigned,
  NUM_IP int unsigned,
+5 −6
Original line number Diff line number Diff line
@@ -46,9 +46,9 @@
 *
 *  NdbDictionary::Column
 *       setName()
 *       setPrimaryKey()
 *       setType()
 *       setLength()
 *       setPrimaryKey()
 *       setNullable()
 *
 *  NdbDictionary::Table
@@ -234,9 +234,9 @@ int create_table(Ndb * myNdb)
 * Column REG_NO
 */
  myColumn.setName("REG_NO");
  myColumn.setPrimaryKey(true);
  myColumn.setType(NdbDictionary::Column::Unsigned);
  myColumn.setLength(1);
  myColumn.setPrimaryKey(true);
  myColumn.setNullable(false);
  myTable.addColumn(myColumn);

@@ -244,9 +244,9 @@ int create_table(Ndb * myNdb)
 * Column BRAND
 */
  myColumn.setName("BRAND");
  myColumn.setPrimaryKey(false);
  myColumn.setType(NdbDictionary::Column::Char);
  myColumn.setLength(20);
  myColumn.setPrimaryKey(false);
  myColumn.setNullable(false);
  myTable.addColumn(myColumn);

@@ -254,9 +254,9 @@ int create_table(Ndb * myNdb)
 * Column COLOR
 */
  myColumn.setName("COLOR");
  myColumn.setPrimaryKey(false);
  myColumn.setType(NdbDictionary::Column::Char);
  myColumn.setLength(20);
  myColumn.setPrimaryKey(false);
  myColumn.setNullable(false);
  myTable.addColumn(myColumn);

@@ -454,6 +454,7 @@ int populate(Ndb * myNdb, int data, async_callback_t * cbData)

int main()
{
  ndb_init();
  Ndb* myNdb = new Ndb( "TEST_DB" );  // Object representing the database
  
  /*******************************************
@@ -493,5 +494,3 @@ int main()
  std::cout << "Number of temporary errors: " << tempErrors << std::endl;
  delete myNdb; 
}

Loading