Commit 9f20feea authored by pem@mysql.com's avatar pem@mysql.com

Merge mysql.com:/usr/local/bk/mysql-5.0

into  mysql.com:/usr/home/pem/mysql-5.0
parents f641fdb6 54d60d7f
...@@ -1739,34 +1739,6 @@ select min(b) from t1 where a='8'; ...@@ -1739,34 +1739,6 @@ select min(b) from t1 where a='8';
min(b) min(b)
6 6
drop table t1; drop table t1;
create table test_checksum(a int not null) engine=innodb DEFAULT CHARSET=latin1;
insert into test_checksum values (1),(2);
set autocommit=0;
checksum table test_checksum;
Table Checksum
test.test_checksum 1531596814
insert into test_checksum values(3);
checksum table test_checksum;
Table Checksum
test.test_checksum 1531596814
commit;
checksum table test_checksum;
Table Checksum
test.test_checksum 2050879373
commit;
drop table test_checksum;
create table test_checksum(a int not null) engine=innodb DEFAULT CHARSET=latin1;
insert into test_checksum values (1),(2);
set autocommit=1;
checksum table test_checksum;
Table Checksum
test.test_checksum 1531596814
set autocommit=1;
insert into test_checksum values(3);
checksum table test_checksum;
Table Checksum
test.test_checksum 2050879373
drop table test_checksum;
create table t1 (x bigint unsigned not null primary key) engine=innodb; create table t1 (x bigint unsigned not null primary key) engine=innodb;
insert into t1(x) values (0xfffffffffffffff0),(0xfffffffffffffff1); insert into t1(x) values (0xfffffffffffffff0),(0xfffffffffffffff1);
select * from t1; select * from t1;
...@@ -2644,3 +2616,31 @@ SET FOREIGN_KEY_CHECKS=1; ...@@ -2644,3 +2616,31 @@ SET FOREIGN_KEY_CHECKS=1;
INSERT INTO t2 VALUES(3); INSERT INTO t2 VALUES(3);
ERROR 23000: Cannot add or update a child row: a foreign key constraint fails (`test/t2`, CONSTRAINT `c1` FOREIGN KEY (`v`) REFERENCES `t1` (`id`)) ERROR 23000: Cannot add or update a child row: a foreign key constraint fails (`test/t2`, CONSTRAINT `c1` FOREIGN KEY (`v`) REFERENCES `t1` (`id`))
DROP TABLE t2; DROP TABLE t2;
create table test_checksum(a int not null) engine=innodb DEFAULT CHARSET=latin1;
insert into test_checksum values (1),(2);
set autocommit=0;
checksum table test_checksum;
Table Checksum
test.test_checksum 1531596814
insert into test_checksum values(3);
checksum table test_checksum;
Table Checksum
test.test_checksum 1531596814
commit;
checksum table test_checksum;
Table Checksum
test.test_checksum 2050879373
commit;
drop table test_checksum;
create table test_checksum(a int not null) engine=innodb DEFAULT CHARSET=latin1;
insert into test_checksum values (1),(2);
set autocommit=1;
checksum table test_checksum;
Table Checksum
test.test_checksum 1531596814
set autocommit=1;
insert into test_checksum values(3);
checksum table test_checksum;
Table Checksum
test.test_checksum 2050879373
drop table test_checksum;
...@@ -65,7 +65,7 @@ sql_mode NO_FIELD_OPTIONS,MYSQL323,MYSQL40,HIGH_NOT_PRECEDENCE ...@@ -65,7 +65,7 @@ sql_mode NO_FIELD_OPTIONS,MYSQL323,MYSQL40,HIGH_NOT_PRECEDENCE
show create table t1; show create table t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`a` int(11) NOT NULL auto_increment, `a` int(11) NOT NULL,
`pseudo` varchar(35) NOT NULL default '', `pseudo` varchar(35) NOT NULL default '',
`email` varchar(60) NOT NULL default '', `email` varchar(60) NOT NULL default '',
PRIMARY KEY (`a`), PRIMARY KEY (`a`),
...@@ -79,8 +79,8 @@ show create table t1; ...@@ -79,8 +79,8 @@ show create table t1;
Table Create Table Table Create Table
t1 CREATE TABLE "t1" ( t1 CREATE TABLE "t1" (
"a" int(11) NOT NULL, "a" int(11) NOT NULL,
"pseudo" varchar(35) NOT NULL default '', "pseudo" varchar(35) character set latin2 NOT NULL default '',
"email" varchar(60) NOT NULL default '', "email" varchar(60) character set latin2 NOT NULL default '',
PRIMARY KEY ("a"), PRIMARY KEY ("a"),
UNIQUE KEY "email" ("email") UNIQUE KEY "email" ("email")
) )
...@@ -140,6 +140,26 @@ t1 CREATE TABLE `t1` ( ...@@ -140,6 +140,26 @@ t1 CREATE TABLE `t1` (
drop table t1 ; drop table t1 ;
set @@SQL_MODE=NULL; set @@SQL_MODE=NULL;
ERROR 42000: Variable 'sql_mode' can't be set to the value of 'NULL' ERROR 42000: Variable 'sql_mode' can't be set to the value of 'NULL'
set session sql_mode=ansi;
create table t1
(f1 integer auto_increment primary key,
f2 timestamp default current_timestamp on update current_timestamp);
show create table t1;
Table Create Table
t1 CREATE TABLE "t1" (
"f1" int(11) NOT NULL auto_increment,
"f2" timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
PRIMARY KEY ("f1")
)
set session sql_mode=no_field_options;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`f1` int(11) NOT NULL,
`f2` timestamp NOT NULL default CURRENT_TIMESTAMP,
PRIMARY KEY (`f1`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
SET @OLD_SQL_MODE=@@SQL_MODE, @@SQL_MODE=''; SET @OLD_SQL_MODE=@@SQL_MODE, @@SQL_MODE='';
show local variables like 'SQL_MODE'; show local variables like 'SQL_MODE';
Variable_name Value Variable_name Value
......
...@@ -1269,46 +1269,6 @@ select min(a) from t1; ...@@ -1269,46 +1269,6 @@ select min(a) from t1;
select min(b) from t1 where a='8'; select min(b) from t1 where a='8';
drop table t1; drop table t1;
#
# Test that checksum table uses a consistent read Bug #12669
#
connect (a,localhost,root,,);
connect (b,localhost,root,,);
connection a;
create table test_checksum(a int not null) engine=innodb DEFAULT CHARSET=latin1;
insert into test_checksum values (1),(2);
set autocommit=0;
checksum table test_checksum;
connection b;
insert into test_checksum values(3);
connection a;
#
# Here checksum should not see insert
#
checksum table test_checksum;
connection a;
commit;
checksum table test_checksum;
commit;
drop table test_checksum;
#
# autocommit = 1
#
connection a;
create table test_checksum(a int not null) engine=innodb DEFAULT CHARSET=latin1;
insert into test_checksum values (1),(2);
set autocommit=1;
checksum table test_checksum;
connection b;
set autocommit=1;
insert into test_checksum values(3);
connection a;
#
# Here checksum sees insert
#
checksum table test_checksum;
drop table test_checksum;
# End of 4.1 tests # End of 4.1 tests
# #
...@@ -1605,3 +1565,42 @@ SET FOREIGN_KEY_CHECKS=1; ...@@ -1605,3 +1565,42 @@ SET FOREIGN_KEY_CHECKS=1;
INSERT INTO t2 VALUES(3); INSERT INTO t2 VALUES(3);
DROP TABLE t2; DROP TABLE t2;
#
# Test that checksum table uses a consistent read Bug #12669
#
connect (a,localhost,root,,);
connect (b,localhost,root,,);
connection a;
create table test_checksum(a int not null) engine=innodb DEFAULT CHARSET=latin1;
insert into test_checksum values (1),(2);
set autocommit=0;
checksum table test_checksum;
connection b;
insert into test_checksum values(3);
connection a;
#
# Here checksum should not see insert
#
checksum table test_checksum;
connection a;
commit;
checksum table test_checksum;
commit;
drop table test_checksum;
#
# autocommit = 1
#
connection a;
create table test_checksum(a int not null) engine=innodb DEFAULT CHARSET=latin1;
insert into test_checksum values (1),(2);
set autocommit=1;
checksum table test_checksum;
connection b;
set autocommit=1;
insert into test_checksum values(3);
connection a;
#
# Here checksum sees insert
#
checksum table test_checksum;
drop table test_checksum;
...@@ -86,6 +86,18 @@ drop table t1 ; ...@@ -86,6 +86,18 @@ drop table t1 ;
--error 1231 --error 1231
set @@SQL_MODE=NULL; set @@SQL_MODE=NULL;
#
# Bug #797: in sql_mode=ANSI, show create table ignores auto_increment
#
set session sql_mode=ansi;
create table t1
(f1 integer auto_increment primary key,
f2 timestamp default current_timestamp on update current_timestamp);
show create table t1;
set session sql_mode=no_field_options;
show create table t1;
drop table t1;
# End of 4.1 tests # End of 4.1 tests
# #
......
...@@ -6689,12 +6689,10 @@ ha_innobase::store_lock( ...@@ -6689,12 +6689,10 @@ ha_innobase::store_lock(
prebuilt->select_lock_type = LOCK_NONE; prebuilt->select_lock_type = LOCK_NONE;
prebuilt->stored_select_lock_type = LOCK_NONE; prebuilt->stored_select_lock_type = LOCK_NONE;
} else if (thd->lex->sql_command == SQLCOM_CHECKSUM) { } else if (thd->lex->sql_command == SQLCOM_CHECKSUM) {
/* Use consistent read for checksum table and /* Use consistent read for checksum table */
convert lock type to the TL_READ */
prebuilt->select_lock_type = LOCK_NONE; prebuilt->select_lock_type = LOCK_NONE;
prebuilt->stored_select_lock_type = LOCK_NONE; prebuilt->stored_select_lock_type = LOCK_NONE;
lock.type = TL_READ;
} else { } else {
prebuilt->select_lock_type = LOCK_S; prebuilt->select_lock_type = LOCK_S;
prebuilt->stored_select_lock_type = LOCK_S; prebuilt->stored_select_lock_type = LOCK_S;
......
...@@ -794,7 +794,8 @@ store_create_info(THD *thd, TABLE_LIST *table_list, String *packet) ...@@ -794,7 +794,8 @@ store_create_info(THD *thd, TABLE_LIST *table_list, String *packet)
field->sql_type(type); field->sql_type(type);
packet->append(type.ptr(), type.length(), system_charset_info); packet->append(type.ptr(), type.length(), system_charset_info);
if (field->has_charset() && !limited_mysql_mode && !foreign_db_mode) if (field->has_charset() &&
!(thd->variables.sql_mode & (MODE_MYSQL323 | MODE_MYSQL40)))
{ {
if (field->charset() != share->table_charset) if (field->charset() != share->table_charset)
{ {
...@@ -833,7 +834,7 @@ store_create_info(THD *thd, TABLE_LIST *table_list, String *packet) ...@@ -833,7 +834,7 @@ 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 &&
!((foreign_db_mode || limited_mysql_mode) && !((thd->variables.sql_mode & (MODE_MYSQL323 | MODE_MYSQL40)) &&
has_now_default)); has_now_default));
if (has_default) if (has_default)
...@@ -863,12 +864,13 @@ store_create_info(THD *thd, TABLE_LIST *table_list, String *packet) ...@@ -863,12 +864,13 @@ store_create_info(THD *thd, TABLE_LIST *table_list, String *packet)
packet->append(tmp); packet->append(tmp);
} }
if (!foreign_db_mode && !limited_mysql_mode && if (!(thd->variables.sql_mode & MODE_NO_FIELD_OPTIONS) &&
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);
if (field->unireg_check == Field::NEXT_NUMBER && !foreign_db_mode) if (field->unireg_check == Field::NEXT_NUMBER &&
!(thd->variables.sql_mode & MODE_NO_FIELD_OPTIONS))
packet->append(" auto_increment", 15 ); packet->append(" auto_increment", 15 );
if (field->comment.length) if (field->comment.length)
......
...@@ -504,7 +504,7 @@ fi ...@@ -504,7 +504,7 @@ fi
# Clean up the BuildRoot # Clean up the BuildRoot
%clean %clean
[ "$RBR" != "/" ] && [ -d $RBR ] && rm -rf $RBR; [ "$RPM_BUILD_ROOT" != "/" ] && [ -d $RPM_BUILD_ROOT ] && rm -rf $RPM_BUILD_ROOT;
%files server %files server
%defattr(-,root,root,0755) %defattr(-,root,root,0755)
...@@ -668,6 +668,11 @@ fi ...@@ -668,6 +668,11 @@ fi
# itself - note that they must be ordered by date (important when # itself - note that they must be ordered by date (important when
# merging BK trees) # merging BK trees)
%changelog %changelog
* Thu Sep 29 2005 Lenz Grimmer <lenz@mysql.com>
- fixed the removing of the RPM_BUILD_ROOT in the %clean section (the
$RBR variable did not get expanded, thus leaving old build roots behind)
* Thu Aug 04 2005 Lenz Grimmer <lenz@mysql.com> * Thu Aug 04 2005 Lenz Grimmer <lenz@mysql.com>
- Fixed the creation of the mysql user group account in the postinstall - Fixed the creation of the mysql user group account in the postinstall
......
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