mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
BUG#15101 SYSDATE() disregards SET TIMESTAMP.
After the ChangeSet 1.1892.20.1 2005/08/24 (Bug #12562) SYSDATE() is not an alias of NOW() and is unsafe for replication. `SYSDATE()' backward compatible aliasing clashes with the idea #12562 fix. To make it safe-replicatable we have to either use RBR or to restore the pre-5.0 style. --sysdate-is-now command line flag was introduced to provide backward compatibility. sql/mysqld.cc: New option to force SYSDATE's backward compatible with 4.1 aliasing to NOW (not default) sql/sql_class.h: new slot to fill at init time and check at parse sql/sql_yacc.yy: calling NOW's branches when --sysdate-is-now mysql-test/r/sysdate_is_now.result: New BitKeeper file ``mysql-test/r/sysdate_is_now.result'' mysql-test/t/sysdate_is_now-master.opt: New BitKeeper file ``mysql-test/t/sysdate_is_now-master.opt'' mysql-test/t/sysdate_is_now.test: New BitKeeper file ``mysql-test/t/sysdate_is_now.test''
This commit is contained in:
@ -4578,6 +4578,7 @@ enum options_mysqld
|
||||
OPT_DATETIME_FORMAT,
|
||||
OPT_LOG_QUERIES_NOT_USING_INDEXES,
|
||||
OPT_DEFAULT_TIME_ZONE,
|
||||
OPT_SYSDATE_IS_NOW,
|
||||
OPT_OPTIMIZER_SEARCH_DEPTH,
|
||||
OPT_OPTIMIZER_PRUNE_LEVEL,
|
||||
OPT_UPDATABLE_VIEWS_WITH_LIMIT,
|
||||
@ -5935,6 +5936,10 @@ The minimum value for this variable is 4096.",
|
||||
(gptr*) &max_system_variables.net_wait_timeout, 0, GET_ULONG,
|
||||
REQUIRED_ARG, NET_WAIT_TIMEOUT, 1, IF_WIN(INT_MAX32/1000, LONG_TIMEOUT),
|
||||
0, 1, 0},
|
||||
{"sysdate-is-now", OPT_SYSDATE_IS_NOW,
|
||||
"Non-default flag to alias SYSDATE() to NOW() to be safe-replicatable. Since 5.0 SYSDATE returns a `dynamic' value different for different invocation even within a query",
|
||||
(gptr*) &global_system_variables.sysdate_is_now,
|
||||
0, 0, GET_BOOL, NO_ARG, 0, 0, 1, 0, 1, 0},
|
||||
{0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user