2768 Georgi Kodinov 2008-12-01 [merge]
merged 5.1-bugteam -> 6.0-bugteam
modified:
mysql-test/r/timezone2.result
mysql-test/r/timezone3.result
mysql-test/std_data/Moscow_leap
mysql-test/t/timezone3.test
sql/tztime.cc
sql/tztime.h
2767 Georgi Kodinov 2008-12-01 [merge]
merged 6.0-main to 6.0-bugteam
added:
mysql-test/suite/sys_vars/t/disabled.def
modified:
mysql-test/t/disabled.def
2766 Georgi Kodinov 2008-12-01
Addendum to bug #22891.
Moved the setting of max_allowed_packet to a .opt file.
added:
mysql-test/suite/falcon/t/falcon_bug_22184-master.opt
modified:
mysql-test/suite/falcon/r/falcon_bug_22184.result
mysql-test/suite/falcon/t/falcon_bug_22184.test
=== modified file 'mysql-test/r/timezone2.result'
--- a/mysql-test/r/timezone2.result 2007-03-09 10:12:31 +0000
+++ b/mysql-test/r/timezone2.result 2008-12-01 15:43:51 +0000
@@ -110,7 +110,7 @@ i ts
362793610 1981-07-01 04:00:00
select from_unixtime(362793609);
from_unixtime(362793609)
-1981-07-01 03:59:60
+1981-07-01 03:59:59
drop table t1;
create table t1 (ts timestamp);
set time_zone='UTC';
=== modified file 'mysql-test/r/timezone3.result'
--- a/mysql-test/r/timezone3.result 2004-11-12 15:44:17 +0000
+++ b/mysql-test/r/timezone3.result 2008-12-01 14:18:35 +0000
@@ -17,6 +17,9 @@ insert into t1 values
insert into t1 values
(unix_timestamp('1981-07-01 03:59:59'),'1981-07-01 03:59:59'),
(unix_timestamp('1981-07-01 04:00:00'),'1981-07-01 04:00:00');
+insert into t1 values
+(unix_timestamp('2009-01-01 02:59:59'),'2009-01-01 02:59:59'),
+(unix_timestamp('2009-01-01 03:00:00'),'2009-01-01 03:00:00');
select i, from_unixtime(i), c from t1;
i from_unixtime(i) c
1072904422 2004-01-01 00:00:00 2004-01-01 00:00:00
@@ -31,6 +34,8 @@ i from_unixtime(i) c
1099180821 2004-10-31 02:59:59 2004-10-31 02:59:59
362793608 1981-07-01 03:59:59 1981-07-01 03:59:59
362793610 1981-07-01 04:00:00 1981-07-01 04:00:00
+1230768022 2009-01-01 02:59:59 2009-01-01 02:59:59
+1230768024 2009-01-01 03:00:00 2009-01-01 03:00:00
drop table t1;
create table t1 (ts timestamp);
insert into t1 values (19730101235900), (20040101235900);
@@ -39,3 +44,6 @@ ts
1973-01-01 23:59:00
2004-01-01 23:59:00
drop table t1;
+SELECT FROM_UNIXTIME(1230768022), FROM_UNIXTIME(1230768023), FROM_UNIXTIME(1230768024);
+FROM_UNIXTIME(1230768022) FROM_UNIXTIME(1230768023) FROM_UNIXTIME(1230768024)
+2009-01-01 02:59:59 2009-01-01 02:59:59 2009-01-01 03:00:00
=== modified file 'mysql-test/std_data/Moscow_leap'
Binary files a/mysql-test/std_data/Moscow_leap 2004-11-03 17:59:03 +0000 and
b/mysql-test/std_data/Moscow_leap 2008-12-01 14:18:35 +0000 differ
=== added file 'mysql-test/suite/sys_vars/t/disabled.def'
--- a/mysql-test/suite/sys_vars/t/disabled.def 1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/sys_vars/t/disabled.def 2008-11-26 15:16:58 +0000
@@ -0,0 +1,21 @@
+##############################################################################
+#
+# List the test cases that are to be disabled temporarily.
+#
+# Separate the test case name and the comment with ':'.
+#
+# <testcasename> : BUG#<xxxx> <date disabled> <disabler>
<comment>
+#
+# Do not use any TAB characters for whitespace.
+#
+##############################################################################
+key_buffer_size_basic_64 : Bug #36522: Some tests of system variables have diffs on
64bit platorms
+rpl_recovery_rank_basic_64 : Bug #36522: Some tests of system variables have diffs on
64bit platorms
+sort_buffer_size_basic_64 : Bug #36522: Some tests of system variables have diffs on
64bit platorms
+query_cache_size_basic_32 : Bug#36747: Allocating a large query cache is not
deterministic
+query_cache_size_basic_64 : Bug#36747: Allocating a large query cache is not
deterministic
+query_alloc_block_size_basic_64: Bug #37708 query_alloc_block_size_basic_64 fails in
pushbuild
+sort_buffer_size_basic_32 : Bug#36875 main.sort_buffer_size_basic_32 fails on some
systems
+key_buffer_size_basic_32 : Bug#36876 main.key_buffer_size_basic_32 fails on some
systems
+max_heap_table_size_basic_32 : Bug#36877 main.max_heap_table_size_basic_32 fails on some
systems
+tmp_table_size_basic_32 : Bug#36878 main.tmp_table_size_basic_32 fails on some
systems
=== modified file 'mysql-test/t/disabled.def'
--- a/mysql-test/t/disabled.def 2008-11-26 21:44:57 +0000
+++ b/mysql-test/t/disabled.def 2008-12-01 15:57:12 +0000
@@ -12,10 +12,10 @@
innodb : WL#1213: Waiting for InnoDB team to add support for 4-byte character
sets.
federated_transactions : Bug#29523 Transactions do not work
lowercase_table3 : Bug#32667 lowercase_table3.test reports to error log
-rpl_log_pos : Bug#8693 Test 'rpl_log_pos' fails sometimes
ctype_create : Bug#32965 main.ctype_create fails
backup_no_engine : Bug#36021 2008-04-13 rsomla server crashes when openning table
with unknown storage engine
query_cache_wlock_invalidate_func: Bug#35390 causes not deterministic results.
+csv_alter_table : Bug#33696 2008-01-21 pcrews no .result file - bug allows NULL
columns in CSV tables
cast : Bug#35594 2008-03-27 main.cast fails on Windows2003-64
backup_triggers_and_events : Bug#37762 2008-07-01 rafal Test fails on remove_file for
unknown reasons
backup_no_be : Bug#38023 2008-07-16 rafal Test triggers valgrind warnings
described in the bug
=== modified file 'mysql-test/t/timezone3.test'
--- a/mysql-test/t/timezone3.test 2005-07-28 00:22:47 +0000
+++ b/mysql-test/t/timezone3.test 2008-12-01 14:18:35 +0000
@@ -45,6 +45,10 @@ insert into t1 values
(unix_timestamp('1981-07-01 03:59:59'),'1981-07-01 03:59:59'),
(unix_timestamp('1981-07-01 04:00:00'),'1981-07-01 04:00:00');
+insert into t1 values
+ (unix_timestamp('2009-01-01 02:59:59'),'2009-01-01 02:59:59'),
+ (unix_timestamp('2009-01-01 03:00:00'),'2009-01-01 03:00:00');
+
select i, from_unixtime(i), c from t1;
drop table t1;
@@ -58,4 +62,12 @@ insert into t1 values (19730101235900),
select * from t1;
drop table t1;
+#
+# Test Bug #39920: MySQL cannot deal with Leap Second expression in string
+# literal
+#
+
+# 2009-01-01 02:59:59, 2009-01-01 02:59:60 and 2009-01-01 03:00:00
+SELECT FROM_UNIXTIME(1230768022), FROM_UNIXTIME(1230768023), FROM_UNIXTIME(1230768024);
+
# End of 4.1 tests
=== modified file 'sql/tztime.cc'
--- a/sql/tztime.cc 2008-05-08 20:43:28 +0000
+++ b/sql/tztime.cc 2008-12-01 16:00:03 +0000
@@ -1072,6 +1072,7 @@ Time_zone_system::gmt_sec_to_TIME(MYSQL_
localtime_r(&tmp_t, &tmp_tm);
localtime_to_TIME(tmp, &tmp_tm);
tmp->time_type= MYSQL_TIMESTAMP_DATETIME;
+ adjust_leap_second(tmp);
}
@@ -1156,6 +1157,7 @@ Time_zone_utc::gmt_sec_to_TIME(MYSQL_TIM
gmtime_r(&tmp_t, &tmp_tm);
localtime_to_TIME(tmp, &tmp_tm);
tmp->time_type= MYSQL_TIMESTAMP_DATETIME;
+ adjust_leap_second(tmp);
}
@@ -1259,6 +1261,7 @@ void
Time_zone_db::gmt_sec_to_TIME(MYSQL_TIME *tmp, my_time_t t) const
{
::gmt_sec_to_TIME(tmp, t, tz_info);
+ adjust_leap_second(tmp);
}
@@ -2279,6 +2282,24 @@ my_tz_find(THD *thd, const String *name)
}
+/**
+ Convert leap seconds into non-leap
+
+ This function will convert the leap seconds added by the OS to
+ non-leap seconds, e.g. 23:59:59, 23:59:60 -> 23:59:59, 00:00:01 ...
+ This check is not checking for years on purpose : although it's not a
+ complete check this way it doesn't require looking (and having installed)
+ the leap seconds table.
+
+ @param[in,out] broken down time structure as filled in by the OS
+*/
+
+void Time_zone::adjust_leap_second(MYSQL_TIME *t)
+{
+ if (t->second == 60 || t->second == 61)
+ t->second= 59;
+}
+
#endif /* !defined(TESTTIME) && !defined(TZINFO2SQL) */
=== modified file 'sql/tztime.h'
--- a/sql/tztime.h 2007-10-16 20:11:50 +0000
+++ b/sql/tztime.h 2008-12-01 15:22:16 +0000
@@ -55,6 +55,9 @@ public:
allocated on MEM_ROOT and should not require destruction.
*/
virtual ~Time_zone() {};
+
+protected:
+ static inline void adjust_leap_second(MYSQL_TIME *t);
};
extern Time_zone * my_tz_UTC;
| Thread |
|---|
| • bzr push into mysql-6.0-bugteam branch (kgeorge:2766 to 2768) | Georgi Kodinov | 1 Dec |