List:Commits« Previous MessageNext Message »
From:ahristov Date:February 28 2006 1:44pm
Subject:bk commit into 5.1 tree (andrey:1.2192) BUG#16537
View as plain text  
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.2192 06/02/28 14:43:49 andrey@lmy004. +4 -0
  fix for bug#16537
  (post-review pre-push changes)
  coding style (mostly trailing spaces removed)

  sql/event_timed.cc
    1.40 06/02/28 14:43:41 andrey@lmy004. +18 -20
    - fix coding style

  sql/event_executor.cc
    1.36 06/02/28 14:43:41 andrey@lmy004. +60 -59
    - fix coding style (C++ to C comments, remove trailing spaces)
    - fix wrong indexing buggie not found till now (queue indexing is 0 based,
      not 1 based)

  sql/event.cc
    1.35 06/02/28 14:43:41 andrey@lmy004. +98 -100
    - remove trailing spaces
    - add a missing initializer (gcc warning)
    - C++ to C comments

  mysql-test/r/events.result
    1.27 06/02/28 14:43:41 andrey@lmy004. +4 -4
    fix result file

# 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-bug16537

--- 1.26/mysql-test/r/events.result	2006-02-28 11:46:00 +01:00
+++ 1.27/mysql-test/r/events.result	2006-02-28 14:43:41 +01:00
@@ -40,7 +40,7 @@ drop event event2;
 CREATE EVENT event_starts_test ON SCHEDULE EVERY 10 SECOND COMMENT "" DO SELECT 1;
 SHOW EVENTS;
 Db	Name	Definer	Type	Execute at	Interval value	Interval field	Starts	Ends	Status
-events_test	event_starts_test	root@localhost	RECURRING	NULL	10	INTERVAL_SECOND	#	#	ENABLED
+events_test	event_starts_test	root@localhost	RECURRING	NULL	10	SECOND	#	#	ENABLED
 SELECT starts IS NULL, ends IS NULL, comment FROM mysql.event WHERE db='events_test' AND name='event_starts_test';
 starts IS NULL	ends IS NULL	comment
 0	1	
@@ -69,21 +69,21 @@ DROP EVENT event_starts_test;
 CREATE EVENT event_starts_test ON SCHEDULE EVERY 20 SECOND STARTS '2020-02-02 20:00:02' ENDS '2022-02-02 20:00:02' DO SELECT 2;
 SHOW EVENTS;
 Db	Name	Definer	Type	Execute at	Interval value	Interval field	Starts	Ends	Status
-events_test	event_starts_test	root@localhost	RECURRING	NULL	20	INTERVAL_SECOND	#	#	ENABLED
+events_test	event_starts_test	root@localhost	RECURRING	NULL	20	SECOND	#	#	ENABLED
 SELECT starts IS NULL, ends IS NULL, comment FROM mysql.event WHERE db='events_test' AND name='event_starts_test';
 starts IS NULL	ends IS NULL	comment
 0	0	
 ALTER EVENT event_starts_test COMMENT "non-empty comment";
 SHOW EVENTS;
 Db	Name	Definer	Type	Execute at	Interval value	Interval field	Starts	Ends	Status
-events_test	event_starts_test	root@localhost	RECURRING	NULL	20	INTERVAL_SECOND	#	#	ENABLED
+events_test	event_starts_test	root@localhost	RECURRING	NULL	20	SECOND	#	#	ENABLED
 SELECT starts IS NULL, ends IS NULL, comment FROM mysql.event WHERE db='events_test' AND name='event_starts_test';
 starts IS NULL	ends IS NULL	comment
 0	0	non-empty comment
 ALTER EVENT event_starts_test COMMENT "";
 SHOW EVENTS;
 Db	Name	Definer	Type	Execute at	Interval value	Interval field	Starts	Ends	Status
-events_test	event_starts_test	root@localhost	RECURRING	NULL	20	INTERVAL_SECOND	#	#	ENABLED
+events_test	event_starts_test	root@localhost	RECURRING	NULL	20	SECOND	#	#	ENABLED
 DROP EVENT event_starts_test;
 create event e_43 on schedule every 1 second do set @a = 5;
 set global event_scheduler = 1;

--- 1.34/sql/event.cc	2006-02-28 11:46:00 +01:00
+++ 1.35/sql/event.cc	2006-02-28 14:43:41 +01:00
@@ -69,7 +69,7 @@ time_t mysql_event_last_create_time= 0L;
 
 static TABLE_FIELD_W_TYPE event_table_fields[EVEX_FIELD_COUNT] = {
   {
-    {(char *) STRING_WITH_LEN("db")},            
+    {(char *) STRING_WITH_LEN("db")},
     {(char *) STRING_WITH_LEN("char(64)")},
     {(char *) STRING_WITH_LEN("utf8")}
   }, 
@@ -120,6 +120,7 @@ static TABLE_FIELD_W_TYPE event_table_fi
   {
     {(char *) STRING_WITH_LEN("last_executed")},
     {(char *) STRING_WITH_LEN("datetime")},
+    {NULL, 0}
   },
   {
     {(char *) STRING_WITH_LEN("starts")},
@@ -162,25 +163,25 @@ static TABLE_FIELD_W_TYPE event_table_fi
 
 
 LEX_STRING interval_type_to_name[] = {
-  {(char *) STRING_WITH_LEN("YEAR")}, 
-  {(char *) STRING_WITH_LEN("QUARTER")}, 
-  {(char *) STRING_WITH_LEN("MONTH")}, 
-  {(char *) STRING_WITH_LEN("DAY")}, 
-  {(char *) STRING_WITH_LEN("HOUR")}, 
-  {(char *) STRING_WITH_LEN("MINUTE")}, 
-  {(char *) STRING_WITH_LEN("WEEK")}, 
-  {(char *) STRING_WITH_LEN("SECOND")}, 
-  {(char *) STRING_WITH_LEN("MICROSECOND")}, 
-  {(char *) STRING_WITH_LEN("YEAR_MONTH")}, 
-  {(char *) STRING_WITH_LEN("DAY_HOUR")}, 
-  {(char *) STRING_WITH_LEN("DAY_MINUTE")}, 
-  {(char *) STRING_WITH_LEN("DAY_SECOND")}, 
-  {(char *) STRING_WITH_LEN("HOUR_MINUTE")}, 
-  {(char *) STRING_WITH_LEN("HOUR_SECOND")}, 
-  {(char *) STRING_WITH_LEN("MINUTE_SECOND")}, 
-  {(char *) STRING_WITH_LEN("DAY_MICROSECOND")}, 
-  {(char *) STRING_WITH_LEN("HOUR_MICROSECOND")}, 
-  {(char *) STRING_WITH_LEN("MINUTE_MICROSECOND")}, 
+  {(char *) STRING_WITH_LEN("YEAR")},
+  {(char *) STRING_WITH_LEN("QUARTER")},
+  {(char *) STRING_WITH_LEN("MONTH")},
+  {(char *) STRING_WITH_LEN("DAY")},
+  {(char *) STRING_WITH_LEN("HOUR")},
+  {(char *) STRING_WITH_LEN("MINUTE")},
+  {(char *) STRING_WITH_LEN("WEEK")},
+  {(char *) STRING_WITH_LEN("SECOND")},
+  {(char *) STRING_WITH_LEN("MICROSECOND")},
+  {(char *) STRING_WITH_LEN("YEAR_MONTH")},
+  {(char *) STRING_WITH_LEN("DAY_HOUR")},
+  {(char *) STRING_WITH_LEN("DAY_MINUTE")},
+  {(char *) STRING_WITH_LEN("DAY_SECOND")},
+  {(char *) STRING_WITH_LEN("HOUR_MINUTE")},
+  {(char *) STRING_WITH_LEN("HOUR_SECOND")},
+  {(char *) STRING_WITH_LEN("MINUTE_SECOND")},
+  {(char *) STRING_WITH_LEN("DAY_MICROSECOND")},
+  {(char *) STRING_WITH_LEN("HOUR_MICROSECOND")},
+  {(char *) STRING_WITH_LEN("MINUTE_MICROSECOND")},
   {(char *) STRING_WITH_LEN("SECOND_MICROSECOND")}
 }; 
 
@@ -188,10 +189,10 @@ LEX_STRING interval_type_to_name[] = {
 
 /*
   Inits the scheduler queue - prioritized queue from mysys/queue.c
-  
+
   Synopsis
     evex_queue_init()
-    
+
       queue - pointer the the memory to be initialized as queue. has to be
               allocated from the caller
 
@@ -211,10 +212,10 @@ evex_queue_init(EVEX_QUEUE_TYPE *queue)
 
 /*
   Compares 2 LEX strings regarding case.
-  
+
   Synopsis
     my_time_compare()
-    
+
       s - first LEX_STRING
       t - second LEX_STRING
       cs - charset
@@ -223,7 +224,7 @@ evex_queue_init(EVEX_QUEUE_TYPE *queue)
    -1   - s < t
     0   - s == t
     1   - s > t
-    
+
   Notes
     TIME.second_part is not considered during comparison
 */
@@ -237,18 +238,18 @@ int sortcmp_lex_string(LEX_STRING s, LEX
 
 /*
   Compares 2 TIME structures
-  
+
   Synopsis
     my_time_compare()
-    
+
       a - first TIME
       b - second time
-  
+
   RETURNS:
    -1   - a < b
     0   - a == b
     1   - a > b
-    
+
   Notes
     TIME.second_part is not considered during comparison
 */
@@ -276,18 +277,18 @@ my_time_compare(TIME *a, TIME *b)
 
 /*
   Compares the execute_at members of 2 event_timed instances
-  
+
   Synopsis
     event_timed_compare()
-    
+
       a - first event_timed object
       b - second event_timed object
-  
+
   RETURNS:
    -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
 */
@@ -303,14 +304,14 @@ event_timed_compare(event_timed *a, even
   Compares the execute_at members of 2 event_timed instances.
   Used as callback for the prioritized queue when shifting
   elements inside.
-  
+
   Synopsis
     event_timed_compare()
   
       vptr - not used (set it to NULL)
       a    - first event_timed object
       b    - second event_timed object
-  
+
   RETURNS:
    -1   - a->execute_at < b->execute_at
     0   - a->execute_at == b->execute_at
@@ -333,18 +334,16 @@ event_timed_compare_q(void *vptr, byte* 
   For
     YEAR_MONTH - expression is in months
     DAY_MINUTE - expression is in minutes
-    
+
   Synopsis
     event_reconstruct_interval_expression()
       buf - preallocated String buffer to add the value to
       interval - the interval type (for instance YEAR_MONTH)
       expression - the value in the lowest entity
-  
+
   RETURNS
    0 - OK
    1 - Error
-  
- 
 */
 
 int
@@ -369,7 +368,7 @@ event_reconstruct_interval_expression(St
     goto common_1_lev_code;
   case INTERVAL_HOUR_MINUTE:
   case INTERVAL_MINUTE_SECOND:
-    multipl= 60;      
+    multipl= 60;
 common_1_lev_code:
     buf->append('\'');
     end= longlong10_to_str(expression/multipl, tmp_buff, 10);
@@ -473,9 +472,9 @@ common_1_lev_code:
       table       The table pointer
 
   RETURN
-    1	Cannot lock table
+    1   Cannot lock table
     2   The table is corrupted - different number of fields
-    0	OK
+    0   OK
 */
 
 int
@@ -590,11 +589,11 @@ evex_db_find_event_by_name(THD *thd, con
        thd    THD
        table  the row to fill out
        et     Event's data
-   
+
    Returns
      0 - ok
      EVEX_GENERAL_ERROR    - bad data
-     EVEX_GET_FIELD_FAILED - field count does not match. table corrupted? 
+     EVEX_GET_FIELD_FAILED - field count does not match. table corrupted?
 
    DESCRIPTION 
      Used both when an event is created and when it is altered.
@@ -607,9 +606,9 @@ evex_fill_row(THD *thd, TABLE *table, ev
 
   DBUG_ENTER("evex_fill_row");
 
-  DBUG_PRINT("info", ("dbname=[%s]", et->dbname.str));  
-  DBUG_PRINT("info", ("name  =[%s]", et->name.str));  
-  DBUG_PRINT("info", ("body  =[%s]", et->body.str));  
+  DBUG_PRINT("info", ("dbname=[%s]", et->dbname.str));
+  DBUG_PRINT("info", ("name  =[%s]", et->name.str));
+  DBUG_PRINT("info", ("body  =[%s]", et->body.str));
 
   if (table->field[field_num= EVEX_FIELD_DB]->
                   store(et->dbname.str, et->dbname.length, system_charset_info))
@@ -619,7 +618,7 @@ evex_fill_row(THD *thd, TABLE *table, ev
                   store(et->name.str, et->name.length, system_charset_info))
     goto trunc_err;
 
-  // both ON_COMPLETION and STATUS are NOT NULL thus not calling set_notnull()
+  /* both ON_COMPLETION and STATUS are NOT NULL thus not calling set_notnull() */
   table->field[EVEX_FIELD_ON_COMPLETION]->store((longlong)et->on_completion);
 
   table->field[EVEX_FIELD_STATUS]->store((longlong)et->status);
@@ -653,7 +652,7 @@ evex_fill_row(THD *thd, TABLE *table, ev
 
     if (!et->starts_null)
     {
-      table->field[EVEX_FIELD_STARTS]->set_notnull();// set NULL flag to OFF
+      table->field[EVEX_FIELD_STARTS]->set_notnull();
       table->field[EVEX_FIELD_STARTS]->
                             store_time(&et->starts, MYSQL_TIMESTAMP_DATETIME);
     }	   
@@ -674,13 +673,15 @@ evex_fill_row(THD *thd, TABLE *table, ev
     
     table->field[EVEX_FIELD_EXECUTE_AT]->set_notnull();
     table->field[EVEX_FIELD_EXECUTE_AT]->store_time(&et->execute_at,
-                                                    MYSQL_TIMESTAMP_DATETIME);    
+                                                    MYSQL_TIMESTAMP_DATETIME);
   }
   else
   {
     DBUG_ASSERT(is_update);
-    // it is normal to be here when the action is update
-    // this is an error if the action is create. something is borked
+    /*
+      it is normal to be here when the action is update
+      this is an error if the action is create. something is borked
+    */
   }
     
   ((Field_timestamp *)table->field[EVEX_FIELD_MODIFIED])->set_time();
@@ -709,12 +710,12 @@ trunc_err:
        et              event_timed object containing information for the event
        create_if_not - if an warning should be generated in case event exists
        rows_affected - how many rows were affected
-   
+
      Return value
                         0 - OK
        EVEX_GENERAL_ERROR - Failure
    DESCRIPTION 
-     Creates an event. Relies on evex_fill_row which is shared with 
+     Creates an event. Relies on evex_fill_row which is shared with
      db_update_event. The name of the event is inside "et".
 */
 
@@ -737,16 +738,16 @@ db_create_event(THD *thd, event_timed *e
     my_error(ER_EVENT_OPEN_TABLE_FAILED, MYF(0));
     goto err;
   }
-  
+
   DBUG_PRINT("info", ("check existance of an event with the same name"));
   if (!evex_db_find_event_aux(thd, et, table))
   {
     if (create_if_not)
     {
       push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_NOTE,
-		          ER_EVENT_ALREADY_EXISTS, ER(ER_EVENT_ALREADY_EXISTS),
-		          et->name.str);
-      goto ok;    
+                          ER_EVENT_ALREADY_EXISTS, ER(ER_EVENT_ALREADY_EXISTS),
+                          et->name.str);
+      goto ok;
     }
     my_error(ER_EVENT_ALREADY_EXISTS, MYF(0), et->name.str);
     goto err;
@@ -758,8 +759,8 @@ db_create_event(THD *thd, event_timed *e
     my_error(ER_BAD_DB_ERROR, MYF(0));
     goto err;
   }
-  
-  restore_record(table, s->default_values); // Get default values for fields
+
+  restore_record(table, s->default_values);     // Get default values for fields
 
   if (system_charset_info->cset->numchars(system_charset_info, et->dbname.str,
                                     et->dbname.str + et->dbname.length)
@@ -785,7 +786,7 @@ db_create_event(THD *thd, event_timed *e
   if (!(et->expression) && !(et->execute_at.year))
   {
     DBUG_PRINT("error", ("neither expression nor execute_at are set!"));
-    my_error(ER_EVENT_NEITHER_M_EXPR_NOR_M_AT, MYF(0));    
+    my_error(ER_EVENT_NEITHER_M_EXPR_NOR_M_AT, MYF(0));
     goto err;
   }
 
@@ -799,7 +800,10 @@ db_create_event(THD *thd, event_timed *e
 
   ((Field_timestamp *)table->field[EVEX_FIELD_CREATED])->set_time();
 
-  // evex_fill_row() calls my_error() in case of error so no need to handle it here
+  /*
+    evex_fill_row() calls my_error() in case of error so no need to
+    handle it here
+  */
   if ((ret= evex_fill_row(thd, table, et, false)))
     goto err; 
 
@@ -809,16 +813,16 @@ db_create_event(THD *thd, event_timed *e
     goto err;
   }
 
-#ifdef USE_THIS_CODE_AS_TEMPLATE_WHEN_EVENT_REPLICATION_IS_AGREED   
+#ifdef USE_THIS_CODE_AS_TEMPLATE_WHEN_EVENT_REPLICATION_IS_AGREED
   if (mysql_bin_log.is_open())
   {
     thd->clear_error();
-    // Such a statement can always go directly to binlog, no trans cache
+    /* Such a statement can always go directly to binlog, no trans cache */
     thd->binlog_query(THD::MYSQL_QUERY_TYPE,
                       thd->query, thd->query_length, FALSE, FALSE);
   }
 #endif
-  
+
   *rows_affected= 1;
 ok:
   if (dbchanged)
@@ -844,7 +848,7 @@ err:
        thd      THD
        sp_name  the name of the event to alter
        et       event's data
-   
+
    NOTES
      sp_name is passed since this is the name of the event to
      alter in case of RENAME TO.
@@ -869,7 +873,7 @@ db_update_event(THD *thd, event_timed *e
     goto err;
   }
   
-  // first look whether we overwrite
+  /* first look whether we overwrite */
   if (new_name)
   {
     if (!sortcmp_lex_string(et->name, new_name->m_name, system_charset_info) &&
@@ -895,19 +899,18 @@ db_update_event(THD *thd, event_timed *e
   if (EVEX_KEY_NOT_FOUND == evex_db_find_event_aux(thd, et, table))
   {
     my_error(ER_EVENT_DOES_NOT_EXIST, MYF(0), et->name.str);
-    goto err;    
+    goto err;
   }
 
-  
   store_record(table,record[1]);
-  
-  // Don't update create on row update.
+
+  /* Don't update create on row update. */
   table->timestamp_field_type= TIMESTAMP_NO_AUTO_SET;
 
-  // evex_fill_row() calls my_error() in case of error so no need to handle it here
+  /* evex_fill_row() calls my_error() in case of error so no need to handle it here */
   if ((ret= evex_fill_row(thd, table, et, true)))
     goto err;
-   
+
   if (new_name)
   {    
     table->field[EVEX_FIELD_DB]->
@@ -922,7 +925,7 @@ db_update_event(THD *thd, event_timed *e
     goto err;
   }
 
-  // close mysql.event or we crash later when loading the event from disk
+  /* close mysql.event or we crash later when loading the event from disk */
   close_thread_tables(thd);
   DBUG_RETURN(0);
 
@@ -944,7 +947,7 @@ err:
        definer  who owns the event
        ett      event's data if event is found
        tbl      TABLE object to use when not NULL
-   
+
    NOTES
      1) Use sp_name for look up, return in **ett if found
      2) tbl is not closed at exit
@@ -999,7 +1002,7 @@ done:
     delete et;
     et= 0;
   }
-  // don't close the table if we haven't opened it ourselves
+  /* don't close the table if we haven't opened it ourselves */
   if (!tbl && table)
     close_thread_tables(thd);
   *ett= et;
@@ -1017,11 +1020,10 @@ done:
        spn       the name of the event to alter
        definer   who is the owner
        use_lock  whether to obtain a lock on LOCK_event_arrays or not
-       
+
    RETURN VALUE
        0   - OK
        < 0 - error (in this case underlying functions call my_error()).
-
 */
 
 static int
@@ -1040,7 +1042,7 @@ evex_load_and_compile_event(THD * thd, s
   thd->mem_root= &evex_mem_root;
 
   thd->reset_n_backup_open_tables_state(&backup);
-  // no need to use my_error() here because db_find_event() has done it
+  /* no need to use my_error() here because db_find_event() has done it */
   ret= db_find_event(thd, spn, &definer, &ett, NULL, NULL);
   thd->restore_backup_open_tables_state(&backup);
   if (ret)
@@ -1092,7 +1094,7 @@ done:
                   ALTER EVENT.
 
    RETURNS
-     0 - OK (always)
+     0  OK (always)
 */
 
 static int
@@ -1115,7 +1117,7 @@ evex_remove_from_cache(LEX_STRING *db, L
   for (i= 0; i < evex_queue_num_elements(EVEX_EQ_NAME); ++i)
   {
     event_timed *et= evex_queue_element(&EVEX_EQ_NAME, i, event_timed*);
-    DBUG_PRINT("info", ("[%s.%s]==[%s.%s]?",db->str,name->str, et->dbname.str, 
+    DBUG_PRINT("info", ("[%s.%s]==[%s.%s]?",db->str,name->str, et->dbname.str,
                         et->name.str));
     if (!sortcmp_lex_string(*name, et->name, system_charset_info) &&
         !sortcmp_lex_string(*db, et->dbname, system_charset_info))
@@ -1135,7 +1137,7 @@ evex_remove_from_cache(LEX_STRING *db, L
       }
       DBUG_PRINT("evex_remove_from_cache", ("delete from queue"));
       evex_queue_delete_element(&EVEX_EQ_NAME, i);
-      // ok, we have cleaned
+      /* ok, we have cleaned */
       ret= 0;
       goto done;
     }
@@ -1159,7 +1161,7 @@ done:
        create_options Options specified when in the query. We are
                       interested whether there is IF NOT EXISTS
        rows_affected  How many rows were affected
-          
+
    NOTES
      - in case there is an event with the same name (db) and 
        IF NOT EXISTS is specified, an warning is put into the W stack.
@@ -1189,7 +1191,7 @@ evex_create_event(THD *thd, event_timed 
   VOID(pthread_mutex_unlock(&LOCK_evex_running));
 
 done:
-  // No need to close the table, it will be closed in sql_parse::do_command
+  /* No need to close the table, it will be closed in sql_parse::do_command */
 
   DBUG_RETURN(ret);
 }
@@ -1203,7 +1205,7 @@ done:
        thd        THD
        et         event's data
        new_name   set in case of RENAME TO.    
-          
+
    NOTES
      et contains data about dbname and event name. 
      new_name is the new name of the event, if not null (this means
@@ -1263,7 +1265,6 @@ done:
      et              event's name
      drop_if_exists  if set and the event not existing => warning onto the stack
      rows_affected   affected number of rows is returned heres
-          
 */
 
 int db_drop_event(THD *thd, event_timed *et, bool drop_if_exists,
@@ -1296,8 +1297,8 @@ int db_drop_event(THD *thd, event_timed 
     if (drop_if_exists)
     {
       push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_NOTE,
-		    ER_SP_DOES_NOT_EXIST, ER(ER_SP_DOES_NOT_EXIST),
-		    "Event", et->name.str);
+                          ER_SP_DOES_NOT_EXIST, ER(ER_SP_DOES_NOT_EXIST),
+                          "Event", et->name.str);
       ret= 0;
     } else
       my_error(ER_EVENT_DOES_NOT_EXIST, MYF(0), et->name.str);
@@ -1342,7 +1343,7 @@ evex_drop_event(THD *thd, event_timed *e
   if (evex_is_running)
     ret= evex_remove_from_cache(&et->dbname, &et->name, true, true);
   VOID(pthread_mutex_unlock(&LOCK_evex_running));
-  
+
   if (ret == 1)
     ret= 0;
   else if (ret == 0)   
@@ -1362,11 +1363,10 @@ evex_drop_event(THD *thd, event_timed *e
        thd        THD
        spn        the name of the event (db, name)
        definer    the definer of the event
-   
+
    RETURNS
      0  -  OK
      1  - Error during writing to the wire
-          
 */
 
 int
@@ -1384,14 +1384,14 @@ evex_show_create_event(THD *thd, sp_name
   thd->restore_backup_open_tables_state(&backup);
 
   if (!ret && et)
-  {    
+  {
     Protocol *protocol= thd->protocol;
     char show_str_buf[768];
     String show_str(show_str_buf, sizeof(show_str_buf), system_charset_info);
     List<Item> field_list;
     byte *sql_mode_str;
     ulong sql_mode_len=0;
-    
+
     show_str.length(0);
     show_str.set_charset(system_charset_info);
 
@@ -1417,19 +1417,18 @@ evex_show_create_event(THD *thd, sp_name
 
     protocol->store((char*) sql_mode_str, sql_mode_len, system_charset_info);
 
-    
     protocol->store(show_str.c_ptr(), show_str.length(), system_charset_info);
     ret= protocol->write();
     send_eof(thd);
   }
-  
+
   DBUG_RETURN(ret);
 }
 
 
 /*
   evex_drop_db_events - Drops all events in the selected database
-  
+
   thd  - Thread
   db   - ASCIIZ the name of the database
   
@@ -1453,7 +1452,6 @@ evex_show_create_event(THD *thd, sp_name
          spawned and can_spawn() is the right method.
        - event_timed::can_spawn() returns false -> being runned ATM
          just set the flags so it should drop itself.
-
 */
 
 int
@@ -1509,7 +1507,7 @@ evex_drop_db_events(THD *thd, char *db)
       else if (ret == EVEX_KEY_NOT_FOUND)
       {
         sql_print_error("Expected to find event %s.%s of %s on disk-not there.",
-                         et->dbname.str, et->name.str, et->definer.str);
+                        et->dbname.str, et->name.str, et->definer.str);
       }
       et->free_sp();
       delete et;
@@ -1525,7 +1523,7 @@ evex_drop_db_events(THD *thd, char *db)
     }
     DBUG_PRINT("info",("%d elements in the queue",
                evex_queue_num_elements(EVEX_EQ_NAME)));
-    evex_queue_delete_element(&EVEX_EQ_NAME, i);// 1 is top
+    evex_queue_delete_element(&EVEX_EQ_NAME, i);// 0 is top
     DBUG_PRINT("info",("%d elements in the queue",
                evex_queue_num_elements(EVEX_EQ_NAME)));
     /*
@@ -1602,7 +1600,7 @@ end:
   VOID(pthread_mutex_unlock(&LOCK_event_arrays));
   end_read_record(&read_record_info);
 
-  thd->version--;  // Force close to free memory
+  thd->version--;   /* Force close to free memory */
 
   close_thread_tables(thd);
 

--- 1.35/sql/event_executor.cc	2006-02-28 12:08:07 +01:00
+++ 1.36/sql/event_executor.cc	2006-02-28 14:43:41 +01:00
@@ -38,9 +38,9 @@ extern  ulong thread_created;
 extern const char *my_localhost;
 extern pthread_attr_t connection_attrib;
 
-pthread_mutex_t LOCK_event_arrays,  // mutex for when working with the queue
-                LOCK_workers_count, // mutex for when inc/dec uint workers_count
-                LOCK_evex_running;  // mutes for managing bool evex_is_running
+pthread_mutex_t LOCK_event_arrays,              // mutex for when working with the queue
+                LOCK_workers_count,             // mutex for when inc/dec uint workers_count
+                LOCK_evex_running;              // mutes for managing bool evex_is_running
 
 
 bool evex_is_running= false;
@@ -135,7 +135,7 @@ evex_check_system_tables()
   bool not_used;
   Open_tables_state backup;
 
-  // thd is 0x0 during boot of the server. Later it's !=0x0
+  /* thd is 0x0 during boot of the server. Later it's !=0x0 */
   if (!thd)
     return;
 
@@ -151,7 +151,7 @@ evex_check_system_tables()
   else
   {
     table_check_intact(tables.table, MYSQL_DB_FIELD_COUNT, mysql_db_table_fields,
-                       &mysql_db_table_last_check,ER_CANNOT_LOAD_FROM_TABLE);                           
+                       &mysql_db_table_last_check,ER_CANNOT_LOAD_FROM_TABLE);
     close_thread_tables(thd);
   }
 
@@ -182,7 +182,7 @@ evex_check_system_tables()
 
    SYNOPSIS
      init_events()
-          
+
    NOTES
     Inits the mutexes used by the scheduler. Done at server start.
 */
@@ -194,7 +194,7 @@ init_events()
   DBUG_ENTER("init_events");
 
   DBUG_PRINT("info",("Starting events main thread"));
-  
+
   evex_check_system_tables();
 
   evex_init_mutexes();
@@ -206,7 +206,7 @@ init_events()
   if (event_executor_running_global_var)
   {
 #ifndef DBUG_FAULTY_THR
-    //TODO Andrey: Change the error code returned!
+    /* TODO Andrey: Change the error code returned! */
     if (pthread_create(&th, &connection_attrib, event_executor_main,(void*)NULL))
       DBUG_RETURN(ER_SLAVE_THREAD);
 #else
@@ -223,7 +223,7 @@ init_events()
 
    SYNOPSIS
      shutdown_events()
-          
+
    NOTES
     Destroys the mutexes.
 */
@@ -232,10 +232,10 @@ void
 shutdown_events()
 {
   DBUG_ENTER("shutdown_events");
-  
+
   if (evex_mutexes_initted)
   {
-    evex_mutexes_initted= FALSE;  
+    evex_mutexes_initted= FALSE;
     VOID(pthread_mutex_lock(&LOCK_evex_running));
     VOID(pthread_mutex_unlock(&LOCK_evex_running));
 
@@ -253,11 +253,11 @@ shutdown_events()
    SYNOPSIS
      init_event_thread()
        thd - the THD of the thread. Has to be allocated by the caller.
-          
+
    NOTES
       1. The host of the thead is my_localhost
       2. thd->net is initted with NULL - no communication.
-  
+
   Returns
      0  - OK
     -1  - Error
@@ -304,7 +304,7 @@ init_event_thread(THD* thd)
 /*
   This function waits till the time next event in the queue should be 
   executed.
-  
+
   Returns
     WAIT_STATUS_READY          There is an event to be executed right now
     WAIT_STATUS_EMPTY_QUEUE    No events or the last event was dropped.
@@ -339,14 +339,14 @@ executor_wait_till_next_event_exec(THD *
     if (et->dropped)
       et->drop(thd);
     delete et;
-    evex_queue_delete_element(&EVEX_EQ_NAME, 1);// 1 is top
+    evex_queue_delete_element(&EVEX_EQ_NAME, 0);// 0 is top, internally 1
     VOID(pthread_mutex_unlock(&LOCK_event_arrays));
     sql_print_information("Event found disabled, dropping.");
     DBUG_RETURN(1);
   }
-       
+
   DBUG_PRINT("evex main thread",("computing time to sleep till next exec"));
-  // set the internal clock of thd
+  /* set the internal clock of thd */
   thd->end_time();
   my_tz_UTC->gmt_sec_to_TIME(&time_now, thd->query_start());
   t2sleep= evex_time_diff(&et->execute_at, &time_now);
@@ -387,8 +387,8 @@ executor_wait_till_next_event_exec(THD *
 
    SYNOPSIS
      event_executor_main() 
-       arg - unused
-          
+       arg  unused
+
    NOTES
       1. The host of the thead is my_localhost
       2. thd->net is initted with NULL - no communication.
@@ -404,14 +404,13 @@ event_executor_main(void *arg)
   TIME time_now;
 
   DBUG_ENTER("event_executor_main");
-  DBUG_PRINT("event_executor_main", ("EVEX thread started"));    
+  DBUG_PRINT("event_executor_main", ("EVEX thread started"));
 
 
-  // init memory root
+  /* init memory root */
   init_alloc_root(&evex_mem_root, MEM_ROOT_BLOCK_SIZE, MEM_ROOT_PREALLOC);
-  
 
-  // needs to call my_thread_init(), otherwise we get a coredump in DBUG_ stuff
+  /* needs to call my_thread_init(), otherwise we get a coredump in DBUG_ stuff*/
   my_thread_init();
 
   if (sizeof(my_time_t) != sizeof(time_t))
@@ -422,14 +421,14 @@ event_executor_main(void *arg)
     goto err_no_thd;
   }
   
-  //TODO Andrey: Check for NULL
-  if (!(thd = new THD)) // note that contructor of THD uses DBUG_ !
+  /* note that contructor of THD uses DBUG_ ! */
+  if (!(thd = new THD))                         
   {
     sql_print_error("SCHEDULER: Cannot create THD for the main thread.");
     goto err_no_thd;
   }
-  thd->thread_stack = (char*)&thd; // remember where our stack is
-  
+  thd->thread_stack = (char*)&thd;              // remember where our stack is
+
   pthread_detach_this_thread();
 
   if (init_event_thread(thd))
@@ -472,7 +471,7 @@ event_executor_main(void *arg)
   {
     TIME time_now;
     event_timed *et;
-    
+
     cnt++;
     DBUG_PRINT("info", ("EVEX External Loop %d thd->k", cnt));
 
@@ -488,7 +487,7 @@ event_executor_main(void *arg)
       my_sleep(1000000);// sleep 1s
       continue;
     }
-    
+
 restart_ticking:
     switch (executor_wait_till_next_event_exec(thd)) {
     case WAIT_STATUS_READY:                     // time to execute the event on top
@@ -498,7 +497,7 @@ restart_ticking:
       DBUG_PRINT("evex main thread",("no more events"));
       continue;
       break;
-    case WAIT_STATUS_NEW_TOP_EVENT:            // new event on top in the queue
+    case WAIT_STATUS_NEW_TOP_EVENT:             // new event on top in the queue
       DBUG_PRINT("evex main thread",("restart ticking"));
       goto restart_ticking;
     case WAIT_STATUS_STOP_EXECUTOR:
@@ -584,10 +583,10 @@ restart_ticking:
     }
     DBUG_PRINT("evex main thread",("unlocking"));
     VOID(pthread_mutex_unlock(&LOCK_event_arrays));
-  }// while
+  }/* while */
 finish:
 
-  // First manifest that this thread does not work and then destroy
+  /* First manifest that this thread does not work and then destroy */
   VOID(pthread_mutex_lock(&LOCK_evex_running));
   evex_is_running= false;
   evex_main_thread_id= 0;
@@ -611,7 +610,7 @@ finish:
       break;
     }
     VOID(pthread_mutex_unlock(&LOCK_workers_count));
-    my_sleep(1000000);// 1s    
+    my_sleep(1000000);// 1s
   }
 
   /*
@@ -627,9 +626,9 @@ finish:
     delete et;
   }
   VOID(pthread_mutex_unlock(&LOCK_event_arrays));
-  // ... then we can thrash the whole queue at once
+  /* ... then we can thrash the whole queue at once */
   evex_queue_destroy(&EVEX_EQ_NAME);
-  
+
   thd->proc_info = "Clearing";
   DBUG_ASSERT(thd->net.buff != 0);
   net_end(&thd->net); // destructor will not free it, because we are weird
@@ -657,7 +656,7 @@ err_no_thd:
   my_thread_end();
   pthread_exit(0);
 #endif
-  DBUG_RETURN(0);// Can't return anything here
+  DBUG_RETURN(0);                               // Can't return anything here
 }
 
 
@@ -667,7 +666,7 @@ err_no_thd:
 
    SYNOPSIS
      event_executor_worker()
-       arg - the event_timed object to be processed
+       arg  The event_timed object to be processed
 */
 
 pthread_handler_t
@@ -684,12 +683,12 @@ event_executor_worker(void *event_void)
 #ifndef DBUG_FAULTY_THR
   my_thread_init();
 
-  if (!(thd = new THD)) // note that contructor of THD uses DBUG_ !
+  if (!(thd = new THD)) /* note that contructor of THD uses DBUG_ ! */
   {
     sql_print_error("SCHEDULER: Cannot create a THD structure in an worker.");
     goto err_no_thd;
   }
-  thd->thread_stack = (char*)&thd; // remember where our stack is
+  thd->thread_stack = (char*)&thd;              // remember where our stack is
   thd->mem_root= &worker_mem_root;
 
   pthread_detach_this_thread();
@@ -699,7 +698,7 @@ event_executor_worker(void *event_void)
 
   thd->init_for_queries();
 
-  // make this thread visible it has no vio -> show processlist needs this flag
+  /* make this thread visible it has no vio -> show processlist needs this flag */
   thd->system_thread= 1;
 
   VOID(pthread_mutex_lock(&LOCK_thread_count));
@@ -749,7 +748,7 @@ err:
   DBUG_ASSERT(thd->net.buff != 0);
   net_end(&thd->net); // destructor will not free it, because we are weird
   THD_CHECK_SENTRY(thd);
-  
+
   VOID(pthread_mutex_lock(&LOCK_thread_count));
   THD_CHECK_SENTRY(thd);
   delete thd;
@@ -780,9 +779,9 @@ err_no_thd:
        thd - Thread context. Used for memory allocation in some cases.
      
    RETURNS
-     0  - OK
-    !0  - Error
-    
+     0  OK
+    !0  Error
+
    NOTES
      Reports the error to the console
 */
@@ -795,7 +794,7 @@ evex_load_events_from_db(THD *thd)
   MYSQL_LOCK *lock;
   int ret= -1;
   uint count= 0;
-  
+
   DBUG_ENTER("evex_load_events_from_db");  
 
   if ((ret= evex_open_event_table(thd, TL_READ, &table)))
@@ -830,7 +829,7 @@ evex_load_events_from_db(THD *thd)
       delete et;
       continue;
     }
-    
+
     DBUG_PRINT("evex_load_events_from_db",
             ("Event %s loaded from row. Time to compile", et->name.str));
     
@@ -846,8 +845,8 @@ evex_load_events_from_db(THD *thd)
     default:
       break;
     }
-    
-    // let's find when to be executed  
+
+    /* let's find when to be executed */
     if (et->compute_next_execution_time())
     {
       sql_print_error("SCHEDULER: Error while computing execution time of %s.%s."
@@ -868,8 +867,9 @@ evex_load_events_from_db(THD *thd)
 end:
   VOID(pthread_mutex_unlock(&LOCK_event_arrays));
   end_read_record(&read_record_info);
-
-  thd->version--;  // Force close to free memory
+  
+  /* Force close to free memory */
+  thd->version--;  
 
   close_thread_tables(thd);
   if (!ret)
@@ -889,15 +889,15 @@ end:
      event_executor_worker()
        thd - Thread context (unused)
        car - the new value
-   
+
    Returns
-     0 - OK (always)
+     0  OK (always)
 */
 
 bool
 sys_var_event_executor::update(THD *thd, set_var *var)
 {
-  // here start the thread if not running.
+  /* here start the thread if not running. */
   DBUG_ENTER("sys_var_event_executor::update");
   VOID(pthread_mutex_lock(&LOCK_evex_running));
   *value= var->save_result.ulong_value;
@@ -929,12 +929,12 @@ static sql_print_xxx_func sql_print_xxx_
   Prints the stack of infos, warnings, errors from thd to
   the console so it can be fetched by the logs-into-tables and
   checked later.
-  
+
   Synopsis
     evex_print_warnings
       thd    - thread used during the execution of the event
       et     - the event itself
-  
+
   Returns
     0 - OK (always)   
 
@@ -942,19 +942,20 @@ static sql_print_xxx_func sql_print_xxx_
 
 bool
 evex_print_warnings(THD *thd, event_timed *et)
-{  
+{
   MYSQL_ERROR *err;
   DBUG_ENTER("evex_show_warnings");
   char msg_buf[1024];
   char prefix_buf[512];
   String prefix(prefix_buf, sizeof(prefix_buf), system_charset_info);
   prefix.length(0);
-  
+
   List_iterator_fast<MYSQL_ERROR> it(thd->warn_list);
   while ((err= it++))
   {
     String err_msg(msg_buf, sizeof(msg_buf), system_charset_info);
-    err_msg.length(0);// set it to 0 or we start adding at the end
+    /* set it to 0 or we start adding at the end. That's the trick ;) */
+    err_msg.length(0);
     if (!prefix.length())
     {
       prefix.append("SCHEDULER: [");
@@ -968,7 +969,7 @@ evex_print_warnings(THD *thd, event_time
       append_identifier(thd,&prefix, et->name.str, et->name.length);
       prefix.append("] ", 2);
     }
-    
+
     err_msg.append(prefix);
     err_msg.append(err->msg, strlen(err->msg), system_charset_info);
     err_msg.append("]");

--- 1.39/sql/event_timed.cc	2006-02-28 12:08:08 +01:00
+++ 1.40/sql/event_timed.cc	2006-02-28 14:43:41 +01:00
@@ -116,7 +116,7 @@ event_timed::init_body(THD *thd)
              body_begin, thd->lex->ptr));
 
   body.length= thd->lex->ptr - body_begin;
-  // Trim nuls at the end
+  /* Trim nuls at the end */
   while (body.length && body_begin[body.length-1] == '\0')
     body.length--;
 
@@ -161,13 +161,12 @@ event_timed::init_execute_at(THD *thd, I
   
   /* no starts and/or ends in case of execute_at */
   DBUG_PRINT("info", ("starts_null && ends_null should be 1 is %d",
-              (starts_null && ends_null)))
+                      (starts_null && ends_null)));
   DBUG_ASSERT(starts_null && ends_null);
   
-  // let's check whether time is in the past
+  /* let's check whether time is in the past */
   thd->variables.time_zone->gmt_sec_to_TIME(&time_tmp, 
-                                            (my_time_t) thd->query_start()); 
-
+                                            (my_time_t) thd->query_start());
 
   if ((not_used= expr->get_date(&ltime, TIME_NO_ZERO_DATE)))
     DBUG_RETURN(ER_WRONG_VALUE);
@@ -252,14 +251,14 @@ event_timed::init_interval(THD *thd, Ite
   case INTERVAL_DAY_MINUTE:
     expression= (interval.day* 24 + interval.hour) * 60 + interval.minute;
     break;
-  case INTERVAL_HOUR_SECOND: // day is anyway 0
+  case INTERVAL_HOUR_SECOND: /* day is anyway 0 */
   case INTERVAL_DAY_SECOND:
     /* DAY_SECOND having problems because of leap seconds? */
     expression= ((interval.day* 24 + interval.hour) * 60 + interval.minute)*60
                  + interval.second;
     break;
-  case INTERVAL_MINUTE_MICROSECOND: // day and hour are 0
-  case INTERVAL_HOUR_MICROSECOND:// day is anyway 0
+  case INTERVAL_MINUTE_MICROSECOND: /* day and hour are 0 */
+  case INTERVAL_HOUR_MICROSECOND:   /* day is anyway 0    */
   case INTERVAL_DAY_MICROSECOND:
     DBUG_RETURN(EVEX_MICROSECOND_UNSUP);
     expression= ((((interval.day*24) + interval.hour)*60+interval.minute)*60 +
@@ -398,7 +397,7 @@ event_timed::init_ends(THD *thd, Item *n
     Check whether ENDS is not in the past.
   */
   DBUG_PRINT("info", ("ENDS after NOW?"));
-  my_tz_UTC->gmt_sec_to_TIME(&ltime_now, thd->query_start());  
+  my_tz_UTC->gmt_sec_to_TIME(&ltime_now, thd->query_start());
   if (my_time_compare(&ltime_now, &ltime) == 1)
     DBUG_RETURN(EVEX_BAD_PARAMS);
 
@@ -534,8 +533,8 @@ event_timed::load_from_row(MEM_ROOT *mem
 
   et->definer_user.str= strmake_root(mem_root, et->definer.str, len);
   et->definer_user.length= len;
-  len= et->definer.length - len - 1; //1 is because of @
-  et->definer_host.str= strmake_root(mem_root, ptr + 1, len);//1: because of @
+  len= et->definer.length - len - 1;            //1 is because of @
+  et->definer_host.str= strmake_root(mem_root, ptr + 1, len);/* 1:because of @*/
   et->definer_host.length= len;
   
   et->starts_null= table->field[EVEX_FIELD_STARTS]->is_null();
@@ -597,20 +596,20 @@ event_timed::load_from_row(MEM_ROOT *mem
 #endif
   last_executed_changed= false;
 
-  // ToDo : Andrey . Find a way not to allocate ptr on event_mem_root
+  /* ToDo : Andrey . Find a way not to allocate ptr on event_mem_root */
   if ((ptr= get_field(mem_root, table->field[EVEX_FIELD_STATUS])) == NullS)
     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);
 
-  // ToDo : Andrey . Find a way not to allocate ptr on event_mem_root
+  /* ToDo : Andrey . Find a way not to allocate ptr on event_mem_root */
   if ((ptr= get_field(mem_root,
                   table->field[EVEX_FIELD_ON_COMPLETION])) == NullS)
     goto error;
 
   et->on_completion= (ptr[0]=='D'? MYSQL_EVENT_ON_COMPLETION_DROP:
-                                     MYSQL_EVENT_ON_COMPLETION_PRESERVE);
+                                   MYSQL_EVENT_ON_COMPLETION_PRESERVE);
 
   et->comment.str= get_field(mem_root, table->field[EVEX_FIELD_COMMENT]);
   if (et->comment.str != NullS)
@@ -796,7 +795,7 @@ event_timed::compute_next_execution_time
       goto ret;
     }
   }
-  
+
   if (!starts_null && !ends_null)
   {
     /*
@@ -931,7 +930,7 @@ event_timed::mark_last_executed(THD *thd
   thd->end_time();
   my_tz_UTC->gmt_sec_to_TIME(&time_now, (my_time_t) thd->query_start());
 
-  last_executed= time_now; // was execute_at
+  last_executed= time_now; /* was execute_at */
 #ifdef ANDREY_0
   last_executed= execute_at;
 #endif
@@ -1086,7 +1085,7 @@ event_timed::get_create_event(THD *thd, 
   }
   else
   {
-    char dtime_buff[20*2+32];// +32 to make my_snprintf_{8bit|ucs2} happy
+    char dtime_buff[20*2+32];/* +32 to make my_snprintf_{8bit|ucs2} happy */
     buf->append(STRING_WITH_LEN("AT '"));
     /*
       Pass the buffer and the second param tells fills the buffer and
@@ -1427,7 +1426,7 @@ extern pthread_attr_t connection_attrib;
 
 /*
   Checks whether is possible and forks a thread. Passes self as argument.
-  
+
   Returns
   EVENT_EXEC_STARTED       - OK
   EVENT_EXEC_ALREADY_EXEC  - Thread not forked, already working
@@ -1498,7 +1497,6 @@ event_timed::spawn_thread_finish(THD *th
   Returns
     0 - ok
     1 - not locked by this thread
-  
 */
  
 
@@ -1524,5 +1522,5 @@ event_timed::spawn_unlock(THD *thd)
     }
   }
   VOID(pthread_mutex_unlock(&this->LOCK_running));
-  return ret;  
+  return ret;
 }
Thread
bk commit into 5.1 tree (andrey:1.2192) BUG#16537ahristov28 Feb