Below is the list of changes that have just been committed into a local
5.1 repository of andrey. When andrey does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html
ChangeSet
1.2244 06/07/10 23:54:46 andrey@lmy004. +5 -0
Remove trailing whitespace.
After merge fixes.
sql/events.cc
1.54 06/07/10 23:54:35 andrey@lmy004. +1 -1
Remove trailing whitespace.
sql/event_scheduler_ng.cc
1.4 06/07/10 23:54:35 andrey@lmy004. +3 -3
Remove trailing whitespace.
Tabs to spaces.
sql/event_queue.cc
1.6 06/07/10 23:54:35 andrey@lmy004. +5 -5
Remove trailing whitespace.
sql/event_db_repository.cc
1.10 06/07/10 23:54:35 andrey@lmy004. +12 -9
After merge fix.
Before closing thread tables check whether table is actuall non-NULL.
And always initialize it to NULL.
sql/event_data_objects.cc
1.69 06/07/10 23:54:35 andrey@lmy004. +10 -52
after merge fix. use thd->strmake instead of strmake_root
Remove commented out code.
Remove trailing whitespace.
# This is a BitKeeper patch. What follows are the unified diffs for the
# set of deltas contained in the patch. The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User: andrey
# Host: lmy004.
# Root: /work/mysql-5.1-runtime-wl3337
--- 1.53/sql/events.cc 2006-07-10 14:42:21 +02:00
+++ 1.54/sql/events.cc 2006-07-10 23:54:35 +02:00
@@ -111,7 +111,7 @@ int sortcmp_lex_string(LEX_STRING s, LEX
Events::get_instance()
RETURN VALUE
- address
+ address
*/
Events *
--- 1.9/sql/event_db_repository.cc 2006-07-10 13:44:33 +02:00
+++ 1.10/sql/event_db_repository.cc 2006-07-10 23:54:35 +02:00
@@ -524,8 +524,10 @@ Event_db_repository::create_event(THD *t
int ret= 0;
CHARSET_INFO *scs= system_charset_info;
TABLE *table;
- char olddb[128];
+ char old_db_buf[NAME_LEN+1];
+ LEX_STRING old_db= { old_db_buf, sizeof(old_db_buf) };
bool dbchanged= FALSE;
+
DBUG_ENTER("Event_db_repository::create_event");
*rows_affected= 0;
@@ -557,8 +559,8 @@ Event_db_repository::create_event(THD *t
}
DBUG_PRINT("info", ("non-existant, go forward"));
- if ((ret= sp_use_new_db(thd, parse_data->dbname.str, olddb, sizeof(olddb), 0,
- &dbchanged)))
+
+ if ((ret= sp_use_new_db(thd, parse_data->dbname, &old_db, 0, &dbchanged)))
{
my_error(ER_BAD_DB_ERROR, MYF(0));
goto err;
@@ -618,14 +620,14 @@ Event_db_repository::create_event(THD *t
*rows_affected= 1;
ok:
if (dbchanged)
- (void) mysql_change_db(thd, olddb, 1);
+ (void) mysql_change_db(thd, old_db.str, 1);
if (table)
close_thread_tables(thd);
DBUG_RETURN(EVEX_OK);
err:
if (dbchanged)
- (void) mysql_change_db(thd, olddb, 1);
+ (void) mysql_change_db(thd, old_db.str, 1);
if (table)
close_thread_tables(thd);
DBUG_RETURN(EVEX_GENERAL_ERROR);
@@ -655,7 +657,7 @@ Event_db_repository::update_event(THD *t
sp_name *new_name)
{
CHARSET_INFO *scs= system_charset_info;
- TABLE *table;
+ TABLE *table= NULL;
int ret= EVEX_OPEN_TABLE_FAILED;
DBUG_ENTER("Event_db_repository::update_event");
@@ -765,7 +767,7 @@ int
Event_db_repository::drop_event(THD *thd, LEX_STRING db, LEX_STRING name,
bool drop_if_exists, uint *rows_affected)
{
- TABLE *table;
+ TABLE *table= NULL;
Open_tables_state backup;
int ret;
@@ -804,7 +806,8 @@ Event_db_repository::drop_event(THD *thd
}
done:
- close_thread_tables(thd);
+ if (table)
+ close_thread_tables(thd);
thd->restore_backup_open_tables_state(&backup);
DBUG_RETURN(ret);
}
@@ -965,7 +968,7 @@ int
Event_db_repository::find_event(THD *thd, LEX_STRING dbname, LEX_STRING name,
Event_basic *et)
{
- TABLE *table;
+ TABLE *table= NULL;
int ret;
DBUG_ENTER("Event_db_repository::find_event");
DBUG_PRINT("enter", ("name: %*s", name.length, name.str));
--- 1.5/sql/event_queue.cc 2006-07-10 13:44:33 +02:00
+++ 1.6/sql/event_queue.cc 2006-07-10 23:54:35 +02:00
@@ -42,7 +42,7 @@
SYNOPSIS
event_queue_element_data_compare_q()
-
+
vptr - not used (set it to NULL)
a - first Event_queue_element object
b - second Event_queue_element object
@@ -51,7 +51,7 @@
-1 - a->execute_at < b->execute_at
0 - a->execute_at == b->execute_at
1 - a->execute_at > b->execute_at
-
+
NOTES
execute_at.second_part is not considered during comparison
*/
@@ -409,7 +409,7 @@ Event_queue::drop_matching_events(THD *t
DBUG_ENTER("Event_queue::drop_matching_events");
DBUG_PRINT("enter", ("pattern=%*s state=%d", pattern.length, pattern.str));
- uint i= 0;
+ uint i= 0;
while (i < queue.elements)
{
Event_queue_element *et= (Event_queue_element *) queue_element(&queue, i);
@@ -438,7 +438,7 @@ Event_queue::drop_matching_events(THD *t
not notify the scheduler and it will realize the change when it
wakes up from timedwait.
*/
-
+
DBUG_VOID_RETURN;
}
@@ -499,7 +499,7 @@ Event_queue::events_count()
SYNOPSIS
Event_queue::load_events_from_db()
thd - Thread context. Used for memory allocation in some cases.
-
+
RETURN VALUE
0 OK
!0 Error (EVEX_OPEN_TABLE_FAILED, EVEX_MICROSECOND_UNSUP,
--- 1.3/sql/event_scheduler_ng.cc 2006-07-10 13:44:33 +02:00
+++ 1.4/sql/event_scheduler_ng.cc 2006-07-10 23:54:35 +02:00
@@ -191,7 +191,7 @@ pthread_handler_t
event_scheduler_ng_thread(void *arg)
{
/* needs to be first for thread_stack */
- THD *thd= (THD *)(*(struct scheduler_param *) arg).thd;
+ THD *thd= (THD *)(*(struct scheduler_param *) arg).thd;
thd->thread_stack= (char *)&thd; // remember where our stack is
DBUG_ENTER("event_scheduler_ng_thread");
@@ -207,7 +207,7 @@ event_scheduler_ng_thread(void *arg)
#if !defined(__WIN__) && !defined(OS2) && !defined(__NETWARE__)
sigset_t set;
- VOID(sigemptyset(&set)); // Get mask in use
+ VOID(sigemptyset(&set)); // Get mask in use
VOID(pthread_sigmask(SIG_UNBLOCK,&set,&thd->block_signals));
#endif
@@ -256,7 +256,7 @@ event_worker_ng_thread(void *arg)
#if !defined(__WIN__) && !defined(OS2) && !defined(__NETWARE__)
sigset_t set;
- VOID(sigemptyset(&set)); // Get mask in use
+ VOID(sigemptyset(&set)); // Get mask in use
VOID(pthread_sigmask(SIG_UNBLOCK, &set, &thd->block_signals));
#endif
thd->init_for_queries();
--- 1.68/sql/event_data_objects.cc 2006-07-10 14:42:21 +02:00
+++ 1.69/sql/event_data_objects.cc 2006-07-10 23:54:35 +02:00
@@ -87,21 +87,16 @@ void
Event_parse_data::init_name(THD *thd, sp_name *spn)
{
DBUG_ENTER("Event_parse_data::init_name");
- /* During parsing, we must use thd->mem_root */
- MEM_ROOT *root= thd->mem_root;
/* We have to copy strings to get them into the right memroot */
dbname.length= spn->m_db.length;
- dbname.str= strmake_root(root, spn->m_db.str, spn->m_db.length);
+ dbname.str= thd->strmake(spn->m_db.str, spn->m_db.length);
name.length= spn->m_name.length;
- name.str= strmake_root(root, spn->m_name.str, spn->m_name.length);
+ name.str= thd->strmake(spn->m_name.str, spn->m_name.length);
if (spn->m_qname.length == 0)
spn->init_qname(thd);
- DBUG_PRINT("dbname", ("len=%d db=%s",dbname.length, dbname.str));
- DBUG_PRINT("name", ("len=%d name=%s",name.length, name.str));
-
DBUG_VOID_RETURN;
}
@@ -116,7 +111,7 @@ Event_parse_data::init_name(THD *thd, sp
NOTE
The body is extracted by copying all data between the
start of the body set by another method and the current pointer in Lex.
-
+
Some questionable removal of characters is done in here, and that part
should be refactored when the parser is smarter.
*/
@@ -187,7 +182,7 @@ Event_parse_data::init_body(THD *thd)
SYNOPSIS
Event_parse_data::init_definer()
-
+
RETURN VALUE
0 OK
*/
@@ -615,7 +610,7 @@ Event_basic::Event_basic()
dbname.length= name.length= 0;
DBUG_VOID_RETURN;
}
-
+
/*
Destructor
@@ -652,7 +647,7 @@ Event_basic::load_string_fields(Field **
LEX_STRING *field_value;
DBUG_ENTER("Event_basic::load_string_fields");
-
+
va_start(args, fields);
field_name= (enum enum_events_table_field) va_arg(args, int);
while (field_name != ET_FIELD_COUNT)
@@ -668,7 +663,7 @@ Event_basic::load_string_fields(Field **
field_name= (enum enum_events_table_field) va_arg(args, int);
}
va_end(args);
-
+
DBUG_RETURN(ret);
}
@@ -757,7 +752,7 @@ Event_job_data::Event_job_data():
*/
Event_job_data::~Event_job_data()
-{
+{
free_sp();
}
@@ -819,25 +814,6 @@ Event_job_data::load_from_row(TABLE *tab
ET_FIELD_BODY, &body, ET_FIELD_DEFINER, &definer,
ET_FIELD_COUNT);
-/*
- if ((dbname.str= get_field(&mem_root, table->field[ET_FIELD_DB])) == NullS)
- goto error;
- dbname.length= strlen(dbname.str);
-
- if ((name.str= get_field(&mem_root, table->field[ET_FIELD_NAME])) == NullS)
- goto error;
- name.length= strlen(name.str);
-
- if ((body.str= get_field(&mem_root, table->field[ET_FIELD_BODY])) == NullS)
- goto error;
- body.length= strlen(body.str);
-
- if ((definer.str= get_field(&mem_root,
- table->field[ET_FIELD_DEFINER])) == NullS)
- goto error;
-
- definer.length= strlen(definer.str);
-*/
ptr= strchr(definer.str, '@');
if (! ptr)
@@ -848,7 +824,7 @@ Event_job_data::load_from_row(TABLE *tab
definer_user.length= len;
len= definer.length - len - 1;
/* 1:because of @ */
- definer_host.str= strmake_root(&mem_root, ptr + 1, len);
+ definer_host.str= strmake_root(&mem_root, ptr + 1, len);
definer_host.length= len;
sql_mode= (ulong) table->field[ET_FIELD_SQL_MODE]->val_int();
@@ -891,26 +867,13 @@ Event_queue_element::load_from_row(TABLE
load_string_fields(table->field, ET_FIELD_DB, &dbname, ET_FIELD_NAME, &name,
ET_FIELD_DEFINER, &definer, ET_FIELD_COUNT);
-/*
- if ((dbname.str= get_field(&mem_root, table->field[ET_FIELD_DB])) == NullS)
- goto error;
- dbname.length= strlen(dbname.str);
-
- if ((name.str= get_field(&mem_root, table->field[ET_FIELD_NAME])) == NullS)
- goto error;
- name.length= strlen(name.str);
- if ((definer.str= get_field(&mem_root,
- table->field[ET_FIELD_DEFINER])) == NullS)
- goto error;
- definer.length= strlen(definer.str);
-*/
starts_null= table->field[ET_FIELD_STARTS]->is_null();
res1= table->field[ET_FIELD_STARTS]->get_date(&starts, TIME_NO_ZERO_DATE);
ends_null= table->field[ET_FIELD_ENDS]->is_null();
res2= table->field[ET_FIELD_ENDS]->get_date(&ends, TIME_NO_ZERO_DATE);
-
+
if (!table->field[ET_FIELD_INTERVAL_EXPR]->is_null())
expression= table->field[ET_FIELD_INTERVAL_EXPR]->val_int();
else
@@ -990,12 +953,7 @@ Event_timed::load_from_row(TABLE *table)
goto error;
load_string_fields(table->field, ET_FIELD_BODY, &body, ET_FIELD_COUNT);
-/*
- if ((body.str= get_field(&mem_root, table->field[ET_FIELD_BODY])) == NullS)
- goto error;
- body.length= strlen(body.str);
-*/
ptr= strchr(definer.str, '@');
if (! ptr)
| Thread |
|---|
| • bk commit into 5.1 tree (andrey:1.2244) | ahristov | 10 Jul |