summaryrefslogtreecommitdiff
path: root/sql/event_timed.cc
diff options
context:
space:
mode:
Diffstat (limited to 'sql/event_timed.cc')
-rw-r--r--sql/event_timed.cc27
1 files changed, 19 insertions, 8 deletions
diff --git a/sql/event_timed.cc b/sql/event_timed.cc
index 4d3dea42e34..deab6e84c4f 100644
--- a/sql/event_timed.cc
+++ b/sql/event_timed.cc
@@ -413,6 +413,16 @@ event_timed::init_definer(THD *thd)
definer_host.str= strdup_root(thd->mem_root, thd->security_ctx->priv_host);
definer_host.length= strlen(thd->security_ctx->priv_host);
+
+ definer.length= definer_user.length + definer_host.length + 1;
+ definer.str= alloc_root(thd->mem_root, definer.length + 1);
+
+ memcpy(definer.str, definer_user.str, definer_user.length);
+ definer.str[definer_user.length]= '@';
+
+ memcpy(definer.str + definer_user.length + 1, definer_host.str,
+ definer_host.length);
+ definer.str[definer.length]= '\0';
DBUG_RETURN(0);
}
@@ -486,7 +496,6 @@ event_timed::load_from_row(MEM_ROOT *mem_root, TABLE *table)
et->definer_host.str= strmake_root(mem_root, ptr + 1, len);//1: because of @
et->definer_host.length= len;
-
res1= table->field[EVEX_FIELD_STARTS]->
get_date(&et->starts, TIME_NO_ZERO_DATE);
@@ -542,8 +551,7 @@ event_timed::load_from_row(MEM_ROOT *mem_root, TABLE *table)
goto error;
DBUG_PRINT("load_from_row", ("Event [%s] is [%s]", et->name.str, ptr));
- et->status= (ptr[0]=='E'? MYSQL_EVENT_ENABLED:
- MYSQL_EVENT_DISABLED);
+ et->status= (ptr[0]=='E'? MYSQL_EVENT_ENABLED:MYSQL_EVENT_DISABLED);
// ToDo : Andrey . Find a way not to allocate ptr on event_mem_root
if ((ptr= get_field(mem_root,
@@ -681,7 +689,8 @@ event_timed::compute_next_execution_time()
}
time((time_t *)&now);
my_tz_UTC->gmt_sec_to_TIME(&time_now, now);
-/*
+
+#ifdef ANDREY_0
sql_print_information("[%s.%s]", dbname.str, name.str);
sql_print_information("time_now : [%d-%d-%d %d:%d:%d ]",
time_now.year, time_now.month, time_now.day,
@@ -696,7 +705,8 @@ event_timed::compute_next_execution_time()
last_executed.month, last_executed.day,
last_executed.hour, last_executed.minute,
last_executed.second);
-*/
+#endif
+
//if time_now is after ends don't execute anymore
if (ends.year && (tmp= my_time_compare(&ends, &time_now)) == -1)
{
@@ -871,7 +881,7 @@ event_timed::drop(THD *thd)
if (evex_open_event_table(thd, TL_WRITE, &table))
DBUG_RETURN(-1);
- if (evex_db_find_event_aux(thd, dbname, name, table))
+ if (evex_db_find_event_aux(thd, dbname, name, definer, table))
DBUG_RETURN(-2);
if ((ret= table->file->ha_delete_row(table->record[0])))
@@ -907,11 +917,12 @@ event_timed::update_fields(THD *thd)
}
- if ((ret= evex_db_find_event_aux(thd, dbname, name, table)))
+ if ((ret= evex_db_find_event_aux(thd, dbname, name, definer, table)))
goto done;
store_record(table,record[1]);
- table->timestamp_field_type= TIMESTAMP_NO_AUTO_SET; // Don't update create on row update.
+ // Don't update create on row update.
+ table->timestamp_field_type= TIMESTAMP_NO_AUTO_SET;
if (last_executed_changed)
{