############# mysql-test\t\time_zone_func.test #############################
#                                                                          #
# Variable Name: time_zone                                                 #
# Scope: GLOBAL, SESSION                                                   #
# Access Type: Dynamic                                                     #
# Data Type: STRING                                                        #
# Default Value: TRUE 1, FALSE 0                                           #
# Values:       FALSE 0                                                    #
#                                                                          #
#                                                                          #
# Creation Date: 2008-02-25                                                #
# Author:  Sharique Abdullah                                               #
#                                                                          #
# Description: Test Cases of Dynamic System Variable "time_zone"           #
#              that checks behavior of this variable in the following ways #
#              * Functionality based on different values                   #
#                                                                          #
# Reference: http://dev.mysql.com/doc/refman/5.1/en/set-option.html        #
#                                                                          #
############################################################################

--echo ** Setup **
--echo
#
# Setup
#

SET @session_time_zone = @@SESSION.time_zone;
SET @global_time_zone = @@GLOBAL.time_zone;

CREATE TABLE t1 (a datetime);
CREATE TABLE t2 (a timestamp);

--echo '#-----------------------------FN_DYNVARS_177_01--------------------#'
#
# Value DEFAULT
#
SET @@time_zone = DEFAULT;

SELECT @@time_zone;
--echo SYSTEM Expected

--echo '#-----------------------------FN_DYNVARS_177_02-------------------#'
#
# Testing difference values
#

SET @@time_zone = '+05:00';

SELECT @@time_zone;
--echo +05:00 Expected

SET @@time_zone = '-01:00';

SELECT @@time_zone;
--echo -01:00 Expected

SET @@time_zone = '+00:00';

SELECT @@time_zone;
--echo +00:00 Expected

SET @@time_zone = '-00:00';

SELECT @@time_zone;
--echo -00:00 Expected

--echo '#-----------------------------FN_DYNVARS_177_03----------------#'
#
# Setting possible values
#

SET @@time_zone = '+00:00';

INSERT INTO t1 VALUES('2008-03-05 16:28:00');
INSERT INTO t1 VALUES('1970-01-01 00:05:00'),('1970-01-01 01:05:00');
INSERT INTO t2 VALUES(20080305162800);
INSERT INTO t2 VALUES(19730101235900);
INSERT INTO t2 VALUES('1970-01-01 00:05:00'),('1970-01-01 01:05:00');
INSERT INTO t2 VALUES(19700101000500);

SELECT a,UNIX_TIMESTAMP(a) FROM t1;
SELECT a,UNIX_TIMESTAMP(a) FROM t2;

SET @@time_zone = 'MET';

SELECT a,UNIX_TIMESTAMP(a) FROM t1;
SELECT a,UNIX_TIMESTAMP(a) FROM t2;

SET @@time_zone = '+05:00';

SELECT a,UNIX_TIMESTAMP(a) FROM t1;
SELECT a,UNIX_TIMESTAMP(a) FROM t2;

SET @@time_zone = '+06:00';
SELECT a,UNIX_TIMESTAMP(a) FROM t1;
SELECT a,UNIX_TIMESTAMP(a) FROM t2;

SET @@time_zone = '+01:00';

SELECT a,UNIX_TIMESTAMP(a) FROM t1;
SELECT a,UNIX_TIMESTAMP(a) FROM t2;

SET @@time_zone = '+02:00';

SELECT a,UNIX_TIMESTAMP(a) FROM t1;
SELECT a,UNIX_TIMESTAMP(a) FROM t2;

SET @@time_zone = '+00:00';

SELECT a,UNIX_TIMESTAMP(a) FROM t1;
SELECT a,UNIX_TIMESTAMP(a) FROM t2;

SET @@time_zone = '+06:00';

SELECT a,UNIX_TIMESTAMP(a) FROM t1;
SELECT a,UNIX_TIMESTAMP(a) FROM t2;

--echo Potential Feature: upon recovery of timezone,
--echo the original value of the timestamp should be recovered.

--echo '#-----------------------------FN_DYNVARS_177_04--------------------#'
#
# Testing invalid values
#
--error ER_UNKNOWN_TIME_ZONE
SET @@time_zone = '6';


--echo '#-----------------------------FN_DYNVARS_177_05---------------#'
#
# Session data integrity check & GLOBAL Value check
#

SET GLOBAL time_zone = 'SYSTEM';

--echo ** Connecting con_int1 using root **
connect (con_int1,localhost,root,,);

--echo ** Connection con_int1 **
connection con_int1;
SELECT @@SESSION.time_zone;
--echo SYSTEM Expected

SET SESSION time_zone = '+05:00';

--echo ** Connecting con_int2 using root **
connect (con_int2,localhost,root,,);

--echo ** Connection con_int2 **
connection con_int2;
SELECT @@SESSION.time_zone;
--echo SYSTEM Expected

SET SESSION time_zone = '-10:00';

--echo ** Connection con_int2 **
connection con_int2;
SELECT @@SESSION.time_zone;
--echo -10:00 Expected

--echo ** Connection con_int1 **
connection con_int1;
SELECT @@SESSION.time_zone;
--echo +05:00 Expected


SELECT @@GLOBAL.time_zone;
--echo SYSTEM Expected

--echo ** Connection default **
connection default;

--echo Disconnecting Connections con_int1, con_int2
disconnect con_int1;
disconnect con_int2;


#
# Cleanup
#


SET @@SESSION.time_zone = @session_time_zone;
SET @@GLOBAL.time_zone = @global_time_zone;

DROP TABLE t1;
DROP TABLE t2;
