MariaDB server is a community developed fork of MySQL server. Started by core members of the original MySQL team, MariaDB actively works with outside developers to deliver the most featureful, stable, and sanely licensed open SQL server in the industry.
  • MariaDB\ 71.8%
  • C++ 16.4%
  • C 10.4%
  • Shell 0.5%
  • Perl 0.4%
  • Other 0.3%
Find a file
unknown f4781a7e4c fix for bug #17619 Scheduler race conditions
- Scheduler is either initialized at server start or never.
  Starting & stopping is now suspending & resuming.
- The scheduler has clear OO interface
- Now all calls to the scheduler are synchronous
- GLOBAL event_scheduler uses thd::sys_var_tmp (see set_var.cc)
- External API is encapsulated into class Events
- Includes fixes for all comments of Kostja's review of 19.05.2005

Starting to merge into 5.1-release (5.1.10) and push


BitKeeper/etc/ignore:
  Added libmysqld/event_scheduler.cc to the ignore list
libmysqld/Makefile.am:
  executor -> scheduler
mysql-test/r/events.result:
  update result
mysql-test/r/events_bugs.result:
  update result
mysql-test/r/events_logs_tests.result:
  update result
mysql-test/r/events_microsec.result:
  update result
mysql-test/r/events_scheduling.result:
  update result
mysql-test/r/events_stress.result:
  update result
mysql-test/t/disabled.def:
  enable these tests
mysql-test/t/events.test:
  optimize the test a bit for speed, save some seconds runtime
  remove FULL from SHOW EVENTS
  mostly use I_S.EVENTS
mysql-test/t/events_bugs.test:
  Skip irrelevant for the current design tests - all events are loaded
  on server startup. Change in mysql.event will be visible on next server start.
  Don't use numeric error codes.
mysql-test/t/events_logs_tests.test:
  optimize the test a bit for speed
mysql-test/t/events_microsec.test:
   Skip irrelevant for the current design tests - all events are loaded
      on server startup. Change in mysql.event will be visible on next server start.
      Don't use numeric error codes.
mysql-test/t/events_scheduling.test:
  broader test
mysql-test/t/events_stress.test:
  Rework the test to the new architecture of suspending/resuming.
  Use less events, no need for thousands, hundreds is still ok.
sql/Makefile.am:
  executor -> scheduler
sql/cmakelists.txt:
  executor -> scheduler
sql/event.cc:
  - remove todo comments
  - remove unneded evex_queue abstraction functions
  - move events_init() and events_shutdown() from event_executor.cc to here
  - export db_create_event
  - remove evex_load_and_compile_event, part of class Event_scheduler
  - integrate the public interface found in event.h and used by sql_parse.cc
    to use the new class Event_scheduler.
sql/event.h:
  - add COND_finished so if one thread kills a running event it waits on this
  - export callback event_timed_definer_equal, event_timed_identifier_equal(),
    event_timed_name_equal and event_timed_db_equal()
    to be used by Event_scheduler::drop_matching_events()
  - cleanup event.h
  - encapsulated all external interface into class Events
sql/event_executor.cc:
  make it empty, will delete after that
sql/event_priv.h:
  - more things in the private header
  - remove event queue abstraction functions. tightly bind to QUEUE
  - export privately db_drop_event, db_find_event, db_create_event()
  - made change_security_context() and restore_security_context() free functions
sql/event_timed.cc:
  - fix calculation of time when ENDS is set (STARTS is always set)
  - during Event_timed::compile() set the right Security_ctx. Prevents a crash
        during Event_scheduler::load_events_from_db()
  - add Event_timed::kill_thread()
  - implement event_timed_*_equal()
  - made change_security_context() and restore_security_context() free functions.
  - Comments cleanups
sql/lex.h:
  new word scheduler for SHOW SCHEDULER STATUS (available only debug builds)
sql/log.cc:
  move these from event_scheduler.cc
sql/mysql_priv.h:
  refactor kill_one_thread
  export sql_print_message_func and sql_print_message_handlers
sql/mysqld.cc:
  In close_connections, called by kill_server() skip the main scheduler
  thread and use events_shutdown() for shutting down the scheduler, in the same
  manner it's done for RPL.
  Add a new value to --event-scheduler :
  0 <- No scheduler available
  1 <- Start with scheduler enabled
  2 <- Start with scheduler suspended
sql/repl_failsafe.cc:
  refactor thd::system_thread to be an enum
sql/set_var.cc:
  move sys_var_event_executor::update() to set_var.cc
  executor -> scheduler
  use thd::sys_var_tmp
sql/set_var.h:
  executor -> scheduler
sql/share/errmsg.txt:
  3 new error messages
sql/sql_class.cc:
  refactor thd::system_thread to be an enum . more type-safety
sql/sql_class.h:
  refactor thd::system_thread to be an enum . more type-safety
sql/sql_db.cc:
  get the error from evex_drop_schema_events
sql/sql_error.h:
  export warning_level_names
sql/sql_lex.h:
  new command SHOW SCHEDULER STATUS, available only in debug build and
  for debug purposes.
sql/sql_parse.cc:
  refactor kill_one_thread() -> does the *dirty* work, and sql_kill
  just the reporting.
  add handler for SQLCOM_SHOW_SCHEDULER_STATUS
sql/sql_show.cc:
  fix verbosity handling (this will be obsoleted anyway by the fix for 17394).
sql/sql_yacc.yy:
  remove FULL from SHOW EVENTS
  add SHOW SCHEDULER STATUS in debug builds
sql/table.cc:
  Fix valgrind warning.
2006-05-22 20:46:13 +02:00
BitKeeper pekka:get - push push push 2006-05-02 21:47:53 +02:00
BUILD WL#3201 post-review fixups 2006-05-01 21:33:09 -07:00
client Porting fix of Bug#19564 from 5.0/5.1 trees. 2006-05-15 14:58:48 -04:00
cmd-line-utils Merge neptunus.(none):/home/msvensson/mysql/bug16557/my50-bug16557 2006-02-21 08:57:18 +01:00
config/ac-macros Merge 2006-05-12 14:16:20 +05:00
dbug Final patch to remove the last of the OS2 support. 2006-04-15 18:17:32 -07:00
Docs Remove old cruft from the tree: mysqltestmanager, mysql_test_run_new, 2006-04-11 18:54:24 -07:00
extra Bug#19804 Tests run with valgrind shows uninitialised value in yaSSL 2006-05-15 20:24:51 +02:00
include Merge 2006-05-12 14:16:20 +05:00
libmysql Backport fix for mysql client not using SSl library directly 2006-04-22 00:48:13 +02:00
libmysql_r fixes for 'make dist' and 'make distcheck' 2006-04-12 14:08:24 +02:00
libmysqld fix for bug #17619 Scheduler race conditions 2006-05-22 20:46:13 +02:00
man - Removed obsolete and outdated man page files from the man 2005-10-27 14:51:58 +02:00
mysql-test fix for bug #17619 Scheduler race conditions 2006-05-22 20:46:13 +02:00
mysys Merge mysql.com:/home/my/mysql-5.0 2006-05-04 15:58:30 +03:00
netware Merge 2006-04-04 23:37:44 +02:00
plugin fixes 2006-04-30 15:52:30 -04:00
pstack Makefile.am, configure.in: 2005-09-24 15:51:45 +02:00
regex Some changes to make it possible to build for Windows with CMake from 2006-03-24 22:50:56 +01:00
scripts Delete unused (and unmaintained) scripts. 2006-04-17 20:01:07 -07:00
server-tools Merge mysql.com:/home/jimw/my/mysql-5.0-clean 2006-04-30 13:27:38 -07:00
sql fix for bug #17619 Scheduler race conditions 2006-05-22 20:46:13 +02:00
sql-common Backport fix for mysql client not using SSl library directly 2006-04-22 00:48:13 +02:00
storage mysql.spec.sh: 2006-05-16 22:47:22 +02:00
strings Merge bk-internal.mysql.com:/home/bk/mysql-5.1-new 2006-05-02 15:09:35 -04:00
support-files mysql.spec.sh: 2006-05-16 22:47:22 +02:00
tests mysql.spec.sh: 2006-05-16 22:47:22 +02:00
unittest mysql.spec.sh: 2006-05-16 22:47:22 +02:00
VC++Files Merge mysql.com:/home/my/mysql-5.0 2006-05-04 15:58:30 +03:00
vio Added support for key_block_size for key and table level (WL#602) 2006-05-03 15:59:17 +03:00
win Update readme file with instructions for VCExpress and Platform SDK 2006-04-10 18:44:55 +02:00
zlib Some changes to make it possible to build for Windows with CMake from 2006-03-24 22:50:56 +01:00
.bzrignore fix for bug #17619 Scheduler race conditions 2006-05-22 20:46:13 +02:00
.cvsignore Import changeset 2000-07-31 21:29:14 +02:00
cmakelists.txt WL#3201 2006-04-20 10:44:21 -07:00
configure.in mysql.spec.sh: 2006-05-16 22:47:22 +02:00
COPYING - manual.texi will be replaced with a manual written in DocBook/XML. This ChangeSet removes all 2005-04-13 11:51:38 +02:00
Makefile.am fixes 2006-04-30 15:52:30 -04:00
README README: 2006-04-01 04:13:33 +02:00

This is a release of MySQL, a dual-license SQL database server.
MySQL is brought to you by the MySQL team at MySQL AB.

License information can be found in these files:
- For GPL (free) distributions, see the COPYING file.
- For commercial distributions, see the MySQLEULA.txt file.


For further information about MySQL or additional documentation, see:
- The latest information about MySQL: http://www.mysql.com
- The current MySQL documentation: http://dev.mysql.com/doc

Some manual sections of special interest:

- If you are migrating from an older version of MySQL, please read the
  "Upgrading from..." section first!
- To see what MySQL can do, take a look at the features section.
- For installation instructions, see the Installation chapter.
- For future plans, see the TODO appendix.
- For the new features/bugfix history, see the News appendix.
- For the currently known bugs/misfeatures (known errors) see the problems
  appendix.
- For a list of developers and other contributors, see the Credits
  appendix.

A local copy of the MySQL Reference Manual can be found in the Docs
directory in GNU Info format.  You can also browse the manual online or
download it in any of several formats at the URL given earlier in this
file.

************************************************************

IMPORTANT:

Bug or error reports should be sent to http://bugs.mysql.com.