diff options
author | unknown <andrey@lmy004.> | 2006-06-28 01:28:03 +0200 |
---|---|---|
committer | unknown <andrey@lmy004.> | 2006-06-28 01:28:03 +0200 |
commit | acefb78bc3fbf28376d8713e1dc9f056dc3cdbf6 (patch) | |
tree | bf91f4ab6e97d25e3da5172541a1f76237dccfe4 /sql/event_db_repository.h | |
parent | cace147c63a03b4dc9bd3e55ae3bda4f5e9db97b (diff) | |
download | mariadb-git-acefb78bc3fbf28376d8713e1dc9f056dc3cdbf6.tar.gz |
WL#3337 (Events new architecture)
5th cut, moved DB related code to Event_db_repository and
updated accordingly the remanining code.
Moved change/restore_security_context() to class THD
Removed events_priv.h
Next step is to reorganize create/update_event() and parsing for them.
But probably some other refactoring could be done in the meanwhile.
The changes so far pass the test suite.
BitKeeper/deleted/.del-events_priv.h~2e8bce2cf35997df:
Delete: sql/events_priv.h
sql/Makefile.am:
events_priv.h is no more
sql/event_data_objects.cc:
reorganize events code
sql/event_data_objects.h:
reorganize events code
sql/event_db_repository.cc:
reorganize events code
sql/event_db_repository.h:
reorganize events code
sql/event_scheduler.cc:
reorganize events code
sql/event_scheduler.h:
reorganize events code
sql/events.cc:
reorganize events code
sql/events.h:
reorganize events code
sql/mysqld.cc:
reorganize events code
sql/set_var.cc:
reorganize events code
sql/sql_class.cc:
add ::change_security_context() and restore_security_context()
sql/sql_class.h:
add ::change_security_context() and restore_security_context()
sql/sql_db.cc:
reorganize Events code
sql/sql_parse.cc:
reorganize Events code
sql/sql_show.cc:
reorganize Events code
Diffstat (limited to 'sql/event_db_repository.h')
-rw-r--r-- | sql/event_db_repository.h | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/sql/event_db_repository.h b/sql/event_db_repository.h index d8a8784089e..c0cfccf215a 100644 --- a/sql/event_db_repository.h +++ b/sql/event_db_repository.h @@ -16,5 +16,87 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +enum enum_events_table_field +{ + ET_FIELD_DB = 0, + ET_FIELD_NAME, + ET_FIELD_BODY, + ET_FIELD_DEFINER, + ET_FIELD_EXECUTE_AT, + ET_FIELD_INTERVAL_EXPR, + ET_FIELD_TRANSIENT_INTERVAL, + ET_FIELD_CREATED, + ET_FIELD_MODIFIED, + ET_FIELD_LAST_EXECUTED, + ET_FIELD_STARTS, + ET_FIELD_ENDS, + ET_FIELD_STATUS, + ET_FIELD_ON_COMPLETION, + ET_FIELD_SQL_MODE, + ET_FIELD_COMMENT, + ET_FIELD_COUNT /* a cool trick to count the number of fields :) */ +}; + + +int +evex_db_find_event_by_name(THD *thd, const LEX_STRING dbname, + const LEX_STRING ev_name, + TABLE *table); + +class Event_queue_element; + +class Event_db_repository +{ +public: + Event_db_repository(){} + ~Event_db_repository(){} + + int + init_repository(); + + void + deinit_repository(); + + int + open_event_table(THD *thd, enum thr_lock_type lock_type, TABLE **table); + + int + create_event(THD *thd, Event_timed *et, my_bool create_if_not, + uint *rows_affected); + + int + update_event(THD *thd, Event_timed *et, sp_name *new_name); + + int + drop_event(THD *thd, LEX_STRING db, LEX_STRING name, bool drop_if_exists, + uint *rows_affected); + + int + drop_schema_events(THD *thd, LEX_STRING schema); + + int + drop_user_events(THD *thd, LEX_STRING definer); + + int + find_event(THD *thd, sp_name *name, Event_timed **ett, TABLE *tbl, + MEM_ROOT *root); + + int + load_named_event(THD *thd, Event_timed *etn, Event_timed **etn_new); + + int + find_event_by_name(THD *thd, LEX_STRING db, LEX_STRING name, TABLE *table); +private: + + int + drop_events_by_field(THD *thd, enum enum_events_table_field field, + LEX_STRING field_value); + + MEM_ROOT repo_root; + + /* Prevent use of these */ + Event_db_repository(const Event_db_repository &); + void operator=(Event_db_repository &); +}; #endif /* _EVENT_DB_REPOSITORY_H_ */ |