BACKUP previous set up triggers using DICT.
This lead to all kind of trouble.
An smaller alternative to using SUMA for backup
is to just make BACKUP handle triggers to TUP directly.
This way all triggers will be totally local,
and error handling is much simpler.
--- old impl.
Start: Master recives GSN_DEFINE_BACKUP_CONF from all participants
Master sends CREATE_TRIG_REQ for all tables to local DICT (dict master)
Master sends START_BACKUP_REQ to all paricipants with trigger ids from DICT
Master sends ALTER_TRIG_REQ (online) to local DICT
Master waits for GCP
Master starts distributed scan
When scan has finished
Master waits for GCP
Master sends DROP_TRIGGER to local DICT
Master sends STOP_BACKUP_REQ to all participants
--- new impl.
Start: Master recives GSN_DEFINE_BACKUP_CONF from all participants
Master sends START_BACKUP_REQ to all paricipants
Participand sends CREATE_TRIG_REQ for all tables to local TUP
Master waits for GCP
Master starts distributed scan
When scan has finished
Master waits for GCP
Master sends STOP_BACKUP_REQ to all participants
Participant sends DROP_TRIGGER to local TUP
Changes:
All trigger handling is _local_
This implies, that abort (e.g due to node failure) can be _local_
fix testBackup test so that it will run successfully with the (now correct)
backup trigger code.
storage/ndb/include/kernel/signaldata/BackupImpl.hpp:
rework START_BACKUP signals as we no longer need tableId and triggerIds.
storage/ndb/src/common/debugger/signaldata/BackupImpl.cpp:
START_BACKUP_REQ no longer has tableIds and trigger ids
storage/ndb/src/kernel/blocks/backup/Backup.cpp:
Use TUP triggers directly.
removes ALTER trigger
simplifies DROP triggers
changes to node failure handling
changes in signal order
use SlaveData to track slave status.
storage/ndb/src/kernel/blocks/backup/Backup.hpp:
- remove ALTER_TRIG (now unused)
- add signalNo to BackupRecord
- add SlaveData
- remove dead items from MasterData
- update prototype of startBackupReply
storage/ndb/src/kernel/blocks/backup/Backup.txt:
Update signals for new backup code.
storage/ndb/src/kernel/blocks/backup/BackupInit.cpp:
remove ALTER_TRIG REF and CONF as we no longer use them.
storage/ndb/src/kernel/blocks/dbtup/Dbtup.hpp:
Add comment about meaning of triggerId
Add sender BlockNumber parameter to dropTrigger.
storage/ndb/src/kernel/blocks/dbtup/DbtupTrigger.cpp:
for SUBSCRIPTION triggers, make it so that the trigger ids are private to each block.
storage/ndb/test/ndbapi/testBackup.cpp:
Don't do initial restart, just a restart. This is to avoid cache issues with
schema versions
storage/ndb/test/src/NdbBackup.cpp:
Update error insertions.
mysql-test/t/ndb_dd_ddl.test:
Updated test case with suggestions from omer
mysql-test/r/ndb_dd_ddl.result:
Updated test case with suggestions from omer
CSV storage engine to be statically compiled.
Derived from antony's patch.
config/ac-macros/storage.m4:
don't add objects to the object list if
we don't have them
configure.in:
compile CSV statically
sql/ha_myisam.cc:
fix prototype to get rid of THD
sql/ha_myisam.h:
fix prototype to get rid of THD
sql/handler.cc:
new function for plugins
sql/handler.h:
fix prototype to get rid of THD
declare functions used by plugins
sql/item.h:
Don't include all the types and files when not building mysqld
sql/lock.cc:
don's assume that handler knows about THD
sql/mysql_priv.h:
Don't include all the types and files when not building mysqld
declare new plugin functions
sql/sql_class.cc:
New plugin functions
sql/sql_class.h:
Don't include all the types and files when not building mysqld
sql/sql_lex.h:
Don't include all the types and files when not building mysqld
storage/csv/Makefile.am:
compile CSV into a static lib to be
linked into mysqld
storage/csv/ha_tina.cc:
fix ha_tina to be able to build it static
storage/csv/ha_tina.h:
fix prototype to get rid of THD
mysql-test/ndb/ndbcluster.sh:
Upgraded DataMemory to 20M so that ndb_restore tests fit in memory
mysql-test/r/ndb_config.result:
Upgraded DataMemory to 20M so that ndb_restore tests fit in memory
mysql-test/r/ndb_restore.result:
Added check that no extra objects exist before starting
Added printout from erronous node group map
mysql-test/t/disabled.def:
Activated ndb_restore again
mysql-test/t/ndb_restore.test:
Added new test cases and handling of error case for node group maps
storage/ndb/tools/restore/consumer_restore.cpp:
Removed debug printouts
storage/ndb/tools/restore/restore_main.cpp:
Removed debug printouts
ndbout => info
some ndbout => err
and yet others
ndbout => debug
mysql-test/r/sp.result:
Auto merged
mysql-test/r/view.result:
Auto merged
mysql-test/t/handler.test:
Auto merged
mysql-test/t/mysql_client_test.test:
Auto merged
mysql-test/t/mysqltest.test:
Auto merged
mysql-test/t/sp.test:
Auto merged
mysql-test/t/view.test:
Auto merged
sql/mysqld.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_prepare.cc:
Auto merged
storage/ndb/include/kernel/signaldata/CreateTable.hpp:
New error code for rope pool
storage/ndb/include/mgmapi/mgmapi_config_parameters.h:
New error code for rope pool
storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp:
New error code for rope pool
storage/ndb/src/mgmsrv/ConfigInfo.cpp:
New error code for rope pool
storage/ndb/src/ndbapi/ndberror.c:
New error code for rope pool
storage/ndb/include/ndbapi/NdbBlob.hpp:
rbr blobs ndb api support
storage/ndb/include/ndbapi/NdbDictionary.hpp:
rbr blobs ndb api support
storage/ndb/include/ndbapi/NdbEventOperation.hpp:
rbr blobs ndb api support
storage/ndb/ndbapi-examples/ndbapi_event/Makefile:
rbr blobs ndb api support
storage/ndb/ndbapi-examples/ndbapi_event/ndbapi_event.cpp:
rbr blobs ndb api support
storage/ndb/src/ndbapi/NdbBlob.cpp:
rbr blobs ndb api support
storage/ndb/src/ndbapi/NdbDictionary.cpp:
rbr blobs ndb api support
storage/ndb/src/ndbapi/NdbDictionaryImpl.cpp:
rbr blobs ndb api support
storage/ndb/src/ndbapi/NdbDictionaryImpl.hpp:
rbr blobs ndb api support
storage/ndb/src/ndbapi/NdbEventOperation.cpp:
rbr blobs ndb api support
storage/ndb/src/ndbapi/NdbEventOperationImpl.cpp:
rbr blobs ndb api support
storage/ndb/src/ndbapi/NdbEventOperationImpl.hpp:
rbr blobs ndb api support
storage/ndb/test/ndbapi/test_event_merge.cpp:
rbr blobs ndb api support
BitKeeper/deleted/.del-ctype_cp932_notembedded.test~7c748e8e7ae6e7fe:
Delete: mysql-test/t/ctype_cp932_notembedded.test
mysql-test/r/innodb.result:
result fixed
mysql-test/r/query_cache.result:
result fixed
mysql-test/r/query_cache_notembedded.result:
result fixed
mysql-test/r/sp-error.result:
result fixed
mysql-test/r/sp.result:
result fixed
mysql-test/r/view.result:
result fixed
mysql-test/r/view_grant.result:
result fixed
mysql-test/t/sp-destruct.test:
test disabled
mysql-test/t/view.test:
lines moved to view_grant.test
mysql-test/t/view_grant.test:
lines moved from view.test
tree to get rid of multiple typos in CS comments and
unify the patch.
configure.in:
CSV is compiled in by default now
include/my_base.h:
add new ha_extra flag for the log tables
mysql-test/include/im_check_os.inc:
we should only run im tests if csv is on for now: im relies
on mysqld options available only in csv build.
mysql-test/include/system_db_struct.inc:
check log tables structure
mysql-test/lib/init_db.sql:
create log tables when running tests.
mysql-test/mysql-test-run.pl:
Add old logs flag to IM tests. As IM could only deal with
old logs (this feature is not needed with log tables)
mysql-test/r/connect.result:
update result
mysql-test/r/csv.result:
update result
mysql-test/r/im_utils.result:
update result
mysql-test/r/information_schema.result:
update result
mysql-test/r/mysqlcheck.result:
update result
mysql-test/r/show_check.result:
update result
mysql-test/r/system_mysql_db.result:
update result
mysql-test/t/connect.test:
disable test if CSV engine is not in: result depends on the
presence of CSV-based log tables
mysql-test/t/csv.test:
add tests for concurrent insert (the functionality is added
to CSV in this patch)
mysql-test/t/information_schema.test:
disable test if CSV engine is not in: result depends on the
presence of CSV-based log tables
mysql-test/t/mysqlcheck.test:
disable test if CSV engine is not in: result depends on the
presence of CSV-based log tables
mysql-test/t/show_check.test:
disable test if CSV engine is not in: result depends on the
presence of CSV-based log tables
mysql-test/t/system_mysql_db.test:
disable test if CSV engine is not in: result depends on the
presence of CSV-based log tables
mysql-test/t/system_mysql_db_fix.test:
disable test if CSV engine is not in: result depends on the
presence of CSV-based log tables
scripts/mysql_create_system_tables.sh:
new system tables: slow_log and general_log
scripts/mysql_fix_privilege_tables.sql:
add new log tables: use an SP to create them for
non-csv build to work fine.
sql/ha_myisam.cc:
move locking-related checks to the hanlder
sql/ha_myisam.h:
new function declared
sql/handler.h:
new virtual function is added: we should check for handler-related
locking issues in the handler
sql/lock.cc:
from now on we check for handler-related locking issues
in the handler itself rather then in lock.cc
sql/log.cc:
Add log tables support, refactoring: there are log event
handlers with common interface. They are used by the LOGGER
class, which is responsible for their initialization, cleanup
and managment. Logging to the tables provided by one of the
log event handler types.
sql/log.h:
declare new log classes
sql/log_event.cc:
convert old logging routines calls to use new API
sql/mysql_priv.h:
define common log routines and objects
sql/mysqld.cc:
Add support for the log tables. Their initalization, cleanup
and specific options.
sql/share/errmsg.txt:
add new error messages for the log tables
sql/slave.cc:
convert old logging routines calls to use new API
sql/sql_base.cc:
TABLE objects used by the logger should be skipped
during refreshes (as log tables are always opened
and locked). fix table_is_used to skip them. This
is needed for FLUSH LOGS to work
sql/sql_db.cc:
convert old logging routines calls to use new API
sql/sql_delete.cc:
fix TRUNCATE to work with log tables
sql/sql_parse.cc:
command_name is now an array of LEX_STRINGs
sql/sql_prepare.cc:
convert old logging routines calls to use new API
sql/sql_show.cc:
convert old logging routines calls to use new API
sql/sql_table.cc:
don't reoped the log tables for admin purposes
sql/table.cc:
mark log tables as such during the open
sql/table.h:
add log-related info
storage/csv/ha_tina.cc:
add support for concurrent insert (see bk commit - 5.1 tree
(petr:1.1910) for standalone patch), add log tables-specific
csv table handling.
storage/csv/ha_tina.h:
enable concurrent insert for CSV, add log table flag
mysql-test/r/log_tables.result:
New BitKeeper file ``mysql-test/r/log_tables.result''
mysql-test/t/log_tables.test:
New BitKeeper file ``mysql-test/t/log_tables.test''
Put options in standard order: --help first, then lexically.
Rename --number-of-query to --number-of-queries.
client/mysqlslap.c:
Put options in standard order: --help first, then lexically.
Rename --number-of-query to --number-of-queries.
mysql-test/include/partition_1.inc:
Drop table missing in test case
sql/sql_partition.cc:
Removed some dead code
sql/sql_yacc.yy:
initialised name that was missing
Before the interval expression was considered to be in seconds, now it is
just a number and the type of interval is considered.
- this changeset introduces also fix for bug#16432 (Events: error re interval
misrepresents the facts)
the code of event_timed::set_interval() was refactored anyway so it is meaningful to
fix the bug in the same changeset.
include/my_time.h:
- move enum interval_type to include/my_time.h so it can be used by functions
in the whole server
sql/event.cc:
- don't use second_part
- fix small problem with create event xyz, when xyz exists -> make it error
instead of warning if create_if_not is false.
sql/event.h:
pass thd to mark_last_executed() to be able to call thd->end_time()
sql/event_executor.cc:
- pass thd to event_timed::compute_next_execution_time()
- a bit more DBUG info in the server log
- handle error returned by event_timed::compute_next_execution_time()
sql/event_priv.h:
- define the maximal possible value for interval_value
sql/event_timed.cc:
- more docs
- add static get_next_time() which sums a TIME with an interval
- fix bug #16435 (Weekly events execute every second)
Before the interval expression was considered to be in seconds, now it is
just a number and the type of interval is considered.
- fix for bug#16432 (Events: error re interval misrepresents the facts)
(return an error if a value is too big or is negative - errmsg changed)
sql/item_timefunc.cc:
- export get_interval_date()
- refactor Item_date_add_interval::get_date() and extract the core
to date_add_interval() in time.cc so it can be reused by the
scheduler code in event_timed.cc
sql/item_timefunc.h:
- export get_interval_value() so it can be reused in event_timed.cc in
function static get_next_time()
- move enum interval_type to include/my_time.h so it can be used by functions
in the whole server
sql/mysql_priv.h:
export the new function date_add_interval() added to time.cc
sql/share/errmsg.txt:
- change error message to be appropriate as fix for bug#16432
(Events: error re interval misrepresents the facts)
sql/sql_yacc.yy:
- change error message to be appropriate as fix for bug#16432
(Events: error re interval misrepresents the facts)
sql/time.cc:
extract the core of Item_date_add_interval::get_date()
to a function per Serg's request. The code can be reused
to add und substract interval from a date.
mysql-test/r/partition.result:
Auto merged
sql/handler.h:
Auto merged
sql/item.h:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_select.cc:
Auto merged