Commit 4736d8d5 authored by msvensson@neptunus.(none)'s avatar msvensson@neptunus.(none)

Merge neptunus.(none):/home/msvensson/mysql/tmp/tmp_merge

into  neptunus.(none):/home/msvensson/mysql/mysql-5.1
parents f5cbfceb 041669a4
...@@ -2,7 +2,7 @@ drop table if exists t1; ...@@ -2,7 +2,7 @@ drop table if exists t1;
set sql_mode="MySQL40"; set sql_mode="MySQL40";
select @@sql_mode; select @@sql_mode;
@@sql_mode @@sql_mode
NO_FIELD_OPTIONS,MYSQL40,HIGH_NOT_PRECEDENCE MYSQL40,HIGH_NOT_PRECEDENCE
set @@sql_mode="ANSI"; set @@sql_mode="ANSI";
select @@sql_mode; select @@sql_mode;
@@sql_mode @@sql_mode
...@@ -17,3 +17,32 @@ SELECT id FROM t1 GROUP BY id2; ...@@ -17,3 +17,32 @@ SELECT id FROM t1 GROUP BY id2;
id id
drop table t1; drop table t1;
SET @@SQL_MODE=""; SET @@SQL_MODE="";
CREATE TABLE t1 (i int auto_increment NOT NULL, PRIMARY KEY (i));
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`i` int(11) NOT NULL auto_increment,
PRIMARY KEY (`i`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
SET @@SQL_MODE="MYSQL323";
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`i` int(11) NOT NULL auto_increment,
PRIMARY KEY (`i`)
) TYPE=MyISAM
SET @@SQL_MODE="MYSQL40";
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`i` int(11) NOT NULL auto_increment,
PRIMARY KEY (`i`)
) TYPE=MyISAM
SET @@SQL_MODE="NO_FIELD_OPTIONS";
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`i` int(11) NOT NULL,
PRIMARY KEY (`i`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1;
...@@ -355,6 +355,30 @@ CHECK TABLE t1; ...@@ -355,6 +355,30 @@ CHECK TABLE t1;
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
test.t1 check status OK test.t1 check status OK
DROP TABLE IF EXISTS t1; DROP TABLE IF EXISTS t1;
CREATE TABLE `t1` (
t1_name VARCHAR(255) DEFAULT NULL,
t1_id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
KEY (t1_name),
PRIMARY KEY (t1_id)
) AUTO_INCREMENT = 1000;
INSERT INTO t1 (t1_name) VALUES('MySQL');
INSERT INTO t1 (t1_name) VALUES('MySQL');
INSERT INTO t1 (t1_name) VALUES('MySQL');
SELECT * from t1;
t1_name t1_id
MySQL 1000
MySQL 1001
MySQL 1002
SHOW CREATE TABLE `t1`;
Table Create Table
t1 CREATE TABLE `t1` (
`t1_name` varchar(255) default NULL,
`t1_id` int(10) unsigned NOT NULL auto_increment,
PRIMARY KEY (`t1_id`),
KEY `t1_name` (`t1_name`)
) ENGINE=MyISAM AUTO_INCREMENT=1003 DEFAULT CHARSET=latin1
DROP TABLE `t1`;
End of 4.1 tests
CREATE TABLE t1 ( `a` int(11) NOT NULL auto_increment, `b` int(11) default NULL,PRIMARY KEY (`a`),UNIQUE KEY `b` (`b`)); CREATE TABLE t1 ( `a` int(11) NOT NULL auto_increment, `b` int(11) default NULL,PRIMARY KEY (`a`),UNIQUE KEY `b` (`b`));
insert into t1 (b) values (1); insert into t1 (b) values (1);
replace into t1 (b) values (2), (1), (3); replace into t1 (b) values (2), (1), (3);
......
...@@ -294,7 +294,7 @@ t2 CREATE TABLE `t2` ( ...@@ -294,7 +294,7 @@ t2 CREATE TABLE `t2` (
`g` geometry NOT NULL, `g` geometry NOT NULL,
PRIMARY KEY (`fid`), PRIMARY KEY (`fid`),
SPATIAL KEY `g` (`g`(32)) SPATIAL KEY `g` (`g`(32))
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM AUTO_INCREMENT=101 DEFAULT CHARSET=latin1
SELECT count(*) FROM t2; SELECT count(*) FROM t2;
count(*) count(*)
100 100
......
...@@ -1701,6 +1701,44 @@ select * from t1; ...@@ -1701,6 +1701,44 @@ select * from t1;
a b a b
Osnabrck Kln Osnabrck Kln
drop table t1; drop table t1;
create table `t1` (
t1_name varchar(255) default null,
t1_id int(10) unsigned not null auto_increment,
key (t1_name),
primary key (t1_id)
) auto_increment = 1000 default charset=latin1;
insert into t1 (t1_name) values('bla');
insert into t1 (t1_name) values('bla');
insert into t1 (t1_name) values('bla');
select * from t1;
t1_name t1_id
bla 1000
bla 1001
bla 1002
show create table `t1`;
Table Create Table
t1 CREATE TABLE `t1` (
`t1_name` varchar(255) default NULL,
`t1_id` int(10) unsigned NOT NULL auto_increment,
PRIMARY KEY (`t1_id`),
KEY `t1_name` (`t1_name`)
) ENGINE=MyISAM AUTO_INCREMENT=1003 DEFAULT CHARSET=latin1
DROP TABLE `t1`;
select * from t1;
t1_name t1_id
bla 1000
bla 1001
bla 1002
show create table `t1`;
Table Create Table
t1 CREATE TABLE `t1` (
`t1_name` varchar(255) default NULL,
`t1_id` int(10) unsigned NOT NULL auto_increment,
PRIMARY KEY (`t1_id`),
KEY `t1_name` (`t1_name`)
) ENGINE=MyISAM AUTO_INCREMENT=1003 DEFAULT CHARSET=latin1
drop table `t1`;
End of 4.1 tests
create table t1 (a binary(1), b blob); create table t1 (a binary(1), b blob);
insert into t1 values ('',''); insert into t1 values ('','');
......
...@@ -40,7 +40,7 @@ t9 CREATE TABLE `t9` ( ...@@ -40,7 +40,7 @@ t9 CREATE TABLE `t9` (
`b` char(16) NOT NULL, `b` char(16) NOT NULL,
`c` int(11) NOT NULL, `c` int(11) NOT NULL,
PRIMARY KEY (`a`) PRIMARY KEY (`a`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/tmp/' INDEX DIRECTORY='MYSQLTEST_VARDIR/run/' ) ENGINE=MyISAM AUTO_INCREMENT=16725 DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/tmp/' INDEX DIRECTORY='MYSQLTEST_VARDIR/run/'
alter table t9 rename t8, add column d int not null; alter table t9 rename t8, add column d int not null;
alter table t8 rename t7; alter table t8 rename t7;
rename table t7 to t9; rename table t7 to t9;
...@@ -53,7 +53,7 @@ t9 CREATE TABLE `t9` ( ...@@ -53,7 +53,7 @@ t9 CREATE TABLE `t9` (
`c` int(11) NOT NULL, `c` int(11) NOT NULL,
`d` int(11) NOT NULL, `d` int(11) NOT NULL,
PRIMARY KEY (`a`) PRIMARY KEY (`a`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/tmp/' INDEX DIRECTORY='MYSQLTEST_VARDIR/run/' ) ENGINE=MyISAM AUTO_INCREMENT=16725 DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/tmp/' INDEX DIRECTORY='MYSQLTEST_VARDIR/run/'
Got one of the listed errors Got one of the listed errors
Got one of the listed errors Got one of the listed errors
Got one of the listed errors Got one of the listed errors
...@@ -71,7 +71,7 @@ t9 CREATE TABLE `t9` ( ...@@ -71,7 +71,7 @@ t9 CREATE TABLE `t9` (
`c` int(11) NOT NULL, `c` int(11) NOT NULL,
`d` int(11) NOT NULL, `d` int(11) NOT NULL,
PRIMARY KEY (`a`) PRIMARY KEY (`a`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/tmp/' INDEX DIRECTORY='MYSQLTEST_VARDIR/run/' ) ENGINE=MyISAM AUTO_INCREMENT=16725 DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/tmp/' INDEX DIRECTORY='MYSQLTEST_VARDIR/run/'
drop database mysqltest; drop database mysqltest;
create table t1 (a int not null) engine=myisam; create table t1 (a int not null) engine=myisam;
show create table t1; show create table t1;
......
...@@ -26,4 +26,16 @@ drop table t1; ...@@ -26,4 +26,16 @@ drop table t1;
SET @@SQL_MODE=""; SET @@SQL_MODE="";
# Bug#14515
CREATE TABLE t1 (i int auto_increment NOT NULL, PRIMARY KEY (i));
SHOW CREATE TABLE t1;
SET @@SQL_MODE="MYSQL323";
SHOW CREATE TABLE t1;
SET @@SQL_MODE="MYSQL40";
SHOW CREATE TABLE t1;
SET @@SQL_MODE="NO_FIELD_OPTIONS";
SHOW CREATE TABLE t1;
DROP TABLE t1;
# End of 4.1 tests # End of 4.1 tests
...@@ -219,7 +219,26 @@ INSERT INTO t1 (b) VALUES ('bbbb'); ...@@ -219,7 +219,26 @@ INSERT INTO t1 (b) VALUES ('bbbb');
CHECK TABLE t1; CHECK TABLE t1;
DROP TABLE IF EXISTS t1; DROP TABLE IF EXISTS t1;
# End of 4.1 tests # BUG #19025:
CREATE TABLE `t1` (
t1_name VARCHAR(255) DEFAULT NULL,
t1_id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
KEY (t1_name),
PRIMARY KEY (t1_id)
) AUTO_INCREMENT = 1000;
INSERT INTO t1 (t1_name) VALUES('MySQL');
INSERT INTO t1 (t1_name) VALUES('MySQL');
INSERT INTO t1 (t1_name) VALUES('MySQL');
SELECT * from t1;
SHOW CREATE TABLE `t1`;
DROP TABLE `t1`;
--echo End of 4.1 tests
# #
# Bug #11080 & #11005 Multi-row REPLACE fails on a duplicate key error # Bug #11080 & #11005 Multi-row REPLACE fails on a duplicate key error
......
...@@ -713,6 +713,35 @@ select * from t1; ...@@ -713,6 +713,35 @@ select * from t1;
drop table t1; drop table t1;
# #
# BUG #19025 mysqldump doesn't correctly dump "auto_increment = [int]"
#
create table `t1` (
t1_name varchar(255) default null,
t1_id int(10) unsigned not null auto_increment,
key (t1_name),
primary key (t1_id)
) auto_increment = 1000 default charset=latin1;
insert into t1 (t1_name) values('bla');
insert into t1 (t1_name) values('bla');
insert into t1 (t1_name) values('bla');
select * from t1;
show create table `t1`;
--exec $MYSQL_DUMP --skip-comments test t1 > $MYSQLTEST_VARDIR/tmp/bug19025.sql
DROP TABLE `t1`;
--exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/bug19025.sql
select * from t1;
show create table `t1`;
drop table `t1`;
--echo End of 4.1 tests
# Bug #13318: Bad result with empty field and --hex-blob # Bug #13318: Bad result with empty field and --hex-blob
# #
create table t1 (a binary(1), b blob); create table t1 (a binary(1), b blob);
...@@ -721,7 +750,6 @@ insert into t1 values ('',''); ...@@ -721,7 +750,6 @@ insert into t1 values ('','');
--exec $MYSQL_DUMP --skip-comments --hex-blob test t1 --exec $MYSQL_DUMP --skip-comments --hex-blob test t1
drop table t1; drop table t1;
# End of 4.1 tests
# #
# dump of view # dump of view
......
...@@ -3413,9 +3413,9 @@ ulong fix_sql_mode(ulong sql_mode) ...@@ -3413,9 +3413,9 @@ ulong fix_sql_mode(ulong sql_mode)
MODE_NO_KEY_OPTIONS | MODE_NO_TABLE_OPTIONS | MODE_NO_KEY_OPTIONS | MODE_NO_TABLE_OPTIONS |
MODE_NO_FIELD_OPTIONS | MODE_NO_AUTO_CREATE_USER); MODE_NO_FIELD_OPTIONS | MODE_NO_AUTO_CREATE_USER);
if (sql_mode & MODE_MYSQL40) if (sql_mode & MODE_MYSQL40)
sql_mode|= MODE_NO_FIELD_OPTIONS | MODE_HIGH_NOT_PRECEDENCE; sql_mode|= MODE_HIGH_NOT_PRECEDENCE;
if (sql_mode & MODE_MYSQL323) if (sql_mode & MODE_MYSQL323)
sql_mode|= MODE_NO_FIELD_OPTIONS | MODE_HIGH_NOT_PRECEDENCE; sql_mode|= MODE_HIGH_NOT_PRECEDENCE;
if (sql_mode & MODE_TRADITIONAL) if (sql_mode & MODE_TRADITIONAL)
sql_mode|= (MODE_STRICT_TRANS_TABLES | MODE_STRICT_ALL_TABLES | sql_mode|= (MODE_STRICT_TRANS_TABLES | MODE_STRICT_ALL_TABLES |
MODE_NO_ZERO_IN_DATE | MODE_NO_ZERO_DATE | MODE_NO_ZERO_IN_DATE | MODE_NO_ZERO_DATE |
......
...@@ -1022,8 +1022,8 @@ store_create_info(THD *thd, TABLE_LIST *table_list, String *packet, ...@@ -1022,8 +1022,8 @@ store_create_info(THD *thd, TABLE_LIST *table_list, String *packet,
has_default= (field->type() != FIELD_TYPE_BLOB && has_default= (field->type() != FIELD_TYPE_BLOB &&
!(field->flags & NO_DEFAULT_VALUE_FLAG) && !(field->flags & NO_DEFAULT_VALUE_FLAG) &&
field->unireg_check != Field::NEXT_NUMBER && field->unireg_check != Field::NEXT_NUMBER &&
!((thd->variables.sql_mode & (MODE_MYSQL323 | MODE_MYSQL40)) && !((thd->variables.sql_mode & (MODE_MYSQL323 | MODE_MYSQL40))
has_now_default)); && has_now_default));
if (has_default) if (has_default)
{ {
...@@ -1052,8 +1052,7 @@ store_create_info(THD *thd, TABLE_LIST *table_list, String *packet, ...@@ -1052,8 +1052,7 @@ store_create_info(THD *thd, TABLE_LIST *table_list, String *packet,
packet->append(tmp); packet->append(tmp);
} }
if (!(thd->variables.sql_mode & MODE_NO_FIELD_OPTIONS) && if (!limited_mysql_mode && table->timestamp_field == field &&
table->timestamp_field == field &&
field->unireg_check != Field::TIMESTAMP_DN_FIELD) field->unireg_check != Field::TIMESTAMP_DN_FIELD)
packet->append(STRING_WITH_LEN(" ON UPDATE CURRENT_TIMESTAMP")); packet->append(STRING_WITH_LEN(" ON UPDATE CURRENT_TIMESTAMP"));
...@@ -1182,6 +1181,25 @@ store_create_info(THD *thd, TABLE_LIST *table_list, String *packet, ...@@ -1182,6 +1181,25 @@ store_create_info(THD *thd, TABLE_LIST *table_list, String *packet,
#endif #endif
} }
/*
Add AUTO_INCREMENT=... if there is an AUTO_INCREMENT column,
and NEXT_ID > 1 (the default). We must not print the clause
for engines that do not support this as it would break the
import of dumps, but as of this writing, the test for whether
AUTO_INCREMENT columns are allowed and wether AUTO_INCREMENT=...
is supported is identical, !(file->table_flags() & HA_NO_AUTO_INCREMENT))
Because of that, we do not explicitly test for the feature,
but may extrapolate its existence from that of an AUTO_INCREMENT column.
*/
if(create_info.auto_increment_value > 1)
{
packet->append(" AUTO_INCREMENT=", 16);
end= longlong10_to_str(create_info.auto_increment_value, buff,10);
packet->append(buff, (uint) (end - buff));
}
if (share->table_charset && if (share->table_charset &&
!(thd->variables.sql_mode & MODE_MYSQL323) && !(thd->variables.sql_mode & MODE_MYSQL323) &&
!(thd->variables.sql_mode & MODE_MYSQL40)) !(thd->variables.sql_mode & MODE_MYSQL40))
......
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