mirror of
https://github.com/MariaDB/server.git
synced 2026-01-13 18:02:43 +03:00
Post-review fixes. Mostly whitespace, int-to-bool return value, fixed comments
sql/Makefile.am:
compile all submodules of Events before compiling the facade
sql/event_data_objects.cc:
- Use initialization list
- Clean whitespaces
- Shorten comments
- Fix comments
sql/event_data_objects.h:
- Fix whitespace
sql/event_db_repository.cc:
- Change return type from int to bool where only one error code is
returned.
- Don't use macros but get the maximal number of characters in a column
from the column
- Fix comments
- Make functions which has return value but it's not used - void.
sql/event_db_repository.h:
- Methods with only one error code int -> bool return value
- Remove declaration of fill_schema_events, a function that does not exist
sql/event_queue.cc:
- Use initialization lists
- Let find_n_remove_event delete the object thus making the code more robust.
The caller could forget to destruct the object. In addition, find_n_remove_element()
does not return a value.
- Move check_system_tables() to class Events
- Fix comments
sql/event_queue.h:
- Whitespace changes
- init_queue() should allow passing of THD
- check_system_tables moved to class Events
- find_n_remove_event() is now void
sql/event_scheduler.cc:
- Initialize res before use
- Remove end stop from message
sql/event_scheduler.h:
Add uninitialized state. The scheduler is in it before init_scheduler()
is called. The rationale is that otherwise state has no value before
the call. If the system tables were damaged the scheduler won't be initialized
but in Events::deinit() Event_scheduler::stop() will be called and this will
touch state, generating valgrind warning at minimum.
sql/events.cc:
- Whitespace changes
- Fix comments
- Make methods which have only one error code be bool instead of int
- Create temporarily a THD to be used for the initialization of Event_queue
- Event_queue::check_system_tables() moved to Events::check_system_tables
- is_started() is renamed to is_execution_of_events_started()
sql/events.h:
- Whitespace changes
- When a method returns only one error code it should be bool, not int
- is_started() renamed to is_execution_of_events_started()
sql/set_var.cc:
is_started() is renamed to is_execution_of_events_started()
sql/sql_db.cc:
The return code is not used, thus don't return anything and drop_schema_events()
is now void.
sql/sql_yacc.yy:
- Fix comments
- Remove unneeded initialization which is performed in lex_init()
sql/share/errmsg.txt:
New error message
sql/table.cc:
- Fix comments
- make table_check_intact() accespt const *table_def
sql/table.h:
Make table_check_intact() accespt const *table_def
117 lines
2.8 KiB
C++
117 lines
2.8 KiB
C++
#ifndef _EVENT_QUEUE_H_
|
|
#define _EVENT_QUEUE_H_
|
|
/* Copyright (C) 2004-2006 MySQL AB
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; either version 2 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software
|
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
|
|
|
class Event_basic;
|
|
class Event_db_repository;
|
|
class Event_job_data;
|
|
class Event_queue_element;
|
|
|
|
class THD;
|
|
class Event_scheduler;
|
|
|
|
class Event_queue
|
|
{
|
|
public:
|
|
Event_queue();
|
|
|
|
void
|
|
init_mutexes();
|
|
|
|
void
|
|
deinit_mutexes();
|
|
|
|
bool
|
|
init_queue(THD *thd, Event_db_repository *db_repo, Event_scheduler *sched);
|
|
|
|
void
|
|
deinit_queue();
|
|
|
|
/* Methods for queue management follow */
|
|
|
|
int
|
|
create_event(THD *thd, LEX_STRING dbname, LEX_STRING name);
|
|
|
|
int
|
|
update_event(THD *thd, LEX_STRING dbname, LEX_STRING name,
|
|
LEX_STRING *new_schema, LEX_STRING *new_name);
|
|
|
|
void
|
|
drop_event(THD *thd, LEX_STRING dbname, LEX_STRING name);
|
|
|
|
void
|
|
drop_schema_events(THD *thd, LEX_STRING schema);
|
|
|
|
void
|
|
recalculate_activation_times(THD *thd);
|
|
|
|
bool
|
|
get_top_for_execution_if_time(THD *thd, time_t now, Event_job_data **job_data,
|
|
struct timespec *abstime);
|
|
bool
|
|
dump_internal_status(THD *thd);
|
|
|
|
int
|
|
load_events_from_db(THD *thd);
|
|
|
|
protected:
|
|
void
|
|
find_n_remove_event(LEX_STRING db, LEX_STRING name);
|
|
|
|
|
|
void
|
|
drop_matching_events(THD *thd, LEX_STRING pattern,
|
|
bool (*)(LEX_STRING, Event_basic *));
|
|
|
|
void
|
|
empty_queue();
|
|
|
|
void
|
|
notify_observers();
|
|
|
|
void
|
|
dbug_dump_queue(time_t now);
|
|
|
|
/* LOCK_event_queue is the mutex which protects the access to the queue. */
|
|
pthread_mutex_t LOCK_event_queue;
|
|
|
|
Event_db_repository *db_repository;
|
|
|
|
Event_scheduler *scheduler;
|
|
|
|
/* The sorted queue with the Event_job_data objects */
|
|
QUEUE queue;
|
|
|
|
uint mutex_last_locked_at_line;
|
|
uint mutex_last_unlocked_at_line;
|
|
uint mutex_last_attempted_lock_at_line;
|
|
const char* mutex_last_locked_in_func;
|
|
const char* mutex_last_unlocked_in_func;
|
|
const char* mutex_last_attempted_lock_in_func;
|
|
bool mutex_queue_data_locked;
|
|
bool mutex_queue_data_attempting_lock;
|
|
|
|
/* helper functions for working with mutexes & conditionals */
|
|
void
|
|
lock_data(const char *func, uint line);
|
|
|
|
void
|
|
unlock_data(const char *func, uint line);
|
|
};
|
|
|
|
#endif /* _EVENT_QUEUE_H_ */
|