mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 20:42:30 +01:00
09ba29e539
Added basic per-thread time zone functionality (based on public domain elsie-code). Now user can select current time zone (from the list of time zones described in system tables). All NOW-like functions honor this time zone, values of TIMESTAMP type are interpreted as values in this time zone, so now our TIMESTAMP type behaves similar to Oracle's TIMESTAMP WITH LOCAL TIME ZONE (or proper PostgresSQL type). WL#1266 "CONVERT_TZ() - basic time with time zone conversion function". Fixed problems described in Bug #2336 (Different number of warnings when inserting bad datetime as string or as number). This required reworking of datetime realted warning hadling (they now generated at Field object level not in conversion functions). Optimization: Now Field class descendants use table->in_use member instead of current_thd macro.
60 lines
1.8 KiB
Text
60 lines
1.8 KiB
Text
#
|
|
# Test of SYSTEM time zone handling ( for my_system_gmt_sec()).
|
|
# This script must be run with TZ=MET
|
|
|
|
-- require r/have_met_timezone.require
|
|
disable_query_log;
|
|
select FROM_UNIXTIME(24*3600);
|
|
enable_query_log;
|
|
|
|
# Initialization
|
|
--disable_warnings
|
|
DROP TABLE IF EXISTS t1;
|
|
--enable_warnings
|
|
|
|
# The following is because of daylight saving time
|
|
--replace_result MEST MET
|
|
show variables like "system_time_zone";
|
|
|
|
#
|
|
# Test unix timestamp
|
|
#
|
|
select @a:=FROM_UNIXTIME(1);
|
|
select unix_timestamp(@a);
|
|
|
|
#
|
|
# Test of some values, including some with daylight saving time
|
|
#
|
|
|
|
CREATE TABLE t1 (ts int);
|
|
INSERT INTO t1 (ts) VALUES (Unix_timestamp('2002-10-27 01:00'));
|
|
INSERT INTO t1 (ts) VALUES (Unix_timestamp('2002-10-27 02:00'));
|
|
INSERT INTO t1 (ts) VALUES (Unix_timestamp('2002-10-27 03:00'));
|
|
INSERT INTO t1 (ts) VALUES (Unix_timestamp('2002-10-27 02:00'));
|
|
INSERT INTO t1 (ts) VALUES (Unix_timestamp('2002-10-27 01:00'));
|
|
INSERT INTO t1 (ts) VALUES (Unix_timestamp('2002-10-27 02:00'));
|
|
INSERT INTO t1 (ts) VALUES (Unix_timestamp('2003-03-30 02:59:59'));
|
|
INSERT INTO t1 (ts) VALUES (Unix_timestamp('2003-03-30 03:00:00'));
|
|
INSERT INTO t1 (ts) VALUES (Unix_timestamp('2003-03-30 03:59:59'));
|
|
INSERT INTO t1 (ts) VALUES (Unix_timestamp('2003-03-30 04:00:01'));
|
|
|
|
SELECT ts,from_unixtime(ts) FROM t1;
|
|
DROP TABLE t1;
|
|
|
|
|
|
#
|
|
# Test of warning for spring time-gap values for system time zone
|
|
#
|
|
CREATE TABLE t1 (ts timestamp);
|
|
INSERT INTO t1 (ts) VALUES ('2003-03-30 01:59:59'),
|
|
('2003-03-30 02:59:59'),
|
|
('2003-03-30 03:00:00');
|
|
DROP TABLE t1;
|
|
|
|
#
|
|
# Test for fix for Bug#2523
|
|
#
|
|
select unix_timestamp('1970-01-01 01:00:00'),
|
|
unix_timestamp('1970-01-01 01:00:01'),
|
|
unix_timestamp('2038-01-01 00:59:59'),
|
|
unix_timestamp('2038-01-01 01:00:00');
|