Commit 13cb2825 authored by tomas@poseidon.ndb.mysql.com's avatar tomas@poseidon.ndb.mysql.com

Merge tulin@bk-internal.mysql.com:/home/bk/mysql-4.1-ndb

into poseidon.ndb.mysql.com:/home/tomas/mysql-4.1-ndb
parents c3fdbf0f 18d5e9b4
...@@ -72,6 +72,21 @@ col6 col1 col3 fourth col4 col4_5 col5 col7 col8 ...@@ -72,6 +72,21 @@ col6 col1 col3 fourth col4 col4_5 col5 col7 col8
1 100 3 4 5 PENDING 0000-00-00 00:00:00 1 100 3 4 5 PENDING 0000-00-00 00:00:00
1 101 3 4 5 PENDING 0000-00-00 00:00:00 1 101 3 4 5 PENDING 0000-00-00 00:00:00
2 102 4 3 5 99 PENDING EXTRA 2004-01-01 00:00:00 2 102 4 3 5 99 PENDING EXTRA 2004-01-01 00:00:00
delete from t1;
insert into t1 values (0,0,4,3,5,99,"PENDING","EXTRA",'2004-01-01 00:00:00');
SET SQL_MODE='';
insert into t1 values (1,0,4,3,5,99,"PENDING","EXTRA",'2004-01-01 00:00:00');
select * from t1 order by col1;
col6 col1 col3 fourth col4 col4_5 col5 col7 col8
0 0 4 3 5 99 PENDING EXTRA 2004-01-01 00:00:00
1 103 4 3 5 99 PENDING EXTRA 2004-01-01 00:00:00
alter table t1 drop column col4_5;
insert into t1 values (2,0,4,3,5,"PENDING","EXTRA",'2004-01-01 00:00:00');
select * from t1 order by col1;
col6 col1 col3 fourth col4 col5 col7 col8
0 0 4 3 5 PENDING EXTRA 2004-01-01 00:00:00
1 103 4 3 5 PENDING EXTRA 2004-01-01 00:00:00
2 104 4 3 5 PENDING EXTRA 2004-01-01 00:00:00
drop table t1; drop table t1;
CREATE TABLE t1 ( CREATE TABLE t1 (
a INT NOT NULL, a INT NOT NULL,
...@@ -79,16 +94,60 @@ b INT NOT NULL ...@@ -79,16 +94,60 @@ b INT NOT NULL
) ENGINE=ndbcluster; ) ENGINE=ndbcluster;
INSERT INTO t1 VALUES (9410,9412); INSERT INTO t1 VALUES (9410,9412);
ALTER TABLE t1 ADD COLUMN c int not null; ALTER TABLE t1 ADD COLUMN c int not null;
select * from t1; select * from t1 order by a;
a b c a b c
9410 9412 0 9410 9412 0
select * from t1; select * from t1 order by a;
a b c a b c
9410 9412 0 9410 9412 0
alter table t1 drop c; alter table t1 drop c;
select * from t1; select * from t1 order by a;
a b a b
9410 9412 9410 9412
drop table t1; drop table t1;
select * from t1; select * from t1 order by a;
ERROR 42S02: Table 'test.t1' doesn't exist ERROR 42S02: Table 'test.t1' doesn't exist
CREATE TABLE t1 (
a INT NOT NULL PRIMARY KEY,
b INT NOT NULL
) ENGINE=ndbcluster;
INSERT INTO t1 VALUES (0,1),(17,18);
select * from t1 order by a;
a b
0 1
17 18
alter table t1 modify column a int not null auto_increment;
select * from t1 order by a;
a b
0 1
17 18
INSERT INTO t1 VALUES (0,19),(20,21);
select * from t1 order by a;
a b
0 1
17 18
18 19
20 21
drop table t1;
CREATE TABLE t1 (
a INT NOT NULL PRIMARY KEY,
b INT NOT NULL
) ENGINE=ndbcluster;
INSERT INTO t1 VALUES (0,1),(17,18);
select * from t1;
a b
17 18
0 1
alter table t1 add c int not null unique auto_increment;
select * from t1 order by a;
a b c
0 1 2
17 18 1
INSERT INTO t1 VALUES (18,19,3),(20,21,0);
select * from t1 order by a;
a b c
0 1 2
17 18 1
18 19 3
20 21 4
drop table t1;
...@@ -47,6 +47,14 @@ select * from t1 order by col1; ...@@ -47,6 +47,14 @@ select * from t1 order by col1;
insert into t1 values (2, NULL,4,3,5,99,"PENDING","EXTRA",'2004-01-01 00:00:00'); insert into t1 values (2, NULL,4,3,5,99,"PENDING","EXTRA",'2004-01-01 00:00:00');
show table status; show table status;
select * from t1 order by col1; select * from t1 order by col1;
delete from t1;
insert into t1 values (0,0,4,3,5,99,"PENDING","EXTRA",'2004-01-01 00:00:00');
SET SQL_MODE='';
insert into t1 values (1,0,4,3,5,99,"PENDING","EXTRA",'2004-01-01 00:00:00');
select * from t1 order by col1;
alter table t1 drop column col4_5;
insert into t1 values (2,0,4,3,5,"PENDING","EXTRA",'2004-01-01 00:00:00');
select * from t1 order by col1;
drop table t1; drop table t1;
...@@ -66,19 +74,45 @@ connect (con2,localhost,,,test); ...@@ -66,19 +74,45 @@ connect (con2,localhost,,,test);
connection con1; connection con1;
ALTER TABLE t1 ADD COLUMN c int not null; ALTER TABLE t1 ADD COLUMN c int not null;
select * from t1; select * from t1 order by a;
connection con2; connection con2;
select * from t1; select * from t1 order by a;
alter table t1 drop c; alter table t1 drop c;
connection con1; connection con1;
select * from t1; select * from t1 order by a;
drop table t1; drop table t1;
connection con2; connection con2;
--error 1146 --error 1146
select * from t1 order by a;
CREATE TABLE t1 (
a INT NOT NULL PRIMARY KEY,
b INT NOT NULL
) ENGINE=ndbcluster;
INSERT INTO t1 VALUES (0,1),(17,18);
select * from t1 order by a;
alter table t1 modify column a int not null auto_increment;
select * from t1 order by a;
INSERT INTO t1 VALUES (0,19),(20,21);
select * from t1 order by a;
drop table t1;
CREATE TABLE t1 (
a INT NOT NULL PRIMARY KEY,
b INT NOT NULL
) ENGINE=ndbcluster;
INSERT INTO t1 VALUES (0,1),(17,18);
select * from t1; select * from t1;
alter table t1 add c int not null unique auto_increment;
select * from t1 order by a;
INSERT INTO t1 VALUES (18,19,3),(20,21,0);
select * from t1 order by a;
drop table t1;
#--disable_warnings #--disable_warnings
#DROP TABLE IF EXISTS t2; #DROP TABLE IF EXISTS t2;
......
...@@ -3402,7 +3402,9 @@ longlong ha_ndbcluster::get_auto_increment() ...@@ -3402,7 +3402,9 @@ longlong ha_ndbcluster::get_auto_increment()
DBUG_ENTER("get_auto_increment"); DBUG_ENTER("get_auto_increment");
DBUG_PRINT("enter", ("m_tabname: %s", m_tabname)); DBUG_PRINT("enter", ("m_tabname: %s", m_tabname));
int cache_size= int cache_size=
(rows_to_insert > autoincrement_prefetch) ? (rows_to_insert - rows_inserted < autoincrement_prefetch) ?
rows_to_insert - rows_inserted
: (rows_to_insert > autoincrement_prefetch) ?
rows_to_insert rows_to_insert
: autoincrement_prefetch; : autoincrement_prefetch;
Uint64 auto_value= Uint64 auto_value=
......
...@@ -3303,6 +3303,8 @@ copy_data_between_tables(TABLE *from,TABLE *to, ...@@ -3303,6 +3303,8 @@ copy_data_between_tables(TABLE *from,TABLE *to,
List<Item> all_fields; List<Item> all_fields;
ha_rows examined_rows; ha_rows examined_rows;
bool auto_increment_field_copied= 0; bool auto_increment_field_copied= 0;
ulong old_sql_mode;
bool no_auto_on_zero;
DBUG_ENTER("copy_data_between_tables"); DBUG_ENTER("copy_data_between_tables");
if (!(copy= new Copy_field[to->fields])) if (!(copy= new Copy_field[to->fields]))
...@@ -3361,6 +3363,11 @@ copy_data_between_tables(TABLE *from,TABLE *to, ...@@ -3361,6 +3363,11 @@ copy_data_between_tables(TABLE *from,TABLE *to,
goto err; goto err;
} }
/* Turn on NO_AUTO_VALUE_ON_ZERO if not already on */
old_sql_mode= thd->variables.sql_mode;
if (!(no_auto_on_zero= thd->variables.sql_mode & MODE_NO_AUTO_VALUE_ON_ZERO))
thd->variables.sql_mode|= MODE_NO_AUTO_VALUE_ON_ZERO;
/* Handler must be told explicitly to retrieve all columns, because /* Handler must be told explicitly to retrieve all columns, because
this function does not set field->query_id in the columns to the this function does not set field->query_id in the columns to the
current query id */ current query id */
...@@ -3417,6 +3424,11 @@ copy_data_between_tables(TABLE *from,TABLE *to, ...@@ -3417,6 +3424,11 @@ copy_data_between_tables(TABLE *from,TABLE *to,
to->file->extra(HA_EXTRA_NO_IGNORE_DUP_KEY); to->file->extra(HA_EXTRA_NO_IGNORE_DUP_KEY);
ha_enable_transaction(thd,TRUE); ha_enable_transaction(thd,TRUE);
/* Turn off NO_AUTO_VALUE_ON_ZERO if it was not already off */
if (!no_auto_on_zero)
thd->variables.sql_mode= old_sql_mode;
/* /*
Ensure that the new table is saved properly to disk so that we Ensure that the new table is saved properly to disk so that we
can do a rename can do a rename
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment