#At file:///work/bzr/mysql-5.1-37702/
2727 Horst Hunger 2008-11-26
Fix for bug#37702: Inserted the review results into the patch.
added:
mysql-test/r/timestamp_sysdate_is_now_func.result
mysql-test/t/timestamp_sysdate_is_now_func-master.opt
mysql-test/t/timestamp_sysdate_is_now_func.test
modified:
mysql-test/r/timestamp_func.result
mysql-test/t/timestamp_func.test
=== modified file 'mysql-test/r/timestamp_func.result'
--- a/mysql-test/r/timestamp_func.result 2008-04-23 09:36:17 +0000
+++ b/mysql-test/r/timestamp_func.result 2008-11-26 08:33:41 +0000
@@ -1,33 +1,25 @@
-** Setup **
-
-** Connecting con0 using root **
** Connecting con1 using root **
-'#-----------------------------FN_DYNVARS_179_01------------------#'
-** Connection con0 **
-SET @ts_old = @@SESSION.timestamp;
-waiting 1 sec
-SET @ts_new = @@SESSION.timestamp;
-SELECT @ts_new - @ts_old >= 1 AS 'Timestamp Difference';
-Timestamp Difference
+SELECT date(now()) = date(sysdate());
+date(now()) = date(sysdate())
+1
+SET @@session.timestamp = 1100000000;
+SELECT date(now()) != date(sysdate());
+date(now()) != date(sysdate())
+1
+** Connecting con0 using root **
+SELECT @@session.timestamp != 1100000000;
+@@session.timestamp != 1100000000
+1
+SET @@session.timestamp = 1000000000;
+SELECT date(now()) != date(sysdate());
+date(now()) != date(sysdate())
1
-1 means >=1 expected is true
** Connection con1 **
-SET @ts_old = @@SESSION.timestamp;
-waiting 4 sec
-SET @ts_new = @@SESSION.timestamp;
-SELECT @ts_new - @ts_old >= 4 AS 'Timestamp Difference';
-Timestamp Difference
-1
-1 means >=4 expected is true
-'#-----------------------------FN_DYNVARS_179_02---------------------#'
-SET @ts_old = @@SESSION.timestamp;
-Changing time zone
-SET time_zone = 'MET';
-SET @ts_new = @@SESSION.timestamp;
-SELECT @ts_new - @ts_old >= 1 AS 'Timestamp Difference';
-Timestamp Difference
+SELECT @@session.timestamp != 1000000000;
+@@session.timestamp != 1000000000
+1
+SELECT @@session.timestamp = 1100000000;
+@@session.timestamp = 1100000000
1
-1 means >=1 expected is true
-** Cleanup **
** Connection default **
Disconnecting Connections con0, con1
=== added file 'mysql-test/r/timestamp_sysdate_is_now_func.result'
--- a/mysql-test/r/timestamp_sysdate_is_now_func.result 1970-01-01 00:00:00 +0000
+++ b/mysql-test/r/timestamp_sysdate_is_now_func.result 2008-11-26 08:33:41 +0000
@@ -0,0 +1,25 @@
+** Connecting con1 using root **
+SELECT date(now()) = date(sysdate());
+date(now()) = date(sysdate())
+1
+SET @@session.timestamp = 1100000000;
+SELECT date(now()) != date(sysdate());
+date(now()) != date(sysdate())
+0
+** Connecting con0 using root **
+SELECT @@session.timestamp != 1100000000;
+@@session.timestamp != 1100000000
+1
+SET @@session.timestamp = 1000000000;
+SELECT date(now()) != date(sysdate());
+date(now()) != date(sysdate())
+0
+** Connection con1 **
+SELECT @@session.timestamp != 1000000000;
+@@session.timestamp != 1000000000
+1
+SELECT @@session.timestamp = 1100000000;
+@@session.timestamp = 1100000000
+1
+** Connection default **
+Disconnecting Connections con0, con1
=== modified file 'mysql-test/t/timestamp_func.test'
--- a/mysql-test/t/timestamp_func.test 2008-04-23 09:36:17 +0000
+++ b/mysql-test/t/timestamp_func.test 2008-11-26 08:33:41 +0000
@@ -9,6 +9,8 @@
# Creation Date: 2008-02-25 #
# Author: Sharique Abdullah #
# #
+# Modified: HHunger 2008-08-28 Reimplemented the test completely. #
+# #
# Description: Test Cases of Dynamic System Variable "timestamp" #
# that checks behavior of this variable in the following ways #
# * Functionality based on different values #
@@ -17,63 +19,32 @@
# #
############################################################################
---echo ** Setup **
---echo
-#
-# Setup
-#
+# Change timestamp which must have an effect on now(), but not on sysdate().
+# Use Unix epoch timestamp
+# All comparisons must deliver true(1)
+# Exception: --sysdate-is-now switches off this behaviour and must not be set.
+
+--echo ** Connecting con1 using root **
+connect (con1,localhost,root,,);
+SELECT date(now()) = date(sysdate());
+SET @@session.timestamp = 1100000000;
+SELECT date(now()) != date(sysdate());
+
+# Assure that setting of the variable has no effect on other session.
--echo ** Connecting con0 using root **
connect (con0,localhost,root,,);
---echo ** Connecting con1 using root **
-connect (con1, localhost, root,,);
+SELECT @@session.timestamp != 1100000000;
+SET @@session.timestamp = 1000000000;
+SELECT date(now()) != date(sysdate());
---echo '#-----------------------------FN_DYNVARS_179_01------------------#'
-#
-# Checking for connection 1
-#
-
---echo ** Connection con0 **
-connection con0;
-SET @ts_old = @@SESSION.timestamp;
---echo waiting 1 sec
---sleep 1
-SET @ts_new = @@SESSION.timestamp;
-SELECT @ts_new - @ts_old >= 1 AS 'Timestamp Difference';
---echo 1 means >=1 expected is true
-
-
-#
-# Checking for connection 2
-#
--echo ** Connection con1 **
connection con1;
-SET @ts_old = @@SESSION.timestamp;
---echo waiting 4 sec
---sleep 4
-SET @ts_new = @@SESSION.timestamp;
-SELECT @ts_new - @ts_old >= 4 AS 'Timestamp Difference';
---echo 1 means >=4 expected is true
-
---echo '#-----------------------------FN_DYNVARS_179_02---------------------#'
-#
-# Testing timezone change effect
-#
-
-SET @ts_old = @@SESSION.timestamp;
---sleep 1
---echo Changing time zone
-SET time_zone = 'MET';
-SET @ts_new = @@SESSION.timestamp;
-SELECT @ts_new - @ts_old >= 1 AS 'Timestamp Difference';
---echo 1 means >=1 expected is true
-
-#
-# Cleanup
-#
---echo ** Cleanup **
+SELECT @@session.timestamp != 1000000000;
+SELECT @@session.timestamp = 1100000000;
--echo ** Connection default **
connection default;
--echo Disconnecting Connections con0, con1
disconnect con0;
disconnect con1;
+
=== added file 'mysql-test/t/timestamp_sysdate_is_now_func-master.opt'
--- a/mysql-test/t/timestamp_sysdate_is_now_func-master.opt 1970-01-01 00:00:00 +0000
+++ b/mysql-test/t/timestamp_sysdate_is_now_func-master.opt 2008-11-26 08:33:41 +0000
@@ -0,0 +1 @@
+--sysdate-is-now
=== added file 'mysql-test/t/timestamp_sysdate_is_now_func.test'
--- a/mysql-test/t/timestamp_sysdate_is_now_func.test 1970-01-01 00:00:00 +0000
+++ b/mysql-test/t/timestamp_sysdate_is_now_func.test 2008-11-26 08:33:41 +0000
@@ -0,0 +1,47 @@
+############################################################################
+# #
+# Variable Name: timestamp with sysdate-is-now #
+# Scope: GLOBAL #
+# Access Type: Dynamic #
+# Data Type: INTEGER #
+# #
+# #
+# Creation Date: 2008-11-25 #
+# Author: Horst Hunger #
+# #
+# Description: Test Cases of Dynamic System Variable "timestamp" #
+# that checks behavior of this variable in the following ways #
+# * Like timstamp_func, but with set "sysdate-is-now". #
+# #
+# Reference: http://dev.mysql.com/doc/refman/5.1/en/set-option.html #
+# #
+############################################################################
+
+# Use Unix epoch timestamp
+# Due to "--sysdate-is-now" timestamp must have an effect on both.
+# See also timestamp_func.test.
+
+--echo ** Connecting con1 using root **
+connect (con1,localhost,root,,);
+SELECT date(now()) = date(sysdate());
+SET @@session.timestamp = 1100000000;
+SELECT date(now()) != date(sysdate());
+
+# Assure that setting of the variable has no effect on other session.
+--echo ** Connecting con0 using root **
+connect (con0,localhost,root,,);
+SELECT @@session.timestamp != 1100000000;
+SET @@session.timestamp = 1000000000;
+SELECT date(now()) != date(sysdate());
+
+--echo ** Connection con1 **
+connection con1;
+SELECT @@session.timestamp != 1000000000;
+SELECT @@session.timestamp = 1100000000;
+
+--echo ** Connection default **
+connection default;
+--echo Disconnecting Connections con0, con1
+disconnect con0;
+disconnect con1;
+
| Thread |
|---|
| • bzr commit into mysql-5.1 branch (horst:2727) Bug#37702 | Horst Hunger | 26 Nov |