Commit graph

144 commits

Author SHA1 Message Date
Sergei Golubchik
d2755a2c9c 5.3->5.5 merge 2011-11-22 18:04:38 +01:00
Sergei Golubchik
0e007344ea mysql-5.5.18 merge 2011-11-03 19:17:05 +01:00
Sergei Golubchik
76f0b94bb0 merge with 5.3
sql/sql_insert.cc:
  CREATE ... IF NOT EXISTS may do nothing, but
  it is still not a failure. don't forget to my_ok it.
  ******
  CREATE ... IF NOT EXISTS may do nothing, but
  it is still not a failure. don't forget to my_ok it.
sql/sql_table.cc:
  small cleanup
  ******
  small cleanup
2011-10-19 21:45:18 +02:00
Michael Widenius
22e793639a Added new options to KILL. New syntax is KILL [HARD|SOFT] [CONNECTION|QUERY] [ID | USER user_name]
- If USER is given, all threads for that user is signaled
- If SOFT is used then the KILL will not be sent to the handler. This can be used to not interrupt critical things in the handler like 'REPAIR'.

Internally added more kill signals. This gives us more information of why a query/connection was killed.
- KILL_SERVER is used when server is going down. In this case the users gets ER_SHUTDOWN as the reason connection was killed.
- Changed signals to number in correct order, which makes it easier to test how the signal should affect the code.
- New error message ER_CONNECTION_KILLED if connection was killed by 'KILL CONNECTION'. Before we got error ER_SHUTDOWN.

Changed names of not used parameters KILL_QUERY & KILL_CONNCTION to mysql_kill() to not conflict with defines in the server


include/mysql.h.pp:
  Updated file
include/mysql_com.h:
  Changed names of not used parameters KILL_QUERY & KILL_CONNCTION to mysql_kill() to not conflict with defines in the server
mysql-test/r/kill.result:
  Added test of KILL USER
mysql-test/suite/rpl/r/rpl_stm_000001.result:
  Updated error code
mysql-test/suite/rpl/t/rpl_stm_000001.test:
  Updated error codes
mysql-test/t/flush_read_lock_kill.test:
  Updated error codes
mysql-test/t/kill.test:
  Added test of KILL USER
plugin/handler_socket/handlersocket/database.cpp:
  Removed THD:: from KILL
sql/debug_sync.cc:
  Removed THD:: from KILL
sql/event_scheduler.cc:
  Removed THD:: from KILL
sql/filesort.cc:
  Removed THD:: from KILL
sql/ha_ndbcluster_binlog.cc:
  Removed THD:: from KILL
sql/handler.cc:
  Removed THD:: from KILL
  Simplify code.
sql/lex.h:
  Added new keywords HARD | SOFT
sql/log.cc:
  Removed THD:: from KILL
  Added testing of new error ER_CONNECTION_KILLED
sql/log_event.cc:
  Removed THD:: from KILL
  Added testing of new error ER_CONNECTION_KILLED
sql/mysql_priv.h:
  Added new prototypes
sql/mysqld.cc:
  Removed THD:: from KILL
  Use KILL_SERVER_HARD signal on shutdown.
sql/scheduler.cc:
  Removed THD:: from KILL
  Simplify test if connection should be killed
sql/share/errmsg.txt:
  New error message ER_CONNECTION_KILLED
sql/slave.cc:
  Removed THD:: from KILL
sql/sp_head.cc:
  Removed THD:: from KILL
sql/sql_base.cc:
  Removed THD:: from KILL
sql/sql_cache.cc:
  Removed THD:: from KILL
sql/sql_class.cc:
  Removed THD:: from KILL
  Added killed_errno()
  Only signal kill to storage engine if HARD bit is set.
sql/sql_class.h:
  Move KILL options out from THD to make them easier to use in sql_yacc.yy
sql/sql_connect.cc:
  Removed THD:: from KILL
sql/sql_delete.cc:
  Removed THD:: from KILL
sql/sql_error.cc:
  Removed THD:: from KILL
sql/sql_insert.cc:
  Removed THD:: from KILL
  Simplifed testing if thread is killed.
sql/sql_lex.h:
  Added kill options to st_lex
sql/sql_load.cc:
  Removed THD:: from KILL
sql/sql_parse.cc:
  Added kill options to st_lex
  Simplifed and optimzed testing of thd->killed at end of query
  Added support for KILL USER
  Extended sql_kill() to allow use of more kill signals.
sql/sql_repl.cc:
  Removed THD:: from KILL
sql/sql_show.cc:
  Removed THD:: from KILL
  Simplied testing if query/connection was killed
sql/sql_table.cc:
  Removed THD:: from KILL
sql/sql_update.cc:
  Removed THD:: from KILL
sql/sql_yacc.yy:
  Added support for new KILL syntax: KILL [HARD|SOFT] [CONNECTION|QUERY] [ID | USER user_name]
storage/archive/ha_archive.cc:
  Simplify compilation
storage/maria/ha_maria.cc:
  Removed THD:: from KILL
2011-09-23 01:13:38 +03:00
Kent Boortz
02e07e3b51 Updated/added copyright headers 2011-06-30 17:46:53 +02:00
Kent Boortz
68f00a5686 Updated/added copyright headers 2011-06-30 17:37:13 +02:00
Michael Widenius
f34be18938 Merge with MariaDB 5.2 2011-05-10 18:17:43 +03:00
Michael Widenius
8882d71f3f Make event stop code even more robust.
(Test failed if we added my_sleep(200000) in event_queue::cond_wait() just before pthread_cond_wait();  Not likely scenario but better to get that fixed too)
2011-05-09 15:14:04 +03:00
Michael Widenius
ff3da0f963 Change TABLE->alias to String for less memory reallocation
Changed some String.ptr() -> String.c_ptr() for String that are not guaranteed to end with \0
Removed some c_ptr() usage from parameters to functions that takes ptr & length
Use preallocate buffers to avoid calling malloc() for most operations. 


sql/event_db_repository.cc:
  alias is now a String
sql/event_scheduler.cc:
  c_ptr -> c_ptr_safe() to avoid warnings from valgrind.
sql/events.cc:
  c_ptr -> c_ptr_safe() to avoid warnings from valgrind.
  c_ptr -> ptr() as function takes ptr & length
sql/field.cc:
  alias is now a String
sql/field.h:
  alias is now a String
sql/ha_partition.cc:
  alias is now a String
sql/handler.cc:
  alias is now a String
  ptr() -> c_ptr() as string is not guaranteed to be \0 terminated
sql/item.cc:
  Store error parameter in separarte buffer to ensure correct error message
sql/item_func.cc:
  ptr() -> c_ptr_safe() as string is not guaranteed to be \0 terminated
sql/item_sum.h:
  Use my_strtod() instead of my_atof() to not have to make string \0 terminated
sql/lock.cc:
  alias is now a String
sql/log.cc:
  c_ptr() -> ptr() as function takes ptr & length
sql/log_event.cc:
  c_ptr_quick() -> ptr() as we only want to get the pointer to String buffer
sql/opt_range.cc:
  ptr() -> c_ptr() as string is not guaranteed to be \0 terminated
sql/opt_table_elimination.cc:
  alias is now a String
sql/set_var.cc:
  ptr() -> c_ptr() as string is not guaranteed to be \0 terminated
  c_ptr() -> c_ptr_safe() to avoid warnings from valgrind.
  c_ptr() -> ptr() as function takes ptr & length
  Simplify some code.
sql/sp.cc:
  c_ptr() -> ptr() as function takes ptr & length
sql/sp_rcontext.cc:
  alias is now a String
sql/sql_base.cc:
  alias is now a String.
  Here we win a realloc() for most alias usage.
sql/sql_class.cc:
  Use size descriptor for printf() to avoid accessing bytes outside of buffer
sql/sql_insert.cc:
  Change allocation of TABLE as it's now contains a String
  _ptr() -> ptr() as function takes ptr & length
sql/sql_load.cc:
  Use preallocate buffers to avoid calling malloc() for most operations.
sql/sql_parse.cc:
  Use c_ptr_safe() to ensure string is \0 terminated.
sql/sql_plugin.cc:
  c_ptr_quick() -> ptr() as function takes ptr & length
sql/sql_select.cc:
  alias is now a String
sql/sql_show.cc:
  alias is now a String
sql/sql_string.h:
  Added move() function to change who owns the string (owner does the free)
sql/sql_table.cc:
  alias is now a String
  c_ptr() -> c_ptr_safe() to avoid warnings from valgrind.
sql/sql_test.cc:
  c_ptr() -> c_ptr_safe() to avoid warnings from valgrind.
  alias is now a String
sql/sql_trigger.cc:
  c_ptr() -> c_ptr_safe() to avoid warnings from valgrind.
  Use field->init() to setup pointers to alias.
sql/sql_update.cc:
  alias is now a String
sql/sql_view.cc:
  ptr() -> c_ptr_safe() as string is not guaranteed to be \0 terminated
sql/sql_yacc.yy:
  r() -> c_ptr() as string is not guaranteed to be \0 terminated
sql/table.cc:
  alias is now a String
sql/table.h:
  alias is now a String
storage/federatedx/ha_federatedx.cc:
  Remove extra 1 byte alloc that is automaticly done by strmake()
  Ensure that error message ends with \0
storage/maria/ha_maria.cc:
  alias is now a String
storage/myisam/ha_myisam.cc:
  alias is now a String
2011-02-28 12:48:50 +02:00
Igor Babaev
7f52af655a Merge. 2010-12-10 23:23:34 -08:00
Sergei Golubchik
65ca700def merge.
checkpoint.
does not compile.
2010-11-25 18:17:28 +01:00
Michael Widenius
52090a4434 Code cleanup to get fewer reallocs() during execution.
- Changed TABLE->alias to String to get fewer reallocs when alias are used.
- Preallocate some buffers

Changed some String->c_ptr() -> String->ptr() when \0 is not needed.
Fixed wrong usage of String->ptr() when we need a \0 terminated string.
Use my_strtod() instead of my_atof() to avoid having to add \0 to string.
c_ptr() -> c_ptr_safe() to avoid warnings from valgrind.
zr 

sql/event_db_repository.cc:
  Update usage of TABLE->alias
sql/event_scheduler.cc:
  c_ptr() -> c_ptr_safe()
sql/events.cc:
  c_ptr() -> ptr() as \0 was not needed
sql/field.cc:
  Update usage of TABLE->alias
sql/field.h:
  Update usage of TABLE->alias
sql/ha_partition.cc:
  Update usage of TABLE->alias
sql/handler.cc:
  Update usage of TABLE->alias
  Fixed wrong usage of str.ptr()
sql/item.cc:
  Fixed error where code wrongly assumed string was \0 terminated.
sql/item_func.cc:
  c_ptr() -> c_ptr_safe()
  Update usage of TABLE->alias
sql/item_sum.h:
  Use my_strtod() instead of my_atof() to avoid having to add \0 to string
sql/lock.cc:
  Update usage of TABLE->alias
sql/log.cc:
  c_ptr() -> ptr() as \0 was not needed
sql/log_event.cc:
  c_ptr_quick() -> ptr() as \0 was not needed
sql/opt_range.cc:
  ptr() -> c_ptr() as \0 is needed
sql/opt_subselect.cc:
  Update usage of TABLE->alias
sql/opt_table_elimination.cc:
  Update usage of TABLE->alias
sql/set_var.cc:
  ptr() -> c_ptr() as \0 is needed
  c_ptr() -> c_ptr_safe()
sql/sp.cc:
  c_ptr() -> ptr() as \0 was not needed
sql/sp_rcontext.cc:
  
  Update usage of TABLE->alias
sql/sql_base.cc:
  Preallocate buffers
  Update usage of TABLE->alias
sql/sql_class.cc:
  Fix arguments to sprintf() to work even if string is not \0 terminated
sql/sql_insert.cc:
  Update usage of TABLE->alias
  c_ptr() -> ptr() as \0 was not needed
sql/sql_load.cc:
  Preallocate buffers
  Trivial optimizations
sql/sql_parse.cc:
  Trivial optimization
sql/sql_plugin.cc:
  c_ptr() -> ptr() as \0 was not needed
sql/sql_select.cc:
  Update usage of TABLE->alias
sql/sql_show.cc:
  Update usage of TABLE->alias
sql/sql_string.h:
  Added move() function to move allocated memory from one object to another.
sql/sql_table.cc:
  Update usage of TABLE->alias
  c_ptr() -> c_ptr_safe()
sql/sql_test.cc:
  ptr() -> c_ptr_safe()
sql/sql_trigger.cc:
  Update usage of TABLE->alias
  c_ptr() -> c_ptr_safe()
sql/sql_update.cc:
  Update usage of TABLE->alias
sql/sql_view.cc:
  ptr() -> c_ptr_safe()
sql/sql_yacc.yy:
  ptr() -> c_ptr()
sql/table.cc:
  
  Update usage of TABLE->alias
sql/table.h:
  Changed TABLE->alias to String to get fewer reallocs when alias are used.
storage/federatedx/ha_federatedx.cc:
  Use c_ptr_safe() to ensure strings are \0 terminated.
storage/maria/ha_maria.cc:
  Update usage of TABLE->alias
storage/myisam/ha_myisam.cc:
  Update usage of TABLE->alias
storage/xtradb/row/row0sel.c:
  Ensure that null bits in record are properly reset.
  (Old code didn't work as row_search_for_mysql() can be called twice while reading fields from one row.
2010-11-24 00:08:48 +02:00
Igor Babaev
4f75a8254a Merge 5.3-mwl128 -> 5.3 2010-10-27 16:31:22 -07:00
Davi Arnaut
711c318c07 Merge of mysql-trunk-bugfixing into mysql-trunk-merge. 2010-07-15 10:47:50 -03:00
Davi Arnaut
f56dd32bf7 Bug#34043: Server loops excessively in _checkchunk() when safemalloc is enabled
Essentially, the problem is that safemalloc is excruciatingly
slow as it checks all allocated blocks for overrun at each
memory management primitive, yielding a almost exponential
slowdown for the memory management functions (malloc, realloc,
free). The overrun check basically consists of verifying some
bytes of a block for certain magic keys, which catches some
simple forms of overrun. Another minor problem is violation
of aliasing rules and that its own internal list of blocks
is prone to corruption.

Another issue with safemalloc is rather the maintenance cost
as the tool has a significant impact on the server code.
Given the magnitude of memory debuggers available nowadays,
especially those that are provided with the platform malloc
implementation, maintenance of a in-house and largely obsolete
memory debugger becomes a burden that is not worth the effort
due to its slowness and lack of support for detecting more
common forms of heap corruption.

Since there are third-party tools that can provide the same
functionality at a lower or comparable performance cost, the
solution is to simply remove safemalloc. Third-party tools
can provide the same functionality at a lower or comparable
performance cost. 

The removal of safemalloc also allows a simplification of the
malloc wrappers, removing quite a bit of kludge: redefinition
of my_malloc, my_free and the removal of the unused second
argument of my_free. Since free() always check whether the
supplied pointer is null, redudant checks are also removed.

Also, this patch adds unit testing for my_malloc and moves
my_realloc implementation into the same file as the other
memory allocation primitives.

client/mysqldump.c:
  Pass my_free directly as its signature is compatible with the
  callback type -- which wasn't the case for free_table_ent.
2010-07-08 18:20:08 -03:00
Davi Arnaut
54a5c00de9 Unset the execute bit where it's not needed. 2010-07-03 20:17:03 -03:00
Konstantin Osipov
90a87cd52d A pre-requisite for WL#5419 "LOCK_open scalability:
make tdc_refresh_version an 
atomic counter".
Backport the trivial changes from mysql-trunk-iplus.
2010-06-10 15:43:32 +04:00
Jon Olav Hauglid
ac78736638 merge from mysql-trunk-bugfixing 2010-04-20 10:51:50 +02:00
Jon Olav Hauglid
3ff33e5dc5 Bug #52367 Deadlock involving SET GLOBAL EVENT_SCHEDULER = OFF
during rqg_mdl_deadlock test

The problem was that if two connection threads simultaneously tries
to execute "SET GLOBAL EVENT_SCHEDULER = OFF", one of them could
hang waiting for the scheduler to stop.

The first connection thread would kill the event scheduler thread
and then start waiting for it to exit. The second connection thread
would then find the event scheduler thread in the process of exiting
and also wait for it to exit. However, since the event scheduler 
thread used signal to wake only one waiting thread, the other connection
thread would be left waiting.

This bug was a regression introduced by the fix for Bug#51160.
Before #51160 it was not possible for two connection threads to 
try to stop the event scheduler thread simultaneously.

This patch fixes the problem my making sure the event scheduler
thread uses broadcast to notify all waiters that it is exiting.

No test case added as this would require adding debug sync points
to parts of the code where sync points are currently not used.
The patch has been tested with the non-deterministic test case
from the bug description as well as using the RQG.
2010-04-14 09:30:57 +02:00
Mats Kindahl
23d8586dbf WL#5030: Split and remove mysql_priv.h
This patch:

- Moves all definitions from the mysql_priv.h file into
  header files for the component where the variable is
  defined
- Creates header files if the component lacks one
- Eliminates all include directives from mysql_priv.h
- Eliminates all circular include cycles
- Rename time.cc to sql_time.cc
- Rename mysql_priv.h to sql_priv.h
2010-03-31 16:05:33 +02:00
unknown
4bf849c23c Merge MySQL 5.1.44 into MariaDB. 2010-03-04 09:03:07 +01:00
Jon Olav Hauglid
e60ef89317 Followup to Bug#45225 Locking: hang if drop table with no timeout
This patch prevents system threads and system table accesses from
using user-specified values for "lock_wait_timeout". Instead all
such accesses are done using the default value (1 year).

This prevents background tasks (such as replication, events, 
accessing stored function definitions, logging, reading time-zone
information, etc.) from failing in cases where the global value
of "lock_wait_timeout" is set very low.

The patch also simplifies the open tables API. Rather than adding
another convenience function for opening and locking system tables,
this patch removes most of the existing convenience functions for
open_and_lock_tables_derived(). Before, open_and_lock_tables() was
a convenience function that enforced derived tables handling, while
open_and_lock_tables_derived() was the main function where derived
tables handling was optional. Now, this convencience function is
gone and the main function is renamed to open_and_lock_tables(). 

No test case added as it would have required the use of --sleep to
check that system threads and system tables have a different timeout
value from the user-specified "lock_wait_timeout" system variable.
2010-02-24 18:04:00 +01:00
Alexander Nozdrin
1ab31553ca Manual merge from mysql-trunk-merge.
Conflicts:
  - mysql-test/t/bug46080.test
2010-02-03 19:21:17 +03:00
Alexander Nozdrin
cf55cf596e Manual merge from mysql-5.1-bugteam.
Conflicts:
  - mysql-test/collections/default.experimental
  - mysql-test/suite/rpl/r/rpl_sp.result
2010-02-03 17:01:48 +03:00
Georgi Kodinov
1dafac6f35 fixed various pb2 test failures on windows. 2010-02-02 14:17:21 +02:00
Marc Alff
e0e0f9e3d4 WL#2360 Performance schema
Part V: performance schema implementation
2010-01-11 18:47:27 -07:00
Marc Alff
3d91522561 WL#2360 Performance schema
Part IV: sql instrumentation
2010-01-06 22:42:07 -07:00
Sergei Golubchik
1ad5bb1a69 WL#4738 streamline/simplify @@variable creation process
Bug#16565 mysqld --help --verbose does not order variablesBug#20413 sql_slave_skip_counter is not shown in show variables
Bug#20415 Output of mysqld --help --verbose is incomplete
Bug#25430 variable not found in SELECT @@global.ft_max_word_len;
Bug#32902 plugin variables don't know their names
Bug#34599 MySQLD Option and Variable Reference need to be consistent in formatting!
Bug#34829 No default value for variable and setting default does not raise error
Bug#34834 ? Is accepted as a valid sql mode
Bug#34878 Few variables have default value according to documentation but error occurs  
Bug#34883 ft_boolean_syntax cant be assigned from user variable to global var.
Bug#37187 `INFORMATION_SCHEMA`.`GLOBAL_VARIABLES`: inconsistent status
Bug#40988 log_output_basic.test succeeded though syntactically false.
Bug#41010 enum-style command-line options are not honoured (maria.maria-recover fails)
Bug#42103 Setting key_buffer_size to a negative value may lead to very large allocations 
Bug#44691 Some plugins configured as MYSQL_PLUGIN_MANDATORY in can be disabled
Bug#44797 plugins w/o command-line options have no disabling option in --help
Bug#46314 string system variables don't support expressions
Bug#46470 sys_vars.max_binlog_cache_size_basic_32 is broken
Bug#46586 When using the plugin interface the type "set" for options caused a crash.
Bug#47212 Crash in DBUG_PRINT in mysqltest.cc when trying to print octal number
Bug#48758 mysqltest crashes on sys_vars.collation_server_basic in gcov builds
Bug#49417 some complaints about mysqld --help --verbose output
Bug#49540 DEFAULT value of binlog_format isn't the default value
Bug#49640 ambiguous option '--skip-skip-myisam' (double skip prefix)
Bug#49644 init_connect and \0
Bug#49645 init_slave and multi-byte characters
Bug#49646 mysql --show-warnings crashes when server dies


CMakeLists.txt:
  Bug#44691 Some plugins configured as MYSQL_PLUGIN_MANDATORY in can be disabled
client/mysql.cc:
  don't crash with --show-warnings when mysqld dies
config/ac-macros/plugins.m4:
  Bug#44691 Some plugins configured as MYSQL_PLUGIN_MANDATORY in can be disabled
include/my_getopt.h:
  comments
include/my_pthread.h:
  fix double #define
mysql-test/mysql-test-run.pl:
  run sys_vars suite by default
  properly recognize envirinment variables (e.g. MTR_MAX_SAVE_CORE) set to 0
  escape gdb command line arguments
mysql-test/suite/sys_vars/r/rpl_init_slave_func.result:
  init_slave+utf8 bug
mysql-test/suite/sys_vars/t/rpl_init_slave_func.test:
  init_slave+utf8 bug
mysys/my_getopt.c:
  Bug#34599 MySQLD Option and Variable Reference need to be consistent in formatting!
  Bug#46586 When using the plugin interface the type "set" for options caused a crash.
  Bug#49640 ambiguous option '--skip-skip-myisam' (double skip prefix)
mysys/typelib.c:
  support for flagset
sql/ha_ndbcluster.cc:
  backport from telco tree
sql/item_func.cc:
  Bug#49644 init_connect and \0
  Bug#49645 init_slave and multi-byte characters
sql/sql_builtin.cc.in:
  Bug#44691 Some plugins configured as MYSQL_PLUGIN_MANDATORY in can be disabled
sql/sql_plugin.cc:
  Bug#44691 Some plugins configured as MYSQL_PLUGIN_MANDATORY in can be disabled
  Bug#32902 plugin variables don't know their names
  Bug#44797 plugins w/o command-line options have no disabling option in --help
sql/sys_vars.cc:
  all server variables are defined here
storage/myisam/ft_parser.c:
  remove unnecessary updates of param->quot
storage/myisam/ha_myisam.cc:
  myisam_* variables belong here
strings/my_vsnprintf.c:
  %o and %llx
unittest/mysys/my_vsnprintf-t.c:
  %o and %llx tests
vio/viosocket.c:
  bugfix: fix @@wait_timeout to work with socket timeouts (vs. alarm thread)
2009-12-22 10:35:56 +01:00
Mikael Ronstrom
1568f5721c Merge 2009-12-14 17:08:30 +01:00
Mikael Ronstrom
39703a1b93 WL#5138, fixed review comments 2009-11-23 17:57:21 +01:00
Mikael Ronstrom
c9442b67f6 WL#5138, review fixes 2009-11-20 16:43:21 +01:00
Mikael Ronstrom
b6c1ecb37f WL#5138 merged to mysql-next-mr 2009-11-20 16:23:32 +01:00
Mattias Jonsson
176cabc1b4 Bug#32115: Bad use of Name_resolution_context from current LEX in partitioning
port from mysql-next (5.4) to mysql-next-mr-bugfixing (5.5/5.6?)

2755 Konstantin Osipov	2008-11-27
Bug#32115 will remove the pre-requisite to initialize LEX to open tables.
This dependency was added in 5.1 and was supposed to be removed in 6.0.
Remove asserts and initialization of LEX in places where we don't deal
with partitioned tables.

sql/sp_head.cc:
  Fix a typo.
2009-11-20 00:13:54 +01:00
Konstantin Osipov
9a4a845adc Backport of the following revision from 6.0-codebase:
----------------------------------------------------------
revno: 2617.1.12
committer: kostja@bodhi.(none)
timestamp: Sun 2008-04-20 11:18:52 +0400
message:
  A fix for Bug#32771 "events_bugs.test fails randomly".
  In Event_scheduler::stop(), which may be called from destructor,
  wait synchronously for the parallel Event_scheduler::stop() to
  complete before returning. This fixes a race between
  MySQL shutdown thread and the scheduler thread who could call
  stop() in parallel.

sql/event_scheduler.cc:
  There was a race condition between the shutdown thread and
  the scheduler thread: the shutdown thread could delete the scheduler
  mutex before the sheduler has stopped.
2009-10-13 22:29:28 +04:00
Mikael Ronstrom
bae553cfcd Backported my_atomic from 6.0-codebase and added support for 64-bit atomics to enable removal of LOCK_thread_count from every query, removed LOCK_thread_count from use in dispatch_command and close of query which is used in every query, now uses atomic increments/decrements instead 2009-10-12 11:00:39 +02:00
Marc Alff
63e56390a3 WL#2110 (SIGNAL)
WL#2265 (RESIGNAL)

Manual merge of SIGNAL and RESIGNAL to mysql-trunk-signal,
plus required dependencies.
2009-09-10 03:18:29 -06:00
Sergey Petrunya
29f0dcb563 Merge MySQL->MariaDB
* Finished Monty and Jani's merge
* Some InnoDB tests still fail (because it's old xtradb code run against
  newer testsuite). They are expected to go after mergning with the latest
  xtradb.
2009-09-08 00:50:10 +04:00
Davi Arnaut
8ec2f3d0d1 Bug#43587: Putting event_scheduler=1 in init SQL file crashes
mysqld

The problem was that enabling the event scheduler inside a init
file caused the server to crash upon start-up. The crash occurred
because the event scheduler wasn't being initialized before the
commands in the init-file are processed.

The solution is to initialize the event scheduler before the init
file is read. The patch also disables the event scheduler during
bootstrap and makes the bootstrap operation robust in the
presence of background threads.

mysql-test/std_data/init_file.dat:
  Add test case for Bug#43587
sql/event_scheduler.cc:
  Signal that the thread_count has been decremented.
sql/events.cc:
  Disable the event scheduler during bootstrap.
sql/mysql_priv.h:
  Export variable.
sql/mysqld.cc:
  Initialize the event scheduler before commands are executed.
sql/sql_parse.cc:
  Signal that the bootstrap thread is done.
2009-07-24 15:45:42 -03:00
Konstantin Osipov
b4bf7dd31e Code review for Bug#43587 Putting event_scheduler=1 in init SQL file crashes
mysqld
2009-07-24 20:20:46 +04:00
Gleb Shchepa
2bc6b6a800 Merge from 5.0
******
manual merge 5.0-bugteam --> 5.1-bugteam (bug 38816)
2009-07-24 21:04:55 +05:00
Michael Widenius
fb68158856 Merge with base MySQL-5.1-maria 2008-12-03 06:07:50 +02:00
Michael Widenius
32f81bab7d WL#3262 add mutex lock order checking to safemutex (also called safe_mutex_deadlock_detector)
This writes a warning on stderr if one uses mutex in different order,
like if one in one case would lock mutex in the order A,B and in another case
would lock mutex in the order B,A
This is inspired by and loosely based on the LOCKDEP patch by Jonas
Wrong mutex order is either fixed or mutex are marked with MYF_NO_DEADLOCK_DETECTION
if used inconsistently (need to be fixed by server team)

KNOWN_BUGS.txt:
  Added information that one need to dump and restore Maria tables
include/hash.h:
  Added prototype function for walking over all elements in a hash
include/my_pthread.h:
  Added my_pthread_mutex_init() and my_pthread_mutex_lock(); These should be used if one wants to disable mutex order checking.
  Changed names of the nonposix mutex_init functions to not conflict with my_phread_mutex_init()
  Added and extended structures for mutex deadlock detection.
  New arguments to sage_mutex_init() and safe_mutex_lock() to allow one to disable mutex order checking.
  Added variable 'safe_mutex_deadlock_detector' to enable/disable deadlock detection for all pthread_mutex_init()
mysys/Makefile.am:
  Added cleaning of test files
  Added test_thr_mutex
mysys/hash.c:
  Added hash_iterate() to iterate over all elements in a hash
  More comments
mysys/my_init.c:
  Added calls to destory all mutex uses by mysys()
  Added waiting for threads to end before calling TERMINATE() to list not freed memory
mysys/my_pthread.c:
  Changed names to free my_pthread_mutex_init() for mutex-lock-order-checking
mysys/my_sleep.c:
  Fixed too long wait if using 1000000L as argument
mysys/my_thr_init.c:
  Mark THR_LOCK_threads and THR_LOCK_malloc to not have mutex deadlock detection.
  (We can't have it enabled for this as these are internal mutex used by the detector  
  Call my_thread_init() early as we need thread specific variables enabled for the following pthread_mutex_init()
  Move code to wait for threads to end to my_wait_for_other_threads_to_die()
  Don't destroy mutex and conditions unless all threads have died
  Added my_thread_destroy_mutex() to destroy all mutex used by the mysys thread system
  Name the thread specific mutex as "mysys_var->mutex"
  Added my_thread_var_mutex_in_use() to return pointer to mutex in use or 0 if thread variables are not initialized
mysys/mysys_priv.h:
  Added prototypes for functions used internally with mutex-wrong-usage detection
mysys/thr_mutex.c:
  Added runtime detection of mutex used in conflicting order
  See WL#3262 or test_thr_mutex.c for examples
  The base idea is for each mutex have two hashes:
  - mutex->locked_mutex points to all mutex used after this one
  - mutex->used_mutex points to all mutex which has this mutex in it's mutex->locked_mutex
  There is a wrong mutex order if any mutex currently locked before this mutex is in the mutex->locked_mutex hash
sql/event_queue.cc:
  Mark mutex used inconsistently (need to be fixed by server team)
sql/event_scheduler.cc:
  Declare the right order to take the mutex
sql/events.cc:
  Mark mutex used inconsistently (need to be fixed by server team)
sql/ha_ndbcluster_binlog.cc:
  Mark mutex used inconsistently (need to be fixed by server team)
sql/log.cc:
  Mark mutex used inconsistently (need to be fixed by server team)
sql/mysqld.cc:
  Use pthread_mutex_trylock instead of pthread_mutex_unlock() when sending kill signal to thread
  This is needed to avoid wrong mutex order as normally one takes 'current_mutex' before mysys_var->mutex.
  Added call to free sp cache.
  Add destruction of LOCK_server_started and COND_server_started.
  Added register_mutex_order() function to register in which order mutex should be taken
  (to initiailize mutex_deadlock_detector).
  Added option to turn off safe_mutex_deadlock_detector
sql/protocol.cc:
  Fixed wrong argument to DBUG_PRINT (found by valgrind)
sql/rpl_mi.cc:
  Mark mutex used inconsistently (need to be fixed by server team)
sql/set_var.cc:
  Remove wrong locking of LOCK_global_system_variables when reading and setting log variables
  (would cause inconsistent mutex order).
  Update global variables outside of logger.unlock() as LOCK_global_system_variables has to be taken before logger locks
  Reviewed by gluh
sql/sp_cache.cc:
  Added function to destroy mutex used by sp cache
sql/sp_cache.h:
  Added function to destroy mutex used by sp cache
sql/sql_class.cc:
  Use pthread_mutex_trylock instead of pthread_mutex_unlock() when sending kill signal to thread
  This is needed to avoid wrong mutex order as normally one takes 'current_mutex' before mysys_var->mutex.
  Register order in which LOCK_delete and mysys_var->mutex is taken
sql/sql_insert.cc:
  Give a name for Delayed_insert::mutex
  Mark mutex used inconsistently (need to be fixed by server team)
  Move closing of tables outside of di->mutex (to avoid wrong mutex order)
sql/sql_show.cc:
  Don't keep LOCK_global_system_variables locked over value->show_type() as this leads to wrong mutex order
storage/innobase/handler/ha_innodb.cc:
  Disable safe_muted_deadlock_detector for innobase intern mutex (to speed up page cache initialization)
storage/maria/ha_maria.cc:
  Added flag to ha_maria::info() to signal if we need to lock table share or not.
  This is needed to avoid locking mutex in wrong order
storage/maria/ha_maria.h:
  Added flag to ha_maria::info() to signal if we need to lock table share or not.
storage/maria/ma_close.c:
  Destroy key_del_lock
  Simplify freeing ftparser_param
storage/maria/ma_key.c:
  Better comment
storage/maria/ma_loghandler.c:
  Mark mutex used inconsistently (need to be fixed by sanja)
storage/maria/ma_state.c:
  More comments
storage/maria/ma_test1.c:
  Ensure that safe_mutex_deadlock_detector is always on (should be, this is just for safety)
storage/maria/ma_test2.c:
  Ensure that safe_mutex_deadlock_detector is always on (should be, this is just for safety)
2008-12-03 00:02:52 +02:00
Kristofer Pettersson
32f151cdab Bug#38066 Events log 'note' level messages by default in the error log
The event scheduler logged start-, stop-execution messages in the error log
on lowest log-warning level which would lead to very large log files in 
a short time.
    
This patch changes this behavior so that no start-/stop-messages are logged.
Log messages stating successful execution are also removed.


sql/event_scheduler.cc:
  * Removed logging for start-/stop-events.
  * Removed log-messages stating successful execution of events.
2008-10-07 19:20:13 +02:00
unknown
1b98a962d5 Merge mattiasj-laptop.(none):/home/mattiasj/clones/mysql-5.1-main
into  mattiasj-laptop.(none):/home/mattiasj/clones/mysql-5.1-last_with_main


libmysqld/lib_sql.cc:
  Auto merged
mysql-test/include/mix1.inc:
  Auto merged
mysql-test/r/innodb_mysql.result:
  Auto merged
sql/event_scheduler.cc:
  Auto merged
sql/events.cc:
  Auto merged
sql/ha_ndbcluster_binlog.cc:
  Auto merged
sql/handler.cc:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/slave.cc:
  Auto merged
sql/sql_acl.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_connect.cc:
  Auto merged
sql/sql_insert.cc:
  Auto merged
sql/sql_lex.h:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
2007-11-12 21:09:48 +01:00
unknown
e5b2745efc Bug#31210 - INSERT DELAYED crashes server when used on
partitioned table

Trying INSERT DELAYED on a partitioned table, that has not been
used right before, crashes the server. When a table is used for
select or update, it is kept open for some time. This period I
mean with "right before".

Information about partitioning of a table is stored in form of
a string in the .frm file. Parsing of this string requires a
correctly set up lexical analyzer (lex). The partitioning code
uses a new temporary instance of a lex. But it does still refer
to the previously active lex. The delayd insert thread does not
initialize its lex though...

Added initialization for thd->lex before open table in the delayed
thread and at all other places where it is necessary to call
lex_start() if all tables would be partitioned and need to parse
the .frm file.


mysql-test/r/partition_hash.result:
  Bug#31210 - INSERT DELAYED crashes server when used on
              partitioned table
  Added test result
mysql-test/t/partition_hash.test:
  Bug#31210 - INSERT DELAYED crashes server when used on
              partitioned table
  Added test
sql/event_scheduler.cc:
  Bug#31210 - INSERT DELAYED crashes server when used on
              partitioned table
  Initialized lex for later use in open_table().
sql/events.cc:
  Bug#31210 - INSERT DELAYED crashes server when used on
              partitioned table
  Initialized lex for later use in open_table().
sql/ha_ndbcluster_binlog.cc:
  Bug#31210 - INSERT DELAYED crashes server when used on
              partitioned table
  Initialized lex for later use in open_table().
sql/slave.cc:
  Bug#31210 - INSERT DELAYED crashes server when used on
              partitioned table
  Initialized lex for later use in open_table().
sql/sql_acl.cc:
  Bug#31210 - INSERT DELAYED crashes server when used on
              partitioned table
  Initialized lex for later use in open_table().
sql/sql_base.cc:
  Bug#31210 - INSERT DELAYED crashes server when used on
              partitioned table
  Asserted that lex is initialized in open_table().
sql/sql_connect.cc:
  Bug#31210 - INSERT DELAYED crashes server when used on
              partitioned table
  Initialized lex for later use in open_table().
sql/sql_insert.cc:
  Bug#31210 - INSERT DELAYED crashes server when used on
              partitioned table
  Added initialization for thd->lex before open table.
sql/sql_lex.cc:
  Bug#31210 - INSERT DELAYED crashes server when used on
              partitioned table
  Added 'is_lex_started' to test if lex is initialized.
sql/sql_lex.h:
  Bug#31210 - INSERT DELAYED crashes server when used on
              partitioned table
  Added 'is_lex_started' to test if lex is initialized.
sql/sql_plugin.cc:
  Bug#31210 - INSERT DELAYED crashes server when used on
              partitioned table
  Initialized lex for later use in open_table().
sql/sql_servers.cc:
  Bug#31210 - INSERT DELAYED crashes server when used on
              partitioned table
  Initialized lex for later use in open_table().
sql/sql_udf.cc:
  Bug#31210 - INSERT DELAYED crashes server when used on
              partitioned table
  Initialized lex for later use in open_table().
sql/table.cc:
  Bug#31210 - INSERT DELAYED crashes server when used on
              partitioned table
  Asserted that lex is initialized in open_table_from_share().
sql/tztime.cc:
  Bug#31210 - INSERT DELAYED crashes server when used on
              partitioned table
  Initialized lex for later use in open_table().
2007-11-05 16:25:40 +01:00
unknown
66cd6d0c8f Patch for BUG#31111: --read-only crashes MySQL (events fail to load).
There actually were several problems here:
  - WRITE-lock is required to load events from the mysql.event table,
    but in the read-only mode an ordinary user can not acquire it;
  - Security_context::master_access attribute was not properly
    initialized in Security_context::init(), which led to differences
    in behavior with and without debug configure options.
  - if the server failed to load events from mysql.event, it forgot to
    close the mysql.event table, that led to the coredump, described
    in the bug report.

The patch is to fix all these problems:
  - Use the super-user to acquire WRITE-lock on the mysql.even table;
  - The WRITE-lock is acquired by the event scheduler in two cases:
    - on initial loading of events from the database;
    - when an event has been executed, so its attributes should
      be updated.
    Other cases when WRITE-lock is needed for the mysql.event table
    happen under the user account. So, nothing should be changed there
    for the read-only mode. The user is able to create/update/drop
    an event only if he is a super-user.
  - Initialize Security_context::master_access;
  - Close the mysql.event table in case something went wrong.


mysql-test/r/events_bugs.result:
  Update result file.
mysql-test/t/events_bugs.test:
  A test case for BUG#31111: --read-only crashes MySQL (events fail
  to load).
sql/event_data_objects.cc:
  When the worker thread is going to drop event after the execution
  we should do it under the super-user privileges in order to be able
  to lock the mysql.event table for writing in the read-only mode.
  
  This is a system operation, where user SQL can not be executed.
  So, there is no risk in compromising security by dropping an event
  under the super-user privileges.
sql/event_db_repository.cc:
  1. Close tables if something went wrong in simple_open_n_lock_tables();
  2. As soon as the system event scheduler thread is running under
     the super-user privileges, we should always be able to acquire
     WRITE-lock on the mysql.event table. However, let's have an assert
     to check this.
sql/event_scheduler.cc:
  Run the system event scheduler thread under the super-user privileges.
  In particular, this is needed to be able to lock the mysql.event table
  for writing when the server is running in the read-only mode.
  
  The event scheduler executes only system operations and does not
  execute user SQL (this is what the worker threads for). So, there
  is no risk in compromising security by running the event scheduler
  under the super-user privileges.
sql/events.cc:
  Open the mysql.event table as the super user to be able to acquire
  WRITE-lock in the read-only mode.
sql/sql_class.cc:
  Initialize Security_context::master_acces.
2007-10-19 19:57:08 +04:00
unknown
7691bbbfe3 Provide initial module structure to Doxygen.
sql/event_data_objects.cc:
  Add module comments.
sql/event_data_objects.h:
  Add module comments.
sql/event_db_repository.cc:
  Add module comments.
sql/event_db_repository.h:
  Add module comments.
sql/event_queue.cc:
  Add module comments.
sql/event_queue.h:
  Add module comments.
sql/event_scheduler.cc:
  Add module comments.
sql/event_scheduler.h:
  Add module comments.
sql/events.cc:
  Add module comments.
sql/events.h:
  Add module comments.
sql/lock.cc:
  Add module comments.
sql/sp_head.h:
  Add module comments.
sql/sql_base.cc:
  Add module comments.
sql/sql_lex.h:
  Add module comments.
sql/sql_parse.cc:
  Add module comments.
sql/sql_select.cc:
  Add module comments.
sql/sql_yacc.yy:
  Add module comments.
2007-08-15 19:08:44 +04:00
unknown
b59217ebbb Slow query log to file now displays queries with microsecond precission
--long-query-time is now given in seconds with microseconds as decimals
--min_examined_row_limit added for slow query log
long_query_time user variable is now double with 6 decimals
Added functions to get time in microseconds
Added faster time() functions for system that has gethrtime()  (Solaris)
We now do less time() calls.
Added field->in_read_set() and field->in_write_set() for easier field manipulation by handlers
set_var.cc and my_getopt() can now handle DOUBLE variables.
All time() calls changed to my_time()
my_time() now does retry's if time() call fails.
Added debug function for stopping in mysql_admin_table() when tables are locked
Some trivial function and struct variable renames to avoid merge errors.
Fixed compiler warnings
Initialization of some time variables on windows moved to my_init() 


include/my_getopt.h:
  Added support for double arguments
include/my_sys.h:
  Fixed wrong type to packfrm()
  Added new my_time functions
include/mysql/plugin.h:
  Added support for DOUBLE
libmysql/CMakeLists.txt:
  Added new time functions
libmysql/Makefile.shared:
  Added new time functions
mysql-test/r/variables.result:
  Testing of long_query_time
mysql-test/t/variables.test:
  Testing of long_query_time
mysys/charset.c:
  Fixed compiler warnings
mysys/default_modify.c:
  Fixed compiler warnings
mysys/hash.c:
  Fixed compiler warnings
mysys/mf_getdate.c:
  Use my_time()
mysys/mf_iocache2.c:
  Fixed compiler warnings
mysys/mf_pack.c:
  Fixed compiler warnings
mysys/mf_path.c:
  Fixed compiler warnings
mysys/my_append.c:
  Fixed compiler warnings
mysys/my_compress.c:
  Fixed compiler warnings
mysys/my_copy.c:
  Fixed compiler warnings
mysys/my_gethwaddr.c:
  Fixed compiler warnings
mysys/my_getopt.c:
  Added support for double arguments
mysys/my_getsystime.c:
  Added functions to get time in microseconds.
  Added faster time() functions for system that has gethrtime()  (Solaris)
  Moved windows initialization code to my_init()
mysys/my_init.c:
  Added initializing of variables needed for windows time functions
mysys/my_static.c:
  Added variables needed for windows time functions
mysys/my_static.h:
  Added variables needed for windows time functions
mysys/my_thr_init.c:
  Added THR_LOCK_time, used for faster my_time()
mysys/mysys_priv.h:
  Added THR_LOCK_time, used for faster my_time()
mysys/thr_alarm.c:
  time() -> my_time()
sql/event_data_objects.cc:
  end_time() -> set_current_time()
sql/event_queue.cc:
  end_time() -> set_current_time()
sql/event_scheduler.cc:
  Fixed compiler warnings
sql/field.h:
  Added field->in_read_set() and field->in_write_set() for easier field manipulation by handlers
sql/item.h:
  Added decimal to Item_float(double)
sql/item_cmpfunc.h:
  Added decimal to Item_float(double)
sql/item_timefunc.cc:
  time() -> my_time()
sql/item_xmlfunc.cc:
  Fixed compiler warning
sql/lock.cc:
  lock_time() -> set_time_after_lock()
sql/log.cc:
  Timing in slow query log to file is now done in microseconds
  Changed some while() loops to for() loops.
  Fixed indentation
  time() -> my_time()
sql/log.h:
  Slow query logging is now done based on microseconds
sql/log_event.cc:
  time() -> my_time()
  Fixed arguments to new Item_float()
sql/mysql_priv.h:
  Fixed compiler warnings
  Added opt_log_slow_slave_statements
sql/mysqld.cc:
  Added --log_slow_slave_statements and --min_examined_row_limit
  --long-query-time now takes a double argument with microsecond resolution
  Don't write shutdown message when using --help
  Removed not needed \n
  Thread create time and connect time is now done in microseconds
  time() -> my_time()
  Avoid some time() calls
sql/net_serv.cc:
  Fixed compiler warnings
sql/parse_file.cc:
  time() -> my_time()
sql/set_var.cc:
  Added support for DOUBLE variables
  Added support for variables that are given in seconds with microsecond resolution
sql/set_var.h:
  Added support for variables that are given in seconds with microsecond resolution
sql/slave.cc:
  Allow logging of slave queries to slow query log if 'opt_log_slow_slave_statements' is given
  time() -> my_time()
sql/sql_cache.h:
  Fixed compiler warning()
sql/sql_class.cc:
  Initialize new THD variables
sql/sql_class.h:
  long_query_time is now in microseconds
  Added min_examined_row_limit
  Reordered some THD elements for higher efficency
  Added timers in microseconds (connect_utime, thr_create_utime, start_utime and utime_after_lock)
  Start of query is now recorded both in seconds and in microseconds.
  Following renames was made for more clarity and avoid merge problems from earlier versions:
  connect_time -> connect_utime
  thr_create_time -> thr_create_utime
  end_time()  -> set_current_time()
  lock_time() -> set_time_after_lock()
  
  Added THD::start_utime, which is start of query in microseconds from some arbitary time
  Added function THD::current_utime()
  
  Removed safe_time() as retry's are handled in my_time()
sql/sql_connect.cc:
  User resources are now using microsecond resolution
sql/sql_insert.cc:
  end_time() -> set_current_time()
sql-common/client.c:
  time() -> my_time()
sql/sql_parse.cc:
  Testing if we should print to slow_query_log() is now done with microsecond precission.
  If min_examined_row_limit is given, only log queries to slow query log that has examined more rows than this.
sql/sql_select.cc:
  Simplify code now that Item_float() takes decimals as argument
sql/sql_show.cc:
  time() -> my_time()
  Added support for SYS_DOUBLE
sql/sql_table.cc:
  Added debug function for stopping in mysql_admin_table() when tables are locked
sql/structs.h:
  intime -> reset_utime
2007-07-30 11:33:50 +03:00
unknown
75abceb2fe Fix for Bug#28963 "Missing DBUG_RETURN message when stopping event
scheduler".
Add missing DBUG_VOID_RETURN


sql/event_scheduler.cc:
  Fix for Bug#28963 "Missing DBUG_RETURN message when stopping event scheduler"
2007-06-10 13:16:02 +04:00
unknown
3da4eef700 Fix for bug#28075 COM_DEBUG crashes mysqld
Uninitialized in the constructor member variables were
pointing to nirvana and causing a crash when debug information
of the Event Scheduler was dumped in result to COM_DEBUG
packet sent to the server.


sql/event_queue.cc:
  Initialize member variables or they will point to
  nirvana and could possible cause a crash during
  dumping of debug information.
sql/event_queue.h:
  remove unneeded line
sql/event_scheduler.cc:
  Initialize member variables or they will point to
  nirvana and could possible cause a crash during
  dumping of debug information.
sql/event_scheduler.h:
  remove unneeded state
2007-05-21 10:51:11 +02:00
unknown
c1b6e128cc An attempt to fix a sporadic valgrind memory leak in Event Scheduler:
streamline the event worker thread work flow and try to eliminate
possibilities for memory corruptions that might have been
lurking in previous (complicated) code.
This patch: 
 * removes Event_job_data::compile that was never used
 * cleans up Event_job_data::execute to minimize juggling with
   thread context and eliminate unneded code paths
 * Implements Security_context::change/restore_security_context
   to be able to re-use these methods in all stored programs
This is to maybe fix Bug#27733 "Valgrind failures in 
remove_table_from_cache".
Review comments applied.


sql/event_data_objects.cc:
  Remove Event_job_data::compile, which was never used without
  Event_job_data::execute().
  Merge the implementation of compile() with Event_job_data::execute().
  Reuse existing functions to prepare the event worker thread
  for execution instead of some previously copy-pasted code.
  Do not change and restore the current database inside 
  Event_job_data::execute(), just set the current database in the 
  thread, that is enough to parse and execute an event.
sql/event_data_objects.h:
  Update declarations.
sql/event_scheduler.cc:
  Allocate Event_job_data on stack.
sql/item_func.cc:
  Update to match the new declaration of restore_security_context()
sql/sp_head.cc:
  Update to match the new declaration of 
  change/restore_security_context()
sql/sql_class.cc:
  Move change/restore_security_context to class Security_context.
  Add more comments.
sql/sql_class.h:
  Make change/restore_security_context methods of Security_context.
  That allows us to reuse them in Event Scheduler (instead of a
  copy-paste presently used there).
sql/sql_trigger.cc:
  Update to match the new declaration of 
  change/restore_security_context()
2007-04-13 16:35:56 -04:00
unknown
c557623a68 Remove a race between Event Scheduler shutdown and SHOW PROCESSLIST.
This will hopefully fix events.test failure on vmware-win32, 
where scheduling is very primitive.


mysql-test/t/events_scheduling.test:
  This test case has no races now and can be enabled under valgrind.
sql/event_scheduler.cc:
  Make Event Scheduler thread shutdown more synchronous: report
  successful shutdown only after having removed the scheduler
  thread from the global list of threads.
  This ensures that after the scheduler has been stopped, its
  thread is not present in SHOW PROCESSLIST output.
2007-04-06 19:44:14 +04:00
unknown
ff452d050a Post-merge and post-review fixes for the patch for
Bug#23631 "Events: SHOW VARIABLES doesn't work when mysql.event 
is damaged:


mysql-test/r/events.result:
  Update results (a post-merge fix)
mysql-test/r/events_bugs.result:
  Update results (a post-merge fix)
mysql-test/r/events_scheduling.result:
  Update results (a post-merge fix)
mysql-test/t/events_scheduling.test:
  Make sure this test has no races.
sql/event_data_objects.cc:
  Manual post-merge fix for the events replication patch.
sql/event_data_objects.h:
  A post-merge fix.
sql/event_db_repository.cc:
  A post-merge fix.
sql/event_scheduler.cc:
  We should drop the event inside ::execute since there we have
  the right credentials to do so (otherwise Events::drop_event
  returns "access denied" error).
sql/events.cc:
  A post-review fix for: rename start_or_stop_event_scheduler
  to switch_event_scheduler_state.
sql/events.h:
  A post-review fix for: rename start_or_stop_event_scheduler
  to switch_event_scheduler_state.
sql/set_var.cc:
  A post-review fix for: rename start_or_stop_event_scheduler
  to switch_event_scheduler_state.
sql/sql_yacc.yy:
  Remove unused declaratoins.
2007-04-05 20:47:22 +04:00
unknown
fa1d637e89 A set of changes aiming to make the Event Scheduler more user-friendly
when there are no up-to-date system tables to support it:
 - initialize the scheduler before reporting "Ready for connections".
   This ensures that warnings, if any, are printed before "Ready for
   connections", and this message is not mangled.
 - do not abort the scheduler if there are no system tables
 - check the tables once at start up, remember the status and disable
   the scheduler if the tables are not up to date.
   If one attempts to use the scheduler with bad tables,
   issue an error message.
 - clean up the behaviour of the module under LOCK TABLES and pre-locking
   mode
 - make sure implicit commit of Events DDL works as expected.
 - add more tests


Collateral clean ups in the events code.

This patch fixes Bug#23631 Events: SHOW VARIABLES doesn't work 
when mysql.event is damaged


mysql-test/r/events.result:
  Update results.
mysql-test/r/events_bugs.result:
  Update results.
mysql-test/r/events_restart_phase1.result:
  Update results.
mysql-test/r/events_restart_phase2.result:
  Update results.
mysql-test/r/events_restart_phase3.result:
  Update results.
mysql-test/r/events_scheduling.result:
  Update results.
mysql-test/r/events_time_zone.result:
  Update results.
mysql-test/t/events.test:
  Add new tests for tampering with mysql.event and some more
  tests for sub-statements, LOCK TABLES mode and pre-locking.
mysql-test/t/events_bugs.test:
  Move the non-concurrent part of test for Bug 16420 to this file.
mysql-test/t/events_restart_phase1.test:
  Rewrite events_restart_* tests to take into account that now
  we check mysql.event table only once, at server startup.
mysql-test/t/events_restart_phase2.test:
  Rewrite events_restart_* tests to take into account that now
  we check mysql.event table only once, at server startup.
mysql-test/t/events_restart_phase3.test:
  Rewrite events_restart_* tests to take into account that now
  we check mysql.event table only once, at server startup.
mysql-test/t/events_scheduling.test:
  Add more coverage for event_scheduler global variable.
mysql-test/t/events_time_zone.test:
  Move the non-concurrent part of the tests for Bug 16420 to 
  events_bugs.test
sql/event_data_objects.cc:
  Move update_timing_fields functionality to Event_db_repository.
  Make loading of events from a table record more robust to tampering
  with the table - now we do not check mysql.event on every table open.
sql/event_data_objects.h:
  Cleanup.
sql/event_db_repository.cc:
  Now Event_db_repository is responsible for table I/O only.
  All the logic of events DDL is handled outside, in Events class please
  refer to the added test coverage to see how this change affected
  the behavior of Event Scheduler.
  Dependency on sp_head.h and sp.h removed.
  Make this module robust to tweaks with mysql.event table.
  Move check_system_tables from events.cc to this file
sql/event_db_repository.h:
  Cleanup declarations (remove unused ones, change return type to bool
  from int).
sql/event_queue.cc:
  Update to adapt to the new start up scheme of the Event Scheduler.
sql/event_queue.h:
  Cleanup declarations.
sql/event_scheduler.cc:
  Make all the error messages uniform:
  [SEVERITY] Event Scheduler: [user][schema.event] message
  Using append_identifier for error logging was an overkill - we may 
  need it only if the system character set may have NUL (null character)
  as part of a valid identifier, this is currently never the case, 
  whereas additional quoting did not look nice in the log.
sql/event_scheduler.h:
  Cleanup the headers.
sql/events.cc:
  Use a different start up procedure of Event Scheduler:
  - at start up, try to check the system tables first.
  If they are not up-to-date, disable the scheduler.
  - try to load all the active events. In case of a load error, abort
  start up.
  - do not parse an event on start up. Parsing only gives some information
  about event validity, but far not all.
  Consolidate the business logic of Events DDL in this module.
  Now opt_event_scheduler may change after start up and thus is protected
  by LOCK_event_metadata mutex.
sql/events.h:
  Use all-static-data-members approach to implement Singleton pattern.
sql/mysqld.cc:
  New invocation scheme of Events. Move some logic to events.cc.
  Initialize the scheduler before reporting "Ready for connections".
sql/set_var.cc:
  Clean up sys_var_thd_sql_mode::symbolic_mode_representation
  to work with a LEX_STRING.
  Move more logic related to @@events_scheduler global variable to Events
  module.
sql/set_var.h:
  Update declarations.
sql/share/errmsg.txt:
  If someone tampered with mysql.event table after the server has
  started we no longer give him/her a complete report what was actually 
  broken. Do not send the user to look at the error log in such case,
  as there is nothing there (check_table_intact is not executed).
sql/sp_head.cc:
  Update to a new declaration of 
  sys_var_thd_sql_mode::symbolic_mode_representation
sql/sql_db.cc:
  New invocation scheme of Events module.
sql/sql_parse.cc:
  Move more logic to Events module. Make sure that we are consistent
  in the way access rights are checked for Events DDL: always
  after committing the current transaction and checking the system tables.
sql/sql_show.cc:
  Update to the new declarations of 
  sys_var_thd_sql_mode::symbolic_mode_representation
sql/sql_test.cc:
  New invocation scheme of events.
sql/table.cc:
  mysql.event is a system table.
  Update check_table_intact to be concurrent, more verbose, and less smart.
sql/table.h:
  Add a helper method.
mysql-test/r/events_trans.result:
  New BitKeeper file ``mysql-test/r/events_trans.result''
mysql-test/t/events_trans.test:
  New BitKeeper file ``mysql-test/t/events_trans.test'':
  test cases for Event Scheduler that require a transactional
  storage engine.
2007-04-05 15:24:34 +04:00
unknown
b2d3dddef5 Change module prefix in error messages: SCHEDULER -> Event Scheduler,
to not collide with the recently introduced thread scheduler module.


mysql-test/r/events.result:
  Update test results with new error texts (SCHEDULER -> Event Scheduler,
  grammar).
sql/event_data_objects.cc:
  SCHEDULER -> Event Scheduler.
sql/event_queue.cc:
  SCHEDULER -> Event Scheduler.
sql/event_scheduler.cc:
  SCHEDULER -> Event Scheduler.
sql/events.cc:
  SCHEDULER -> Event Scheduler.
sql/share/errmsg.txt:
  SCHEDULER -> Event Scheduler. Fix English grammar.
2007-03-23 19:14:08 +03:00
unknown
57dc12563f Trivial cleanups and whitespace change in Event Scheduler code.
A larger patch is to come, this is to exclude rudimentary changes
from it.


sql/event_data_objects.cc:
  Whitespace change.
sql/event_data_objects.h:
  Remove debug allocators - we have safemalloc.
sql/event_db_repository.cc:
  Whitespace change.
sql/event_db_repository.h:
  Whitespace change.
sql/event_queue.cc:
  Remove an unused structure. Whitespace change.
sql/event_queue.h:
  Whitespace.
sql/event_scheduler.cc:
  Whitespace change.
sql/event_scheduler.h:
  Add comments. Whitespace change.
sql/events.cc:
  Whitespace change.
sql/events.h:
  Trivial cleanups.
2007-03-23 18:14:03 +03:00
unknown
086fba7627 BUG#16420: Events: timestamps become UTC
BUG#26429: SHOW CREATE EVENT is incorrect for an event that
           STARTS NOW()
BUG#26431: Impossible to re-create an event from backup if its
           STARTS clause is in the past
WL#3698: Events: execution in local time zone

The problem was that local times specified by the user in AT, STARTS
and ENDS of CREATE EVENT/ALTER EVENT statement were converted to UTC,
and the original time zone was forgotten.  This way, event scheduler
couldn't honor Daylight Saving Time shifts, and times shown to the
user were also in UTC.  Additionally, CREATE EVENT didn't allow times
in the past, thus preventing straightforward event restoration from
old backups.

This patch reworks event scheduler time computations, performing them
in the time zone associated with the event.  Also it allows times to
be in the past.

The patch adds time_zone column to mysql.event table.

NOTE: The patch is almost final, but the bug#9953 should be pushed
first.


client/mysqldump.c:
  Before every CREATE EVENT, output its time zone.
mysql-test/include/wait_condition.inc:
  Add optional $wait_timeout parameter.
mysql-test/lib/init_db.sql:
  Add time_zone column.
mysql-test/r/events.result:
  Update result.
mysql-test/r/events_bugs.result:
  Update result.
mysql-test/r/events_grant.result:
  Update result.
mysql-test/r/events_restart_phase1.result:
  Update result.
mysql-test/r/events_scheduling.result:
  Update result.
mysql-test/r/mysqldump.result:
  Update result.
mysql-test/r/ps.result:
  Update result.
mysql-test/r/system_mysql_db.result:
  Update result.
mysql-test/t/events.test:
  Remove STARTS from the result, as it depends on current time.
mysql-test/t/events_bugs.test:
  Time in the past is no longer an error.
mysql-test/t/events_restart_phase1.test:
  Fill new column 'time_zone' in mysql.event.
mysql-test/t/events_scheduling.test:
  Cleanup: disable event scheduler.
scripts/mysql_create_system_tables.sh:
  Add new column 'time_zone' to mysql.event.
scripts/mysql_fix_privilege_tables.sql:
  Add new column 'time_zone' to mysql.event.
sql/event_data_objects.cc:
  The essence of the change is the following:
   - for internal times use my_time_t instead of TIME.  Assignment and
     comparison is done now on plain numbers.
   - in init_execute_at(), init_starts(), init_ends() convert given time
     to number of seconds since Epoch (aka Unix time, in UTC).
   - handle time_zone field loading and storing.
   - in get_next_time(), Unix time is converted back to event time zone,
     interval is added, and the result is converted to UTC again.
   - fix Event_timed::get_create_event() to report STARTS and ENDS.
   - before executing the event body we set thread time zone to the
     event time zone.
sql/event_data_objects.h:
  Add time_zone member to Event_basic class.
  
  Store internal times in my_time_t (number of seconds since Epoch),
  rather than in broken down TIME structure.
sql/event_db_repository.cc:
  Add time_zone column handling.
  
  Give a warning and do not create an event if its execution time is in
  the past, and ON COMPLETION NOT PRESERVE is set, because such an event
  should be dropped by that time.  Also, do not allow ALTER EVENT to
  set execution time in the past when ON COMPLETION NOT PRESERVE is set.
sql/event_db_repository.h:
  Add enum member for new time zone column.
sql/event_queue.cc:
  Replace handling of broken down times with simple handling of
  my_time_t.
sql/event_queue.h:
  Store internal times in my_time_t (number of seconds since Epoch),
  rather than in broken down TIME structure.
sql/event_scheduler.cc:
  Add TODO comment.
sql/events.cc:
  Send time_zone column for SHOW CREATE EVENT.
sql/share/errmsg.txt:
  Update error message, and add two more errors.
sql/sql_show.cc:
  Add TIME_ZONE column to the output of SHOW EVENTS.
mysql-test/r/events_time_zone.result:
  BitKeeper file /home/tomash/src/mysql_ab/mysql-5.1-wl3698/mysql-test/r/events_time_zone.result
mysql-test/t/events_time_zone.test:
  BitKeeper file /home/tomash/src/mysql_ab/mysql-5.1-wl3698/mysql-test/t/events_time_zone.test
2007-03-16 17:31:07 +03:00
unknown
2e34602392 Fixed compiler warnings
server-tools/instance-manager/angel.cc:
  Compiler warnings
sql/event_queue.cc:
  Compier warnings
sql/event_scheduler.cc:
  Compiler warnings
sql/events.cc:
  Compiler warnings
2007-03-01 16:39:00 -07:00
unknown
38a8283c6d Manual merge of 5.1 into 5.1-runtime
mysql-test/r/subselect.result:
  Manual merge
server-tools/instance-manager/mysqlmanager.cc:
  Manual merge
sql/event_scheduler.cc:
  Manual merge
sql/sql_parse.cc:
  Manual merge
2007-03-01 13:47:28 -07:00
unknown
6560c2aa04 Fix for memory leaks introduced with the push of patch for bug#22740.
Original patch did not have these leaks, they were introduced later
during manual applying of the patch.


sql/event_data_objects.cc:
  Original patch was not aware of the requirement to delete lex.sphead
  before doing anything else (bug#21856), and that was missed when the
  patch was applied later.
sql/event_scheduler.cc:
  The line was lost during manual patch applying.
2007-01-31 21:16:48 +03:00
unknown
3c39b0d831 Fix for bug#22740 Events: Decouple Event_queue from Event_db_repository
This patch implements the idea of the bug report by making Event_queue
unaware of Event_db_repository by making a higher level class - Events,
which is aware of most of all classes, responsible for passing all data
needed for adding/updating/deleting an event to/from the queue.

Introduces few new classes :
 - Event_worker_thread
 - Event_queue_element_for_exec


sql/event_data_objects.cc:
  Introduced a new class Event_queue_element_for_exec
  According to Konstantin it should be named Event_name and hold
  only two LEX_STRINGs but `dropped` is not saved on disk and will
  require additional logic in Event_worker_thread class, after loading
  to compute whether the event should be dropped or not. It's easier
  just to pass this flag around.
  
  Removed Event_queue_element::drop(). This method was a source of a
  race condition. At the place where the event should be dropped we
  call Events::drop_event() which is the only code-flow for dropping.
  In addition, because ::drop_event() holds Events::LOCK_metadata there is
  no source of race conditions. Before this patch dropping from ::drop()
  wasn't under LOCK_metadata and races were possible.
  
  Because Events::open_event_table was removed as a method, provisionally
  events_event_db_repository was exported from events.cc till a solution is
  build where Event_queue_element does not access directly mysql.event.
sql/event_data_objects.h:
  New class Event_queue_element_for_exec added which is returned
  from Event_queue::get_top_if_time() and passed through Event_scheduler
  to Event_worker_thread. There by using the (db)name Event_job_data is
  instanciated and executed.
  
  Dropped Event_queue_element::drop()
  
  thd was moved out of Event_job_data as it is now part of
  Event_queue_element_for_exec
sql/event_queue.cc:
  Removed dependency of Event_queue on Event_db_repository.
  The instantiation of Event_job_data was moved to class Event_worker_thread
  In place is a return of an object of Event_queue_element_for_exec is used
  later for instantiating Event_job_data.
  
  The `dropped` flag of Event_queue_element is passed over
  Event_queue_element_for_exec to the code in Event_worker_thread.
sql/event_queue.h:
  Removed dependency of Event_queue on Event_db_repository
  Removed dependency on Event_scheduler
sql/event_scheduler.cc:
  Added class Event_worker_thread, which is used during
  the execution of an event. It has a static init() method
  to get a pointer to Event_db_repository to be used for
  instantiation of Event_job_data object. This object it then
  executed.
sql/event_scheduler.h:
  Added class Event_worker_thread, which is used during
  the execution of an event.
sql/events.cc:
  Removed Events::open_event_table() because it was a product of
  a bad architecture.
sql/events.h:
  Removed friend definition, unneeded.
  
  Fixed Events::drop_event() to have the previous signature without
  bool only_from_disk
sql/sql_parse.cc:
  Fix call
2007-01-29 20:46:29 +03:00
unknown
92e68d49d7 Many files:
Changed header to GPL version 2 only


client/mysqlslap.c:
  Changed header to GPL version 2 only
include/atomic/nolock.h:
  Changed header to GPL version 2 only
include/atomic/rwlock.h:
  Changed header to GPL version 2 only
include/atomic/x86-gcc.h:
  Changed header to GPL version 2 only
include/atomic/x86-msvc.h:
  Changed header to GPL version 2 only
include/my_atomic.h:
  Changed header to GPL version 2 only
include/my_trie.h:
  Changed header to GPL version 2 only
include/my_vle.h:
  Changed header to GPL version 2 only
include/mysql/plugin.h:
  Changed header to GPL version 2 only
mysys/my_atomic.c:
  Changed header to GPL version 2 only
mysys/my_getncpus.c:
  Changed header to GPL version 2 only
mysys/my_memmem.c:
  Changed header to GPL version 2 only
mysys/my_vle.c:
  Changed header to GPL version 2 only
mysys/trie.c:
  Changed header to GPL version 2 only
plugin/Makefile.am:
  Changed header to GPL version 2 only
server-tools/instance-manager/IMService.h:
  Changed header to GPL version 2 only
server-tools/instance-manager/WindowsService.h:
  Changed header to GPL version 2 only
server-tools/instance-manager/exit_codes.h:
  Changed header to GPL version 2 only
server-tools/instance-manager/user_management_commands.h:
  Changed header to GPL version 2 only
sql/authors.h:
  Changed header to GPL version 2 only
sql/contributors.h:
  Changed header to GPL version 2 only
sql/event_data_objects.cc:
  Changed header to GPL version 2 only
sql/event_data_objects.h:
  Changed header to GPL version 2 only
sql/event_db_repository.cc:
  Changed header to GPL version 2 only
sql/event_db_repository.h:
  Changed header to GPL version 2 only
sql/event_queue.cc:
  Changed header to GPL version 2 only
sql/event_queue.h:
  Changed header to GPL version 2 only
sql/event_scheduler.cc:
  Changed header to GPL version 2 only
sql/event_scheduler.h:
  Changed header to GPL version 2 only
sql/events.cc:
  Changed header to GPL version 2 only
sql/events.h:
  Changed header to GPL version 2 only
sql/ha_ndbcluster_binlog.cc:
  Changed header to GPL version 2 only
sql/ha_ndbcluster_binlog.h:
  Changed header to GPL version 2 only
sql/ha_ndbcluster_tables.h:
  Changed header to GPL version 2 only
sql/ha_partition.cc:
  Changed header to GPL version 2 only
sql/ha_partition.h:
  Changed header to GPL version 2 only
sql/item_xmlfunc.cc:
  Changed header to GPL version 2 only
sql/item_xmlfunc.h:
  Changed header to GPL version 2 only
sql/log.h:
  Changed header to GPL version 2 only
sql/partition_element.h:
  Changed header to GPL version 2 only
sql/partition_info.cc:
  Changed header to GPL version 2 only
sql/partition_info.h:
  Changed header to GPL version 2 only
sql/rpl_filter.cc:
  Changed header to GPL version 2 only
sql/rpl_filter.h:
  Changed header to GPL version 2 only
sql/rpl_injector.cc:
  Changed header to GPL version 2 only
sql/rpl_injector.h:
  Changed header to GPL version 2 only
sql/rpl_mi.cc:
  Changed header to GPL version 2 only
sql/rpl_mi.h:
  Changed header to GPL version 2 only
sql/rpl_rli.cc:
  Changed header to GPL version 2 only
sql/rpl_rli.h:
  Changed header to GPL version 2 only
sql/rpl_tblmap.cc:
  Changed header to GPL version 2 only
sql/rpl_tblmap.h:
  Changed header to GPL version 2 only
sql/rpl_utility.cc:
  Changed header to GPL version 2 only
sql/rpl_utility.h:
  Changed header to GPL version 2 only
sql/sql_binlog.cc:
  Changed header to GPL version 2 only
sql/sql_partition.cc:
  Changed header to GPL version 2 only
sql/sql_partition.h:
  Changed header to GPL version 2 only
sql/sql_plugin.cc:
  Changed header to GPL version 2 only
sql/sql_plugin.h:
  Changed header to GPL version 2 only
sql/sql_servers.cc:
  Changed header to GPL version 2 only
sql/sql_servers.h:
  Changed header to GPL version 2 only
sql/sql_tablespace.cc:
  Changed header to GPL version 2 only
sql/sql_yacc.yy.bak:
  Changed header to GPL version 2 only
storage/Makefile.am:
  Changed header to GPL version 2 only
storage/archive/Makefile.am:
  Changed header to GPL version 2 only
storage/blackhole/Makefile.am:
  Changed header to GPL version 2 only
storage/csv/Makefile.am:
  Changed header to GPL version 2 only
storage/example/Makefile.am:
  Changed header to GPL version 2 only
storage/federated/Makefile.am:
  Changed header to GPL version 2 only
storage/innobase/handler/Makefile.am:
  Changed header to GPL version 2 only
storage/ndb/include/kernel/signaldata/AllocNodeId.hpp:
  Changed header to GPL version 2 only
storage/ndb/include/kernel/signaldata/CreateFilegroup.hpp:
  Changed header to GPL version 2 only
storage/ndb/include/kernel/signaldata/CreateFilegroupImpl.hpp:
  Changed header to GPL version 2 only
storage/ndb/include/kernel/signaldata/CreateObj.hpp:
  Changed header to GPL version 2 only
storage/ndb/include/kernel/signaldata/DictObjOp.hpp:
  Changed header to GPL version 2 only
storage/ndb/include/kernel/signaldata/DihFragCount.hpp:
  Changed header to GPL version 2 only
storage/ndb/include/kernel/signaldata/DropFilegroup.hpp:
  Changed header to GPL version 2 only
storage/ndb/include/kernel/signaldata/DropFilegroupImpl.hpp:
  Changed header to GPL version 2 only
storage/ndb/include/kernel/signaldata/DropObj.hpp:
  Changed header to GPL version 2 only
storage/ndb/include/kernel/signaldata/Extent.hpp:
  Changed header to GPL version 2 only
storage/ndb/include/kernel/signaldata/LgmanContinueB.hpp:
  Changed header to GPL version 2 only
storage/ndb/include/kernel/signaldata/PgmanContinueB.hpp:
  Changed header to GPL version 2 only
storage/ndb/include/kernel/signaldata/RestoreContinueB.hpp:
  Changed header to GPL version 2 only
storage/ndb/include/kernel/signaldata/RestoreImpl.hpp:
  Changed header to GPL version 2 only
storage/ndb/include/kernel/signaldata/RouteOrd.hpp:
  Changed header to GPL version 2 only
storage/ndb/include/kernel/signaldata/TsmanContinueB.hpp:
  Changed header to GPL version 2 only
storage/ndb/include/ndbapi/NdbIndexStat.hpp:
  Changed header to GPL version 2 only
storage/ndb/ndbapi-examples/mgmapi_logevent/mgmapi_logevent.cpp:
  Changed header to GPL version 2 only
storage/ndb/ndbapi-examples/mgmapi_logevent_dual/mgmapi_logevent_dual.cpp:
  Changed header to GPL version 2 only
storage/ndb/ndbapi-examples/ndbapi_async/ndbapi_async.cpp:
  Changed header to GPL version 2 only
storage/ndb/ndbapi-examples/ndbapi_async1/ndbapi_async1.cpp:
  Changed header to GPL version 2 only
storage/ndb/ndbapi-examples/ndbapi_event/ndbapi_event.cpp:
  Changed header to GPL version 2 only
storage/ndb/ndbapi-examples/ndbapi_retries/ndbapi_retries.cpp:
  Changed header to GPL version 2 only
storage/ndb/ndbapi-examples/ndbapi_scan/ndbapi_scan.cpp:
  Changed header to GPL version 2 only
storage/ndb/ndbapi-examples/ndbapi_simple/ndbapi_simple.cpp:
  Changed header to GPL version 2 only
storage/ndb/ndbapi-examples/ndbapi_simple_dual/ndbapi_simple_dual.cpp:
  Changed header to GPL version 2 only
storage/ndb/ndbapi-examples/ndbapi_simple_index/ndbapi_simple_index.cpp:
  Changed header to GPL version 2 only
storage/ndb/src/kernel/blocks/dbdih/printSysfile.cpp:
  Changed header to GPL version 2 only
storage/ndb/src/kernel/blocks/dbtup/DbtupDiskAlloc.cpp:
  Changed header to GPL version 2 only
storage/ndb/src/kernel/blocks/dbtup/DbtupVarAlloc.cpp:
  Changed header to GPL version 2 only
storage/ndb/src/kernel/blocks/dbtup/Undo_buffer.cpp:
  Changed header to GPL version 2 only
storage/ndb/src/kernel/blocks/dbtup/Undo_buffer.hpp:
  Changed header to GPL version 2 only
storage/ndb/src/kernel/blocks/dbtup/tuppage.cpp:
  Changed header to GPL version 2 only
storage/ndb/src/kernel/blocks/dbtup/tuppage.hpp:
  Changed header to GPL version 2 only
storage/ndb/src/kernel/blocks/dbtux/DbtuxStat.cpp:
  Changed header to GPL version 2 only
storage/ndb/src/kernel/blocks/diskpage.hpp:
  Changed header to GPL version 2 only
storage/ndb/src/kernel/blocks/lgman.cpp:
  Changed header to GPL version 2 only
storage/ndb/src/kernel/blocks/lgman.hpp:
  Changed header to GPL version 2 only
storage/ndb/src/kernel/blocks/pgman.cpp:
  Changed header to GPL version 2 only
storage/ndb/src/kernel/blocks/pgman.hpp:
  Changed header to GPL version 2 only
storage/ndb/src/kernel/blocks/print_file.cpp:
  Changed header to GPL version 2 only
storage/ndb/src/kernel/blocks/record_types.hpp:
  Changed header to GPL version 2 only
storage/ndb/src/kernel/blocks/restore.cpp:
  Changed header to GPL version 2 only
storage/ndb/src/kernel/blocks/restore.hpp:
  Changed header to GPL version 2 only
storage/ndb/src/kernel/blocks/tsman.cpp:
  Changed header to GPL version 2 only
storage/ndb/src/kernel/blocks/tsman.hpp:
  Changed header to GPL version 2 only
storage/ndb/src/kernel/vm/DLCFifoList.hpp:
  Changed header to GPL version 2 only
storage/ndb/src/kernel/vm/DLCHashTable.hpp:
  Changed header to GPL version 2 only
storage/ndb/src/kernel/vm/DynArr256.cpp:
  Changed header to GPL version 2 only
storage/ndb/src/kernel/vm/DynArr256.hpp:
  Changed header to GPL version 2 only
storage/ndb/src/kernel/vm/KeyTable2Ref.hpp:
  Changed header to GPL version 2 only
storage/ndb/src/kernel/vm/LinearPool.hpp:
  Changed header to GPL version 2 only
storage/ndb/src/kernel/vm/NdbdSuperPool.cpp:
  Changed header to GPL version 2 only
storage/ndb/src/kernel/vm/NdbdSuperPool.hpp:
  Changed header to GPL version 2 only
storage/ndb/src/kernel/vm/Pool.cpp:
  Changed header to GPL version 2 only
storage/ndb/src/kernel/vm/Pool.hpp:
  Changed header to GPL version 2 only
storage/ndb/src/kernel/vm/RWPool.cpp:
  Changed header to GPL version 2 only
storage/ndb/src/kernel/vm/RWPool.hpp:
  Changed header to GPL version 2 only
storage/ndb/src/kernel/vm/Rope.hpp:
  Changed header to GPL version 2 only
storage/ndb/src/kernel/vm/SLFifoList.hpp:
  Changed header to GPL version 2 only
storage/ndb/src/kernel/vm/WOPool.cpp:
  Changed header to GPL version 2 only
storage/ndb/src/kernel/vm/WOPool.hpp:
  Changed header to GPL version 2 only
storage/ndb/src/kernel/vm/bench_pool.cpp:
  Changed header to GPL version 2 only
storage/ndb/src/kernel/vm/ndbd_malloc_impl.cpp:
  Changed header to GPL version 2 only
storage/ndb/src/kernel/vm/ndbd_malloc_impl.hpp:
  Changed header to GPL version 2 only
storage/ndb/src/mgmsrv/ParamInfo.cpp:
  Changed header to GPL version 2 only
storage/ndb/src/ndbapi/NdbIndexStat.cpp:
  Changed header to GPL version 2 only
storage/ndb/test/ndbapi/testIndexStat.cpp:
  Changed header to GPL version 2 only
storage/ndb/test/tools/listen.cpp:
  Changed header to GPL version 2 only
storage/ndb/tools/restore/ndb_nodegroup_map.h:
  Changed header to GPL version 2 only
strings/my_strchr.c:
  Changed header to GPL version 2 only
unittest/mysys/base64-t.c:
  Changed header to GPL version 2 only
unittest/mysys/bitmap-t.c:
  Changed header to GPL version 2 only
unittest/mysys/my_atomic-t.c:
  Changed header to GPL version 2 only
unittest/mytap/tap.c:
  Changed header to GPL version 2 only
unittest/mytap/tap.h:
  Changed header to GPL version 2 only
win/Makefile.am:
  Changed header to GPL version 2 only
2006-12-27 02:23:51 +01:00
unknown
1e87cfee19 Fixed compiler warnings (Mostly VC++):
- Removed not used variables
- Changed some ulong parameters/variables to ulonglong (possible serious bug)
- Added casts to get rid of safe assignment from longlong to long (and similar)
- Added casts to function parameters
- Fixed signed/unsigned compares
- Added some constructores to structures
- Removed some not portable constructs

Better fix for bug Bug #21428 "skipped 9 bytes from file: socket (3)" on "mysqladmin shutdown"
(Added new parameter to net_clear() to define when we want the communication buffer to be emptied)


client/mysql.cc:
  Removed not used variable
client/mysqldump.c:
  Fixed compiler warning
client/mysqlslap.c:
  Fixed compiler warning
client/mysqltest.c:
  Fixed compiler warning
extra/replace.c:
  Fixed compiler warning
include/my_global.h:
  Fixed compiler warning
include/mysql_com.h:
  Changed prototype for net_clear()
libmysql/libmysql.c:
  Changed prototype for net_clear()
mysys/base64.c:
  Fixed compiler warning (function definition and prototype didn't match)
mysys/my_thr_init.c:
  AFter merge fixes
mysys/my_vle.c:
  Fixed compiler warning
sql/event_data_objects.cc:
  Fixed compiler warning
sql/event_scheduler.cc:
  Removed not used variable
sql/field.cc:
  Removed not used variables
  Fixed compiler warning
sql/gen_lex_hash.cc:
  Fixed compiler warning
sql/ha_partition.h:
  Fixed compiler warning
sql/handler.cc:
  Fixed compiler warning
sql/item.cc:
  Fixed compiler warning
sql/item_create.cc:
  Fixed compiler warning
sql/item_func.cc:
  Fixed compiler warning
sql/item_strfunc.cc:
  Fixed compiler warning
sql/item_timefunc.cc:
  Fixed compiler warning
sql/item_xmlfunc.cc:
  Fixed compiler warning
sql/log.cc:
  Fixed compiler warning
sql/log_event.cc:
  Fixed compiler warning
sql/log_event.h:
  Fixed compiler warning
sql/mysql_priv.h:
  Fixed too short 'select_type'
sql/net_serv.cc:
  Added argument to net_clear() if we should empty the communication buffer.
sql/opt_range.cc:
  Fixed compiler warning
sql/partition_info.cc:
  Fixed compiler warning
sql/rpl_injector.h:
  Fixed compiler warning
sql/set_var.cc:
  Fixed compiler warning
sql/slave.cc:
  Fixed compiler warning
sql/sp_head.cc:
  Fixed compiler warning
sql/sql_base.cc:
  Fixed compiler warning
sql/sql_db.cc:
  Fixed compiler warning
sql/sql_delete.cc:
  Fixed compiler warning
sql/sql_insert.cc:
  Fixed compiler warning
sql/sql_lex.h:
  Fixed compiler warning
sql/sql_parse.cc:
  Fixed compiler warning
sql/sql_partition.cc:
  Fixed compiler warning
sql/sql_plugin.cc:
  Fixed compiler warning
sql/sql_prepare.cc:
  Fixed compiler warning
sql/sql_rename.cc:
  Fixed compiler warning
sql/sql_select.cc:
  Fixed compiler warning
sql/sql_show.cc:
  Fixed compiler warning
sql/sql_table.cc:
  Fixed compiler warning
sql/sql_trigger.cc:
  Fixed compiler warning
sql-common/client.c:
  Better fix for bug Bug #21428 "skipped 9 bytes from file: socket (3)" on "mysqladmin shutdown"
sql-common/my_time.c:
  Fixed compiler warning
sql/sql_union.cc:
  Fixed compiler warning
sql/sql_update.cc:
  Fixed compiler warning
sql/sql_view.cc:
  Fixed compiler warning
sql/sql_yacc.yy:
  Fixed compiler warning
sql/table.cc:
  Fixed compiler warning
storage/archive/azio.c:
  Fixed compiler warning
storage/csv/ha_tina.cc:
  Removed not used code
storage/myisam/mi_unique.c:
  Fixed compiler warning
storage/ndb/include/util/OutputStream.hpp:
  Fixed compiler warning
storage/ndb/include/util/SocketAuthenticator.hpp:
  Fixed compiler warning
storage/ndb/src/kernel/vm/Pool.hpp:
  Fixed compiler warning
strings/ctype-simple.c:
  Fixed compiler warning
strings/my_strchr.c:
  Fixed compiler warning
2006-11-30 03:40:42 +02:00
unknown
c1477a3f20 Removed compiler warnings
Ensure that my_size_t is always unsigned (to get predictiable results from system to system)
Removed some %lld, as these are not portable


BUILD/FINISH.sh:
  Remove configure files from storage engines (as some of them may be old versions and may cause conflicts)
client/mysqldump.c:
  Removed compiler warning
client/mysqlslap.c:
  Removed compiler warning
client/mysqltest.c:
  Removed compiler warning
cmd-line-utils/readline/bind.c:
  Removed compiler warning
cmd-line-utils/readline/histfile.c:
  Removed compiler warning
include/my_global.h:
  Ensure that my_size_t is always unsigned (to get predictiable results from system to system)
  Moved my_offset_t here from parse_file.h
sql/event_data_objects.cc:
  Removed compiler warning
sql/event_scheduler.cc:
  Removed compiler warning
sql/field.h:
  Removed compiler warning
sql/ha_ndbcluster_binlog.cc:
  Removed compiler warning
sql/ha_partition.cc:
  Removed compiler warning
sql/item_strfunc.cc:
  Removed compiler warning
sql/log_event.cc:
  Removed compiler warning
sql/mysqld.cc:
  Removed compiler warning
sql/parse_file.h:
  Moved my_offset_t to my_global.h
sql/rpl_utility.cc:
  Removed compiler warning
sql/sql_binlog.cc:
  Removed compiler warning
sql/sql_cache.cc:
  Removed compiler warning
sql/tztime.cc:
  Removed compiler warning
storage/archive/ha_archive.cc:
  Removed compiler warning
  Removed %lld as it's not portable
storage/heap/hp_write.c:
  Removed compiler warning
storage/innobase/os/os0file.c:
  Removed compiler warning
storage/myisam/myisampack.c:
  Removed compiler warning
storage/myisammrg/myrg_rkey.c:
  Removed compiler warning
storage/ndb/include/kernel/signaldata/DictTabInfo.hpp:
  Use my_offsetof instead of offsetof to get rid of compiler warnings
storage/ndb/src/kernel/blocks/dbdict/printSchemaFile.cpp:
  Removed compiler warning
storage/ndb/src/kernel/blocks/dbtup/DbtupRoutines.cpp:
  Removed compiler warning
  Note: Someone from NDB team should check this fix!
storage/ndb/src/kernel/vm/Rope.cpp:
  Removed compiler warning
storage/ndb/src/mgmapi/mgmapi.cpp:
  Removed compiler warning
storage/ndb/src/ndbapi/Ndb.cpp:
  Removed compiler warning
storage/ndb/src/ndbapi/NdbEventOperationImpl.cpp:
  Removed compiler warning
storage/ndb/src/ndbapi/NdbScanOperation.cpp:
  Removed compiler warning
storage/ndb/src/ndbapi/NdbTransaction.cpp:
  Removed compiler warning
storage/ndb/src/ndbapi/Ndblist.cpp:
  Removed compiler warning
2006-11-27 18:16:08 +02:00
unknown
788ad30f08 Fixed a LOT of compiler warnings
Added missing DBUG_RETURN statements (in mysqldump.c)
Added missing enums
Fixed a lot of wrong DBUG_PRINT() statements, some of which could cause crashes
Removed usage of %lld and %p in printf strings as these are not portable or produces different results on different systems.


client/mysqldump.c:
  Fixed some compiler warnings
  Added some missing DBUG_RETURN
  Remove copying of 'cluster' database
client/mysqlslap.c:
  Fixed compiler warnings
client/mysqltest.c:
  After merge fix
extra/yassl/taocrypt/include/algebra.hpp:
  Removed compiler warning
mysql-test/include/im_check_env.inc:
  Fixed race condition (mysqld1 could report 'starting' or 'online'
mysql-test/mysql-test-run.pl:
  After merge fixes
  Added missing directory to LD_LIBRARY_PATH
mysql-test/r/ctype_cp1250_ch.result:
  After merge fix
mysql-test/r/im_cmd_line.result:
  Fixed race condition
mysql-test/r/im_daemon_life_cycle.result:
  Fixed race condition
mysql-test/r/im_instance_conf.result:
  Fixed race condition
mysql-test/r/im_life_cycle.result:
  Fixed race condition
mysql-test/r/im_utils.result:
  Fixed race condition
mysql-test/r/log_tables.result:
  Fixed wrong result
mysql-test/t/disabled.def:
  Disabled ndb_restore_partion, as ndb_restore_compate caused it to fail, becasue of table 'cluster/def/schema' which is stored in ndb_backup50
mysys/my_compress.c:
  Removed compiler warnings
mysys/my_getopt.c:
  Ensure we always have at least one space between option name and value
plugin/fulltext/plugin_example.c:
  Removed compiler warnings
server-tools/instance-manager/mysql_connection.cc:
  After merge fix
sql/event_data_objects.cc:
  Fixed compiler warnings
  Fixed platform compatibility issues (%lld is not portable)
sql/event_data_objects.h:
  Fixed compiler warnings
sql/event_db_repository.cc:
  Fixed compiler warnings
sql/event_queue.cc:
  Fixed compiler warnings
sql/event_scheduler.cc:
  Fixed compiler warnings
sql/events.cc:
  Fixed compiler warnings
sql/field.cc:
  Fixed compiler warnings
sql/ha_ndbcluster.cc:
  Fixed compiler warnings
sql/ha_ndbcluster_binlog.cc:
  Fixed compiler warnings
sql/ha_partition.cc:
  Fixed compiler warnings
sql/handler.cc:
  Fixed compiler warnings
sql/item_cmpfunc.cc:
  Fixed DBUG_PRINT style
sql/item_func.cc:
  Fixed compiler warnings
sql/log.cc:
  Fixed compiler warnings
sql/log_event.cc:
  Fixed compiler warnings
sql/mysqld.cc:
  Fixed compiler warnings
sql/opt_range.cc:
  Fixed compiler warnings
sql/repl_failsafe.cc:
  Indentation fixes
sql/rpl_rli.cc:
  Fixed compiler warnings
sql/rpl_tblmap.cc:
  Fixed compiler warnings
sql/set_var.cc:
  Fixed compiler warnings
sql/slave.cc:
  Fixed compiler warnings
sql/sp_head.cc:
  Fixed compiler warnings
sql/sql_base.cc:
  Fixed compiler warnings
  Fixed indentation
sql/sql_binlog.cc:
  Fixed compiler warnings
sql/sql_cache.cc:
  Fixed compiler warnings
sql/sql_class.cc:
  Fixed compiler warnings
sql/sql_handler.cc:
  Fixed compiler warnings
sql/sql_lex.cc:
  Fixed compiler warnings
sql/sql_parse.cc:
  Fixed compiler warnings
sql/sql_partition.cc:
  Fixed compiler warnings
sql/sql_prepare.cc:
  Fixed compiler warnings
sql/sql_table.cc:
  Fixed compiler warnings
sql/sql_test.cc:
  Fixed DBUG_PRINT style
sql/sql_trigger.cc:
  Fixed DBUG_PRINT style
sql/table.cc:
  Fixed compiler warnings
storage/federated/ha_federated.cc:
  Fixed compiler warnings
storage/myisam/mi_rsamepos.c:
  Fixed compiler warnings
storage/ndb/include/ndb_global.h.in:
  After merge fix
storage/ndb/include/util/NdbOut.hpp:
  Inform gcc that ndbout_c takes a printf() string as argument
storage/ndb/include/util/SimpleProperties.hpp:
  After merge fixes
storage/ndb/src/kernel/blocks/backup/Backup.cpp:
  Fixed compiler warnings
storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp:
  Fixed compiler warnings
storage/ndb/src/kernel/blocks/dbacc/DbaccMain.cpp:
  Fixed compiler warnings
storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp:
  Fixed compiler warnings
storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp:
  Fixed compiler warnings
  Fixed usage of uninitialized value (Got help from Jonas with patch)
storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp:
  Fixed compiler warnings
storage/ndb/src/kernel/blocks/lgman.cpp:
  Fixed compiler warnings
storage/ndb/src/kernel/blocks/pgman.cpp:
  Fixed compiler warnings
storage/ndb/src/kernel/blocks/restore.cpp:
  Fixed compiler warnings
storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp:
  Fixed compiler warnings
storage/ndb/src/kernel/blocks/dbtup/DbtupCommit.cpp:
  Fixed compiler warnings
storage/ndb/src/kernel/blocks/dbtup/DbtupDiskAlloc.cpp:
  Fixed compiler warnings
storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp:
  Fixed compiler warnings
storage/ndb/src/kernel/blocks/dbtup/DbtupFixAlloc.cpp:
  Fixed compiler warnings
storage/ndb/src/kernel/blocks/ndbfs/Ndbfs.cpp:
  Fixed compiler warnings
storage/ndb/src/kernel/blocks/suma/Suma.cpp:
  Fixed compiler warnings
  Added missing enum's to switch
storage/ndb/src/kernel/vm/Configuration.cpp:
  Fixed compiler warnings
storage/ndb/src/kernel/vm/DLHashTable.hpp:
  Fixed compiler warnings
storage/ndb/src/kernel/vm/RWPool.hpp:
  Fixed compiler warnings
storage/ndb/src/kernel/vm/SimulatedBlock.cpp:
  Fixed compiler warnings
storage/ndb/src/kernel/vm/WOPool.hpp:
  Fixed compiler warnings
storage/ndb/src/kernel/vm/ndbd_malloc_impl.cpp:
  Fixed compiler warnings
storage/ndb/src/mgmclient/CommandInterpreter.cpp:
  Fixed compiler warnings
storage/ndb/src/mgmsrv/MgmtSrvr.cpp:
  Fixed compiler warnings
storage/ndb/src/ndbapi/DictCache.cpp:
  Fixed compiler warnings
storage/ndb/src/ndbapi/NdbDictionaryImpl.cpp:
  Fixed compiler warnings
storage/ndb/src/ndbapi/NdbEventOperationImpl.cpp:
  Fixed compiler warnings
storage/ndb/src/ndbapi/NdbIndexOperation.cpp:
  Fixed compiler warnings
storage/ndb/src/ndbapi/NdbIndexStat.cpp:
  Initialize possible uninitialized variable
storage/ndb/src/ndbapi/NdbOperationInt.cpp:
  Fixed compiler warnings
storage/ndb/src/ndbapi/NdbRecAttr.cpp:
  Added missing enum's (To avoid compiler warnings)
storage/ndb/src/ndbapi/NdbScanOperation.cpp:
  Fixed compiler warnings
storage/ndb/src/ndbapi/ObjectMap.hpp:
  Fixed compiler warnings
storage/ndb/tools/desc.cpp:
  Fixed compiler warnings
storage/ndb/tools/restore/Restore.cpp:
  Fixed compiler warnings
storage/ndb/tools/restore/consumer_restore.cpp:
  Fixed compiler warnings
unittest/mytap/t/basic-t.c:
  Fixed compiler warnings
unittest/mytap/tap.c:
  Fixed compiler warnings
2006-11-27 01:47:38 +02:00
unknown
04a5f335d3 WL#3337 (Event scheduler new architecture)
Remove SHOW SCHEDULER STATUS command and migrate the
information output to `mysqladmin debug` (COM_DEBUG)

SHOW SCHEDULER STATUS was introduced in 5.1.11, provided
some debug information about event scheduler internals and
was enabled only in debug builds.


sql/event_queue.cc:
  Remove SHOW SCHEDULER STATUS. Reporting still will be
  there but through COM_DEBUG (mysqladmin debug)
sql/event_queue.h:
  dump_internal_status cannot return an error, therefore it
  should be void.
sql/event_scheduler.cc:
  Remove SHOW SCHEDULER STATUS. Reporting still will be
  there but through COM_DEBUG (mysqladmin debug)
sql/event_scheduler.h:
  dump_internal_status cannot return an error, therefore it
  should be void.
sql/events.cc:
  Change from outputting the internal data from
  the wire to the standard output. SHOW SCHEDULER STATUS was
  removed.
sql/events.h:
  dump_internal_status() cannot return an error, therefore
  it should be void
sql/lex.h:
  remove SCHEDULER as recognized word. This is part
  of removing SHOW SCHEDULER STATUS
sql/sp_head.cc:
  SQLCOM_SHOW_SCHEDULER_STATUS has been removed
sql/sql_lex.h:
  SQLCOM_SHOW_SCHEDULER_STATUS has been removed
sql/sql_parse.cc:
  SQLCOM_SHOW_SCHEDULER_STATUS has been removed
sql/sql_test.cc:
  Dump Events' internal information on COM_DEBUG
sql/sql_yacc.yy:
  SQLCOM_SHOW_SCHEDULER_STATUS has been removed
2006-09-12 12:26:12 +02:00
unknown
e22b6703f8 remove unused artifacts
sql/event_db_repository.cc:
  remove unused variables - reported by MS compiler
sql/event_queue.cc:
  remove unused variables - reported by MS compiler
sql/event_scheduler.cc:
  remove unused label
sql/events.cc:
  remove unused variable and a label - reported by MS compiler
2006-09-01 14:25:29 +02:00
unknown
2fc8b30ee7 fix build failure on SLES9 2006-09-01 14:15:47 +02:00
unknown
c67c49fca5 post-merge fix
sql/event_scheduler.cc:
  fix typo
sql/events.cc:
  This check is not needed since UNINITIALIZED state was introduced
  in the Event_scheduler
2006-09-01 14:08:50 +02:00
unknown
0410cc3a0c WL#3337 (Event scheduler new architecture)
This patch makes the relationship between Event_scheduler and Event_queue
unidirectional from the former to the latter.




The change is that the conditional on which the scheduler sleeped has been
moved to the Event_queue and the latter does not call anymore
Event_scheduler::queue_changed(), which in turn has be removed.


sql/event_queue.cc:
  Remove dependency of Event_queue on Event_scheduler but not vice versa.
  Event_scheduler polls whether there is time to execute an event.
  
  Removed notify_observers() as the way of calling has changed.
  Added Event_queue::cond_wait() similar to Event_scheduler::cond_wait().
sql/event_queue.h:
  init_queue() does not need anymore Event_scheduler object because
  the relationship is now one-way. Event_scheduler knows about Event_queue
  but not vice versa.
  
  get_top_execution_if_time() does by itself the waiting instead of
  returning abstime. This simplifies the code in Event_scheduler::run()
  get_top_execution_if_time() returns only if job_data != NULL or if
  the scheduler thread was killed.
  
  notify_observers() is no more used and therefore removed.
  
  Added Event_queue::cond_wait() because now there is waiting on a
  conditional variable in Event_queue too (like in Event_scheduler for
  ::stop()).
sql/event_scheduler.cc:
  Change the relationship between Event_scheduler & Event_queue.
  Event_queue does not know anymore about Event_scheduler. When
  the scheduler calls get_top_element_if_time() it may fall asleep
  on a conditional of Event_queue, if either the queue is empty or
  it's still not time for activation. When the method returns it
  will return a non-null address, namely an object to be executed.
  If the return value is NULL, the thread was killed by a call to
  Event_scheduler::stop() (we assert this).
sql/event_scheduler.h:
  Remove queue_changed() as it is obsoleted by making the relationship
  between Event_scheduler and Event_queue one-way, from the former to the
  latter. Event_queue now does not know about Event_scheduler.
  
  get_state() is changed to is_running(). The state enum should be private,
  as it is not needed to be seen from outside anymore.
sql/events.cc:
  Event_queue does not need anymore a pointer to Event_scheduler.
2006-08-31 17:18:39 +02:00
unknown
5f0a5dc037 WL#3337 (Event scheduler new architecture)
Shift from direct usage of (char *) with STRING_WITH_LEN
to C_STRING_WITH_LEN


sql/event_db_repository.cc:
  don't use direct casting but existing C_STRING_WITH_LEN macro
  to shut up the compiler.
sql/event_scheduler.cc:
  don't use direct casting but existing C_STRING_WITH_LEN macro
  to shut up the compiler.
2006-08-17 17:44:16 +02:00
unknown
99adbd131a WL#3337 (Event scheduler new architecture)
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
2006-08-17 14:22:59 +02:00
unknown
3391899858 Fix a crash of SHOW PROCESSLIST
sql/event_scheduler.cc:
  Fix a crash when calling show processlist and an event thread is starting.
  Don't add the thread to threads before it is fully initialized.
2006-08-11 16:51:50 +02:00
unknown
e69e640f2e WL#3337 (Events new architecture)
Small updates before patch submit.


client/mysqltest.c:
  allow --valgrind option to mysqltest so one can be able to detect
  whether the test is running under valgrind by having $VALGRIND_TEST,
  similar to BIG_TEST, in the test file.
mysql-test/mysql-test-run.pl:
  If the test suite is running under valgrind start mysqltest with --valgrind
  to inform that we run valgrind. mysqltest will provide $VALGRIND_TEST for the
  test cases.
mysql-test/r/events_bugs.result:
  update result
mysql-test/r/events_scheduling.result:
  update result
mysql-test/t/events.test:
  Increase times or the test will fail under valgrind
mysql-test/t/events_bugs.test:
  Increase times or the test will fail under valgrind
mysql-test/t/events_scheduling.test:
  Remove faulty test
  Disable the test case for valgrind
sql/event_data_objects.cc:
  count the number of executions
sql/event_data_objects.h:
  flags is not used at all
  add execution_count to count the number of executions
sql/event_db_repository.cc:
  Initialize wherever needed.
  Add a comment regarding valgrind warning.
sql/event_queue.cc:
  more debug info in the trace log
sql/event_scheduler.cc:
  Use macro COND_STATE_WAIT() in all cases we need waiting
  on condition. Hence, we can trace locking, attemption to lock
  and more with SHOW SCHEDULER STATUS
sql/event_scheduler.h:
  Change the declaration of cond_wait to accept THD
sql/events.cc:
  fix memory leak. Destroy event_queue
mysql-test/include/not_valgrind.inc:
  New BitKeeper file ``mysql-test/include/not_valgrind.inc''
mysql-test/r/not_valgrind.require:
  New BitKeeper file ``mysql-test/r/not_valgrind.require''
2006-07-17 16:52:45 +02:00
unknown
d65ab09c4d update to ease the patch process
sql/event_queue.cc:
  integrate Event_queue::check_system_tables() into the boot procedure
sql/event_queue.h:
  make Event_queue::check_system_tables() void, instead of bool
BitKeeper/etc/ignore:
  Added sql/.deps/client.Po sql/.deps/derror.Po sql/.deps/des_key_file.Po sql/.deps/discover.Po sql/.deps/event_data_objects.Po sql/.deps/event_db_repository.Po sql/.deps/event_queue.Po sql/.deps/event_scheduler.Po sql/.deps/events.Po sql/.deps/field.Po sql/.deps/field_conv.Po sql/.deps/filesort.Po sql/.deps/gen_lex_hash.Po sql/.deps/gstream.Po sql/.deps/ha_berkeley.Po sql/.deps/ha_federated.Po sql/.deps/ha_heap.Po sql/.deps/ha_innodb.Po sql/.deps/ha_myisam.Po sql/.deps/ha_myisammrg.Po sql/.deps/ha_ndbcluster.Po sql/.deps/ha_ndbcluster_binlog.Po sql/.deps/ha_partition.Po sql/.deps/handler.Po sql/.deps/hash_filo.Po sql/.deps/hostname.Po sql/.deps/init.Po sql/.deps/item.Po sql/.deps/item_buff.Po sql/.deps/item_cmpfunc.Po sql/.deps/item_create.Po sql/.deps/item_func.Po sql/.deps/item_geofunc.Po sql/.deps/item_row.Po sql/.deps/item_strfunc.Po sql/.deps/item_subselect.Po sql/.deps/item_sum.Po sql/.deps/item_timefunc.Po sql/.deps/item_uniq.Po sql/.deps/item_xmlfunc.Po sql/.deps/key.Po sql/.deps/lock.Po sql/.deps/
  log.Po sql/.deps/log_event.Po sql/.deps/mf_iocache.Po sql/.deps/mini_client_errors.Po sql/.deps/my_decimal.Po sql/.deps/my_lock.Po sql/.deps/my_time.Po sql/.deps/my_user.Po sql/.deps/mysql_tzinfo_to_sql.Po sql/.deps/mysqld.Po sql/.deps/net_serv.Po sql/.deps/opt_range.Po sql/.deps/opt_sum.Po sql/.deps/pack.Po sql/.deps/parse_file.Po sql/.deps/partition_info.Po sql/.deps/password.Po sql/.deps/procedure.Po sql/.deps/protocol.Po sql/.deps/records.Po sql/.deps/repl_failsafe.Po sql/.deps/rpl_filter.Po sql/.deps/rpl_injector.Po sql/.deps/rpl_tblmap.Po sql/.deps/set_var.Po sql/.deps/slave.Po sql/.deps/sp.Po sql/.deps/sp_cache.Po sql/.deps/sp_head.Po sql/.deps/sp_pcontext.Po sql/.deps/sp_rcontext.Po sql/.deps/spatial.Po sql/.deps/sql_acl.Po sql/.deps/sql_analyse.Po sql/.deps/sql_base.Po sql/.deps/sql_binlog.Po sql/.deps/sql_builtin.Po sql/.deps/sql_cache.Po sql/.deps/sql_class.Po sql/.deps/sql_client.Po sql/.deps/sql_crypt.Po sql/.deps/sql_cursor.Po sql/.deps/sql_db.Po sql/.deps/sql_delete.Po sql/.deps/sql_derived
  .Po sql/.deps/sql_do.Po sql/.deps/sql_error.Po sql/.deps/sql_handler.Po sql/.deps/sql_help.Po sql/.deps/sql_insert.Po sql/.deps/sql_lex.Po sql/.deps/sql_list.Po sql/.deps/sql_load.Po sql/.deps/sql_manager.Po sql/.deps/sql_map.Po sql/.deps/sql_olap.Po sql/.deps/sql_parse.Po sql/.deps/sql_partition.Po sql/.deps/sql_plugin.Po sql/.deps/sql_prepare.Po sql/.deps/sql_rename.Po sql/.deps/sql_repl.Po sql/.deps/sql_select.Po sql/.deps/sql_show.Po sql/.deps/sql_state.Po sql/.deps/sql_string.Po sql/.deps/sql_table.Po sql/.deps/sql_tablespace.Po sql/.deps/sql_test.Po sql/.deps/sql_trigger.Po sql/.deps/sql_udf.Po sql/.deps/sql_union.Po sql/.deps/sql_update.Po sql/.deps/sql_view.Po sql/.deps/sql_yacc.Po sql/.deps/stacktrace.Po sql/.deps/strfunc.Po sql/.deps/table.Po sql/.deps/thr_malloc.Po sql/.deps/time.Po sql/.deps/tztime.Po sql/.deps/udf_example.Plo sql/.deps/uniques.Po sql/.deps/unireg.Po sql/.libs/udf_example.lai sql/.libs/udf_example.so.0 sql/.libs/udf_example.so.0.0.0 storage/archive/.deps/archive_test-archive_t
  est.Po storage/archive/.deps/archive_test-azio.Po storage/archive/.deps/ha_archive_la-azio.Plo storage/archive/.deps/ha_archive_la-ha_archive.Plo storage/archive/.deps/libarchive_a-azio.Po storage/archive/.deps/libarchive_a-ha_archive.Po storage/blackhole/.deps/ha_blackhole_la-ha_blackhole.Plo storage/blackhole/.deps/libblackhole_a-ha_blackhole.Po storage/csv/.deps/ha_csv_la-ha_tina.Plo storage/csv/.deps/libcsv_a-ha_tina.Po storage/example/.deps/ha_example_la-ha_example.Plo storage/example/.deps/libexample_a-ha_example.Po storage/heap/.deps/_check.Po storage/heap/.deps/_rectest.Po storage/heap/.deps/hp_block.Po storage/heap/.deps/hp_clear.Po storage/heap/.deps/hp_close.Po storage/heap/.deps/hp_create.Po storage/heap/.deps/hp_delete.Po storage/heap/.deps/hp_extra.Po storage/heap/.deps/hp_hash.Po storage/heap/.deps/hp_info.Po storage/heap/.deps/hp_open.Po storage/heap/.deps/hp_panic.Po storage/heap/.deps/hp_rename.Po storage/heap/.deps/hp_rfirst.Po storage/heap/.deps/hp_rkey.Po storage/heap/.deps/hp_rlast.P
  o storage/heap/.deps/hp_rnext.Po storage/heap/.deps/hp_rprev.Po storage/heap/.deps/hp_rrnd.Po storage/heap/.deps/hp_rsame.Po storage/heap/.deps/hp_scan.Po storage/heap/.deps/hp_static.Po storage/heap/.deps/hp_test1.Po storage/heap/.deps/hp_test2.Po storage/heap/.deps/hp_update.Po storage/heap/.deps/hp_write.Po storage/innobase/btr/.deps/btr0btr.Po storage/innobase/btr/.deps/btr0cur.Po storage/innobase/btr/.deps/btr0pcur.Po storage/innobase/btr/.deps/btr0sea.Po storage/innobase/buf/.deps/buf0buf.Po storage/innobase/buf/.deps/buf0flu.Po storage/innobase/buf/.deps/buf0lru.Po storage/innobase/buf/.deps/buf0rea.Po storage/innobase/data/.deps/data0data.Po storage/innobase/data/.deps/data0type.Po storage/innobase/dict/.deps/dict0boot.Po storage/innobase/dict/.deps/dict0crea.Po storage/innobase/dict/.deps/dict0dict.Po storage/innobase/dict/.deps/dict0load.Po storage/innobase/dict/.deps/dict0mem.Po storage/innobase/dyn/.deps/dyn0dyn.Po storage/innobase/eval/.deps/eval0eval.Po storage/innobase/eval/.deps/eval0proc.
  Po storage/innobase/fil/.deps/fil0fil.Po storage/innobase/fsp/.deps/fsp0fsp.Po storage/innobase/fut/.deps/fut0fut.Po storage/innobase/fut/.deps/fut0lst.Po storage/innobase/ha/.deps/ha0ha.Po storage/innobase/ha/.deps/hash0hash.Po storage/innobase/ibuf/.deps/ibuf0ibuf.Po storage/innobase/lock/.deps/lock0lock.Po storage/innobase/log/.deps/log0log.Po storage/innobase/log/.deps/log0recv.Po storage/innobase/mach/.deps/mach0data.Po storage/innobase/mem/.deps/mem0mem.Po storage/innobase/mem/.deps/mem0pool.Po storage/innobase/mtr/.deps/mtr0log.Po storage/innobase/mtr/.deps/mtr0mtr.Po storage/innobase/os/.deps/os0file.Po storage/innobase/os/.deps/os0proc.Po storage/innobase/os/.deps/os0sync.Po storage/innobase/os/.deps/os0thread.Po storage/innobase/page/.deps/page0cur.Po storage/innobase/page/.deps/page0page.Po storage/innobase/pars/.deps/lexyy.Po storage/innobase/pars/.deps/pars0grm.Po storage/innobase/pars/.deps/pars0opt.Po storage/innobase/pars/.deps/pars0pars.Po storage/innobase/pars/.deps/pars0sym.Po storage/i
  nnobase/que/.deps/que0que.Po storage/innobase/read/.deps/read0read.Po storage/innobase/rem/.deps/rem0cmp.Po storage/innobase/rem/.deps/rem0rec.Po storage/innobase/row/.deps/row0ins.Po storage/innobase/row/.deps/row0mysql.Po storage/innobase/row/.deps/row0purge.Po storage/innobase/row/.deps/row0row.Po storage/innobase/row/.deps/row0sel.Po storage/innobase/row/.deps/row0uins.Po storage/innobase/row/.deps/row0umod.Po storage/innobase/row/.deps/row0undo.Po storage/innobase/row/.deps/row0upd.Po storage/innobase/row/.deps/row0vers.Po storage/innobase/srv/.deps/srv0que.Po storage/innobase/srv/.deps/srv0srv.Po storage/innobase/srv/.deps/srv0start.Po storage/innobase/sync/.deps/sync0arr.Po storage/innobase/sync/.deps/sync0rw.Po storage/innobase/sync/.deps/sync0sync.Po storage/innobase/thr/.deps/thr0loc.Po storage/innobase/trx/.deps/trx0purge.Po storage/innobase/trx/.deps/trx0rec.Po storage/innobase/trx/.deps/trx0roll.Po storage/innobase/trx/.deps/trx0rseg.Po storage/innobase/trx/.deps/trx0sys.Po storage/innobase/t
  rx/.deps/trx0trx.Po storage/innobase/trx/.deps/trx0undo.Po storage/innobase/usr/.deps/usr0sess.Po storage/innobase/ut/.deps/ut0byte.Po storage/innobase/ut/.deps/ut0dbg.Po storage/innobase/ut/.deps/ut0list.Po storage/innobase/ut/.deps/ut0mem.Po storage/innobase/ut/.deps/ut0rnd.Po storage/innobase/ut/.deps/ut0ut.Po storage/innobase/ut/.deps/ut0vec.Po storage/innobase/ut/.deps/ut0wqueue.Po storage/myisam/.deps/ft_boolean_search.Po storage/myisam/.deps/ft_nlq_search.Po storage/myisam/.deps/ft_parser.Po storage/myisam/.deps/ft_static.Po storage/myisam/.deps/ft_stopwords.Po storage/myisam/.deps/ft_update.Po storage/myisam/.deps/mi_cache.Po storage/myisam/.deps/mi_changed.Po storage/myisam/.deps/mi_check.Po storage/myisam/.deps/mi_checksum.Po storage/myisam/.deps/mi_close.Po storage/myisam/.deps/mi_create.Po storage/myisam/.deps/mi_dbug.Po storage/myisam/.deps/mi_delete.Po storage/myisam/.deps/mi_delete_all.Po storage/myisam/.deps/mi_delete_table.Po storage/myisam/.deps/mi_dynrec.Po storage/myisam/.deps/mi_extra
  .Po storage/myisam/.deps/mi_info.Po storage/myisam/.deps/mi_key.Po storage/myisam/.deps/mi_keycache.Po storage/myisam/.deps/mi_locking.Po storage/myisam/.deps/mi_log.Po storage/myisam/.deps/mi_open.Po storage/myisam/.deps/mi_packrec.Po storage/myisam/.deps/mi_page.Po storage/myisam/.deps/mi_panic.Po storage/myisam/.deps/mi_preload.Po storage/myisam/.deps/mi_range.Po storage/myisam/.deps/mi_rename.Po storage/myisam/.deps/mi_rfirst.Po storage/myisam/.deps/mi_rkey.Po storage/myisam/.deps/mi_rlast.Po storage/myisam/.deps/mi_rnext.Po storage/myisam/.deps/mi_rnext_same.Po storage/myisam/.deps/mi_rprev.Po storage/myisam/.deps/mi_rrnd.Po storage/myisam/.deps/mi_rsame.Po storage/myisam/.deps/mi_rsamepos.Po storage/myisam/.deps/mi_scan.Po storage/myisam/.deps/mi_search.Po storage/myisam/.deps/mi_static.Po storage/myisam/.deps/mi_statrec.Po storage/myisam/.deps/mi_test1.Po storage/myisam/.deps/mi_test2.Po storage/myisam/.deps/mi_test3.Po storage/myisam/.deps/mi_unique.Po storage/myisam/.deps/mi_update.Po storage/myi
  sam/.deps/mi_write.Po storage/myisam/.deps/myisam_ftdump.Po storage/myisam/.deps/myisamchk.Po storage/myisam/.deps/myisamlog.Po storage/myisam/.deps/myisampack.Po storage/myisam/.deps/rt_index.Po storage/myisam/.deps/rt_key.Po storage/myisam/.deps/rt_mbr.Po storage/myisam/.deps/rt_split.Po storage/myisam/.deps/rt_test.Po storage/myisam/.deps/sort.Po storage/myisam/.deps/sp_key.Po storage/myisam/.deps/sp_test.Po storage/myisammrg/.deps/myrg_close.Po storage/myisammrg/.deps/myrg_create.Po storage/myisammrg/.deps/myrg_delete.Po storage/myisammrg/.deps/myrg_extra.Po storage/myisammrg/.deps/myrg_info.Po storage/myisammrg/.deps/myrg_locking.Po storage/myisammrg/.deps/myrg_open.Po storage/myisammrg/.deps/myrg_panic.Po storage/myisammrg/.deps/myrg_queue.Po storage/myisammrg/.deps/myrg_range.Po storage/myisammrg/.deps/myrg_rfirst.Po storage/myisammrg/.deps/myrg_rkey.Po storage/myisammrg/.deps/myrg_rlast.Po storage/myisammrg/.deps/myrg_rnext.Po storage/myisammrg/.deps/myrg_rnext_same.Po storage/myisammrg/.deps/myrg
  _rprev.Po storage/myisammrg/.deps/myrg_rrnd.Po storage/myisammrg/.deps/myrg_rsame.Po storage/myisammrg/.deps/myrg_static.Po storage/myisammrg/.deps/myrg_update.Po storage/myisammrg/.deps/myrg_write.Po strings/.deps/bchange.Po strings/.deps/bcmp.Po strings/.deps/bfill.Po strings/.deps/bmove.Po strings/.deps/bmove512.Po strings/.deps/bmove_upp.Po strings/.deps/conf_to_src.Po strings/.deps/ctype-big5.Po strings/.deps/ctype-bin.Po strings/.deps/ctype-cp932.Po strings/.deps/ctype-czech.Po strings/.deps/ctype-euc_kr.Po strings/.deps/ctype-eucjpms.Po strings/.deps/ctype-extra.Po strings/.deps/ctype-gb2312.Po strings/.deps/ctype-gbk.Po strings/.deps/ctype-latin1.Po strings/.deps/ctype-mb.Po strings/.deps/ctype-simple.Po strings/.deps/ctype-sjis.Po strings/.deps/ctype-tis620.Po strings/.deps/ctype-uca.Po strings/.deps/ctype-ucs2.Po strings/.deps/ctype-ujis.Po strings/.deps/ctype-utf8.Po strings/.deps/ctype-win1250ch.Po strings/.deps/ctype.Po strings/.deps/decimal.Po strings/.deps/int2str.Po strings/.deps/is_prefix
  .Po strings/.deps/llstr.Po strings/.deps/longlong2str.Po strings/.deps/longlong2str_asm.Po strings/.deps/my_strchr.Po strings/.deps/my_strtoll10.Po strings/.deps/my_vsnprintf.Po strings/.deps/r_strinstr.Po strings/.deps/str2int.Po strings/.deps/str_alloc.Po strings/.deps/strappend.Po strings/.deps/strcend.Po strings/.deps/strcont.Po strings/.deps/strend.Po strings/.deps/strfill.Po strings/.deps/strinstr.Po strings/.deps/strmake.Po strings/.deps/strmov.Po strings/.deps/strnlen.Po strings/.deps/strnmov.Po strings/.deps/strstr.Po strings/.deps/strtod.Po strings/.deps/strtol.Po strings/.deps/strtoll.Po strings/.deps/strtoul.Po strings/.deps/strtoull.Po strings/.deps/strxmov.Po strings/.deps/strxnmov.Po strings/.deps/xml.Po tests/.deps/dummy.Po tests/.deps/insert_test.Po tests/.deps/mysql_client_test.Po tests/.deps/select_test.Po tests/.deps/thread_test.Po tests/.libs/lt-mysql_client_test tests/.libs/mysql_client_test unittest/examples/.deps/no_plan-t.Po unittest/examples/.deps/simple-t.Po unittest/examples/.d
  eps/skip-t.Po unittest/examples/.deps/skip_all-t.Po unittest/examples/.deps/todo-t.Po unittest/mysys/.deps/base64-t.Po unittest/mysys/.deps/bitmap-t.Po unittest/mysys/.deps/my_atomic-t.Po unittest/mytap/t/.deps/basic-t.Po unittest/mytap/.deps/tap.Po vio/.deps/dummy.Po vio/.deps/test-ssl.Po vio/.deps/test-sslclient.Po vio/.deps/test-sslserver.Po vio/.deps/vio.Po vio/.deps/viosocket.Po vio/.deps/viossl.Po vio/.deps/viosslfactories.Po client/.deps/base64.Po client/.deps/completion_hash.Po client/.deps/dummy.Po client/.deps/mf_tempdir.Po client/.deps/my_bit.Po client/.deps/my_bitmap.Po client/.deps/my_getsystime.Po client/.deps/my_new.Po client/.deps/my_user.Po client/.deps/my_vle.Po client/.deps/mysql.Po client/.deps/mysql_upgrade.Po client/.deps/mysqladmin.Po client/.deps/mysqlbinlog.Po client/.deps/mysqlcheck.Po client/.deps/mysqldump.Po client/.deps/mysqlimport.Po client/.deps/mysqlshow.Po client/.deps/mysqlslap.Po client/.deps/mysqltest.Po client/.deps/readline.Po client/.deps/sql_string.Po client/.libs/
  lt-mysql client/.libs/lt-mysqladmin client/.libs/lt-mysqlbinlog client/.libs/lt-mysqlcheck client/.libs/lt-mysqldump client/.libs/lt-mysqlimport client/.libs/lt-mysqlshow client/.libs/lt-mysqlslap client/.libs/lt-mysqltest client/.libs/mysql client/.libs/mysql_upgrade client/.libs/mysqladmin client/.libs/mysqlbinlog client/.libs/mysqlcheck client/.libs/mysqldump client/.libs/mysqlimport client/.libs/mysqlshow client/.libs/mysqlslap client/.libs/mysqltest cmd-line-utils/libedit/.deps/chared.Po cmd-line-utils/libedit/.deps/common.Po cmd-line-utils/libedit/.deps/el.Po cmd-line-utils/libedit/.deps/emacs.Po cmd-line-utils/libedit/.deps/fcns.Po cmd-line-utils/libedit/.deps/fgetln.Po cmd-line-utils/libedit/.deps/help.Po cmd-line-utils/libedit/.deps/hist.Po cmd-line-utils/libedit/.deps/history.Po cmd-line-utils/libedit/.deps/key.Po cmd-line-utils/libedit/.deps/map.Po cmd-line-utils/libedit/.deps/parse.Po cmd-line-utils/libedit/.deps/prompt.Po cmd-line-utils/libedit/.deps/read.Po cmd-line-utils/libedit/.deps/readl
  ine.Po cmd-line-utils/libedit/.deps/refresh.Po cmd-line-utils/libedit/.deps/search.Po cmd-line-utils/libedit/.deps/sig.Po cmd-line-utils/libedit/.deps/strlcat.Po cmd-line-utils/libedit/.deps/strlcpy.Po cmd-line-utils/libedit/.deps/term.Po cmd-line-utils/libedit/.deps/tokenizer.Po cmd-line-utils/libedit/.deps/tty.Po cmd-line-utils/libedit/.deps/unvis.Po cmd-line-utils/libedit/.deps/vi.Po cmd-line-utils/libedit/.deps/vis.Po cmd-line-utils/readline/.deps/bind.Po cmd-line-utils/readline/.deps/callback.Po cmd-line-utils/readline/.deps/compat.Po cmd-line-utils/readline/.deps/complete.Po cmd-line-utils/readline/.deps/display.Po cmd-line-utils/readline/.deps/funmap.Po cmd-line-utils/readline/.deps/histexpand.Po cmd-line-utils/readline/.deps/histfile.Po cmd-line-utils/readline/.deps/history.Po cmd-line-utils/readline/.deps/histsearch.Po cmd-line-utils/readline/.deps/input.Po cmd-line-utils/readline/.deps/isearch.Po cmd-line-utils/readline/.deps/keymaps.Po cmd-line-utils/readline/.deps/kill.Po cmd-line-utils/readli
  ne/.deps/macro.Po cmd-line-utils/readline/.deps/mbutil.Po cmd-line-utils/readline/.deps/misc.Po cmd-line-utils/readline/.deps/nls.Po cmd-line-utils/readline/.deps/parens.Po cmd-line-utils/readline/.deps/readline.Po cmd-line-utils/readline/.deps/rltty.Po cmd-line-utils/readline/.deps/savestring.Po cmd-line-utils/readline/.deps/search.Po cmd-line-utils/readline/.deps/shell.Po cmd-line-utils/readline/.deps/signals.Po cmd-line-utils/readline/.deps/terminal.Po cmd-line-utils/readline/.deps/text.Po cmd-line-utils/readline/.deps/tilde.Po cmd-line-utils/readline/.deps/undo.Po cmd-line-utils/readline/.deps/util.Po cmd-line-utils/readline/.deps/vi_mode.Po cmd-line-utils/readline/.deps/xmalloc.Po dbug/.deps/dbug.Po dbug/.deps/dbug_analyze.Po dbug/.deps/factorial.Po dbug/.deps/my_main.Po dbug/.deps/sanity.Po extra/yassl/src/.deps/buffer.Plo extra/yassl/src/.deps/cert_wrapper.Plo extra/yassl/src/.deps/crypto_wrapper.Plo extra/yassl/src/.deps/handshake.Plo extra/yassl/src/.deps/lock.Plo extra/yassl/src/.deps/log.Plo ex
  tra/yassl/src/.deps/socket_wrapper.Plo extra/yassl/src/.deps/ssl.Plo extra/yassl/src/.deps/template_instnt.Plo extra/yassl/src/.deps/timer.Plo extra/yassl/src/.deps/yassl_error.Plo extra/yassl/src/.deps/yassl_imp.Plo extra/yassl/src/.deps/yassl_int.Plo extra/yassl/taocrypt/benchmark/.deps/benchmark-benchmark.Po extra/yassl/taocrypt/src/.deps/libtaocrypt_la-aes.Plo extra/yassl/taocrypt/src/.deps/libtaocrypt_la-aestables.Plo extra/yassl/taocrypt/src/.deps/libtaocrypt_la-algebra.Plo extra/yassl/taocrypt/src/.deps/libtaocrypt_la-arc4.Plo extra/yassl/taocrypt/src/.deps/libtaocrypt_la-asn.Plo extra/yassl/taocrypt/src/.deps/libtaocrypt_la-bftables.Plo extra/yassl/taocrypt/src/.deps/libtaocrypt_la-blowfish.Plo extra/yassl/taocrypt/src/.deps/libtaocrypt_la-coding.Plo extra/yassl/taocrypt/src/.deps/libtaocrypt_la-des.Plo extra/yassl/taocrypt/src/.deps/libtaocrypt_la-dh.Plo extra/yassl/taocrypt/src/.deps/libtaocrypt_la-dsa.Plo extra/yassl/taocrypt/src/.deps/libtaocrypt_la-file.Plo extra/yassl/taocrypt/src/.deps/libt
  aocrypt_la-hash.Plo extra/yassl/taocrypt/src/.deps/libtaocrypt_la-integer.Plo extra/yassl/taocrypt/src/.deps/libtaocrypt_la-md2.Plo extra/yassl/taocrypt/src/.deps/libtaocrypt_la-md4.Plo extra/yassl/taocrypt/src/.deps/libtaocrypt_la-md5.Plo extra/yassl/taocrypt/src/.deps/libtaocrypt_la-misc.Plo extra/yassl/taocrypt/src/.deps/libtaocrypt_la-random.Plo extra/yassl/taocrypt/src/.deps/libtaocrypt_la-ripemd.Plo extra/yassl/taocrypt/src/.deps/libtaocrypt_la-rsa.Plo extra/yassl/taocrypt/src/.deps/libtaocrypt_la-sha.Plo extra/yassl/taocrypt/src/.deps/libtaocrypt_la-template_instnt.Plo extra/yassl/taocrypt/src/.deps/libtaocrypt_la-tftables.Plo extra/yassl/taocrypt/src/.deps/libtaocrypt_la-twofish.Plo extra/yassl/taocrypt/test/.deps/test-test.Po extra/yassl/testsuite/.deps/testsuite-client.Po extra/yassl/testsuite/.deps/testsuite-echoclient.Po extra/yassl/testsuite/.deps/testsuite-echoserver.Po extra/yassl/testsuite/.deps/testsuite-server.Po extra/yassl/testsuite/.deps/testsuite-test.Po extra/yassl/testsuite/.deps/t
  estsuite-testsuite.Po extra/.deps/charset2html.Po extra/.deps/comp_err.Po extra/.deps/innochecksum.Po extra/.deps/my_print_defaults.Po extra/.deps/mysql_waitpid.Po extra/.deps/perror.Po extra/.deps/replace.Po extra/.deps/resolve_stack_dump.Po extra/.deps/resolveip.Po libmysql/.deps/array.Plo libmysql/.deps/bchange.Plo libmysql/.deps/bcmp.Plo libmysql/.deps/bmove.Plo libmysql/.deps/bmove_upp.Plo libmysql/.deps/charset-def.Plo libmysql/.deps/charset.Plo libmysql/.deps/client.Plo libmysql/.deps/conf_to_src.Po libmysql/.deps/ctype-big5.Plo libmysql/.deps/ctype-bin.Plo libmysql/.deps/ctype-cp932.Plo libmysql/.deps/ctype-czech.Plo libmysql/.deps/ctype-euc_kr.Plo libmysql/.deps/ctype-eucjpms.Plo libmysql/.deps/ctype-extra.Plo libmysql/.deps/ctype-gb2312.Plo libmysql/.deps/ctype-gbk.Plo libmysql/.deps/ctype-latin1.Plo libmysql/.deps/ctype-mb.Plo libmysql/.deps/ctype-simple.Plo libmysql/.deps/ctype-sjis.Plo libmysql/.deps/ctype-tis620.Plo libmysql/.deps/ctype-uca.Plo libmysql/.deps/ctype-ucs2.Plo libmysql/.deps/ct
  ype-ujis.Plo libmysql/.deps/ctype-utf8.Plo libmysql/.deps/ctype-win1250ch.Plo libmysql/.deps/ctype.Plo libmysql/.deps/dbug.Plo libmysql/.deps/default.Plo libmysql/.deps/default_modify.Plo libmysql/.deps/errmsg.Plo libmysql/.deps/errors.Plo libmysql/.deps/get_password.Plo libmysql/.deps/hash.Plo libmysql/.deps/int2str.Plo libmysql/.deps/is_prefix.Plo libmysql/.deps/libmysql.Plo libmysql/.deps/list.Plo libmysql/.deps/llstr.Plo libmysql/.deps/longlong2str.Plo libmysql/.deps/manager.Plo libmysql/.deps/md5.Plo libmysql/.deps/mf_cache.Plo libmysql/.deps/mf_dirname.Plo libmysql/.deps/mf_fn_ext.Plo libmysql/.deps/mf_format.Plo libmysql/.deps/mf_iocache.Plo libmysql/.deps/mf_iocache2.Plo libmysql/.deps/mf_loadpath.Plo libmysql/.deps/mf_pack.Plo libmysql/.deps/mf_path.Plo libmysql/.deps/mf_tempfile.Plo libmysql/.deps/mf_unixpath.Plo libmysql/.deps/mf_wcomp.Plo libmysql/.deps/mulalloc.Plo libmysql/.deps/my_alloc.Plo libmysql/.deps/my_chsize.Plo libmysql/.deps/my_compress.Plo libmysql/.deps/my_create.Plo libmysql/.de
  ps/my_delete.Plo libmysql/.deps/my_div.Plo libmysql/.deps/my_error.Plo libmysql/.deps/my_file.Plo libmysql/.deps/my_fopen.Plo libmysql/.deps/my_fstream.Plo libmysql/.deps/my_gethostbyname.Plo libmysql/.deps/my_getopt.Plo libmysql/.deps/my_getwd.Plo libmysql/.deps/my_init.Plo libmysql/.deps/my_lib.Plo libmysql/.deps/my_malloc.Plo libmysql/.deps/my_messnc.Plo libmysql/.deps/my_net.Plo libmysql/.deps/my_once.Plo libmysql/.deps/my_open.Plo libmysql/.deps/my_port.Plo libmysql/.deps/my_pread.Plo libmysql/.deps/my_pthread.Plo libmysql/.deps/my_read.Plo libmysql/.deps/my_realloc.Plo libmysql/.deps/my_rename.Plo libmysql/.deps/my_seek.Plo libmysql/.deps/my_sleep.Plo libmysql/.deps/my_static.Plo libmysql/.deps/my_strtoll10.Plo libmysql/.deps/my_symlink.Plo libmysql/.deps/my_thr_init.Plo libmysql/.deps/my_time.Plo libmysql/.deps/my_vsnprintf.Plo libmysql/.deps/my_write.Plo libmysql/.deps/net.Plo libmysql/.deps/pack.Plo libmysql/.deps/password.Plo libmysql/.deps/safemalloc.Plo libmysql/.deps/sha1.Plo libmysql/.deps/s
  tr2int.Plo libmysql/.deps/str_alloc.Plo libmysql/.deps/strcend.Plo libmysql/.deps/strcont.Plo libmysql/.deps/strend.Plo libmysql/.deps/strfill.Plo libmysql/.deps/string.Plo libmysql/.deps/strinstr.Plo libmysql/.deps/strmake.Plo libmysql/.deps/strmov.Plo libmysql/.deps/strnlen.Plo libmysql/.deps/strnmov.Plo libmysql/.deps/strtod.Plo libmysql/.deps/strtoll.Plo libmysql/.deps/strtoull.Plo libmysql/.deps/strxmov.Plo libmysql/.deps/strxnmov.Plo libmysql/.deps/thr_mutex.Plo libmysql/.deps/typelib.Plo libmysql/.deps/vio.Plo libmysql/.deps/viosocket.Plo libmysql/.deps/viossl.Plo libmysql/.deps/viosslfactories.Plo libmysql/.deps/xml.Plo libmysql/.libs/libmysqlclient.lai libmysql/.libs/libmysqlclient.so.15 libmysql/.libs/libmysqlclient.so.15.0.0 libmysql_r/.deps/array.Plo libmysql_r/.deps/bchange.Plo libmysql_r/.deps/bcmp.Plo libmysql_r/.deps/bmove.Plo libmysql_r/.deps/bmove_upp.Plo libmysql_r/.deps/charset-def.Plo libmysql_r/.deps/charset.Plo libmysql_r/.deps/client.Plo libmysql_r/.deps/conf_to_src.Po libmysql_r/.
  deps/ctype-big5.Plo libmysql_r/.deps/ctype-bin.Plo libmysql_r/.deps/ctype-cp932.Plo libmysql_r/.deps/ctype-czech.Plo libmysql_r/.deps/ctype-euc_kr.Plo libmysql_r/.deps/ctype-eucjpms.Plo libmysql_r/.deps/ctype-extra.Plo libmysql_r/.deps/ctype-gb2312.Plo libmysql_r/.deps/ctype-gbk.Plo libmysql_r/.deps/ctype-latin1.Plo libmysql_r/.deps/ctype-mb.Plo libmysql_r/.deps/ctype-simple.Plo libmysql_r/.deps/ctype-sjis.Plo libmysql_r/.deps/ctype-tis620.Plo libmysql_r/.deps/ctype-uca.Plo libmysql_r/.deps/ctype-ucs2.Plo libmysql_r/.deps/ctype-ujis.Plo libmysql_r/.deps/ctype-utf8.Plo libmysql_r/.deps/ctype-win1250ch.Plo libmysql_r/.deps/ctype.Plo libmysql_r/.deps/dbug.Plo libmysql_r/.deps/default.Plo libmysql_r/.deps/default_modify.Plo libmysql_r/.deps/errmsg.Plo libmysql_r/.deps/errors.Plo libmysql_r/.deps/get_password.Plo libmysql_r/.deps/hash.Plo libmysql_r/.deps/int2str.Plo libmysql_r/.deps/is_prefix.Plo libmysql_r/.deps/libmysql.Plo libmysql_r/.deps/list.Plo libmysql_r/.deps/llstr.Plo libmysql_r/.deps/longlong2str.P
  lo libmysql_r/.deps/manager.Plo libmysql_r/.deps/md5.Plo libmysql_r/.deps/mf_cache.Plo libmysql_r/.deps/mf_dirname.Plo libmysql_r/.deps/mf_fn_ext.Plo libmysql_r/.deps/mf_format.Plo libmysql_r/.deps/mf_iocache.Plo libmysql_r/.deps/mf_iocache2.Plo libmysql_r/.deps/mf_loadpath.Plo libmysql_r/.deps/mf_pack.Plo libmysql_r/.deps/mf_path.Plo libmysql_r/.deps/mf_tempfile.Plo libmysql_r/.deps/mf_unixpath.Plo libmysql_r/.deps/mf_wcomp.Plo libmysql_r/.deps/mulalloc.Plo libmysql_r/.deps/my_alloc.Plo libmysql_r/.deps/my_chsize.Plo libmysql_r/.deps/my_compress.Plo libmysql_r/.deps/my_create.Plo libmysql_r/.deps/my_delete.Plo libmysql_r/.deps/my_div.Plo libmysql_r/.deps/my_error.Plo libmysql_r/.deps/my_file.Plo libmysql_r/.deps/my_fopen.Plo libmysql_r/.deps/my_fstream.Plo libmysql_r/.deps/my_gethostbyname.Plo libmysql_r/.deps/my_getopt.Plo libmysql_r/.deps/my_getwd.Plo libmysql_r/.deps/my_init.Plo libmysql_r/.deps/my_lib.Plo libmysql_r/.deps/my_malloc.Plo libmysql_r/.deps/my_messnc.Plo libmysql_r/.deps/my_net.Plo libmys
  ql_r/.deps/my_once.Plo libmysql_r/.deps/my_open.Plo libmysql_r/.deps/my_port.Plo libmysql_r/.deps/my_pread.Plo libmysql_r/.deps/my_pthread.Plo libmysql_r/.deps/my_read.Plo libmysql_r/.deps/my_realloc.Plo libmysql_r/.deps/my_rename.Plo libmysql_r/.deps/my_seek.Plo libmysql_r/.deps/my_sleep.Plo libmysql_r/.deps/my_static.Plo libmysql_r/.deps/my_strtoll10.Plo libmysql_r/.deps/my_symlink.Plo libmysql_r/.deps/my_thr_init.Plo libmysql_r/.deps/my_time.Plo libmysql_r/.deps/my_vsnprintf.Plo libmysql_r/.deps/my_write.Plo libmysql_r/.deps/net.Plo libmysql_r/.deps/pack.Plo libmysql_r/.deps/password.Plo libmysql_r/.deps/safemalloc.Plo libmysql_r/.deps/sha1.Plo libmysql_r/.deps/str2int.Plo libmysql_r/.deps/str_alloc.Plo libmysql_r/.deps/strcend.Plo libmysql_r/.deps/strcont.Plo libmysql_r/.deps/strend.Plo libmysql_r/.deps/strfill.Plo libmysql_r/.deps/string.Plo libmysql_r/.deps/strinstr.Plo libmysql_r/.deps/strmake.Plo libmysql_r/.deps/strmov.Plo libmysql_r/.deps/strnlen.Plo libmysql_r/.deps/strnmov.Plo libmysql_r/.deps
  /strtod.Plo libmysql_r/.deps/strtoll.Plo libmysql_r/.deps/strtoull.Plo libmysql_r/.deps/strxmov.Plo libmysql_r/.deps/strxnmov.Plo libmysql_r/.deps/thr_mutex.Plo libmysql_r/.deps/typelib.Plo libmysql_r/.deps/vio.Plo libmysql_r/.deps/viosocket.Plo libmysql_r/.deps/viossl.Plo libmysql_r/.deps/viosslfactories.Plo libmysql_r/.deps/xml.Plo libmysql_r/.libs/libmysqlclient_r.lai libmysql_r/.libs/libmysqlclient_r.so.15 libmysql_r/.libs/libmysqlclient_r.so.15.0.0 libmysqld/examples/.deps/completion_hash.Po libmysqld/examples/.deps/mysql.Po libmysqld/examples/.deps/mysql_client_test.Po libmysqld/examples/.deps/mysqltest.Po libmysqld/examples/.deps/readline.Po libmysqld/.deps/client.Po libmysqld/.deps/derror.Po libmysqld/.deps/discover.Po libmysqld/.deps/emb_qcache.Po libmysqld/.deps/errmsg.Po libmysqld/.deps/event_data_objects.Po libmysqld/.deps/event_db_repository.Po libmysqld/.deps/event_queue.Po libmysqld/.deps/event_scheduler.Po libmysqld/.deps/events.Po libmysqld/.deps/field.Po libmysqld/.deps/field_conv.Po lib
  mysqld/.deps/filesort.Po libmysqld/.deps/get_password.Po libmysqld/.deps/gstream.Po libmysqld/.deps/ha_berkeley.Po libmysqld/.deps/ha_federated.Po libmysqld/.deps/ha_heap.Po libmysqld/.deps/ha_innodb.Po libmysqld/.deps/ha_myisam.Po libmysqld/.deps/ha_myisammrg.Po libmysqld/.deps/ha_ndbcluster.Po libmysqld/.deps/ha_ndbcluster_binlog.Po libmysqld/.deps/ha_partition.Po libmysqld/.deps/handler.Po libmysqld/.deps/hash_filo.Po libmysqld/.deps/hostname.Po libmysqld/.deps/init.Po libmysqld/.deps/item.Po libmysqld/.deps/item_buff.Po libmysqld/.deps/item_cmpfunc.Po libmysqld/.deps/item_create.Po libmysqld/.deps/item_func.Po libmysqld/.deps/item_geofunc.Po libmysqld/.deps/item_row.Po libmysqld/.deps/item_strfunc.Po libmysqld/.deps/item_subselect.Po libmysqld/.deps/item_sum.Po libmysqld/.deps/item_timefunc.Po libmysqld/.deps/item_uniq.Po libmysqld/.deps/item_xmlfunc.Po libmysqld/.deps/key.Po libmysqld/.deps/lib_sql.Po libmysqld/.deps/libmysql.Po libmysqld/.deps/libmysqld.Po libmysqld/.deps/lock.Po libmysqld/.deps/log
  .Po libmysqld/.deps/log_event.Po libmysqld/.deps/my_decimal.Po libmysqld/.deps/my_time.Po libmysqld/.deps/my_user.Po libmysqld/.deps/net_serv.Po libmysqld/.deps/opt_range.Po libmysqld/.deps/opt_sum.Po libmysqld/.deps/pack.Po libmysqld/.deps/parse_file.Po libmysqld/.deps/partition_info.Po libmysqld/.deps/password.Po libmysqld/.deps/procedure.Po libmysqld/.deps/protocol.Po libmysqld/.deps/records.Po libmysqld/.deps/rpl_filter.Po libmysqld/.deps/rpl_injector.Po libmysqld/.deps/set_var.Po libmysqld/.deps/sp.Po libmysqld/.deps/sp_cache.Po libmysqld/.deps/sp_head.Po libmysqld/.deps/sp_pcontext.Po libmysqld/.deps/sp_rcontext.Po libmysqld/.deps/spatial.Po libmysqld/.deps/sql_acl.Po libmysqld/.deps/sql_analyse.Po libmysqld/.deps/sql_base.Po libmysqld/.deps/sql_builtin.Po libmysqld/.deps/sql_cache.Po libmysqld/.deps/sql_class.Po libmysqld/.deps/sql_crypt.Po libmysqld/.deps/sql_cursor.Po libmysqld/.deps/sql_db.Po libmysqld/.deps/sql_delete.Po libmysqld/.deps/sql_derived.Po libmysqld/.deps/sql_do.Po libmysqld/.deps/s
  ql_error.Po libmysqld/.deps/sql_handler.Po libmysqld/.deps/sql_help.Po libmysqld/.deps/sql_insert.Po libmysqld/.deps/sql_lex.Po libmysqld/.deps/sql_list.Po libmysqld/.deps/sql_load.Po libmysqld/.deps/sql_manager.Po libmysqld/.deps/sql_map.Po libmysqld/.deps/sql_parse.Po libmysqld/.deps/sql_partition.Po libmysqld/.deps/sql_plugin.Po libmysqld/.deps/sql_prepare.Po libmysqld/.deps/sql_rename.Po libmysqld/.deps/sql_select.Po libmysqld/.deps/sql_show.Po libmysqld/.deps/sql_state.Po libmysqld/.deps/sql_string.Po libmysqld/.deps/sql_table.Po libmysqld/.deps/sql_tablespace.Po libmysqld/.deps/sql_test.Po libmysqld/.deps/sql_trigger.Po libmysqld/.deps/sql_udf.Po libmysqld/.deps/sql_union.Po libmysqld/.deps/sql_update.Po libmysqld/.deps/sql_view.Po libmysqld/.deps/sql_yacc.Po libmysqld/.deps/stacktrace.Po libmysqld/.deps/strfunc.Po libmysqld/.deps/table.Po libmysqld/.deps/thr_malloc.Po libmysqld/.deps/time.Po libmysqld/.deps/tztime.Po libmysqld/.deps/uniques.Po libmysqld/.deps/unireg.Po mysys/.deps/array.Po mysys/.d
  eps/base64.Po mysys/.deps/charset-def.Po mysys/.deps/charset.Po mysys/.deps/checksum.Po mysys/.deps/default.Po mysys/.deps/default_modify.Po mysys/.deps/errors.Po mysys/.deps/hash.Po mysys/.deps/list.Po mysys/.deps/md5.Po mysys/.deps/mf_brkhant.Po mysys/.deps/mf_cache.Po mysys/.deps/mf_dirname.Po mysys/.deps/mf_fn_ext.Po mysys/.deps/mf_format.Po mysys/.deps/mf_getdate.Po mysys/.deps/mf_iocache.Po mysys/.deps/mf_iocache2.Po mysys/.deps/mf_keycache.Po mysys/.deps/mf_keycaches.Po mysys/.deps/mf_loadpath.Po mysys/.deps/mf_pack.Po mysys/.deps/mf_path.Po mysys/.deps/mf_qsort.Po mysys/.deps/mf_qsort2.Po mysys/.deps/mf_radix.Po mysys/.deps/mf_same.Po mysys/.deps/mf_sort.Po mysys/.deps/mf_strip.Po mysys/.deps/mf_tempdir.Po mysys/.deps/mf_tempfile.Po mysys/.deps/mf_unixpath.Po mysys/.deps/mf_wcomp.Po mysys/.deps/mf_wfile.Po mysys/.deps/mulalloc.Po mysys/.deps/my_access.Po mysys/.deps/my_aes.Po mysys/.deps/my_alarm.Po mysys/.deps/my_alloc.Po mysys/.deps/my_append.Po mysys/.deps/my_atomic.Po mysys/.deps/my_bit.Po mys
  ys/.deps/my_bitmap.Po mysys/.deps/my_chsize.Po mysys/.deps/my_clock.Po mysys/.deps/my_compress.Po mysys/.deps/my_copy.Po mysys/.deps/my_crc32.Po mysys/.deps/my_create.Po mysys/.deps/my_delete.Po mysys/.deps/my_div.Po mysys/.deps/my_dup.Po mysys/.deps/my_error.Po mysys/.deps/my_file.Po mysys/.deps/my_fopen.Po mysys/.deps/my_fstream.Po mysys/.deps/my_gethostbyname.Po mysys/.deps/my_gethwaddr.Po mysys/.deps/my_getncpus.Po mysys/.deps/my_getopt.Po mysys/.deps/my_getsystime.Po mysys/.deps/my_getwd.Po mysys/.deps/my_handler.Po mysys/.deps/my_init.Po mysys/.deps/my_largepage.Po mysys/.deps/my_lib.Po mysys/.deps/my_libwrap.Po mysys/.deps/my_lock.Po mysys/.deps/my_lockmem.Po mysys/.deps/my_lread.Po mysys/.deps/my_lwrite.Po mysys/.deps/my_malloc.Po mysys/.deps/my_memmem.Po mysys/.deps/my_messnc.Po mysys/.deps/my_mkdir.Po mysys/.deps/my_mmap.Po mysys/.deps/my_net.Po mysys/.deps/my_netware.Po mysys/.deps/my_new.Po mysys/.deps/my_once.Po mysys/.deps/my_open.Po mysys/.deps/my_port.Po mysys/.deps/my_pread.Po mysys/.deps
  /my_pthread.Po mysys/.deps/my_quick.Po mysys/.deps/my_read.Po mysys/.deps/my_realloc.Po mysys/.deps/my_redel.Po mysys/.deps/my_rename.Po mysys/.deps/my_seek.Po mysys/.deps/my_semaphore.Po mysys/.deps/my_sleep.Po mysys/.deps/my_static.Po mysys/.deps/my_symlink.Po mysys/.deps/my_symlink2.Po mysys/.deps/my_sync.Po mysys/.deps/my_thr_init.Po mysys/.deps/my_vle.Po mysys/.deps/my_windac.Po mysys/.deps/my_write.Po mysys/.deps/ptr_cmp.Po mysys/.deps/queues.Po mysys/.deps/rijndael.Po mysys/.deps/safemalloc.Po mysys/.deps/sha1.Po mysys/.deps/string.Po mysys/.deps/thr_alarm.Po mysys/.deps/thr_lock.Po mysys/.deps/thr_mutex.Po mysys/.deps/thr_rwlock.Po mysys/.deps/tree.Po mysys/.deps/trie.Po mysys/.deps/typelib.Po netware/.deps/libmysqlmain.Po netware/.deps/my_manage.Po netware/.deps/mysql_install_db.Po netware/.deps/mysql_test_run.Po netware/.deps/mysqld_safe.Po plugin/fulltext/.deps/mypluglib_la-plugin_example.Plo plugin/fulltext/.libs/mypluglib.lai plugin/fulltext/.libs/mypluglib.so.0 plugin/fulltext/.libs/myplugli
  b.so.0.0.0 pstack/.deps/bucomm.Po pstack/.deps/debug.Po pstack/.deps/filemode.Po pstack/.deps/ieee.Po pstack/.deps/linuxthreads.Po pstack/.deps/pstack.Po pstack/.deps/rddbg.Po pstack/.deps/stabs.Po regex/.deps/debug.Po regex/.deps/main.Po regex/.deps/regcomp.Po regex/.deps/regerror.Po regex/.deps/regexec.Po regex/.deps/regfree.Po regex/.deps/reginit.Po regex/.deps/split.Po server-tools/instance-manager/.deps/buffer.Po server-tools/instance-manager/.deps/command.Po server-tools/instance-manager/.deps/commands.Po server-tools/instance-manager/.deps/guardian.Po server-tools/instance-manager/.deps/instance.Po server-tools/instance-manager/.deps/instance_map.Po server-tools/instance-manager/.deps/instance_options.Po server-tools/instance-manager/.deps/liboptions_la-options.Plo server-tools/instance-manager/.deps/liboptions_la-priv.Plo server-tools/instance-manager/.deps/listener.Po server-tools/instance-manager/.deps/log.Po server-tools/instance-manager/.deps/manager.Po server-tools/instance-manager/.deps/mess
  ages.Po server-tools/instance-manager/.deps/mysql_connection.Po server-tools/instance-manager/.deps/mysqlmanager.Po server-tools/instance-manager/.deps/net_serv.Po server-tools/instance-manager/.deps/parse.Po server-tools/instance-manager/.deps/parse_output.Po server-tools/instance-manager/.deps/protocol.Po server-tools/instance-manager/.deps/thread_registry.Po server-tools/instance-manager/.deps/user_management_commands.Po server-tools/instance-manager/.deps/user_map.Po to the ignore list
sql/event_scheduler.cc:
  Whitespaces and moving around to ease the job of diff
sql/event_scheduler.h:
  init_scheduler() actually does not return anything but 0, then make it void
2006-07-13 16:24:55 +02:00
unknown
31caa8c433 WL #3337 (Events new architecture)
Final stroke, events should be loaded from disk on server startup.
Also check the validity of their bodies if possible during loading.


sql/event_data_objects.cc:
  Remove Event_job_data::free_sp(), move the code to the destructor
  Change the way we change the security context
  Steal some code from sql_parse.cc
sql/event_data_objects.h:
  Remove free_sp()
  Make compile() public, to be used when booting for verifying the integrity of mysql.event
sql/event_queue.cc:
  Make the queue load events from disk on server boot.
  Compile and thus check for integrity the events.
sql/event_queue.h:
  shift methods around. add queue_loaded boolean.
sql/event_scheduler.cc:
  Rename init_event_thread() to pre_init_event_thread()
  and make it more generic.
  Add post_init_event_thread()
  Export these two as well as deinit_event_thread().
  Now it is quite easy to write code to spawn a new event thread
  whenever needed.
sql/event_scheduler.h:
  export pre_init_event_thread(), post_init_event_thread() and deinit_event_thread()
  to simplify writing of thread functions.
sql/events.cc:
  Events::init() returns only one error code, then make it bool
sql/events.h:
  Events::init() returns only one error code, then make it bool
sql/mysqld.cc:
  Check the return code of Events::init()
sql/sp_head.cc:
  Add trace info
sql/sql_class.cc:
  Reorganize thd::change_security_context() to load main_security_ctx
sql/sql_class.h:
  Reorganize thd::change_security_context() to load main_security_ctx
sql/sql_lex.cc:
  Initialize lex->spname
sql/sql_yacc.yy:
  Add a comment
2006-07-13 10:59:58 +02:00
unknown
628be8a716 WL#3337 (Event scheduler new architecture)
event_scheduler_ng.cc/h is no more


BitKeeper/deleted/.del-event_scheduler_ng.cc~8896b89040dbc4f6:
  Delete: sql/event_scheduler_ng.cc
BitKeeper/deleted/.del-event_scheduler_ng.h~1431af5b185376f:
  Delete: sql/event_scheduler_ng.h
mysql-test/r/not_embedded_server.result:
  fix test
sql/Makefile.am:
  event_scheduler_ng.cc/h is no more
sql/event_queue.cc:
  event_scheduler_ng.cc/h is no more
sql/event_queue.h:
  event_scheduler_ng.cc/h is no more
sql/event_scheduler.cc:
  event_scheduler_ng.cc/h is no more
sql/event_scheduler.h:
  event_scheduler_ng.cc/h is no more
sql/events.cc:
  event_scheduler_ng.cc/h is no more
sql/events.h:
  event_scheduler_ng.cc/h is no more
2006-07-12 10:37:30 +02:00
unknown
b9a7fe2757 WL#3337 (Event scheduler new architecture)
Cleaned up the code a bit. Fixed few leaks.
This code still does not load events on server startup
from disk. The problem is that there is a need for a THD instance, which
does not exist during server boot. This will be solved soon.
Still Event_timed is used both for the memory queue and for exectution.
This will be changed according to WL#3337 probably in the next commit.


sql/event_data_objects.cc:
  Strip unneeded stuff from class Event_timed
  Event_timed is still used for the queue and execution.
  That will be changed in the next commit.
sql/event_data_objects.h:
  Strip unneeded stuff from class Event_timed
  Event_timed is still used for the queue and execution.
  That will be changed in the next commit.
sql/event_db_repository.cc:
  Cosmetics.
  Add a new method load_named_event_job, to be made complete in the 
  next commit. It will load from disk an instance of Event_job_data to
  be used during execution.
sql/event_db_repository.h:
  find_event does not need MEM_ROOT anymore
  because the memory is allocated on Event's own root.
sql/event_queue.cc:
  Remove dead code.
  Move dumping of the queue to separate method.
  Make critical sections in create_event & update_event
  as small as possible - load the new event outside of the section
  and free the object also outside of it.
sql/event_queue.h:
  init -> init_queue -> easier for ctags
  deinit -> deinit_queue -> easier for ctags
sql/event_scheduler.cc:
  empty this file
sql/event_scheduler.h:
  empty this file
sql/event_scheduler_ng.cc:
  add back DBUG_RETURN(0) in thread handlers.
  We don't stop running events when stopping the scheduler. Therefore
  remove this method now. If it is needed later it can be added back.
sql/event_scheduler_ng.h:
  Remove stop_all_running_threads()
  init -> init_scheduler
  deinit -> deinit_scheduler
  easier for ctags
sql/events.cc:
  Cosmetics
sql/events.h:
  Cosmetics
sql/set_var.cc:
  Remove references to dead code
sql/sql_parse.cc:
  Reorganize a bit.
2006-07-05 17:12:50 +02:00
unknown
a5dfeb02e9 WL #3337 (Event scheduler new architecture)
Cut Nr. 8.

All tests pass.

Separated Event_scheduler into Event_queue and Event_scheduler.
Added new Event_scheduler_ng which is the new scheduler and is used
system-wide. Will be moved to the event_scheduler.cc in the future.
Using Event_timed in Event_queue as well as cloned during execution.
Next step is to have Event_worker_data which will be used during execution
and will take ::compile()/::execute() out of Event_timed.


mysql-test/r/events.result:
  update result
mysql-test/r/events_bugs.result:
  update result
mysql-test/r/ps_1general.result:
  update result
mysql-test/r/skip_name_resolve.result:
  update result
mysql-test/r/sp-threads.result:
  update result
mysql-test/r/sp_notembedded.result:
  update result
mysql-test/r/status.result:
  update result
mysql-test/t/events_stress.test:
  Make event_stress a bit longer
sql/Makefile.am:
  Add new event_scheduler_ng.h/cc . These are only to be in the experimental
  clone. Later their content will be moved to event_scheduler.h/cc
sql/event_data_objects.cc:
  Allocate strings memory on own memory root, instead
  on the schedulers. Thus don't "leak" memory. This should
  fix bug#18683 memory leak in event scheduler
sql/event_data_objects.h:
  add mem_root
  add THD - this is only temporal, will be moved to class Event_job_data
  once Event_job_data is responsible for the execution.
sql/event_db_repository.cc:
  Remove unused code.
  Cosmetic changes
sql/event_queue.cc:
  Now use the Event_scheduler_ng (NextGen)
sql/event_queue.h:
  Now use the Event_scheduler_ng (NextGen)
sql/event_scheduler.cc:
  This file is no more used, but will be soon.
sql/event_scheduler.h:
  This file is no more used but will be soon
sql/events.cc:
  Now use the Event_scheduler_ng (NextGen)
sql/events.h:
  Now use the Event_scheduler_ng (NextGen)
sql/mysqld.cc:
  Make it again possible to kill the scheduler thread
sql/set_var.cc:
  Now use the Event_scheduler_ng (NextGen)
sql/share/errmsg.txt:
  Shorten the message.
sql/sql_show.cc:
  Loading is on a own root, then don't use thd->mem_root
2006-07-04 18:44:35 +02:00
unknown
377446fa34 WL#3337 (Event scheduler new architecture)
This is the first cut of separating Event_scheduler in two
classes which are more specialized.
Inheritance was used to separate methods and member variables.
Still Event_scheduler is a child of Event_queue. This dependency
will be removed soon.


sql/event_data_objects.cc:
  add comments
sql/event_db_repository.cc:
  coding style
sql/event_db_repository.h:
  add a call, will be implemented later
sql/event_queue.cc:
  Event_queue, still as super-class of Event_scheduler
sql/event_queue.h:
  Event_queue as super-class of Event_scheduler. Trying to
  separate the two classes
sql/event_scheduler.cc:
  Event_scheduler as child class of Event_queue.
  Trying to separate both classes.
sql/event_scheduler.h:
  Event_scheduler as child class of Event_queue.
  Trying to separate both classes.
sql/events.cc:
  Don't allocate on the stack the scheduler but on the heap.
  The exact way it is done will be changed, that's ok for now.
2006-07-03 11:20:08 +02:00
unknown
9fa9378b2e WL#3337 (Events new architecture)
This cut No 7 should finish the part of fixing the parsing of the events :
- Event_timed is no more used during parsing. Less problems because it has
  a mutex. Event_parse_data class is used during parsing. It is suited only
  for this purpose. It's pretty lightweight
- Late checking of data from parsing is being performed. This should solve
  the problems of nested events in SP or other events (for the situation 
  of no nested bodies). Before if an ALTER EVENT was in a SP, then when the
  SP was compiled, and not executed, the actual init_xxx methods of Event_timed
  were called, which is wrong.
- It could be a side effect of using a specialized class, but test events_stress is
  now 25% quicker.

Cut No8 will start splitting Event_scheduler into 2 parts, the QUEUE will be moved
to Event_queue.


mysql-test/r/events.result:
  update result
mysql-test/t/events.test:
  disabled is actually wrong, should be disable, but because of the early
  checking it was never parsed.
sql/event_data_objects.cc:
  move add init_xxx methods from Event_timed to Event_parse_data
  Event_parse data does not need definer_user and definer_host
  in Event_timed::compile() do not use lex.et, well there is no more lex.et :)
sql/event_data_objects.h:
  move parsing responsibilities from Event_timed to Event_parse_data
sql/event_db_repository.cc:
  No more Event_timed comes from parsing but Event_parse_data
  The initialization of Item*-s from parsing is done late, and not
  during the actual parsing. This is the right way to go because
  if an ALTER EVENT is inside a SP or CREATE EVENT it should not be
  executed (initialized) during parsing, as it was done.
sql/event_db_repository.h:
  No more Event_timed comes from parsing but Event_parse_data
  The initialization of Item*-s from parsing is done late, and not
  during the actual parsing. This is the right way to go because
  if an ALTER EVENT is inside a SP or CREATE EVENT it should not be
  executed (initialized) during parsing, as it was done.
sql/event_scheduler.cc:
  No more Event_timed comes from parsing but Event_parse_data
  The initialization of Item*-s from parsing is done late, and not
  during the actual parsing. This is the right way to go because
  if an ALTER EVENT is inside a SP or CREATE EVENT it should not be
  executed (initialized) during parsing, as it was done.
sql/event_scheduler.h:
  No more Event_timed comes from parsing but Event_parse_data
  The initialization of Item*-s from parsing is done late, and not
  during the actual parsing. This is the right way to go because
  if an ALTER EVENT is inside a SP or CREATE EVENT it should not be
  executed (initialized) during parsing, as it was done.
sql/events.cc:
  No more Event_timed comes from parsing but Event_parse_data
  The initialization of Item*-s from parsing is done late, and not
  during the actual parsing. This is the right way to go because
  if an ALTER EVENT is inside a SP or CREATE EVENT it should not be
  executed (initialized) during parsing, as it was done.
sql/events.h:
  No more Event_timed comes from parsing but Event_parse_data
  The initialization of Item*-s from parsing is done late, and not
  during the actual parsing. This is the right way to go because
  if an ALTER EVENT is inside a SP or CREATE EVENT it should not be
  executed (initialized) during parsing, as it was done.
sql/sql_lex.cc:
  lex->et_compile_phase and lex->et are no more.
  Use lex->event_parse_data
sql/sql_lex.h:
  lex->et_compile_phase and lex->et are no more.
  Use lex->event_parse_data
sql/sql_parse.cc:
  lex->et_compile_phase and lex->et are no more.
  Use lex->event_parse_data
  ACL checks were moved inside the Events subsystem.
  Also ending of the transaction is performed only just
  before doing disk operation. Therefore only when needed.
sql/sql_yacc.yy:
  lex->et and lex->et_parse_phase are no more
  Use the specialized for parsing Event_parse_data
2006-06-29 00:42:25 +02:00
unknown
8ca78787a5 WL#3337 (Events new architecture)
Cut number 6. Move code from sql_show.cc to event_db_repository.cc
that more belongs to the latter.


sql/event_db_repository.cc:
  move code that works with mysql.event from sql_show.cc to 
  event_db_repository.cc . Route through Event_db_repository's interface
  which is proxied by class Events. The code relies on a function from
  sql_show.cc which does the actual storage in the schema table. I think
  it's better to leave the function there because the structure of 
  I_S.EVENTS is defined in sql_show.cc
sql/event_db_repository.h:
  I_S / SHOW EVENTS handling hooks
sql/event_scheduler.cc:
  use the pointer to db_repository which Event_scheduler already has
sql/events.cc:
  Put a comment to get_instance
sql/events.h:
  callback for I_S (sql_show.cc)
sql/sql_show.cc:
  move code that belongs more to Event_db_repository than to here.
  Use a callback of class Events. Only 1 function is left here, because
  it copies data into the actual rows of I_S.EVENTS and belongs to this file.
sql/sql_show.h:
  export this function will be called from event_db_repository.cc
2006-06-28 14:22:14 +02:00
unknown
acefb78bc3 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
2006-06-28 01:28:03 +02:00
unknown
ef9a97e685 WL#3337 (Event scheduler new architecture)
Third cut to simplify parsing phase. Now DROP EVENT works.

Overloaded few functions to be able to use either sp_name or pass two LEX_STRINGs
instead of a Event_timed pointer. This is transitional and eventually the old
functions will be removed. For now DROP EVENT also works, does not need anymore
a parsing object (Event_timed) and definer initialization because everyone who
has EVENT_ACL can drop events, and this is checked on execution time in sql_parse.cc
from the security context, as it should be.


sql/event_data_objects.cc:
  overload few functions
sql/event_scheduler.cc:
  Event_scheduler::drop_event() actually does not need Event_timed object
  but just an identifier, hence pass only sp_name.
  
  Overloaded Event_scheduler::find_event() to work with sp_name object. Eventually
  the old version will be removed. This is being done as transitional step to
  be able to test frequently code.
sql/event_scheduler.h:
  Event_scheduler::drop_event() actually does not need Event_timed object
  but just an identifier, hence pass only sp_name.
  
  Overloaded Event_scheduler::find_event() to work with sp_name object. Eventually
  the old version will be removed. This is being done as transitional step to
  be able to test frequently code.
sql/events.cc:
  Change db_drop_event() not to use Event_timed, either coming from parsing
  or from Event_timed::drop, but use LEX_STRINGs. sp_name is not convinient
  because in Event_timed::drop a temporary object has to be created. Hence, 
  dereference the sp_name in Events::drop_event() and pass the LEX_STRINGs.
sql/events.h:
  Change db_drop_event() not to use Event_timed, either coming from parsing
  or from Event_timed::drop, but use LEX_STRINGs. sp_name is not convinient
  because in Event_timed::drop a temporary object has to be created. Hence, 
  dereference the sp_name in Events::drop_event() and pass the LEX_STRINGs.
sql/events_priv.h:
  Change db_drop_event() not to use Event_timed, either coming from parsing
  or from Event_timed::drop, but use LEX_STRINGs. sp_name is not convinient
  because in Event_timed::drop a temporary object has to be created. Hence, 
  dereference the sp_name in Events::drop_event() and pass the LEX_STRINGs.
sql/sql_parse.cc:
  SQLCOM_DROP_EVENT does not need lex->event_parse_data object and 
  is more like SQLCOM_SHOW_CREATE_EVENT. Therefore, move it to the block that
  handles the latter.
sql/sql_yacc.yy:
  DROP EVENT does not need a parsing object, just a name.
  Store it as lex->spname. Pretty similar handling to the one of
  SHOW CREATE EVENT.
2006-06-27 11:51:11 +02:00
unknown
e5f8163b88 first cut of WL#3337 (New event scheduler locking infrastructure).
Infrastructure built. Added the  foreseen files and change Makefile.am/CMakeLists.txt
accordingly.


libmysqld/Makefile.am:
  add new files. this is first cut of WL3337u
sql/CMakeLists.txt:
  add more files to build
sql/Makefile.am:
  add new files. this is first cut of WL3337
sql/event_scheduler.cc:
  event_timed.h -> event_data_objects.h (WL#3337)
sql/events.cc:
  event_timed.h -> event_data_objects.h (WL#3337)
sql/share/errmsg.txt:
  new error message
sql/event_data_objects.cc:
  event_timed.h -> event_data_objects.h (WL#3337)
sql/event_data_objects.h:
  event_timed.h -> event_data_objects.h (WL#3337)
sql/sql_parse.cc:
  event_timed.h -> event_data_objects.h (WL#3337)
sql/sql_show.cc:
  event_timed.h -> event_data_objects.h (WL#3337)
sql/sql_yacc.yy:
  event_timed.h -> event_data_objects.h (WL#3337)
2006-06-27 08:48:50 +02:00
unknown
d898972dc0 manual merge
BitKeeper/etc/ignore:
  auto-union
libmysqld/Makefile.am:
  Auto merged
sql/Makefile.am:
  Auto merged
sql/events.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/sql_db.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_show.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
sql/time.cc:
  Auto merged
2006-06-20 17:14:36 +02:00
unknown
99438424ac Reorganize, physically the events code
Unify method naming -> create/update/drop_event
Move class Event_timed to event_timed.h
class Events is in events.h (renamed from event.h)
The implementation is in events.cc (renamed from event.h)


BitKeeper/deleted/.del-event_executor.cc~f4a4645b973838ab:
  Delete: sql/event_executor.cc
include/my_time.h:
  add a boundary
libmysqld/CMakeLists.txt:
  event.cc -> events.cc
libmysqld/Makefile.am:
  event.cc -> event.cc
sql/CMakeLists.txt:
  event.cc -> events.cc
sql/Makefile.am:
  event.cc -> events.cc
  event_priv.h -> events_priv.h
sql/event_scheduler.cc:
  event.h -> events.h
  add_event -> create_event
  replace_event -> update_event()
  event_timed_compare_q is only used in event_scheduler.cc , so moving it
  from event.cc and making it static
sql/event_scheduler.h:
  add_event -> create_event
  replace_event -> update_event
sql/event_timed.cc:
  moved extern interval_type_to_name to mysql_priv.h
sql/mysql_priv.h:
  moved my_time_compare to time.cc
sql/mysqld.cc:
  event.h -> events.h
sql/sql_db.cc:
  event.h -> events.h
sql/sql_parse.cc:
  event.h -> events.h
  class Event_timed moved to event_timed.h
sql/sql_show.cc:
  event.h -> events.h
  class Event_timed moved to event_timed.h
sql/sql_yacc.yy:
  event.h -> events.h
  class Event_timed moved to event_timed.h
sql/events.cc:
  add_event -> create_event
  replace_event -> update_event
  event_timed_compare_q moved to event_scheduler.cc
sql/events.h:
  class Event_timed moved to event_timed.h
sql/events_priv.h:
  my_time_compare moved to mysql_priv.h
  event_timed_compare_q is static in event_scheduler.cc
sql/time.cc:
  moved interval_type_to_name from event.cc to here.
BitKeeper/etc/ignore:
  Added libmysqld/events.cc to the ignore list
2006-06-08 23:07:11 +02:00
unknown
6c3babe52c After merge fixes
Remove compiler warnings


mysql-test/extra/binlog_tests/mix_innodb_myisam_binlog.test:
  Fixed regex to get rid of xid= in output
mysql-test/r/mysqlcheck.result:
  Drop client_test_db if mysql_client_test fails
mysql-test/t/mysqlcheck.test:
  Drop client_test_db if mysql_client_test fails
mysql-test/t/mysqldump.test:
  Use --defaults-file instead of --defaults-extra-file to avoid reading my.cnf files
sql/event_scheduler.cc:
  Remove compiler warnings
sql/ha_partition.cc:
  Don't divide with 0 when checking current auto_increment value
sql/handler.cc:
  After merge fix
sql/mysqld.cc:
  Remove comiler warning
sql/partition_info.cc:
  After merge fix
  Fixed memory reference overrun for some wrong partition definitions
sql/sql_base.cc:
  After merge fix
  Always set *leaves in setup_tables_and_check_access() (assume argument is always given).
sql/sql_select.cc:
  Simple optimization
sql/sql_show.cc:
  Remove compiler warning
sql/sql_table.cc:
  After merge fix
storage/csv/ha_tina.cc:
  Ensure table maps are restored properly
storage/ndb/include/ndbapi/Ndb.hpp:
  Remove compiler warning
2006-06-05 06:16:08 +03:00
unknown
f32d0ec6bf Merge lmy004.:/work/mysql-5.1-new-vanilla
into lmy004.:/work/mysql-5.1-runtime


sql/event_scheduler.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_show.cc:
  Auto merged
2006-05-29 15:16:07 +02:00
unknown
bdda011675 Fix for bug #17394 - Events namespace is wrong
mysql-test/lib/init_db.sql:
  remove definer from PK
mysql-test/r/events.result:
  update results
mysql-test/r/system_mysql_db.result:
  update results
mysql-test/t/events.test:
  remove I_S.EVENTS test and move it to events_grant.test
scripts/mysql_fix_privilege_tables.sql:
  change table definition
sql/event.cc:
  make events non-user specific (namespace change)
sql/event.h:
  make events non-user specific (namespace change)
sql/event_priv.h:
  make events non-user specific (namespace change)
sql/event_scheduler.cc:
  make events non-user specific (namespace change)
sql/event_timed.cc:
  make events non-user specific (namespace change)
sql/sql_parse.cc:
  make events non-user specific (namespace change)
sql/sql_show.cc:
  SHOW EVENTS is available to everyone who has EVENT on specific schema.
  No additional privileges are needed to see others' events.
  - user A has events in db1 and db2
  - user B has events in db1 and db3
  A will see all his events from db1 and db2 as well as B's events
  from db1 but not from db3.
  B will see her events from db1 and db3. In addition B will see
  only A's events from db1 but not db2.
2006-05-29 10:39:45 +02:00
unknown
4cf24a5160 event_scheduler.h, event_scheduler.cc:
Rename load_event() to load_named_event(), to avoid name clash on HP-UX


sql/event_scheduler.cc:
  Rename load_event() to load_named_event(), to avoid name clash on HP-UX
sql/event_scheduler.h:
  Rename load_event() to load_named_event(), to avoid name clash on HP-UX
2006-05-23 17:47:17 +02:00
unknown
05d44302b9 __FUNCTION__ is not available everywhere.
make us see at least with gcc the function proto. this can be extended
probably for windows too.
Fix build on intelxeon3 (sun compiler and others)


sql/event_scheduler.cc:
  __FUNCTION__ is not available everywhere.
  make us see at least with gcc the function proto. this can be extended
  probably for windows too.
2006-05-23 16:50:01 +02:00
unknown
b1eaf92cd9 fix win32 build after push for bug#17619
sql/event_scheduler.cc:
  remove unused variables
  fix win32 build problem - pthread_mutex_lock() is void there
sql/event_scheduler.h:
  pthread_mutex_lock() is void on win32. This fixes the win32 build.
sql/event_timed.cc:
  remove unused code & variables
2006-05-23 00:19:02 +02:00
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