summaryrefslogtreecommitdiff
path: root/sql/set_var.cc
diff options
context:
space:
mode:
authorMichael Widenius <monty@askmonty.org>2010-08-02 12:01:24 +0300
committerMichael Widenius <monty@askmonty.org>2010-08-02 12:01:24 +0300
commite0a6b02c5d0a311e7167295494786077009743d1 (patch)
tree72c934fe42261ad5de3139961e092f57e9d147df /sql/set_var.cc
parentd2f8b7d04503478ab6b6998194a2070891f0c2bb (diff)
parent6ad06b15222300e4eed4fe3972d1ad249c4c42a2 (diff)
downloadmariadb-git-e0a6b02c5d0a311e7167295494786077009743d1.tar.gz
Merge with MySQL 5.1.49
Fixed Bug#52005 'JOIN_TAB->dependent' may be incorrectly propageted for multilevel outer joins' in a better way (patch from Sergey Petrunya)
Diffstat (limited to 'sql/set_var.cc')
-rw-r--r--sql/set_var.cc29
1 files changed, 25 insertions, 4 deletions
diff --git a/sql/set_var.cc b/sql/set_var.cc
index d546494e6a9..9198832dd3c 100644
--- a/sql/set_var.cc
+++ b/sql/set_var.cc
@@ -2819,10 +2819,26 @@ int set_var_collation_client::update(THD *thd)
/****************************************************************************/
+bool sys_var_timestamp::check(THD *thd, set_var *var)
+{
+ time_t val;
+ var->save_result.ulonglong_value= var->value->val_int();
+ val= (time_t) var->save_result.ulonglong_value;
+ if (val < (time_t) MY_TIME_T_MIN || val > (time_t) MY_TIME_T_MAX)
+ {
+ my_message(ER_UNKNOWN_ERROR,
+ "This version of MySQL doesn't support dates later than 2038",
+ MYF(0));
+ return TRUE;
+ }
+ return FALSE;
+}
+
+
bool sys_var_timestamp::update(THD *thd, set_var *var)
{
thd->set_time((time_t) var->save_result.ulonglong_value);
- return 0;
+ return FALSE;
}
@@ -4297,8 +4313,14 @@ bool sys_var_thd_dbug::check(THD *thd, set_var *var)
bool sys_var_thd_dbug::update(THD *thd, set_var *var)
{
-#ifndef DBUG_OFF
- const char *command= var ? var->value->str_value.c_ptr() : "";
+ char buf[256];
+ String str(buf, sizeof(buf), system_charset_info), *res;
+ const char *command;
+
+ res= var->value->val_str(&str);
+ command= res ? res->c_ptr(): 0;
+ if (!command)
+ command= "";
if (var->type == OPT_GLOBAL)
DBUG_SET_INITIAL(command);
@@ -4318,7 +4340,6 @@ bool sys_var_thd_dbug::update(THD *thd, set_var *var)
DBUG_PUSH(command);
}
}
-#endif
return 0;
}