List:Commits« Previous MessageNext Message »
From:Tomas Ulin Date:February 3 2009 6:44am
Subject:bzr push into mysql-6.0-ndb branch (tomas.ulin:2825 to 2827)
View as plain text  
 2827 Tomas Ulin	2009-02-03 [merge]
      merge
modified:
  mysql-test/r/ctype_ldml.result
  mysql-test/r/type_timestamp.result
  mysql-test/suite/federated/federated.inc
  mysql-test/suite/federated/federated.result
  mysql-test/suite/federated/federated_archive.result
  mysql-test/suite/federated/federated_bug_13118.result
  mysql-test/suite/federated/federated_bug_25714.result
  mysql-test/suite/federated/federated_bug_25714.test
  mysql-test/suite/federated/federated_cleanup.inc
  mysql-test/suite/federated/federated_innodb.result
  mysql-test/suite/federated/federated_server.result
  mysql-test/suite/rpl/r/rpl_trigger.result
  mysql-test/suite/rpl/t/rpl_trigger.test
  mysql-test/suite/rpl_ndb/r/rpl_ndb_circular_2ch.result
  mysql-test/suite/rpl_ndb/t/rpl_ndb_circular_2ch.cnf
  mysql-test/suite/rpl_ndb/t/rpl_ndb_circular_2ch.test
  mysql-test/t/ctype_ldml.test
  mysql-test/t/system_mysql_db_fix30020.test
  mysql-test/t/type_timestamp.test
  mysql-test/t/variables.test
  mysys/charset.c
  mysys/my_delete.c
  sql/item.cc

 2826 Tomas Ulin	2009-02-03
      post merge fix
modified:
  mysql-test/suite/rpl_ndb_big/r/rpl_ndb_sync.result

 2825 Tomas Ulin	2009-02-02
      post merge fix
added:
  mysql-test/suite/rpl_ndb_big/my.cnf
modified:
  mysql-test/Makefile.am

=== modified file 'mysql-test/r/ctype_ldml.result'
--- a/mysql-test/r/ctype_ldml.result	2008-12-09 08:41:43 +0000
+++ b/mysql-test/r/ctype_ldml.result	2009-02-02 20:50:45 +0000
@@ -71,6 +71,25 @@ select * from t1 where c1='b';
 c1
 a
 drop table t1;
+CREATE TABLE t1 (
+col1 varchar(100) character set utf8 collate utf8_test_ci
+);
+INSERT INTO t1 (col1) VALUES ('abcd'),('efgh'),('ijkl');
+ALTER TABLE t1 ADD FULLTEXT INDEX (col1);
+SELECT * FROM t1 where match (col1) against ('abcd');
+col1
+abcd
+SELECT * FROM t1 where match (col1) against ('abcd' IN BOOLEAN MODE);
+col1
+abcd
+ALTER TABLE t1 ADD (col2 varchar(100) character set latin1);
+UPDATE t1 SET col2=col1;
+SELECT * FROM t1 WHERE col1=col2 ORDER BY col1;
+col1	col2
+abcd	abcd
+efgh	efgh
+ijkl	ijkl
+DROP TABLE t1;
 Vietnamese experimental collation
 show collation like 'ucs2_vn_ci';
 Collation	Charset	Id	Default	Compiled	Sortlen

=== modified file 'mysql-test/r/type_timestamp.result'
--- a/mysql-test/r/type_timestamp.result	2007-11-14 13:54:18 +0000
+++ b/mysql-test/r/type_timestamp.result	2009-02-02 20:56:22 +0000
@@ -484,6 +484,7 @@ a	b	c
 5	NULL	2001-09-09 04:46:59
 6	NULL	2006-06-06 06:06:06
 drop table t1;
+End of 4.1 tests
 set time_zone= @@global.time_zone;
 CREATE TABLE t1 (
 `id` int(11) NOT NULL auto_increment,
@@ -500,3 +501,21 @@ select is_nullable from INFORMATION_SCHE
 is_nullable
 NO
 drop table t1;
+CREATE TABLE t1 ( f1 INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
+f2 TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+f3 TIMESTAMP);
+INSERT INTO t1 (f2,f3) VALUES (NOW(), "0000-00-00 00:00:00");
+INSERT INTO t1 (f2,f3) VALUES (NOW(), NULL);
+INSERT INTO t1 (f2,f3) VALUES (NOW(), ASCII(NULL));
+INSERT INTO t1 (f2,f3) VALUES (NOW(), FROM_UNIXTIME('9999999999'));
+INSERT INTO t1 (f2,f3) VALUES (NOW(), TIME(NULL));
+UPDATE t1 SET f2=NOW(), f3=FROM_UNIXTIME('9999999999') WHERE f1=1;
+SELECT f1,f2-f3 FROM t1;
+f1	f2-f3
+1	0
+2	0
+3	0
+4	0
+5	0
+DROP TABLE t1;
+End of 5.0 tests

=== modified file 'mysql-test/suite/federated/federated.inc'
--- a/mysql-test/suite/federated/federated.inc	2008-12-15 12:41:31 +0000
+++ b/mysql-test/suite/federated/federated.inc	2009-02-02 20:50:45 +0000
@@ -5,13 +5,7 @@ connect (master,127.0.0.1,root,,test,$MA
 connect (slave,127.0.0.1,root,,test,$SLAVE_MYPORT,);
 
 connection master;
---disable_warnings
-DROP DATABASE IF EXISTS federated;
---enable_warnings
 CREATE DATABASE federated;
 
 connection slave;
---disable_warnings
-DROP DATABASE IF EXISTS federated;
---enable_warnings
 CREATE DATABASE federated;

=== modified file 'mysql-test/suite/federated/federated.result'
--- a/mysql-test/suite/federated/federated.result	2008-12-24 10:48:24 +0000
+++ b/mysql-test/suite/federated/federated.result	2009-02-02 20:50:45 +0000
@@ -1,6 +1,4 @@
-DROP DATABASE IF EXISTS federated;
 CREATE DATABASE federated;
-DROP DATABASE IF EXISTS federated;
 CREATE DATABASE federated;
 SET @OLD_MASTER_CONCURRENT_INSERT= @@GLOBAL.CONCURRENT_INSERT;
 SET @@GLOBAL.CONCURRENT_INSERT= 0;
@@ -2162,6 +2160,6 @@ End of 6.0 tests
 SET @@GLOBAL.CONCURRENT_INSERT= @OLD_MASTER_CONCURRENT_INSERT;
 SET @@GLOBAL.CONCURRENT_INSERT= @OLD_SLAVE_CONCURRENT_INSERT;
 DROP TABLE IF EXISTS federated.t1;
-DROP DATABASE IF EXISTS federated;
+DROP DATABASE federated;
 DROP TABLE IF EXISTS federated.t1;
-DROP DATABASE IF EXISTS federated;
+DROP DATABASE federated;

=== modified file 'mysql-test/suite/federated/federated_archive.result'
--- a/mysql-test/suite/federated/federated_archive.result	2007-12-12 17:19:24 +0000
+++ b/mysql-test/suite/federated/federated_archive.result	2009-02-02 11:36:03 +0000
@@ -1,6 +1,4 @@
-DROP DATABASE IF EXISTS federated;
 CREATE DATABASE federated;
-DROP DATABASE IF EXISTS federated;
 CREATE DATABASE federated;
 DROP TABLE IF EXISTS federated.archive_table;
 CREATE TABLE federated.archive_table (
@@ -36,6 +34,6 @@ id	name
 DROP TABLE federated.t1;
 DROP TABLE federated.archive_table;
 DROP TABLE IF EXISTS federated.t1;
-DROP DATABASE IF EXISTS federated;
+DROP DATABASE federated;
 DROP TABLE IF EXISTS federated.t1;
-DROP DATABASE IF EXISTS federated;
+DROP DATABASE federated;

=== modified file 'mysql-test/suite/federated/federated_bug_13118.result'
--- a/mysql-test/suite/federated/federated_bug_13118.result	2007-12-12 17:19:24 +0000
+++ b/mysql-test/suite/federated/federated_bug_13118.result	2009-02-02 11:36:03 +0000
@@ -1,6 +1,4 @@
-DROP DATABASE IF EXISTS federated;
 CREATE DATABASE federated;
-DROP DATABASE IF EXISTS federated;
 CREATE DATABASE federated;
 DROP TABLE IF EXISTS federated.bug_13118_table;
 CREATE TABLE federated.bug_13118_table (
@@ -27,6 +25,6 @@ foo	bar
 DROP TABLE federated.t1;
 DROP TABLE federated.bug_13118_table;
 DROP TABLE IF EXISTS federated.t1;
-DROP DATABASE IF EXISTS federated;
+DROP DATABASE federated;
 DROP TABLE IF EXISTS federated.t1;
-DROP DATABASE IF EXISTS federated;
+DROP DATABASE federated;

=== modified file 'mysql-test/suite/federated/federated_bug_25714.result'
--- a/mysql-test/suite/federated/federated_bug_25714.result	2008-10-29 09:52:46 +0000
+++ b/mysql-test/suite/federated/federated_bug_25714.result	2009-02-02 20:50:45 +0000
@@ -1,6 +1,4 @@
-DROP DATABASE IF EXISTS federated;
 CREATE DATABASE federated;
-DROP DATABASE IF EXISTS federated;
 CREATE DATABASE federated;
 SET @OLD_MASTER_CONCURRENT_INSERT= @@GLOBAL.CONCURRENT_INSERT;
 SET @@GLOBAL.CONCURRENT_INSERT= 0;
@@ -50,6 +48,6 @@ SET @@GLOBAL.CONCURRENT_INSERT= @OLD_MAS
 DROP TABLE federated.t1;
 SET @@GLOBAL.CONCURRENT_INSERT= @OLD_SLAVE_CONCURRENT_INSERT;
 DROP TABLE IF EXISTS federated.t1;
-DROP DATABASE IF EXISTS federated;
+DROP DATABASE federated;
 DROP TABLE IF EXISTS federated.t1;
-DROP DATABASE IF EXISTS federated;
+DROP DATABASE federated;

=== modified file 'mysql-test/suite/federated/federated_bug_25714.test'
--- a/mysql-test/suite/federated/federated_bug_25714.test	2008-10-29 17:40:17 +0000
+++ b/mysql-test/suite/federated/federated_bug_25714.test	2009-02-02 20:50:45 +0000
@@ -1,10 +1,10 @@
-source federated.inc;
-
  # Check that path to the specific test program has been setup
 if (`select LENGTH("$MYSQL_BUG25714") = 0`)
 {
   skip Need bug25714 test program;
 }
+
+source federated.inc;
 
 connection master;
 # Disable concurrent inserts to avoid test failures when reading

=== modified file 'mysql-test/suite/federated/federated_cleanup.inc'
--- a/mysql-test/suite/federated/federated_cleanup.inc	2007-12-12 17:19:24 +0000
+++ b/mysql-test/suite/federated/federated_cleanup.inc	2009-02-02 11:36:03 +0000
@@ -1,9 +1,9 @@
 connection master;
 --disable_warnings
 DROP TABLE IF EXISTS federated.t1;
-DROP DATABASE IF EXISTS federated;
+DROP DATABASE federated;
 
 connection slave;
 DROP TABLE IF EXISTS federated.t1;
-DROP DATABASE IF EXISTS federated;
+DROP DATABASE federated;
 --enable_warnings

=== modified file 'mysql-test/suite/federated/federated_innodb.result'
--- a/mysql-test/suite/federated/federated_innodb.result	2007-12-12 17:19:24 +0000
+++ b/mysql-test/suite/federated/federated_innodb.result	2009-02-02 11:36:03 +0000
@@ -1,6 +1,4 @@
-DROP DATABASE IF EXISTS federated;
 CREATE DATABASE federated;
-DROP DATABASE IF EXISTS federated;
 CREATE DATABASE federated;
 create table federated.t1 (a int primary key, b varchar(64))
 engine=myisam;
@@ -22,6 +20,6 @@ a	b
 drop table federated.t1;
 drop table federated.t1;
 DROP TABLE IF EXISTS federated.t1;
-DROP DATABASE IF EXISTS federated;
+DROP DATABASE federated;
 DROP TABLE IF EXISTS federated.t1;
-DROP DATABASE IF EXISTS federated;
+DROP DATABASE federated;

=== modified file 'mysql-test/suite/federated/federated_server.result'
--- a/mysql-test/suite/federated/federated_server.result	2009-01-22 13:07:58 +0000
+++ b/mysql-test/suite/federated/federated_server.result	2009-02-02 11:36:03 +0000
@@ -1,6 +1,4 @@
-DROP DATABASE IF EXISTS federated;
 CREATE DATABASE federated;
-DROP DATABASE IF EXISTS federated;
 CREATE DATABASE federated;
 create database first_db;
 create database second_db;
@@ -277,6 +275,6 @@ call p1();
 drop procedure p1;
 drop server if exists s;
 DROP TABLE IF EXISTS federated.t1;
-DROP DATABASE IF EXISTS federated;
+DROP DATABASE federated;
 DROP TABLE IF EXISTS federated.t1;
-DROP DATABASE IF EXISTS federated;
+DROP DATABASE federated;

=== modified file 'mysql-test/suite/rpl/r/rpl_trigger.result'
--- a/mysql-test/suite/rpl/r/rpl_trigger.result	2008-12-08 13:31:24 +0000
+++ b/mysql-test/suite/rpl/r/rpl_trigger.result	2009-02-02 21:29:18 +0000
@@ -862,6 +862,9 @@ drop table t21,t31;
 drop table t11;
 STOP SLAVE;
 FLUSH LOGS;
+--> Stop master server
+--> Start master server
+--> Master binlog: Server ver: 5.0.16-debug-log, Binlog ver: 4
 RESET SLAVE;
 START SLAVE;
 SELECT MASTER_POS_WAIT('master-bin.000001', 513) >= 0;

=== modified file 'mysql-test/suite/rpl/t/rpl_trigger.test'
--- a/mysql-test/suite/rpl/t/rpl_trigger.test	2009-02-01 14:30:58 +0000
+++ b/mysql-test/suite/rpl/t/rpl_trigger.test	2009-02-02 21:29:18 +0000
@@ -298,8 +298,28 @@ STOP SLAVE;
 connection master;
 let $MYSQLD_DATADIR= `select @@datadir`;
 FLUSH LOGS;
+
+# Stop master server
+--echo --> Stop master server
+--write_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+wait
+EOF
+--shutdown_server 10
+--source include/wait_until_disconnected.inc
+# Replace binlog
 remove_file $MYSQLD_DATADIR/master-bin.000001;
 copy_file $MYSQL_TEST_DIR/std_data/bug16266.000001 $MYSQLD_DATADIR/master-bin.000001;
+  
+--echo --> Start master server
+--append_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+restart
+EOF
+--enable_reconnect
+--source include/wait_until_connected_again.inc
+let $binlog_version= query_get_value(SHOW BINLOG EVENTS, Info, 1);
+
+# Make the slave to replay the new binlog.
+--echo --> Master binlog: $binlog_version
 
 # Make the slave to replay the new binlog.
 

=== modified file 'mysql-test/suite/rpl_ndb/r/rpl_ndb_circular_2ch.result'
--- a/mysql-test/suite/rpl_ndb/r/rpl_ndb_circular_2ch.result	2008-04-25 22:17:34 +0000
+++ b/mysql-test/suite/rpl_ndb/r/rpl_ndb_circular_2ch.result	2009-02-02 20:31:01 +0000
@@ -45,58 +45,20 @@ CREATE TABLE t1 (a INT NOT NULL AUTO_INC
 *** Basic testing  ***
 Insert rows via all hosts
 Check data on both clusters 
-* Cluster A *
-SELECT COUNT(*), SUM(a), b FROM t1 WHERE c = 1 GROUP BY b ORDER BY b;
-COUNT(*)	SUM(a)	b
-10	190	master
-10	210	master1
-10	200	slave
-10	220	slave1
-* Cluster B *
-SELECT COUNT(*), SUM(a), b FROM t1 WHERE c = 1 GROUP BY b ORDER BY b;
-COUNT(*)	SUM(a)	b
-10	190	master
-10	210	master1
-10	200	slave
-10	220	slave1
-
+Comparing tables master:test.t1 and slave:test.t1
 *** Transaction testing ***
 BEGIN;
 BEGIN;
 COMMIT;
 COMMIT;
 Check data on both clusters 
-* Cluster A *
-SELECT COUNT(*), SUM(a), b FROM t1 WHERE c = 2 GROUP BY b ORDER BY b;
-COUNT(*)	SUM(a)	b
-100	23900	master
-100	24100	master1
-100	24000	slave
-100	24200	slave1
-* Cluster B *
-SELECT COUNT(*), SUM(a), b FROM t1 WHERE c = 2 GROUP BY b ORDER BY b;
-COUNT(*)	SUM(a)	b
-100	23900	master
-100	24100	master1
-100	24000	slave
-100	24200	slave1
-
+Comparing tables master:test.t1 and slave:test.t1
 BEGIN;
 BEGIN;
 ROLLBACK;
 ROLLBACK;
 Check data on both clusters 
-* Cluster A *
-SELECT COUNT(*), SUM(a), b FROM t1 WHERE c = 3 GROUP BY b ORDER BY b;
-COUNT(*)	SUM(a)	b
-100	64100	master1
-100	64000	slave
-* Cluster B *
-SELECT COUNT(*), SUM(a), b FROM t1 WHERE c = 3 GROUP BY b ORDER BY b;
-COUNT(*)	SUM(a)	b
-100	64100	master1
-100	64000	slave
-
+Comparing tables master:test.t1 and slave:test.t1
 DROP TABLE t1;
 DROP TABLE IF EXISTS t1;
 

=== modified file 'mysql-test/suite/rpl_ndb/t/rpl_ndb_circular_2ch.cnf'
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_circular_2ch.cnf	2008-10-31 14:11:44 +0000
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_circular_2ch.cnf	2009-02-02 20:34:46 +0000
@@ -15,11 +15,6 @@ skip-slave-start
 
 [mysqld.2.slave]
 server-id= 2
-master-host=		127.0.0.1
-master-port=		@mysqld.2.1.port
-master-password=	@mysqld.2.1.#password
-master-user=		@mysqld.2.1.#user
-master-connect-retry=	1
 init-rpl-role=		slave
 log-bin
 skip-slave-start

=== modified file 'mysql-test/suite/rpl_ndb/t/rpl_ndb_circular_2ch.test'
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_circular_2ch.test	2008-10-31 14:11:44 +0000
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_circular_2ch.test	2009-02-02 20:31:01 +0000
@@ -75,13 +75,10 @@ let $wait_condition= SELECT COUNT(*)=40 
 
 # Check data
 --echo Check data on both clusters 
---connection master
---echo * Cluster A *
-SELECT COUNT(*), SUM(a), b FROM t1 WHERE c = 1 GROUP BY b ORDER BY b;
---connection slave
---echo * Cluster B *
-SELECT COUNT(*), SUM(a), b FROM t1 WHERE c = 1 GROUP BY b ORDER BY b;
---echo
+let $diff_table_1=master:test.t1;
+let $diff_table_2=slave:test.t1;
+
+source include/diff_tables.inc;
 
 --echo *** Transaction testing ***
 # Start transaction for one mysqld and do mass of inserts for other.
@@ -119,13 +116,10 @@ let $wait_condition= SELECT COUNT(*)=400
 --source include/wait_condition.inc
 
 --echo Check data on both clusters 
---connection master
---echo * Cluster A *
-SELECT COUNT(*), SUM(a), b FROM t1 WHERE c = 2 GROUP BY b ORDER BY b;
---connection slave
---echo * Cluster B *
-SELECT COUNT(*), SUM(a), b FROM t1 WHERE c = 2 GROUP BY b ORDER BY b;
---echo
+let $diff_table_1=master:test.t1;
+let $diff_table_2=slave:test.t1;
+
+source include/diff_tables.inc;
 
 # Start transaction and then roll back
 
@@ -161,13 +155,10 @@ let $wait_condition= SELECT COUNT(*)=200
 --source include/wait_condition.inc
 
 --echo Check data on both clusters 
---connection master
---echo * Cluster A *
-SELECT COUNT(*), SUM(a), b FROM t1 WHERE c = 3 GROUP BY b ORDER BY b;
---connection slave
---echo * Cluster B *
-SELECT COUNT(*), SUM(a), b FROM t1 WHERE c = 3 GROUP BY b ORDER BY b;
---echo
+let $diff_table_1=master:test.t1;
+let $diff_table_2=slave:test.t1;
+
+source include/diff_tables.inc;
 
 # Clean up
 --connection master

=== modified file 'mysql-test/suite/rpl_ndb_big/r/rpl_ndb_sync.result'
--- a/mysql-test/suite/rpl_ndb_big/r/rpl_ndb_sync.result	2009-02-02 15:58:48 +0000
+++ b/mysql-test/suite/rpl_ndb_big/r/rpl_ndb_sync.result	2009-02-03 06:41:56 +0000
@@ -106,6 +106,8 @@ Last_IO_Errno	<Last_IO_Errno>
 Last_IO_Error	<Last_IO_Error>
 Last_SQL_Errno	0
 Last_SQL_Error	
+Replicate_Ignore_Server_Ids	
+Master_Server_Id	1
 SELECT hex(c1),hex(c2),c3 FROM t1 ORDER BY c3;
 hex(c1)	hex(c2)	c3
 1	1	row1

=== modified file 'mysql-test/t/ctype_ldml.test'
--- a/mysql-test/t/ctype_ldml.test	2009-01-26 16:03:39 +0000
+++ b/mysql-test/t/ctype_ldml.test	2009-02-02 20:50:45 +0000
@@ -55,6 +55,25 @@ insert into t1 values ('a');
 select * from t1 where c1='b';
 drop table t1;
 
+
+#
+# Bug#41084 full-text index added to custom UCA collation not working
+#
+CREATE TABLE t1 (
+  col1 varchar(100) character set utf8 collate utf8_test_ci
+);
+INSERT INTO t1 (col1) VALUES ('abcd'),('efgh'),('ijkl');
+ALTER TABLE t1 ADD FULLTEXT INDEX (col1);
+SELECT * FROM t1 where match (col1) against ('abcd');
+SELECT * FROM t1 where match (col1) against ('abcd' IN BOOLEAN MODE);
+ALTER TABLE t1 ADD (col2 varchar(100) character set latin1);
+UPDATE t1 SET col2=col1;
+SELECT * FROM t1 WHERE col1=col2 ORDER BY col1;
+DROP TABLE t1;
+
+#
+#  Vietnamese experimental collation
+#
 --echo  Vietnamese experimental collation
 
 show collation like 'ucs2_vn_ci';

=== modified file 'mysql-test/t/system_mysql_db_fix30020.test'
--- a/mysql-test/t/system_mysql_db_fix30020.test	2008-10-07 10:26:19 +0000
+++ b/mysql-test/t/system_mysql_db_fix30020.test	2009-02-02 20:50:45 +0000
@@ -105,4 +105,5 @@ backup_history, backup_progress;
 # check that we dropped all system tables
 show tables;
 
+exit;
 # End of 4.1 tests

=== modified file 'mysql-test/t/type_timestamp.test'
--- a/mysql-test/t/type_timestamp.test	2007-05-05 20:03:19 +0000
+++ b/mysql-test/t/type_timestamp.test	2009-02-02 20:56:22 +0000
@@ -324,7 +324,7 @@ insert into t1 (a, c) values (4, '2004-0
 select * from t1;
 drop table t1;
 
-# End of 4.1 tests
+--echo End of 4.1 tests
 
 # Restore timezone to default
 set time_zone= @@global.time_zone;
@@ -339,3 +339,21 @@ PRIMARY KEY (`id`)
 show fields from t1;
 select is_nullable from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME='t1' and COLUMN_NAME='posted_on';
 drop table t1;
+
+#
+# Bug#41370: TIMESTAMP field does not accepts NULL from FROM_UNIXTIME()
+#
+
+CREATE TABLE t1 ( f1 INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
+                  f2 TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+                  f3 TIMESTAMP);
+INSERT INTO t1 (f2,f3) VALUES (NOW(), "0000-00-00 00:00:00");
+INSERT INTO t1 (f2,f3) VALUES (NOW(), NULL);
+INSERT INTO t1 (f2,f3) VALUES (NOW(), ASCII(NULL));
+INSERT INTO t1 (f2,f3) VALUES (NOW(), FROM_UNIXTIME('9999999999'));
+INSERT INTO t1 (f2,f3) VALUES (NOW(), TIME(NULL));
+UPDATE t1 SET f2=NOW(), f3=FROM_UNIXTIME('9999999999') WHERE f1=1;
+SELECT f1,f2-f3 FROM t1;
+DROP TABLE t1;
+
+--echo End of 5.0 tests

=== modified file 'mysql-test/t/variables.test'
--- a/mysql-test/t/variables.test	2009-01-31 15:53:35 +0000
+++ b/mysql-test/t/variables.test	2009-02-02 23:28:17 +0000
@@ -6,7 +6,7 @@ drop table if exists t1,t2;
 --enable_warnings
 
 #
-# Bug #19263: variables.test doesn't clean up after itself (I/II -- save)
+# Bug#19263: variables.test doesn't clean up after itself (I/II -- save)
 #
 set @my_binlog_cache_size         =@@global.binlog_cache_size;
 set @my_connect_timeout           =@@global.connect_timeout;
@@ -198,46 +198,46 @@ SELECT @@version_compile_os LIKE 'non-ex
 
 # The following should give errors
 
---error 1231
+--error ER_WRONG_VALUE_FOR_VAR
 set big_tables=OFFF;
---error 1231
+--error ER_WRONG_VALUE_FOR_VAR
 set big_tables="OFFF";
---error 1193
+--error ER_UNKNOWN_SYSTEM_VARIABLE
 set unknown_variable=1;
---error 1232
+--error ER_WRONG_TYPE_FOR_VAR
 set max_join_size="hello";
---error 1286
+--error ER_UNKNOWN_STORAGE_ENGINE
 set storage_engine=UNKNOWN_TABLE_TYPE;
---error 1231
+--error ER_WRONG_VALUE_FOR_VAR
 set storage_engine=MERGE, big_tables=2;
 show local variables like 'storage_engine';
---error 1229
+--error ER_GLOBAL_VARIABLE
 set SESSION query_cache_size=10000;
---error 1230
+--error ER_NO_DEFAULT
 set GLOBAL storage_engine=DEFAULT;
---error 1115
+--error ER_UNKNOWN_CHARACTER_SET
 set character_set_client=UNKNOWN_CHARACTER_SET;
---error 1273
+--error ER_UNKNOWN_COLLATION
 set collation_connection=UNKNOWN_COLLATION;
---error 1231
+--error ER_WRONG_VALUE_FOR_VAR
 set character_set_client=NULL;
---error 1231
+--error ER_WRONG_VALUE_FOR_VAR
 set collation_connection=NULL;
---error 1228
+--error ER_LOCAL_VARIABLE
 set global autocommit=1;
---error 1238
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
 select @@global.timestamp;
---error 1238 
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR 
 set @@version='';
---error 1229
+--error ER_GLOBAL_VARIABLE
 set @@concurrent_insert=1;
---error 1228
+--error ER_LOCAL_VARIABLE
 set @@global.sql_auto_is_null=1;
---error 1238
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
 select @@global.sql_auto_is_null;
---error 1229
+--error ER_GLOBAL_VARIABLE
 set myisam_max_sort_file_size=100;
---error 1231
+--error ER_WRONG_VALUE_FOR_VAR
 set @@SQL_WARNINGS=NULL;
 
 # Test setting all variables
@@ -368,23 +368,23 @@ drop table t1,t2;
 # error conditions
 #
 
---error 1193
+--error ER_UNKNOWN_SYSTEM_VARIABLE
 select @@xxxxxxxxxx;
 select 1;
 
---error 1238
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
 select @@session.key_buffer_size;
 
---error 1229
+--error ER_GLOBAL_VARIABLE
 set ft_boolean_syntax = @@init_connect;
---error 1231
+--error ER_WRONG_VALUE_FOR_VAR
 set global ft_boolean_syntax = @@init_connect;
---error 1229
+--error ER_GLOBAL_VARIABLE
 set init_connect = NULL;
 set global init_connect = NULL;
---error 1229
+--error ER_GLOBAL_VARIABLE
 set ft_boolean_syntax = @@init_connect;
---error 1231
+--error ER_WRONG_VALUE_FOR_VAR
 set global ft_boolean_syntax = @@init_connect;
 
 # Bug#3754 SET GLOBAL myisam_max_sort_file_size doesn't work as
@@ -417,15 +417,15 @@ select @a, @b;
 #
 # Bug#2586:Disallow global/session/local as structured var. instance names
 #
---error 1064
+--error ER_PARSE_ERROR
 set @@global.global.key_buffer_size= 1;
---error 1064
+--error ER_PARSE_ERROR
 set GLOBAL global.key_buffer_size= 1;
---error 1064
+--error ER_PARSE_ERROR
 SELECT @@global.global.key_buffer_size;
---error 1064
+--error ER_PARSE_ERROR
 SELECT @@global.session.key_buffer_size;
---error 1064
+--error ER_PARSE_ERROR
 SELECT @@global.local.key_buffer_size;
 
 # BUG#5135: cannot turn on log_warnings with SET in 4.1 (and 4.0)
@@ -516,27 +516,27 @@ select @@lc_time_names;
 --echo *** LC_TIME_NAMES: testing with string expressions
 set lc_time_names=concat('de','_','DE');
 select @@lc_time_names;
---error 1105
+--error ER_UNKNOWN_ERROR
 set lc_time_names=concat('de','+','DE');
 select @@lc_time_names;
 --echo LC_TIME_NAMES: testing with numeric expressions
 set @@lc_time_names=1+2;
 select @@lc_time_names;
---error 1232
+--error ER_WRONG_TYPE_FOR_VAR
 set @@lc_time_names=1/0;
 select @@lc_time_names;
 set lc_time_names=en_US;
 --echo LC_TIME_NAMES: testing NULL and a negative number:
---error 1231
+--error ER_WRONG_VALUE_FOR_VAR
 set lc_time_names=NULL;
---error 1105
+--error ER_UNKNOWN_ERROR
 set lc_time_names=-1;
 select @@lc_time_names;
 --echo LC_TIME_NAMES: testing locale with the last ID:
 set lc_time_names=108;
 select @@lc_time_names;
 --echo LC_TIME_NAMES: testing a number beyond the valid ID range:
---error 1105
+--error ER_UNKNOWN_ERROR
 set lc_time_names=109;
 select @@lc_time_names;
 --echo LC_TIME_NAMES: testing that 0 is en_US:
@@ -578,7 +578,7 @@ select @@query_prealloc_size = @test;
 # Bug#31588 buffer overrun when setting variables
 #
 # Buffer-size Off By One. Should throw valgrind-warning without fix #31588.
---error 1231
+--error ER_WRONG_VALUE_FOR_VAR
 set global sql_mode=repeat('a',80);
 
 --echo End of 4.1 tests
@@ -596,9 +596,9 @@ drop table t1;
 # Bug #10339: read only variables.
 #
 
---error 1238
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
 set @@warning_count=1;
---error 1238
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
 set @@global.error_count=1;
 
 #
@@ -616,9 +616,9 @@ select @@max_heap_table_size > 0;
 # Bug #11775 Variable character_set_system does not exist (sometimes)
 #
 select @@character_set_system;
---error 1238
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
 set global character_set_system = latin1;
---error 1238
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
 set @@global.version_compile_os='234';
 
 #
@@ -729,7 +729,7 @@ select @@@;
 # Don't actually output, since it depends on the system
 --replace_column 1 #
 select @@hostname;
---error 1238
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
 set @@hostname= "anothername";
 --replace_column 2 #
 show variables like 'hostname';

=== modified file 'mysys/charset.c'
--- a/mysys/charset.c	2008-12-09 08:41:43 +0000
+++ b/mysys/charset.c	2009-02-02 20:50:45 +0000
@@ -212,6 +212,8 @@ copy_uca_collation(CHARSET_INFO *to, CHA
   to->max_sort_char= from->max_sort_char;
   to->mbminlen= from->mbminlen;
   to->mbmaxlen= from->mbmaxlen;
+  to->state|= MY_CS_AVAILABLE | MY_CS_LOADED |
+              MY_CS_STRNXFRM  | MY_CS_UNICODE;
 }
 
 

=== modified file 'mysys/my_delete.c'
--- a/mysys/my_delete.c	2008-07-23 08:52:08 +0000
+++ b/mysys/my_delete.c	2009-02-02 17:39:49 +0000
@@ -37,7 +37,7 @@ int my_delete(const char *name, myf MyFl
 } /* my_delete */
 
 #if defined(__WIN__)
-/*
+/**
   Delete file which is possibly not closed.
 
   This function is intended to be used exclusively as a temporal solution
@@ -53,6 +53,20 @@ int my_delete(const char *name, myf MyFl
   renamed to <name>.<num>.deleted where <name> - the initial name of the
   file, <num> - a hexadecimal number chosen to make the temporal name to
   be unique.
+
+  @param the name of the being deleted file
+  @param the flags instructing how to react on an error internally in
+         the function
+
+  @note The per-thread @c my_errno holds additional info for a caller to
+        decide how critical the error can be.
+
+  @retval
+    0	ok
+  @retval
+    1   error
+
+
 */
 int nt_share_delete(const char *name, myf MyFlags)
 {
@@ -61,6 +75,7 @@ int nt_share_delete(const char *name, my
   DBUG_ENTER("nt_share_delete");
   DBUG_PRINT("my",("name %s MyFlags %d", name, MyFlags));
 
+  errno= 0;
   for (cnt= GetTickCount(); cnt; cnt--)
   {
     sprintf(buf, "%s.%08X.deleted", name, cnt);
@@ -78,15 +93,23 @@ int nt_share_delete(const char *name, my
                            name, buf, errno));
     break;
   }
-
-  if (DeleteFile(buf))
-    DBUG_RETURN(0);
-
-  my_errno= GetLastError();
+  
+  if (errno == ERROR_FILE_NOT_FOUND)
+  {
+       my_errno= ENOENT;    // marking, that `name' doesn't exist 
+  }
+  else if (errno == 0)
+  {
+       if (DeleteFile(buf))
+            DBUG_RETURN(0);
+       else if ((my_errno= GetLastError()) == 0)
+            my_errno= ENOENT; // marking, that `buf' doesn't exist
+  } else
+       my_errno= errno;
+  
   if (MyFlags & (MY_FAE+MY_WME))
-    my_error(EE_DELETE, MYF(ME_BELL + ME_WAITTANG + (MyFlags & ME_NOINPUT)),
-	       name, my_errno);
-
+       my_error(EE_DELETE, MYF(ME_BELL + ME_WAITTANG + (MyFlags & ME_NOINPUT)),
+                name, my_errno);
   DBUG_RETURN(-1);
 }
 #endif

=== modified file 'sql/item.cc'
--- a/sql/item.cc	2009-01-26 16:03:39 +0000
+++ b/sql/item.cc	2009-02-02 20:56:22 +0000
@@ -325,7 +325,7 @@ int Item::save_time_in_field(Field *fiel
 {
   MYSQL_TIME ltime;
   if (get_time(&ltime))
-    return set_field_to_null(field);
+    return set_field_to_null_with_conversions(field, 0);
   field->set_notnull();
   return field->store_time(&ltime, MYSQL_TIMESTAMP_TIME);
 }
@@ -335,7 +335,7 @@ int Item::save_date_in_field(Field *fiel
 {
   MYSQL_TIME ltime;
   if (get_date(&ltime, TIME_FUZZY_DATE))
-    return set_field_to_null(field);
+    return set_field_to_null_with_conversions(field, 0);
   field->set_notnull();
   return field->store_time(&ltime, MYSQL_TIMESTAMP_DATETIME);
 }

Thread
bzr push into mysql-6.0-ndb branch (tomas.ulin:2825 to 2827) Tomas Ulin3 Feb