WL#1034
- This changeset also changes the executor so its quite more stable now.
Stressing test case added that executes ~800 events per second and dropping
hundreds of events at once using DROP DATABASE.
(with fixes after review of JimW)
(with fixes after review of Serg)
mysql-test/r/events.result:
update results after TRIGGER_ACL was added
mysql-test/t/events.test:
-redundant line
sql/event.cc:
Implemented evex_db_drop_events() which drops all events
from a specific database. Needed for SQLCOM_DROP_DATABASE
sql/event.h:
- protect the event better (see the changes to event_executor.cc
and event.cc). An event object could be used in a spawned thread
before it's executed but till now the object is marked as being
executed when the anonymous sp_head is executed. However, there are
timeframes before and after that during which the event is not marked
as executed and other thread may delete the object -> so we end with
a nirvana pointer.
sql/event_executor.cc:
- extract some of the code executed in the main thread to a function. Too long
functions are bad for the overview.
- prepend all information/error messages to the console with "SCHEDULER:" for
better overview, and easied searching in the log tables.
sql/event_priv.h:
- change the name, of evex_db_find_event_by_name() and don't
used C++ features like function overloading
- define consts for result returned from event_timed::spawn_now()
sql/event_timed.cc:
- add few methods related to event execution.
now the event spawns the worker thread and
passes itself as parameter. This way it locks itself for exectution
first and then spawning -> no race condition. When the worker thread
has finished working with the reference it calls back
event_timed::spawn_thread_finish() to unlock itself.
sql/sql_db.cc:
- call evex_drop_db_events() on DROP DATABASE
sql/event.cc:
- make this not unsigned. gcc complains
sql/event_timed.cc:
acl_getroot_no_password() is not there in libmysqld, disable it's usage
in this case.
sql/set_var.cc:
fix for the broken build of Serg. gcc seems to be pretty happy without
the return and returns the value of the last statement
WL#1034 (Internal CRON)
(post-post-review updates)
mysql-test/r/events.result:
update results file
mysql-test/t/events.test:
add test for Bug #16410 Events: CREATE EVENT is legal in a CREATE TRIGGER statement
sql/sp_head.cc:
CREATE/ALTER/DROP event mean explicit commit, so they are not allowed in
a FUNCTION/TRIGGER. Fixes bug#16410
sql/sql_parse.cc:
- end active transaction for CREATE/ALTER/DROP EVENT because
they are DDL statements.
- Change 94 to 95 according to Pem's instructions in bug report.
mysql-test/r/sp-code.result:
Update from 94 to 95 according to Pem's instructions
mysql-test/t/disabled.def:
Enable sp-code test case
into serg.mylan:/usr/home/serg/Abk/mysql-5.1
sql/ha_ndbcluster.cc:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
sql/log_event.cc:
Auto merged
sql/sql_select.cc:
Auto merged
use part_info->no_subparts to calculate partition range in case of subpartitions
mysql-test/r/partition.result:
Fix for bug#16901 Partitions: crash, SELECT, column of part. function=first column of primary key
test case
mysql-test/t/partition.test:
Fix for bug#16901 Partitions: crash, SELECT, column of part. function=first column of primary key
test case
Also added a flush table test as well. Found one possible bug in OPTIMIZE TABLE which has never been reported, but I think it would be possible on a file system that ran out of disk.
mysql-test/r/archive.result:
New results
mysql-test/t/archive.test:
Added test for flush tables, which will also let me confirm DELAYED INSERT.
sql/ha_archive.cc:
Adding new stat
sql/ha_archive.h:
Just extending SHARE
dbug/dbug.c:
post-merge fixes (-#T in explain was forgotten)
sql/set_var.h:
post-merge fixes (DBUG_POP() is the correct way to restore default settings now)
sql/ha_ndbcluster.cc:
Auto merged
sql/ha_ndbcluster_binlog.cc:
Auto merged
sql/mysqld.cc:
Auto merged
sql/opt_range.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/set_var.h:
Auto merged
sql/sql_plugin.cc:
Auto merged
sql/sql_select.cc:
Auto merged
tests/mysql_client_test.c:
Auto merged
client/mysqlslap.c:
SCCS merged
configure.in:
SCCS merged
libmysql/libmysql.c:
SCCS merged
mysys/my_init.c:
SCCS merged
1. dbug state is now local to a thread
2. new macros: DBUG_EXPLAIN, DBUG_EXPLAIN_INITIAL,
DBUG_SET, DBUG_SET_INITIAL, DBUG_EVALUATE, DBUG_EVALUATE_IF
3. macros are do{}while(0) wrapped
4. incremental modifications to the dbug state (e.g. "+d,info:-t")
5. dbug code cleanup, style fixes
6. _db_on_ and DEBUGGER_ON/OFF removed
7. rest of MySQL code fixed because of 3 (missing ;) and 6
8. dbug manual updated
9. server variable @@debug (global and local) to control dbug from SQL!
a. -#T to print timestamps in the log
BitKeeper/deleted/.del-readme.prof~2f3bae1550a0038d:
Delete: dbug/readme.prof
client/mysqlslap.c:
typo fixed
configure.in:
test for sleep() too
dbug/dbug.c:
thread local dbug settings
DBUG_EXPLAIN,DBUG_EXPLAIN_INITIAL,DBUG_SET,DBUG_SET_INITIAL
style changes to be more in line with MySQL code
cleanup (many mallocs removed)
incremental modification of dbug state (e.g. DBUG_PUSH("+t:-d,info"))
DBUG_SET, _db_explain_
-#T
dbug/monty.doc:
obsolete and duplicate docs removed
dbug/user.r:
new features documented
include/my_dbug.h:
correct do{}while wrapping
thread local dbug settings
DBUG_EXPLAIN,DBUG_EXPLAIN_INITIAL,DBUG_SET,DBUG_SET_INITIAL
DBUG_EVALUATE,DBUG_EVALUATE_IF
libmysql/libmysql.c:
remove _db_on_ and DEBUGGER_ON/OFF
mysys/my_init.c:
missed DBUG_RETURN
mysys/my_thr_init.c:
bugfix - transaction id's are unsigned
mysys/testhash.c:
remove _db_on_ and DEBUGGER_ON/OFF
sql/ha_myisammrg.cc:
missed ;
sql/ha_ndbcluster.cc:
remove _db_on_ and DEBUGGER_ON/OFF
missed ;
sql/ha_ndbcluster_binlog.cc:
remove _db_on_ and DEBUGGER_ON/OFF
missed ;
sql/item_cmpfunc.cc:
missed ;
sql/lock.cc:
missed DBUG_RETURN
sql/log_event.cc:
missed ;
sql/mysqld.cc:
remove _db_on_ and DEBUGGER_ON/OFF
missed ;
DBUG_SET_INITIAL
sql/opt_range.cc:
remove _db_on_ and DEBUGGER_ON/OFF
sql/set_var.cc:
class sys_var_thd_dbug and "debug" server variable
sql/set_var.h:
class sys_var_thd_dbug and "debug" server variable
sql/slave.cc:
missed ;
sql/sql_cache.cc:
missed ;
sql/sql_plugin.cc:
missed ;
sql/sql_select.cc:
remove _db_on_ and DEBUGGER_ON/OFF
storage/heap/hp_test2.c:
remove _db_on_ and DEBUGGER_ON/OFF
storage/myisam/ft_eval.c:
remove _db_on_ and DEBUGGER_ON/OFF
storage/myisam/ft_test1.c:
remove _db_on_ and DEBUGGER_ON/OFF
storage/myisam/mi_open.c:
remove _db_on_ and DEBUGGER_ON/OFF
missed ;
storage/myisam/mi_test1.c:
remove _db_on_ and DEBUGGER_ON/OFF
storage/myisam/mi_test2.c:
remove _db_on_ and DEBUGGER_ON/OFF
storage/myisam/mi_test3.c:
remove _db_on_ and DEBUGGER_ON/OFF
storage/ndb/src/ndbapi/DictCache.cpp:
missed ;
storage/ndb/src/ndbapi/NdbTransaction.cpp:
missed ;
tests/mysql_client_test.c:
remove _db_on_ and DEBUGGER_ON/OFF
visible event in libmysqld. fixes build problem.
sql/sql_acl.cc:
make declarations of mysql_db_table_last_check and mysql_db_table_fields
visible event in libmysqld
into mysql.com:/usr_rh9/home/elkin.rh9/MySQL/Merge/5.1-new
BitKeeper/deleted/.del-ctype_ucs_binlog.result~280d136b1a0bcf17:
Auto merged
mysql-test/r/user_var-binlog.result:
Auto merged
mysql-test/t/mysql.test:
Auto merged
mysql-test/t/mysqlbinlog.test:
Auto merged
mysql-test/t/rpl_trigger.test:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
mysql-test/r/rpl_stm_charset.result:
Auto merged
sql/log_event.cc:
Auto merged
sql/sql_select.cc:
Auto merged
mysql-test/r/rpl_timezone.result:
manual merge use local. Result file has to be refined according to changes brought in
to the test.
This is for bug#17384
mysql-test/r/mysqldump.result:
Changed result
mysql-test/t/disabled.def:
Re-enable after fixing bugs
mysql-test/t/mysqldump.test:
Added silent option
into lmy004.:/work/mysql-5.1-bug17289
mysql-test/r/events.result:
Auto merged
mysql-test/t/events.test:
Auto merged
sql/event.h:
Auto merged
sql/event_executor.cc:
Auto merged
sql/event_timed.cc:
Auto merged