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";
|
set sql_mode="MySQL40";
|
||||||
select @@sql_mode;
|
select @@sql_mode;
|
||||||
@@sql_mode
|
@@sql_mode
|
||||||
NO_FIELD_OPTIONS,MYSQL40
|
MYSQL40
|
||||||
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;
|
|||||||
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,3 +355,27 @@ 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
|
||||||
|
@ -294,7 +294,7 @@ t2 CREATE TABLE `t2` (
|
|||||||
`g` geometry NOT NULL default '',
|
`g` geometry NOT NULL default '',
|
||||||
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
|
||||||
|
@ -1503,3 +1503,41 @@ select * from t1;
|
|||||||
a b
|
a b
|
||||||
Osnabr<EFBFBD>ck K<>ln
|
Osnabr<EFBFBD>ck K<>ln
|
||||||
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
|
||||||
|
@ -40,7 +40,7 @@ t9 CREATE TABLE `t9` (
|
|||||||
`b` char(16) NOT NULL default '',
|
`b` char(16) NOT NULL default '',
|
||||||
`c` int(11) NOT NULL default '0',
|
`c` int(11) NOT NULL default '0',
|
||||||
PRIMARY KEY (`a`)
|
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 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;
|
||||||
@ -62,7 +62,7 @@ t9 CREATE TABLE `t9` (
|
|||||||
`c` int(11) NOT NULL default '0',
|
`c` int(11) NOT NULL default '0',
|
||||||
`d` int(11) NOT NULL default '0',
|
`d` int(11) NOT NULL default '0',
|
||||||
PRIMARY KEY (`a`)
|
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;
|
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;
|
|||||||
|
|
||||||
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,4 +219,23 @@ 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
|
||||||
|
@ -647,4 +647,34 @@ select * from t1;
|
|||||||
select * from t1;
|
select * from t1;
|
||||||
|
|
||||||
drop table 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_IGNORE_SPACE |
|
||||||
MODE_NO_KEY_OPTIONS | MODE_NO_TABLE_OPTIONS |
|
MODE_NO_KEY_OPTIONS | MODE_NO_TABLE_OPTIONS |
|
||||||
MODE_NO_FIELD_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;
|
return sql_mode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1344,8 +1344,8 @@ store_create_info(THD *thd, TABLE *table, String *packet)
|
|||||||
|
|
||||||
has_default= (field->type() != FIELD_TYPE_BLOB &&
|
has_default= (field->type() != FIELD_TYPE_BLOB &&
|
||||||
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)
|
||||||
{
|
{
|
||||||
@ -1374,8 +1374,7 @@ store_create_info(THD *thd, TABLE *table, 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(" on update CURRENT_TIMESTAMP",28);
|
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(" ENGINE=", 8);
|
||||||
packet->append(file->table_type());
|
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 &&
|
if (table->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))
|
||||||
|
Reference in New Issue
Block a user