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.
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.
Adding test case.
sql_yacc.yy:
Adding TEXT_STRING_filesystem, which
converts from character_set_client to
character_set_conversion.
Replacing TEXT_STRING_sys to TEXT_STRING_filesystem
in LOAD DATA and SELECT INTO OUTFILE contexts.
sql_class.h, sql_class.cc:
Adding character_set_filesystem variable,
and charset_is_character_set_filesystem
flag (to avoid conversion when it's not necessary).
set_var.h, set_var.cc:
Adding sys_var_character_set_filesystem
mysqld.cc:
Adding --character-set-filesystem startup option.
Don't display charsets/collations with HIDDEN flag.
ctype-utf8.c:
Adding HIDDEN flag to "filename"
Changeing ID to 17 which was previosly
used by deprecated "win1251", removed in 4.1.
charset-def.c:
Adding "filename" as a hidden charset, for test purposes.
m_ctype.h:
Adding MY_CS_HIDDEN flag,
to hide charsets and collations from
being displayed in SHOW.