mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Merge mysql.com:/home/tomash/src/mysql_ab/mysql-4.1
into mysql.com:/home/tomash/src/mysql_ab/mysql-4.1-bug16501
This commit is contained in:
@ -2,7 +2,7 @@ drop table if exists t1;
|
||||
set sql_mode="MySQL40";
|
||||
select @@sql_mode;
|
||||
@@sql_mode
|
||||
NO_FIELD_OPTIONS,MYSQL40
|
||||
MYSQL40
|
||||
set @@sql_mode="ANSI";
|
||||
select @@sql_mode;
|
||||
@@sql_mode
|
||||
@ -17,3 +17,32 @@ SELECT id FROM t1 GROUP BY id2;
|
||||
id
|
||||
drop table t1;
|
||||
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,3 +355,27 @@ CHECK TABLE t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
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
|
||||
|
@ -294,7 +294,7 @@ t2 CREATE TABLE `t2` (
|
||||
`g` geometry NOT NULL default '',
|
||||
PRIMARY KEY (`fid`),
|
||||
SPATIAL KEY `g` (`g`(32))
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
) ENGINE=MyISAM AUTO_INCREMENT=101 DEFAULT CHARSET=latin1
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
|
@ -1503,3 +1503,41 @@ select * from t1;
|
||||
a b
|
||||
Osnabr<EFBFBD>ck K<>ln
|
||||
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
|
||||
|
@ -40,7 +40,7 @@ t9 CREATE TABLE `t9` (
|
||||
`b` char(16) NOT NULL default '',
|
||||
`c` int(11) NOT NULL default '0',
|
||||
PRIMARY KEY (`a`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='TEST_DIR/var/tmp/' INDEX DIRECTORY='TEST_DIR/var/run/'
|
||||
) ENGINE=MyISAM AUTO_INCREMENT=16725 DEFAULT CHARSET=latin1 DATA DIRECTORY='TEST_DIR/var/tmp/' INDEX DIRECTORY='TEST_DIR/var/run/'
|
||||
alter table t9 rename t8, add column d int not null;
|
||||
alter table t8 rename t7;
|
||||
rename table t7 to t9;
|
||||
@ -62,7 +62,7 @@ t9 CREATE TABLE `t9` (
|
||||
`c` int(11) NOT NULL default '0',
|
||||
`d` int(11) NOT NULL default '0',
|
||||
PRIMARY KEY (`a`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='TEST_DIR/var/tmp/' INDEX DIRECTORY='TEST_DIR/var/run/'
|
||||
) ENGINE=MyISAM AUTO_INCREMENT=16725 DEFAULT CHARSET=latin1 DATA DIRECTORY='TEST_DIR/var/tmp/' INDEX DIRECTORY='TEST_DIR/var/run/'
|
||||
drop database mysqltest;
|
||||
create table t1 (a int not null) engine=myisam;
|
||||
show create table t1;
|
||||
|
@ -26,4 +26,16 @@ drop table t1;
|
||||
|
||||
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
|
||||
|
@ -219,4 +219,23 @@ INSERT INTO t1 (b) VALUES ('bbbb');
|
||||
CHECK TABLE 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
|
||||
|
@ -647,4 +647,34 @@ select * from t1;
|
||||
select * from t1;
|
||||
|
||||
drop table t1;
|
||||
# End of 4.1 tests
|
||||
|
||||
#
|
||||
# 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
|
||||
|
@ -3207,10 +3207,6 @@ ulong fix_sql_mode(ulong sql_mode)
|
||||
MODE_IGNORE_SPACE |
|
||||
MODE_NO_KEY_OPTIONS | MODE_NO_TABLE_OPTIONS |
|
||||
MODE_NO_FIELD_OPTIONS);
|
||||
if (sql_mode & MODE_MYSQL40)
|
||||
sql_mode|= MODE_NO_FIELD_OPTIONS;
|
||||
if (sql_mode & MODE_MYSQL323)
|
||||
sql_mode|= MODE_NO_FIELD_OPTIONS;
|
||||
return sql_mode;
|
||||
}
|
||||
|
||||
|
@ -1344,8 +1344,8 @@ store_create_info(THD *thd, TABLE *table, String *packet)
|
||||
|
||||
has_default= (field->type() != FIELD_TYPE_BLOB &&
|
||||
field->unireg_check != Field::NEXT_NUMBER &&
|
||||
!((thd->variables.sql_mode & (MODE_MYSQL323 | MODE_MYSQL40)) &&
|
||||
has_now_default));
|
||||
!((thd->variables.sql_mode & (MODE_MYSQL323 | MODE_MYSQL40))
|
||||
&& has_now_default));
|
||||
|
||||
if (has_default)
|
||||
{
|
||||
@ -1374,8 +1374,7 @@ store_create_info(THD *thd, TABLE *table, String *packet)
|
||||
packet->append(tmp);
|
||||
}
|
||||
|
||||
if (!(thd->variables.sql_mode & MODE_NO_FIELD_OPTIONS) &&
|
||||
table->timestamp_field == field &&
|
||||
if (!limited_mysql_mode && table->timestamp_field == field &&
|
||||
field->unireg_check != Field::TIMESTAMP_DN_FIELD)
|
||||
packet->append(" on update CURRENT_TIMESTAMP",28);
|
||||
|
||||
@ -1480,6 +1479,24 @@ store_create_info(THD *thd, TABLE *table, String *packet)
|
||||
packet->append(" ENGINE=", 8);
|
||||
packet->append(file->table_type());
|
||||
|
||||
/*
|
||||
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 (table->table_charset &&
|
||||
!(thd->variables.sql_mode & MODE_MYSQL323) &&
|
||||
!(thd->variables.sql_mode & MODE_MYSQL40))
|
||||
|
Reference in New Issue
Block a user