From: Jon Olav Hauglid Date: August 26 2010 6:29am Subject: bzr commit into mysql-5.5-runtime branch (jon.hauglid:3121) List-Archive: http://lists.mysql.com/commits/116817 Message-Id: <201008260631.o7Q6VUPx025002@rcsinet15.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============7505411344503724821==" --===============7505411344503724821== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///export/home/x/mysql-5.5-runtime-test/ based on revid:dlenev@stripped 3121 Jon Olav Hauglid 2010-08-26 [merge] Merge from mysql-5.5-bugfixing to mysql-5.5-runtime. added: mysql-test/r/mysql_not_windows.result mysql-test/t/mysql_not_windows.test modified: mysql-test/mysql-test-run.pl mysql-test/r/func_group.result mysql-test/r/mysql.result mysql-test/suite/ndb/r/ndb_binlog_ddl_multi.result mysql-test/suite/ndb/r/ndb_binlog_ignore_db.result mysql-test/suite/ndb/r/ndb_binlog_log_bin.result mysql-test/suite/ndb/r/ndb_binlog_multi.result mysql-test/suite/rpl_ndb/r/rpl_ndb_log.result mysql-test/suite/rpl_ndb/r/rpl_truncate_7ndb.result mysql-test/t/func_group.test mysql-test/t/mysql.test sql/item.cc === modified file 'mysql-test/mysql-test-run.pl' --- a/mysql-test/mysql-test-run.pl 2010-08-23 08:48:27 +0000 +++ b/mysql-test/mysql-test-run.pl 2010-08-25 13:55:22 +0000 @@ -2155,9 +2155,8 @@ sub environment_setup { # mysqlhotcopy # ---------------------------------------------------- my $mysqlhotcopy= - mtr_pl_maybe_exists("$bindir/scripts/mysqlhotcopy"); - # Since mysqltest interprets the real path as "false" in an if, - # use 1 ("true") to indicate "not exists" so it can be tested for + mtr_pl_maybe_exists("$bindir/scripts/mysqlhotcopy") || + mtr_pl_maybe_exists("$path_client_bindir/mysqlhotcopy"); if ($mysqlhotcopy) { $ENV{'MYSQLHOTCOPY'}= $mysqlhotcopy; === modified file 'mysql-test/r/func_group.result' --- a/mysql-test/r/func_group.result 2010-08-02 12:36:41 +0000 +++ b/mysql-test/r/func_group.result 2010-08-25 09:21:54 +0000 @@ -1715,7 +1715,7 @@ drop table t1; # End of 5.1 tests # -# Bug#55648: Server crash on MIX/MAX on maximum time value +# Bug#55648: Server crash on MIN/MAX on maximum time value # CREATE TABLE t1(c1 TIME NOT NULL); INSERT INTO t1 VALUES('837:59:59'); @@ -1725,3 +1725,13 @@ MAX(c1) 838:59:59 DROP TABLE t1; # End of the bug#55648 +# +# Bug#56120: Failed assertion on MIN/MAX on negative time value +# +CREATE TABLE t1(c1 TIME NOT NULL); +INSERT INTO t1 VALUES('-00:00:01'); +SELECT MAX(c1),MIN(c1) FROM t1; +MAX(c1) MIN(c1) +-00:00:01 -00:00:01 +DROP TABLE t1; +# End of the bug#56120 === modified file 'mysql-test/r/mysql.result' --- a/mysql-test/r/mysql.result 2010-08-19 11:35:47 +0000 +++ b/mysql-test/r/mysql.result 2010-08-25 08:17:15 +0000 @@ -432,8 +432,5 @@ Bug #47147: mysql client option --skip-c *************************** 1. row *************************** 1 -Bug #54466 client 5.5 built from source lacks "pager" support -a -1 End of tests === added file 'mysql-test/r/mysql_not_windows.result' --- a/mysql-test/r/mysql_not_windows.result 1970-01-01 00:00:00 +0000 +++ b/mysql-test/r/mysql_not_windows.result 2010-08-25 08:17:15 +0000 @@ -0,0 +1,5 @@ +Bug #54466 client 5.5 built from source lacks "pager" support +a +1 + +End of tests === modified file 'mysql-test/suite/ndb/r/ndb_binlog_ddl_multi.result' --- a/mysql-test/suite/ndb/r/ndb_binlog_ddl_multi.result 2007-12-19 16:16:22 +0000 +++ b/mysql-test/suite/ndb/r/ndb_binlog_ddl_multi.result 2010-08-25 14:13:20 +0000 @@ -193,4 +193,4 @@ mysqld-bin.000001 # Table_map 2 # table_ mysqld-bin.000001 # Write_rows 2 # table_id: # mysqld-bin.000001 # Write_rows 2 # table_id: # flags: STMT_END_F mysqld-bin.000001 # Query 2 # COMMIT -mysqld-bin.000001 # Query 2 # use `test`; drop table t2 +mysqld-bin.000001 # Query 2 # use `test`; DROP TABLE `t2` /* generated by server */ === modified file 'mysql-test/suite/ndb/r/ndb_binlog_ignore_db.result' --- a/mysql-test/suite/ndb/r/ndb_binlog_ignore_db.result 2007-12-19 16:16:22 +0000 +++ b/mysql-test/suite/ndb/r/ndb_binlog_ignore_db.result 2010-08-25 14:13:20 +0000 @@ -7,5 +7,5 @@ create table t1 (a int primary key, b in insert into t1 values (1, 1); show binlog events from ; Log_name Pos Event_type Server_id End_log_pos Info -mysqld-bin.000001 # Query 1 # use `test`; drop table if exists t1 +mysqld-bin.000001 # Query 1 # use `test`; DROP TABLE IF EXISTS `t1` /* generated by server */ drop database mysqltest; === modified file 'mysql-test/suite/ndb/r/ndb_binlog_log_bin.result' --- a/mysql-test/suite/ndb/r/ndb_binlog_log_bin.result 2007-12-19 16:16:22 +0000 +++ b/mysql-test/suite/ndb/r/ndb_binlog_log_bin.result 2010-08-25 14:13:20 +0000 @@ -47,8 +47,8 @@ mysqld-bin.000001 # Table_map 1 # table_ mysqld-bin.000001 # Write_rows 1 # table_id: # mysqld-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F mysqld-bin.000001 # Query 1 # COMMIT -mysqld-bin.000001 # Query 1 # use `mysqltest`; drop table t1 -mysqld-bin.000001 # Query 1 # use `mysqltest`; drop table t2 +mysqld-bin.000001 # Query 1 # use `mysqltest`; DROP TABLE `t1` /* generated by server */ +mysqld-bin.000001 # Query 1 # use `mysqltest`; DROP TABLE `t2` /* generated by server */ mysqld-bin.000001 # Query 1 # use `mysqltest`; create table t1 (d int key, e int) engine=ndb mysqld-bin.000001 # Query 1 # use `mysqltest`; create table t2 (d int key, e int) engine=ndb mysqld-bin.000001 # Query 1 # BEGIN === modified file 'mysql-test/suite/ndb/r/ndb_binlog_multi.result' --- a/mysql-test/suite/ndb/r/ndb_binlog_multi.result 2007-12-19 16:16:22 +0000 +++ b/mysql-test/suite/ndb/r/ndb_binlog_multi.result 2010-08-25 14:13:20 +0000 @@ -37,7 +37,7 @@ mysqld-bin.000001 # Table_map 1 # table_ mysqld-bin.000001 # Write_rows 1 # table_id: # mysqld-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F mysqld-bin.000001 # Query 1 # COMMIT -mysqld-bin.000001 # Query 1 # use `test`; DROP TABLE t2 +mysqld-bin.000001 # Query 1 # use `test`; DROP TABLE `t2` /* generated by server */ SELECT inserts,updates,deletes,schemaops FROM mysql.ndb_binlog_index WHERE epoch=; inserts updates deletes schemaops @@ -73,7 +73,7 @@ mysqld-bin.000001 # Table_map 2 # table_ mysqld-bin.000001 # Write_rows 2 # table_id: # mysqld-bin.000001 # Write_rows 2 # table_id: # flags: STMT_END_F mysqld-bin.000001 # Query 2 # COMMIT -mysqld-bin.000001 # Query 2 # use `test`; drop table t1 +mysqld-bin.000001 # Query 2 # use `test`; DROP TABLE `t1` /* generated by server */ SELECT inserts,updates,deletes,schemaops FROM mysql.ndb_binlog_index WHERE epoch > AND epoch <= ; inserts updates deletes schemaops === modified file 'mysql-test/suite/rpl_ndb/r/rpl_ndb_log.result' --- a/mysql-test/suite/rpl_ndb/r/rpl_ndb_log.result 2010-05-26 14:34:25 +0000 +++ b/mysql-test/suite/rpl_ndb/r/rpl_ndb_log.result 2010-08-25 14:13:20 +0000 @@ -25,7 +25,7 @@ master-bin.000001 # Table_map # # table_ master-bin.000001 # Write_rows # # table_id: # master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT -master-bin.000001 # Query # # use `test`; drop table t1 +master-bin.000001 # Query # # use `test`; DROP TABLE `t1` /* generated by server */ master-bin.000001 # Query # # use `test`; create table t1 (word char(20) not null)ENGINE=NDB master-bin.000001 # Query # # BEGIN master-bin.000001 # Table_map # # table_id: # (test.t1) @@ -204,7 +204,7 @@ master-bin.000001 # Table_map # # table_ master-bin.000001 # Write_rows # # table_id: # master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT -master-bin.000001 # Query # # use `test`; drop table t1 +master-bin.000001 # Query # # use `test`; DROP TABLE `t1` /* generated by server */ master-bin.000001 # Query # # use `test`; create table t1 (word char(20) not null)ENGINE=NDB master-bin.000001 # Query # # BEGIN master-bin.000001 # Table_map # # table_id: # (test.t1) @@ -240,7 +240,7 @@ slave-bin.000001 # Table_map # # table_i slave-bin.000001 # Write_rows # # table_id: # slave-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F slave-bin.000001 # Query # # COMMIT -slave-bin.000001 # Query # # use `test`; drop table t1 +slave-bin.000001 # Query # # use `test`; DROP TABLE `t1` /* generated by server */ slave-bin.000001 # Query # # use `test`; create table t1 (word char(20) not null)ENGINE=NDB slave-bin.000001 # Query # # BEGIN slave-bin.000001 # Table_map # # table_id: # (test.t1) === modified file 'mysql-test/suite/rpl_ndb/r/rpl_truncate_7ndb.result' --- a/mysql-test/suite/rpl_ndb/r/rpl_truncate_7ndb.result 2010-05-26 14:34:25 +0000 +++ b/mysql-test/suite/rpl_ndb/r/rpl_truncate_7ndb.result 2010-08-25 14:13:20 +0000 @@ -37,7 +37,7 @@ master-bin.000001 # Write_rows # # table master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t1 -master-bin.000001 # Query # # use `test`; DROP TABLE t1 +master-bin.000001 # Query # # use `test`; DROP TABLE `t1` /* generated by server */ **** On Master **** CREATE TABLE t1 (a INT PRIMARY KEY, b LONG) ENGINE=NDB; INSERT INTO t1 VALUES (1,1), (2,2); @@ -72,7 +72,7 @@ master-bin.000001 # Write_rows # # table master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t1 -master-bin.000001 # Query # # use `test`; DROP TABLE t1 +master-bin.000001 # Query # # use `test`; DROP TABLE `t1` /* generated by server */ master-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a INT PRIMARY KEY, b LONG) ENGINE=NDB master-bin.000001 # Query # # BEGIN master-bin.000001 # Table_map # # table_id: # (test.t1) @@ -86,4 +86,4 @@ master-bin.000001 # Table_map # # table_ master-bin.000001 # Write_rows # # table_id: # master-bin.000001 # Delete_rows # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT -master-bin.000001 # Query # # use `test`; DROP TABLE t1 +master-bin.000001 # Query # # use `test`; DROP TABLE `t1` /* generated by server */ === modified file 'mysql-test/t/func_group.test' --- a/mysql-test/t/func_group.test 2010-08-02 12:36:41 +0000 +++ b/mysql-test/t/func_group.test 2010-08-25 09:21:54 +0000 @@ -1086,7 +1086,7 @@ drop table t1; --echo End of 5.1 tests --echo # ---echo # Bug#55648: Server crash on MIX/MAX on maximum time value +--echo # Bug#55648: Server crash on MIN/MAX on maximum time value --echo # CREATE TABLE t1(c1 TIME NOT NULL); INSERT INTO t1 VALUES('837:59:59'); @@ -1095,3 +1095,12 @@ SELECT MAX(c1) FROM t1; DROP TABLE t1; --echo # End of the bug#55648 +--echo # +--echo # Bug#56120: Failed assertion on MIN/MAX on negative time value +--echo # +CREATE TABLE t1(c1 TIME NOT NULL); +INSERT INTO t1 VALUES('-00:00:01'); +SELECT MAX(c1),MIN(c1) FROM t1; +DROP TABLE t1; +--echo # End of the bug#56120 + === modified file 'mysql-test/t/mysql.test' --- a/mysql-test/t/mysql.test 2010-08-19 11:35:47 +0000 +++ b/mysql-test/t/mysql.test 2010-08-25 08:17:15 +0000 @@ -425,11 +425,5 @@ drop table t1; --echo --exec $MYSQL --skip-column-names --vertical test -e "select 1 as a" -# -# Bug #54466 client 5.5 built from source lacks "pager" support -# ---echo Bug #54466 client 5.5 built from source lacks "pager" support ---exec $MYSQL --pager test -e "select 1 as a" - --echo --echo End of tests === added file 'mysql-test/t/mysql_not_windows.test' --- a/mysql-test/t/mysql_not_windows.test 1970-01-01 00:00:00 +0000 +++ b/mysql-test/t/mysql_not_windows.test 2010-08-25 08:17:15 +0000 @@ -0,0 +1,15 @@ +-- source include/not_windows.inc +# This test should work in embedded server after we fix mysqltest +-- source include/not_embedded.inc +# +# Testing the MySQL command line client(mysql) +# + +# +# Bug #54466 client 5.5 built from source lacks "pager" support +# +--echo Bug #54466 client 5.5 built from source lacks "pager" support +--exec $MYSQL --pager test -e "select 1 as a" + +--echo +--echo End of tests === modified file 'sql/item.cc' --- a/sql/item.cc 2010-08-14 09:11:33 +0000 +++ b/sql/item.cc 2010-08-25 09:21:54 +0000 @@ -7510,9 +7510,14 @@ String *Item_cache_datetime::val_str(Str return NULL; if (cached_field_type == MYSQL_TYPE_TIME) { - ulonglong time= int_value; - DBUG_ASSERT(time <= TIME_MAX_VALUE); + longlong time= int_value; set_zero_time(<ime, MYSQL_TIMESTAMP_TIME); + if (time < 0) + { + time= -time; + ltime.neg= TRUE; + } + DBUG_ASSERT(time <= TIME_MAX_VALUE); ltime.second= time % 100; time/= 100; ltime.minute= time % 100; --===============7505411344503724821== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/jon.hauglid@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: jon.hauglid@stripped # target_branch: file:///export/home/x/mysql-5.5-runtime-test/ # testament_sha1: 319cf6f02a61914d055b439389d78afc69fa0d46 # timestamp: 2010-08-26 08:29:39 +0200 # source_branch: file:///export/home/x/mysql-5.5-bugfixing/ # base_revision_id: dlenev@stripped # # Begin bundle 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 KDVuTeGYmJdrTodx8H585H/4u5IpwoSCYTjkYA== --===============7505411344503724821==--