Commit graph

18 commits

Author SHA1 Message Date
unknown
5f75c8f5b4 WL#874 "Extended LOAD DATA".
Now one can use user variables as target for data loaded from file
(besides table's columns). Also LOAD DATA got new SET-clause in which
one can specify values for table columns as expressions.

For example the following is possible:
LOAD DATA INFILE 'words.dat' INTO TABLE t1 (a, @b) SET c = @b + 1;

This patch also implements new way of replicating LOAD DATA.
Now we do it similarly to other queries.
We store LOAD DATA query in new Execute_load_query event
(which is last in the sequence of events representing LOAD DATA).
When we are executing this event we simply rewrite part of query which
holds name of file (we use name of temporary file) and then execute it
as usual query. In the beggining of this sequence we use Begin_load_query
event which is almost identical to Append_file event


client/mysqlbinlog.cc:
  Added support of two new binary log events Begin_load_query_log_event and
  Execute_load_query_log_Event which are used to replicate LOAD DATA INFILE.
mysql-test/r/ctype_ucs.result:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test's results and made it more robust for future similar 
  changes.
mysql-test/r/insert_select.result:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test's results and made it more robust for future similar 
  changes.
mysql-test/r/loaddata.result:
  Added tests for new LOAD DATA features.
mysql-test/r/mix_innodb_myisam_binlog.result:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test's results (don't dare to get rid from binlog positions
  completely since it seems that this test uses them).
mysql-test/r/mysqlbinlog.result:
  New approach for binlogging of LOAD DATA statement. Now we store it as
  usual query and rewrite part in which file is specified when needed.
  So now mysqlbinlog output for LOAD DATA much more closer to its initial
  form. Updated test'd results accordingly.
mysql-test/r/mysqldump.result:
  Made test more robust to other tests failures.
mysql-test/r/rpl000015.result:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test's results accordingly.
mysql-test/r/rpl_change_master.result:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test's results.
mysql-test/r/rpl_charset.result:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test's results accordingly
mysql-test/r/rpl_deadlock.result:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test's results accordingly
mysql-test/r/rpl_error_ignored_table.result:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test's results and made it more robust for future similar 
  changes.
mysql-test/r/rpl_flush_log_loop.result:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test's results accordingly.
mysql-test/r/rpl_flush_tables.result:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test's results and made it more robust for future similar 
  changes.
mysql-test/r/rpl_loaddata.result:
  New way of replicating LOAD DATA. Now we do it similarly to other
  queries. We store LOAD DATA query in new Execute_load_query event
  (which is last in the sequence of events representing LOAD DATA).
  When we are executing this event we simply rewrite part of query which
  holds name of file (we use name of temporary file) and then execute it
  as usual query. In the beggining of this sequence we use Begin_load_query
  event which is almost identical to Append_file event...
  
  Updated test's results wwith new binlog positions.
mysql-test/r/rpl_loaddata_rule_m.result:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test's results and made it more robust for future similar 
  changes.
  Since now LOAD DATA is replicated much in the same way as usual query
  --binlog_do/ignore_db work for it inthe same way as for usual queries.
mysql-test/r/rpl_loaddata_rule_s.result:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test's results accordingly.
mysql-test/r/rpl_loaddatalocal.result:
  Added nice test for case when it is important that LOAD DATA LOCAL
  ignores duplicates.
mysql-test/r/rpl_log.result:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test's results accordingly (don't dare to get rid from binlog 
  positions completely since it seems that this test uses them).
mysql-test/r/rpl_log_pos.result:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test's results accordingly.
mysql-test/r/rpl_max_relay_size.result:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test's results accordingly.
mysql-test/r/rpl_multi_query.result:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test's results accordingly.
mysql-test/r/rpl_relayrotate.result:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test's results accordingly.
mysql-test/r/rpl_replicate_do.result:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test's results accordingly.
mysql-test/r/rpl_reset_slave.result:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test's results accordingly.
mysql-test/r/rpl_rotate_logs.result:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test's results accordingly.
mysql-test/r/rpl_server_id1.result:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test's results accordingly.
mysql-test/r/rpl_server_id2.result:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test's results accordingly.
mysql-test/r/rpl_temporary.result:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test's results and made it more robust for future similar 
  changes.
mysql-test/r/rpl_timezone.result:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test's results and made it more robust for future similar 
  changes.
mysql-test/r/rpl_until.result:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test's results accordingly and tweaked test a bit to bring it
  back to good shape.
mysql-test/r/rpl_user_variables.result:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test's results and made it more robust for future similar 
  changes.
mysql-test/r/user_var.result:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test's results and made it more robust for future similar 
  changes.
mysql-test/t/ctype_ucs.test:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test accordingly and made it more robust for future similar
  changes.
mysql-test/t/insert_select.test:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test accordingly and made it more robust for future similar
  changes.
mysql-test/t/loaddata.test:
  Added test cases for new LOAD DATA functionality.
mysql-test/t/mix_innodb_myisam_binlog.test:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test accordingly.
mysql-test/t/mysqlbinlog.test:
  New way of replicating LOAD DATA local. Now we do it similarly to other
  queries. We store LOAD DATA query in new Execute_load_query event
  (which is last in the sequence of events representing LOAD DATA).
  When we are executing this event we simply rewrite part of query which
  holds name of file (we use name of temporary file) and then execute it
  as usual query. In the beggining of this sequence we use Begin_load_query
  event which is almost identical to Append_file event...
  
  Thus we need new binlog positions for LOAD DATA events.
mysql-test/t/mysqlbinlog2.test:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test accordingly.
mysql-test/t/mysqldump.test:
  Made test more robust for failures of other tests.
mysql-test/t/rpl_charset.test:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test accordingly.
mysql-test/t/rpl_deadlock.test:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test accordingly.
mysql-test/t/rpl_error_ignored_table.test:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test accordingly and made it more robust for future similar
  changes.
mysql-test/t/rpl_flush_tables.test:
  Addition of two new types of binary log events shifted binlog positions.
  Made test more robust for future similar changes.
mysql-test/t/rpl_loaddata.test:
  New way of replicating LOAD DATA. Now we do it similarly to other
  queries. We store LOAD DATA query in new Execute_load_query event
  (which is last in the sequence of events representing LOAD DATA).
  When we are executing this event we simply rewrite part of query which
  holds name of file (we use name of temporary file) and then execute it
  as usual query. In the beggining of this sequence we use Begin_load_query
  event which is almost identical to Append_file event...
  
  Apropritely updated comments in test.
mysql-test/t/rpl_loaddata_rule_m.test:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test accordingly and made it more robust for future similar 
  changes.
  Since now LOAD DATA is replicated much in the same way as usual query
  --binlog_do/ignore_db work for it inthe same way as for usual queries.
mysql-test/t/rpl_loaddata_rule_s.test:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test accordingly.
mysql-test/t/rpl_loaddatalocal.test:
  Added nice test for case when it is important that LOAD DATA LOCAL
  ignores duplicates.
mysql-test/t/rpl_log.test:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test accordingly (don't dare to get rid from binlog positions
  completely since it seems that this test uses them).
mysql-test/t/rpl_log_pos.test:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test accordingly.
mysql-test/t/rpl_multi_query.test:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test accordingly.
mysql-test/t/rpl_temporary.test:
  Addition of two new types of binary log events shifted binlog positions.
  Made test more robust for future similar changes.
mysql-test/t/rpl_timezone.test:
  Addition of two new types of binary log events shifted binlog positions.
  Made test more robust for future similar changes.
mysql-test/t/rpl_until.test:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test accordingly and tweaked it a bit to bring it back to good
  shape.
mysql-test/t/rpl_user_variables.test:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test accordingly and made it more robust for future similar
  changes.
mysql-test/t/user_var.test:
  Addition of two new types of binary log events shifted binlog positions.
  Updated test accordingly and made it more robust for future similar
  changes.
sql/item_func.cc:
  Added Item_user_var_as_out_param class that represents user variable
  which used as out parameter in LOAD DATA.
  
  Moved code from Item_func_set_user_var::update_hash() function to
  separate static function to be able to reuse it in this new class.
sql/item_func.h:
  Added Item_user_var_as_out_param class that represents user variable
  which used as out parameter in LOAD DATA.
sql/log_event.cc:
  New way of replicating LOAD DATA. Now we do it similarly to other
  queries. We store LOAD DATA query in new Execute_load_query event
  (which is last in the sequence of events representing LOAD DATA).
  When we are executing this event we simply rewrite part of query which
  holds name of file (we use name of temporary file) and then execute it
  as usual query. In the beggining of this sequence we use Begin_load_query
  event which is almost identical to Append_file event.
sql/log_event.h:
  New way of replicating LOAD DATA. Now we do it similarly to other
  queries. We store LOAD DATA query in new Execute_load_query event
  (which is last in the sequence of events representing LOAD DATA).
  When we are executing this event we simply rewrite part of query which
  holds name of file (we use name of temporary file) and then execute it
  as usual query. In the beggining of this sequence we use Begin_load_query
  event which is almost identical to Append_file event.
sql/mysql_priv.h:
  Now mysql_load() has two more arguments. They are needed to pass list of
  columns and corresponding expressions from new LOAD DATA's SET clause.
sql/share/errmsg.txt:
  Added new error message which is used to forbid loading of data from
  fixed length rows to variables.
sql/sql_lex.h:
  Added LEX::fname_start/fname_end members. 
  They are pointers to part of LOAD DATA statement which should be
  rewritten during replication (file name + little extra).
sql/sql_load.cc:
  Added support for extended LOAD DATA. 
  Now one can use user variables as target for data loaded from file 
  (besides table's columns). Also LOAD DATA got new SET-clause in which
  one can specify values for table columns as expressions.
  
  Updated mysql_load()/read_fixed_length()/read_sep_field() to support
  this functionality (now they can read data from file to both columns and
  variables and assign do calculations and assignments specified in SET
  clause).
  
  We also use new approach for LOAD DATA binlogging/replication.
sql/sql_parse.cc:
  mysql_execute_command():
    Since now we have SET clause in LOAD DATA we should also check
    permissions for tables used in its expressions. Also mysql_load()
    has two more arguments to pass information about this clause.
sql/sql_repl.cc:
  New way of replicating LOAD DATA. Now we do it similarly to other
  queries. We store LOAD DATA query in new Execute_load_query event
  (which is last in the sequence of events representing LOAD DATA).
  When we are executing this event we simply rewrite part of query which
  holds name of file (we use name of temporary file) and then execute it
  as usual query. In the beggining of this sequence we use Begin_load_query
  event which is almost identical to Append_file event.
sql/sql_repl.h:
  struct st_load_file_info:
    Removed memebers which are no longer needed for LOAD DATA binnlogging.
sql/sql_yacc.yy:
  Added support for extended LOAD DATA syntax. Now one can use
  user variables as target for data loaded from file (besides table's 
  columns). Also LOAD DATA got new SET-clause in which one can specify
  values for table columns as expressions.
  
  For example the following is possible:
  LOAD DATA INFILE 'words.dat' INTO TABLE t1 (a, @b) SET c = @b + 1;
  
  Also now we save pointers to the beginning and to the end of part of 
  LOAD DATA statement which should be rewritten during replication.
2005-03-16 04:32:47 +03:00
unknown
88bd301d36 XA (not completely polished out yet)
include/my_pthread.h:
  cleanup. don't use gcc extensions
innobase/include/trx0sys.ic:
  Jan's fix for innobase_xa_prepare
innobase/read/read0read.c:
  Jan's fix for innobase_xa_prepare
innobase/trx/trx0trx.c:
  Jan's fix for innobase_xa_prepare
mysql-test/include/varchar.inc:
  test fix
mysql-test/r/ctype_ucs.result:
  new log event - all binlog positions are changed :(
mysql-test/r/drop_temp_table.result:
  new log event - all binlog positions are changed :(
mysql-test/r/insert_select.result:
  new log event - all binlog positions are changed :(
mysql-test/r/mix_innodb_myisam_binlog.result:
  new log event - all binlog positions are changed :(
mysql-test/r/myisam.result:
  test fix
mysql-test/r/rpl000015.result:
  new log event - all binlog positions are changed :(
mysql-test/r/rpl_change_master.result:
  new log event - all binlog positions are changed :(
mysql-test/r/rpl_charset.result:
  new log event - all binlog positions are changed :(
mysql-test/r/rpl_error_ignored_table.result:
  new log event - all binlog positions are changed :(
mysql-test/r/rpl_flush_log_loop.result:
  new log event - all binlog positions are changed :(
mysql-test/r/rpl_flush_tables.result:
  new log event - all binlog positions are changed :(
mysql-test/r/rpl_loaddata.result:
  new log event - all binlog positions are changed :(
mysql-test/r/rpl_loaddata_rule_m.result:
  new log event - all binlog positions are changed :(
mysql-test/r/rpl_loaddata_rule_s.result:
  new log event - all binlog positions are changed :(
mysql-test/r/rpl_log.result:
  new log event - all binlog positions are changed :(
mysql-test/r/rpl_log_pos.result:
  new log event - all binlog positions are changed :(
mysql-test/r/rpl_max_relay_size.result:
  new log event - all binlog positions are changed :(
mysql-test/r/rpl_relayrotate.result:
  new log event - all binlog positions are changed :(
mysql-test/r/rpl_replicate_do.result:
  new log event - all binlog positions are changed :(
mysql-test/r/rpl_reset_slave.result:
  new log event - all binlog positions are changed :(
mysql-test/r/rpl_rotate_logs.result:
  new log event - all binlog positions are changed :(
mysql-test/r/rpl_server_id1.result:
  new log event - all binlog positions are changed :(
mysql-test/r/rpl_server_id2.result:
  new log event - all binlog positions are changed :(
mysql-test/r/rpl_temporary.result:
  new log event - all binlog positions are changed :(
mysql-test/r/rpl_timezone.result:
  new log event - all binlog positions are changed :(
mysql-test/r/rpl_until.result:
  new log event - all binlog positions are changed :(
mysql-test/r/rpl_user_variables.result:
  new log event - all binlog positions are changed :(
mysql-test/r/user_var.result:
  new log event - all binlog positions are changed :(
mysql-test/t/ctype_ucs.test:
  new log event - all binlog positions are changed :(
mysql-test/t/mix_innodb_myisam_binlog.test:
  new log event - all binlog positions are changed :(
mysql-test/t/mysqlbinlog.test:
  new log event - all binlog positions are changed :(
mysql-test/t/mysqlbinlog2.test:
  new log event - all binlog positions are changed :(
mysql-test/t/rpl_charset.test:
  new log event - all binlog positions are changed :(
mysql-test/t/rpl_error_ignored_table.test:
  new log event - all binlog positions are changed :(
mysql-test/t/rpl_loaddata_rule_m.test:
  new log event - all binlog positions are changed :(
mysql-test/t/rpl_loaddata_rule_s.test:
  new log event - all binlog positions are changed :(
mysql-test/t/rpl_log.test:
  new log event - all binlog positions are changed :(
mysql-test/t/rpl_log_pos.test:
  new log event - all binlog positions are changed :(
mysql-test/t/rpl_user_variables.test:
  new log event - all binlog positions are changed :(
mysql-test/t/user_var.test:
  new log event - all binlog positions are changed :(
mysys/hash.c:
  typo fixed
sql/ha_berkeley.cc:
  handlerton framework
sql/ha_berkeley.h:
  handlerton framework
sql/ha_innodb.cc:
  handlerton framework
sql/ha_innodb.h:
  handlerton framework
sql/handler.cc:
  new transaction handling, handlerton framework, two-phase commit, XA support
sql/handler.h:
  new transaction handling, handlerton framework, two-phase commit, XA support
sql/lex.h:
  XA commands
sql/log.cc:
  new transaction handling, handlerton framework, two-phase commit,
  XA support, tc-logging, TC_LOG_MMAP class
sql/log_event.cc:
  Xid_log_event
sql/log_event.h:
  Xid_log_event, LOG_EVENT_BINLOG_CLOSED_F flag
sql/mysql_priv.h:
  wrapper for query_id++
sql/mysqld.cc:
  new command-line options --log-tc, --log-tc-size, --tc-heuristic-recover,
  new status variables Tc_log_page_size, Tc_log_max_pages_used, Tc_log_page_waits.
  init/stop tc logging
sql/set_var.h:
  warning fixed
sql/share/errmsg.txt:
  XA error messages
sql/sp_head.cc:
  s/query_id++/next_query_id()/
sql/sql_base.cc:
  typo fixed. new transaction handling.
sql/sql_class.cc:
  cleanup of THD.transaction
sql/sql_class.h:
  TC_LOG classes, new status variables, new savepoint handling, XA support
sql/sql_insert.cc:
  comments
sql/sql_lex.cc:
  s/found_colon/found_semicolon/
sql/sql_lex.h:
  SQLCOM_XA_xxx, XA related changes in Lex
sql/sql_parse.cc:
  cleanup, XA commands, new savepoint handling
sql/sql_repl.cc:
  two functions moved to log.cc
sql/sql_repl.h:
  two functions moved to log.cc
sql/sql_trigger.cc:
  s/lex.name_and_length/lex.ident/
sql/sql_yacc.yy:
  XA commands, cleanup
2005-01-16 13:16:23 +01:00
unknown
62554f812e This is the final commit for Worklog tasks:
* A more dynamic binlog format which allows small changes (1064)
   * Log session variables in Query_log_event (1063)
It contains a few bugfixes (which I made when running the testsuite).
I carefully updated the results of the testsuite (i.e. I checked for every one,
if the difference between .reject and .result could be explained).
Apparently mysql-test-run --manager is broken in 4.1 and 5.0 currently,
so I could neither run the few tests which require --manager, nor check
that they pass nor modify their .result. But for builds, we don't run
with --manager.
Apart from --manager, the full testsuite passes, with Valgrind too (no errors).
I'm going to push in the next minutes. Remains: update the manual.
Note: by chance I saw that (in 4.1, in 5.0) rpl_get_lock fails when run alone;
this is normal at it makes assumptions on thread ids. I will fix this one day
in 4.1.


mysql-test/r/rpl000015.result:
  result update
mysql-test/r/rpl_change_master.result:
  result update
mysql-test/r/rpl_error_ignored_table.result:
  result update
mysql-test/r/rpl_flush_log_loop.result:
  result update
mysql-test/r/rpl_flush_tables.result:
  result update
mysql-test/r/rpl_loaddata.result:
  result update
mysql-test/r/rpl_loaddata_rule_m.result:
  result update
mysql-test/r/rpl_loaddata_rule_s.result:
  result update
mysql-test/r/rpl_log.result:
  result update
mysql-test/r/rpl_log_pos.result:
  result update
mysql-test/r/rpl_max_relay_size.result:
  result update
mysql-test/r/rpl_relayrotate.result:
  result update
mysql-test/r/rpl_replicate_do.result:
  result update
mysql-test/r/rpl_reset_slave.result:
  result update
mysql-test/r/rpl_rotate_logs.result:
  result update
mysql-test/r/rpl_session_var.result:
  result update
mysql-test/r/rpl_temporary.result:
  result update
mysql-test/r/rpl_trunc_binlog.result:
  result update
mysql-test/r/rpl_until.result:
  result update
mysql-test/r/rpl_user_variables.result:
  result update
mysql-test/t/rpl000010-slave.opt:
  need to wait 2 events, because now we receive a Format_desc on top of the Rotate,
  when replication starts.
mysql-test/t/rpl000015.test:
  relay log information is not repeatable in general (if a reconnection
  happens because --sleep=10 for example), so we hide these columns.
mysql-test/t/rpl_change_master.test:
  relay log information is not repeatable in general (if a reconnection
  happens because --sleep=10 for example), so we hide these columns.
mysql-test/t/rpl_empty_master_crash.test:
  relay log information is not repeatable in general (if a reconnection
  happens because --sleep=10 for example), so we hide these columns.
mysql-test/t/rpl_error_ignored_table.test:
  relay log information is not repeatable in general (if a reconnection
  happens because --sleep=10 for example), so we hide these columns.
mysql-test/t/rpl_flush_log_loop.test:
  relay log information is not repeatable in general (if a reconnection
  happens because --sleep=10 for example), so we hide these columns.
mysql-test/t/rpl_loaddata.test:
  position update
mysql-test/t/rpl_loaddata_rule_m.test:
  position update
mysql-test/t/rpl_loaddata_rule_s.test:
  position update
mysql-test/t/rpl_log.test:
  position update
mysql-test/t/rpl_log_pos.test:
  position update
mysql-test/t/rpl_max_relay_size.test:
  relay log information is not repeatable in general (if a reconnection
  happens because --sleep=10 for example), so we hide these columns.
mysql-test/t/rpl_openssl.test:
  relay log information is not repeatable in general (if a reconnection
  happens because --sleep=10 for example), so we hide these columns.
mysql-test/t/rpl_redirect.test:
  relay log information is not repeatable in general (if a reconnection
  happens because --sleep=10 for example), so we hide these columns.
mysql-test/t/rpl_relayrotate-slave.opt:
  better options for this test
mysql-test/t/rpl_relayrotate.test:
  using max() is better for debugging (it shows at which place the slave
  SQL thread resumed)
mysql-test/t/rpl_replicate_do.test:
  relay log information is not repeatable in general (if a reconnection
  happens because --sleep=10 for example), so we hide these columns.
mysql-test/t/rpl_reset_slave.test:
  relay log information is not repeatable in general (if a reconnection
  happens because --sleep=10 for example), so we hide these columns.
mysql-test/t/rpl_rotate_logs.test:
  relay log information is not repeatable in general (if a reconnection
  happens because --sleep=10 for example), so we hide these columns.
mysql-test/t/rpl_session_var.test:
  100 because password() is longer than 10 chars
mysql-test/t/rpl_trunc_binlog.test:
  relay log information is not repeatable in general (if a reconnection
  happens because --sleep=10 for example), so we hide these columns.
mysql-test/t/rpl_until.test:
  position update
mysql-test/t/rpl_user_variables.test:
  position update
sql/log.cc:
  Ensure that the Format_desc propagated on next relay logs does not trigger
  undue actions (like incrementing some positions or clearing some files).
sql/log_event.cc:
  * When the slave SQL thread finds a Rotate/Format_desc/Stop in the middle of
  a transaction (then these were written by the slave itself to its relay log),
  it should not increment rli->group* variables, but only rli->event* ones.
  * When the slave SQL thread finds a Format_desc not to be ignored (not
  the same server id as the slave's), if it has log_pos==0 it must not trigger
  "unfinished transaction in master's binlog" (log_pos==0 is always a marker
  in the relay log to mean "this event was not at this place in the master's
  binlog": it's for fake Rotate events, and for Format_description events which the master had
  to send us for replication to start).
  * In the Query_log_event on disk, catalog is now terminated by '\0'.
  * thd->catalog must be set to 0 when some exec_event() terminate (otherwise
  double free).
sql/slave.cc:
  * Fixes for a few bugs when ignoring events in the slave SQL thread:
    - do not decrement rli->slave_skip_counter if the event is an event
    related to the binlog or relay log itself (FORMAT_DESCRIPTION,
    ROTATE, STOP) because these events should never be skipped (or the slave
    will be confused). Usually the user wants to skip a query, not a Rotate... 
    - when we (re)connect to the master, we must free description_event_for_queue
    (otherwise memory leak when we reconnect). 
  * Changed a bit the code where we change description_event_for_queue,
  to make it look "safer".
  * Moved 'created=0' to log.cc where it is safer.
  * When the slave SQL thread finds a Rotate/Format_desc/Stop in the middle of
  a transaction (then these were written by the slave itself to its relay log),
  it should not increment rli->group* variables, but only rli->event* ones.
sql/sql_class.h:
  a warning comment
sql/sql_repl.cc:
  A mistake: I had passed a char* instead of char**
2003-12-19 22:40:23 +01:00
unknown
c9a9fa8e47 Use same style for SHOW MASTER STATUS fields as
for SHOW SLAVE STATUS.
2003-11-20 13:49:05 -06:00
unknown
8a8fef225d Write slave status field names using consistent style.
(Initial caps for each word.) For example, instead of writing
Until_condition, Until_Log_File, and Until_log_pos, write
Until_Condition, Until_Log_File, and Until_Log_pos.


mysql-test/r/rpl000015.result:
  Write slave status field names using consistent style.
mysql-test/r/rpl_empty_master_crash.result:
  Write slave status field names using consistent style.
mysql-test/r/rpl_error_ignored_table.result:
  Write slave status field names using consistent style.
mysql-test/r/rpl_flush_log_loop.result:
  Write slave status field names using consistent style.
mysql-test/r/rpl_loaddata.result:
  Write slave status field names using consistent style.
mysql-test/r/rpl_log.result:
  Write slave status field names using consistent style.
mysql-test/r/rpl_log_pos.result:
  Write slave status field names using consistent style.
mysql-test/r/rpl_max_relay_size.result:
  Write slave status field names using consistent style.
mysql-test/r/rpl_openssl.result:
  Write slave status field names using consistent style.
mysql-test/r/rpl_redirect.result:
  Write slave status field names using consistent style.
mysql-test/r/rpl_replicate_do.result:
  Write slave status field names using consistent style.
mysql-test/r/rpl_reset_slave.result:
  Write slave status field names using consistent style.
mysql-test/r/rpl_rotate_logs.result:
  Write slave status field names using consistent style.
mysql-test/r/rpl_trunc_binlog.result:
  Write slave status field names using consistent style.
mysql-test/r/rpl_until.result:
  Write slave status field names using consistent style.
mysql-test/t/mix_innodb_myisam_binlog.test:
  Write slave status field names using consistent style.
mysql-test/t/rpl_max_relay_size.test:
  Write slave status field names using consistent style.
sql/slave.cc:
  Write slave status field names using consistent style.
2003-11-20 13:07:25 -06:00
unknown
bc8f801bf0 Don't show Slave_IO_State in the testsuite (replace it with #) because it can't be predicted.
I manually edited rpl_openssl.result because the test is skipped on my
machine. Hope it's correct.


mysql-test/r/rpl000015.result:
  Don't show Slave_IO_State because it can't be predicted.
mysql-test/r/rpl_error_ignored_table.result:
  Don't show Slave_IO_State because it can't be predicted.
mysql-test/r/rpl_flush_log_loop.result:
  Don't show Slave_IO_State because it can't be predicted.
mysql-test/r/rpl_loaddata.result:
  Don't show Slave_IO_State because it can't be predicted.
mysql-test/r/rpl_log.result:
  Don't show Slave_IO_State because it can't be predicted.
mysql-test/r/rpl_log_pos.result:
  Don't show Slave_IO_State because it can't be predicted.
mysql-test/r/rpl_max_relay_size.result:
  Don't show Slave_IO_State because it can't be predicted.
mysql-test/r/rpl_openssl.result:
  Don't show Slave_IO_State because it can't be predicted.
mysql-test/r/rpl_replicate_do.result:
  Don't show Slave_IO_State because it can't be predicted.
mysql-test/r/rpl_reset_slave.result:
  Don't show Slave_IO_State because it can't be predicted.
mysql-test/r/rpl_rotate_logs.result:
  Don't show Slave_IO_State because it can't be predicted.
mysql-test/r/rpl_trunc_binlog.result:
  Don't show Slave_IO_State because it can't be predicted.
mysql-test/r/rpl_until.result:
  Don't show Slave_IO_State because it can't be predicted.
mysql-test/t/rpl000015.test:
  Don't show Slave_IO_State because it can't be predicted.
mysql-test/t/rpl_empty_master_crash.test:
  Don't show Slave_IO_State because it can't be predicted.
mysql-test/t/rpl_error_ignored_table.test:
  Don't show Slave_IO_State because it can't be predicted.
mysql-test/t/rpl_flush_log_loop.test:
  Don't show Slave_IO_State because it can't be predicted.
mysql-test/t/rpl_loaddata.test:
  Don't show Slave_IO_State because it can't be predicted.
mysql-test/t/rpl_log.test:
  Don't show Slave_IO_State because it can't be predicted.
mysql-test/t/rpl_log_pos.test:
  Don't show Slave_IO_State because it can't be predicted.
mysql-test/t/rpl_max_relay_size.test:
  Don't show Slave_IO_State because it can't be predicted.
mysql-test/t/rpl_openssl.test:
  Don't show Slave_IO_State because it can't be predicted.
mysql-test/t/rpl_redirect.test:
  Don't show Slave_IO_State because it can't be predicted.
mysql-test/t/rpl_replicate_do.test:
  Don't show Slave_IO_State because it can't be predicted.
mysql-test/t/rpl_reset_slave.test:
  Don't show Slave_IO_State because it can't be predicted.
mysql-test/t/rpl_rotate_logs.test:
  Don't show Slave_IO_State because it can't be predicted.
mysql-test/t/rpl_trunc_binlog.test:
  Don't show Slave_IO_State because it can't be predicted.
mysql-test/t/rpl_until.test:
  Don't show Slave_IO_State because it can't be predicted.
2003-10-09 18:16:15 +02:00
unknown
a7a7a8cacd Final push for WL#1098:
"Add a column "Timestamp_of_last_master_event_executed" in SHOW SLAVE STATUS".
Finally this is adding
- Slave_IO_State (a copy of the State column of SHOW PROCESSLIST for the I/O thread,
so that the users, most of the time, has enough info with only SHOW SLAVE STATUS).
- Seconds_behind_master. When the slave connects to the master it does SELECT UNIX_TIMESTAMP()
on the master, computes the absolute difference between the master's and the slave's clock.
It records the timestamp of the last event executed by the SQL thread, and does a
small computation to find the number of seconds by which the slave is late.


mysql-test/r/rpl000015.result:
  result update
mysql-test/r/rpl_empty_master_crash.result:
  result update
mysql-test/r/rpl_error_ignored_table.result:
  result update
mysql-test/r/rpl_flush_log_loop.result:
  result update
mysql-test/r/rpl_loaddata.result:
  result update
mysql-test/r/rpl_log.result:
  result update
mysql-test/r/rpl_log_pos.result:
  result update
mysql-test/r/rpl_max_relay_size.result:
  result update
mysql-test/r/rpl_redirect.result:
  result update
mysql-test/r/rpl_replicate_do.result:
  result update
mysql-test/r/rpl_reset_slave.result:
  result update
mysql-test/r/rpl_rotate_logs.result:
  result update
mysql-test/r/rpl_trunc_binlog.result:
  result update
mysql-test/r/rpl_until.result:
  result update
mysql-test/t/rpl000015.test:
  update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS
mysql-test/t/rpl_empty_master_crash.test:
  update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS
mysql-test/t/rpl_error_ignored_table.test:
  update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS
mysql-test/t/rpl_flush_log_loop.test:
  update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS
mysql-test/t/rpl_loaddata.test:
  update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS
mysql-test/t/rpl_log.test:
  update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS
mysql-test/t/rpl_log_pos.test:
  update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS
mysql-test/t/rpl_max_relay_size.test:
  update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS
mysql-test/t/rpl_openssl.test:
  update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS
mysql-test/t/rpl_redirect.test:
  update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS
mysql-test/t/rpl_replicate_do.test:
  update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS
mysql-test/t/rpl_reset_slave.test:
  update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS
mysql-test/t/rpl_rotate_logs.test:
  update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS
mysql-test/t/rpl_trunc_binlog.test:
  update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS
mysql-test/t/rpl_until.test:
  update to be independant of the new column Seconds_behind_master in SHOW SLAVE STATUS
sql/log_event.cc:
  when the SQL thread executes an event, we record its timestamp
sql/slave.cc:
  in check_master_version() we know read the master's clock, to know the clock difference
  with the slave.
  In show_master_info() we send the state of the I/O thread, and compute the number of
  seconds by which the slave is late.
sql/slave.h:
  timestamp of the last master's event executed by the SQL thread,
  and difference between the clocks of the master and slave.
sql/sql_repl.cc:
  clear the Seconds_behind_master column of SHOW SLAVE STATUS when RESET SLAVE or CHANGE MASTER.
2003-10-09 00:06:21 +02:00
unknown
b15eba8820 Post merge fixes. Fixed tests after adding UNTIL conditions
to SHOW SLAVE STATUS.


mysql-test/r/rpl000015.result:
  Fixed test after adding UNTIL conditions to SHOW SLAVE STATUS
mysql-test/r/rpl_empty_master_crash.result:
  Fixed test after adding UNTIL conditions to SHOW SLAVE STATUS
mysql-test/r/rpl_error_ignored_table.result:
  Fixed test after adding UNTIL conditions to SHOW SLAVE STATUS
mysql-test/r/rpl_flush_log_loop.result:
  Fixed test after adding UNTIL conditions to SHOW SLAVE STATUS
mysql-test/r/rpl_loaddata.result:
  Fixed test after adding UNTIL conditions to SHOW SLAVE STATUS
mysql-test/r/rpl_log.result:
  Fixed test after adding UNTIL conditions to SHOW SLAVE STATUS
mysql-test/r/rpl_log_pos.result:
  Fixed test after adding UNTIL conditions to SHOW SLAVE STATUS
mysql-test/r/rpl_max_relay_size.result:
  Fixed test after adding UNTIL conditions to SHOW SLAVE STATUS
mysql-test/r/rpl_openssl.result:
  Fixed test after adding UNTIL conditions to SHOW SLAVE STATUS
mysql-test/r/rpl_redirect.result:
  Fixed test after adding UNTIL conditions to SHOW SLAVE STATUS
mysql-test/r/rpl_replicate_do.result:
  Fixed test after adding UNTIL conditions to SHOW SLAVE STATUS
mysql-test/r/rpl_reset_slave.result:
  Fixed test after adding UNTIL conditions to SHOW SLAVE STATUS
mysql-test/r/rpl_rotate_logs.result:
  Fixed test after adding UNTIL conditions to SHOW SLAVE STATUS
mysql-test/r/rpl_until.result:
  Post merge fix
mysql-test/t/rpl_until.test:
  Post merge fix
2003-09-14 17:18:38 +04:00
unknown
b4d59a8dcf Manual merge fixes
sql/lex.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/repl_failsafe.cc:
  Auto merged
sql/share/czech/errmsg.txt:
  Auto merged
sql/share/danish/errmsg.txt:
  Auto merged
sql/share/dutch/errmsg.txt:
  Auto merged
sql/share/english/errmsg.txt:
  Auto merged
sql/share/estonian/errmsg.txt:
  Auto merged
sql/share/french/errmsg.txt:
  Auto merged
sql/share/german/errmsg.txt:
  Auto merged
sql/share/greek/errmsg.txt:
  Auto merged
sql/share/hungarian/errmsg.txt:
  Auto merged
sql/share/italian/errmsg.txt:
  Auto merged
sql/share/japanese/errmsg.txt:
  Auto merged
sql/share/korean/errmsg.txt:
  Auto merged
sql/share/norwegian-ny/errmsg.txt:
  Auto merged
sql/share/norwegian/errmsg.txt:
  Auto merged
sql/share/polish/errmsg.txt:
  Auto merged
sql/share/portuguese/errmsg.txt:
  Auto merged
sql/share/romanian/errmsg.txt:
  Auto merged
sql/share/russian/errmsg.txt:
  Auto merged
sql/share/slovak/errmsg.txt:
  Auto merged
sql/share/spanish/errmsg.txt:
  Auto merged
sql/share/swedish/errmsg.txt:
  Auto merged
sql/share/ukrainian/errmsg.txt:
  Auto merged
sql/sql_lex.h:
  Auto merged
sql/sql_repl.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
include/mysqld_error.h:
  Mabual merge
mysql-test/r/rpl_flush_log_loop.result:
  Mabual merge
mysql-test/r/rpl_log.result:
  Mabual merge
mysql-test/r/rpl_log_pos.result:
  Mabual merge
mysql-test/r/rpl_replicate_do.result:
  Mabual merge
mysql-test/r/rpl_rotate_logs.result:
  Mabual merge
sql/slave.cc:
  Mabual merge
sql/slave.h:
  Mabual merge
2003-09-01 16:14:54 +04:00
unknown
8a548ffd9c Implemented replication over SSL
Added proper options to CHANGE MASTER TO, new fields to SHOW SLAVE STATUS,
 Honoring this parameters during connection to master.
 Introduced new format of master.info file


include/mysqld_error.h:
  Added error code for "slave without SSL ignored SSL params warning"
mysql-test/Makefile.am:
  Copy files required for rpl_openssl test during the make process
mysql-test/r/rpl000015.result:
  Added fields to SHOW SLAVE STATUS for replication over SSL
mysql-test/r/rpl_empty_master_crash.result:
  Added fields to SHOW SLAVE STATUS for replication over SSL
mysql-test/r/rpl_flush_log_loop.result:
  Added fields to SHOW SLAVE STATUS for replication over SSL
mysql-test/r/rpl_log.result:
  Added fields to SHOW SLAVE STATUS for replication over SSL
mysql-test/r/rpl_log_pos.result:
  Added fields to SHOW SLAVE STATUS for replication over SSL
mysql-test/r/rpl_redirect.result:
  Added fields to SHOW SLAVE STATUS for replication over SSL
mysql-test/r/rpl_replicate_do.result:
  Added fields to SHOW SLAVE STATUS for replication over SSL
mysql-test/r/rpl_rotate_logs.result:
  Added fields to SHOW SLAVE STATUS for replication over SSL
sql/lex.h:
  Added MASTER_SSL lexems for CHANGE MASTER
sql/mysqld.cc:
  Added --master-ssl-ca parameter. Fixed description of other master-ssl parameters
sql/repl_failsafe.cc:
  Added SSL support to connect_to_master()
sql/share/czech/errmsg.txt:
  Added "slave without SSL ignored SSL params" warning
sql/share/danish/errmsg.txt:
  Added "slave without SSL ignored SSL params" warning
sql/share/dutch/errmsg.txt:
  Added "slave without SSL ignored SSL params" warning
sql/share/english/errmsg.txt:
  Added "slave without SSL ignored SSL params" warning
sql/share/estonian/errmsg.txt:
  Added "slave without SSL ignored SSL params" warning
sql/share/french/errmsg.txt:
  Added "slave without SSL ignored SSL params" warning
sql/share/german/errmsg.txt:
  Added "slave without SSL ignored SSL params" warning
sql/share/greek/errmsg.txt:
  Added "slave without SSL ignored SSL params" warning
sql/share/hungarian/errmsg.txt:
  Added "slave without SSL ignored SSL params" warning
sql/share/italian/errmsg.txt:
  Added "slave without SSL ignored SSL params" warning
sql/share/japanese/errmsg.txt:
  Added "slave without SSL ignored SSL params" warning
sql/share/korean/errmsg.txt:
  Added "slave without SSL ignored SSL params" warning
sql/share/norwegian-ny/errmsg.txt:
  Added "slave without SSL ignored SSL params" warning
sql/share/norwegian/errmsg.txt:
  Added "slave without SSL ignored SSL params" warning
sql/share/polish/errmsg.txt:
  Added "slave without SSL ignored SSL params" warning
sql/share/portuguese/errmsg.txt:
  Added "slave without SSL ignored SSL params" warning
sql/share/romanian/errmsg.txt:
  Added "slave without SSL ignored SSL params" warning
sql/share/russian/errmsg.txt:
  Added "slave without SSL ignored SSL params" warning
sql/share/serbian/errmsg.txt:
  Added "slave without SSL ignored SSL params" warning
sql/share/slovak/errmsg.txt:
  Added "slave without SSL ignored SSL params" warning
sql/share/spanish/errmsg.txt:
  Added "slave without SSL ignored SSL params" warning
sql/share/swedish/errmsg.txt:
  Added "slave without SSL ignored SSL params" warning
sql/share/ukrainian/errmsg.txt:
  Added "slave without SSL ignored SSL params" warning
sql/slave.cc:
  Introduced new format of master.info file
  Added support of SSL params in master.info and SHOW SLAVE STATUS
  Added support of SSL connections
sql/slave.h:
  Added SSL parameters to MASTER_INFO
sql/sql_lex.h:
  Added SSL parameters for CHANGE MASTER TO
sql/sql_repl.cc:
  Added SSL parameters for CHANGE MASTER TO
sql/sql_yacc.yy:
  Added SSL parameters for CHANGE MASTER TO
2003-09-01 15:16:20 +04:00
unknown
2901c3b8fa After merge fixes
Use server character set if --default-character-set is not used
Added convert_string() for more efficient alloc+character-set convert of strings


BitKeeper/deleted/.del-convert.result~a3b56e1db6f498e9:
  Delete: mysql-test/r/convert.result
BitKeeper/deleted/.del-convert.test~f4ceb743194dfe72:
  Delete: mysql-test/t/convert.test
BitKeeper/deleted/.del-make_win_src_distribution.old~5c9ebdc4a852b43b:
  Delete: scripts/make_win_src_distribution.old
client/mysql.cc:
  Use server character set if --default-character-set is not used
client/mysqltest.c:
  Code cleanup (merge identical code)
  More debug messages
heap/hp_create.c:
  After merge fix
include/m_ctype.h:
  After merge fix
include/my_global.h:
  Remove size_str (we already have size_s)
include/mysql_com.h:
  After merge fix
libmysql/libmysql.c:
  After merge fix
libmysqld/Makefile.am:
  After merge fix
mysql-test/r/auto_increment.result:
  After merge fix
mysql-test/r/create.result:
  After merge fix
mysql-test/r/ctype_latin1_de.result:
  After merge fix
mysql-test/r/distinct.result:
  After merge fix
mysql-test/r/drop.result:
  After merge fix
mysql-test/r/fulltext.result:
  After merge fix
mysql-test/r/func_gconcat.result:
  After merge fix
mysql-test/r/func_str.result:
  After merge fix
mysql-test/r/func_test.result:
  After merge fix
mysql-test/r/grant.result:
  After merge fix
mysql-test/r/group_by.result:
  After merge fix
mysql-test/r/handler.result:
  After merge fix
mysql-test/r/heap.result:
  After merge fix
mysql-test/r/heap_btree.result:
  After merge fix
mysql-test/r/heap_hash.result:
  After merge fix
mysql-test/r/innodb.result:
  After merge fix
mysql-test/r/insert.result:
  After merge fix
mysql-test/r/insert_select.result:
  After merge fix
mysql-test/r/join_outer.result:
  After merge fix
mysql-test/r/key.result:
  After merge fix
mysql-test/r/key_cache.result:
  After merge fix
mysql-test/r/loaddata.result:
  After merge fix
mysql-test/r/myisam.result:
  After merge fix
mysql-test/r/null.result:
  After merge fix
mysql-test/r/null_key.result:
  After merge fix
mysql-test/r/order_by.result:
  After merge fix
mysql-test/r/rpl_do_grant.result:
  After merge fix
mysql-test/r/rpl_error_ignored_table.result:
  After merge fix
mysql-test/r/rpl_ignore_grant.result:
  After merge fix
mysql-test/r/rpl_loaddata.result:
  After merge fix
mysql-test/r/rpl_log.result:
  After merge fix
mysql-test/r/rpl_log_pos.result:
  After merge fix
mysql-test/r/rpl_max_relay_size.result:
  After merge fix
mysql-test/r/rpl_replicate_do.result:
  After merge fix
mysql-test/r/rpl_reset_slave.result:
  After merge fix
mysql-test/r/rpl_rotate_logs.result:
  After merge fix
mysql-test/r/rpl_user_variables.result:
  After merge fix
mysql-test/r/select.result:
  After merge fix
mysql-test/r/select_safe.result:
  After merge fix
mysql-test/r/subselect.result:
  After merge fix
mysql-test/r/type_blob.result:
  After merge fix
mysql-test/r/type_decimal.result:
  After merge fix
mysql-test/r/type_float.result:
  After merge fix
mysql-test/r/type_ranges.result:
  After merge fix
mysql-test/r/type_time.result:
  After merge fix
mysql-test/r/type_uint.result:
  After merge fix
mysql-test/r/union.result:
  After merge fix
mysql-test/r/warnings.result:
  After merge fix
mysql-test/t/auto_increment.test:
  After merge fix
mysql-test/t/case.test:
  After merge fix
mysql-test/t/ctype_collate.test:
  After merge fix
mysql-test/t/ctype_latin1_de.test:
  After merge fix
mysql-test/t/drop.test:
  After merge fix
mysql-test/t/func_in.test:
  After merge fix
mysql-test/t/func_set.test:
  After merge fix
mysql-test/t/func_str.test:
  After merge fix
mysql-test/t/func_test.test:
  After merge fix
mysql-test/t/grant.test:
  After merge fix
mysql-test/t/group_by.test:
  After merge fix
mysql-test/t/handler.test:
  After merge fix
mysql-test/t/heap.test:
  After merge fix
mysql-test/t/heap_btree.test:
  After merge fix
mysql-test/t/heap_hash.test:
  After merge fix
mysql-test/t/innodb.test:
  After merge fix
mysql-test/t/insert_select.test:
  After merge fix
mysql-test/t/key.test:
  After merge fix
mysql-test/t/key_cache.test:
  After merge fix
mysql-test/t/lock_tables_lost_commit-master.opt:
  After merge fix
mysql-test/t/lock_tables_lost_commit.test:
  After merge fix
mysql-test/t/myisam.test:
  After merge fix
mysql-test/t/row.test:
  After merge fix
mysql-test/t/subselect.test:
  After merge fix
mysql-test/t/type_decimal.test:
  After merge fix
mysql-test/t/type_ranges.test:
  After merge fix
mysql-test/t/type_uint.test:
  After merge fix
mysql-test/t/variables.test:
  After merge fix
mysql-test/t/warnings.test:
  After merge fix
scripts/make_win_src_distribution.sh:
  after merge fixes
sql-common/client.c:
  After merge fix
  Change my_connect() to use poll()
  If character set is not given, use servers character set.
sql/field.cc:
  After merge fix
  Don't give warnings when storing data in fields in optimizer.
sql/ha_myisammrg.h:
  After merge fix
sql/log.cc:
  After merge fix
sql/log_event.cc:
  After merge fix
sql/mysqld.cc:
  After merge fix
sql/opt_range.cc:
  After merge fix
sql/set_var.cc:
  Code cleanup
  Fixed wrong usage of base_names (like medium.key_buffer) that caused core dumps
sql/set_var.h:
  Fixed wrong usage of base_names (like medium.key_buffer) that caused core dumps
sql/slave.cc:
  After merge fix
sql/sql_acl.cc:
  After merge fix
  Code cleanup
sql/sql_class.cc:
  Added convert_string() for more efficient alloc+character-set convert of strings
  Add cached flags to avoid calling mysql_charset_same() during parsing.
sql/sql_class.h:
  Added convert_string() for more efficient alloc+character-set convert of strings
  Add cached flags to avoid calling mysql_charset_same() during parsing.
sql/sql_handler.cc:
  After merge fix
sql/sql_lex.h:
  After merge fix
sql/sql_parse.cc:
  Optimize and fix memory reference errors reported by valgrind
sql/sql_repl.cc:
  After merge fix
sql/sql_yacc.yy:
  After merge fix
  Avoid calling mysql_charset_same() when parsing identifiers
strings/ctype-latin1.c:
  Port latin_de conversion code from 4.0
2003-08-19 00:08:08 +03:00
unknown
dae34fb60f On Feb 4th, 2003, Monty said he would push my patch to print replicate-do-table
and other replicate-*-table options in SHOW SLAVE STATUS.
Seems like it had not been done, so I push it now:
there's 4 new columns to SHOW SLAVE STATUS.


mysql-test/r/rpl000015.result:
  Result update (more columns)
mysql-test/r/rpl_empty_master_crash.result:
  Result update (more columns)
mysql-test/r/rpl_flush_log_loop.result:
  Result update (more columns)
mysql-test/r/rpl_log.result:
  Result update (more columns)
mysql-test/r/rpl_log_pos.result:
  Result update (more columns)
mysql-test/r/rpl_redirect.result:
  Result update (more columns)
mysql-test/r/rpl_replicate_do.result:
  Result update (more columns)
mysql-test/r/rpl_rotate_logs.result:
  Result update (more columns)
mysql-test/t/rpl_replicate_do.test:
  Result update (more columns)
sql/slave.cc:
  Print replicate_*_table options in SHOW SLAVE STATUS
sql/slave.h:
  two functions to make a string of replicate_*_table lists.
2003-07-23 15:46:46 +02:00
unknown
e229fe9801 Added support for DROP TEMPORARY TABLE
Removed mysql_warnings() API function.
Post merge fixes.


client/mysqltest.c:
  Don't use mysql_warnings().
include/mysql.h:
  Removed mysql_warnings() API function
libmysql/libmysql.c:
  Removed mysql_warnings() API function
mysql-test/r/rpl_log_pos.result:
  Updated results
mysql-test/t/connect.test:
  Removed empty lines
mysql-test/t/rpl_log_pos.test:
  Update to new syntax
sql/item.h:
  Fix after merge
sql/item_create.cc:
  Fix after merge
sql/mysql_priv.h:
  Added support for DROP TEMPORARY TABLE
sql/sql_db.cc:
  Added support for DROP TEMPORARY TABLE
sql/sql_parse.cc:
  SHOW WARNINGS now shows notes, warnings and errors.
  Support for DROP TEMPORARY TABLE
  Post merge fixes
sql/sql_repl.cc:
  Post merge fixes
sql/sql_table.cc:
  Added support for DROP TEMPORARY TABLE
2003-01-04 15:37:20 +02:00
unknown
eebc67f6f8 Merge with 4.0.8
BitKeeper/etc/logging_ok:
  auto-union
VC++Files/sql/mysqld.dsp:
  Auto merged
acinclude.m4:
  Auto merged
include/my_base.h:
  Auto merged
include/myisam.h:
  Auto merged
include/myisammrg.h:
  Auto merged
libmysql/libmysql.c:
  Auto merged
myisam/mi_check.c:
  Auto merged
myisam/mi_write.c:
  Auto merged
myisam/myisamdef.h:
  Auto merged
mysql-test/mysql-test-run.sh:
  Auto merged
mysql-test/r/case.result:
  Auto merged
mysql-test/r/distinct.result:
  Auto merged
mysql-test/r/fulltext.result:
  Auto merged
mysql-test/r/key_diff.result:
  Auto merged
mysql-test/r/multi_update.result:
  Auto merged
mysql-test/r/order_by.result:
  Auto merged
mysql-test/r/select.result:
  Auto merged
mysql-test/r/show_check.result:
  Auto merged
mysql-test/t/multi_update.test:
  Auto merged
mysql-test/t/rpl_log_pos.test:
  Auto merged
mysys/Makefile.am:
  Auto merged
scripts/Makefile.am:
  Auto merged
sql/field.cc:
  Auto merged
sql/ha_innodb.cc:
  Auto merged
sql/ha_myisam.cc:
  Auto merged
sql/ha_myisammrg.cc:
  Auto merged
sql/ha_myisammrg.h:
  Auto merged
sql/item_cmpfunc.cc:
  Auto merged
sql/item_create.h:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/item_func.h:
  Auto merged
sql/lex.h:
  Auto merged
sql/log.cc:
  Auto merged
sql/net_serv.cc:
  Auto merged
sql/repl_failsafe.cc:
  Auto merged
sql/set_var.h:
  Auto merged
sql/slave.cc:
  Auto merged
sql/slave.h:
  Auto merged
sql/sql_acl.cc:
  Auto merged
sql/sql_insert.cc:
  Auto merged
sql/sql_load.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/sql_udf.cc:
  Auto merged
sql/sql_update.cc:
  Auto merged
sql-bench/crash-me.sh:
  Auto merged
sql-bench/server-cfg.sh:
  Auto merged
sql/share/english/errmsg.txt:
  Auto merged
sql/structs.h:
  Auto merged
2003-01-03 00:04:33 +02:00
unknown
6a2ce08600 RESET SLAVE and CHANGE MASTER will now give an error if slave is running.
This fixes a problem in replication where RESET SLAVE could crash a running slave.


mysql-test/r/rpl_failsafe.result:
  Added missing drop
mysql-test/r/rpl_log_pos.result:
  Added slave stop before change master
mysql-test/t/rpl_log_pos.test:
  Added slave stop before change master
sql/sql_parse.cc:
  reset_slave() sends it's own errors
sql/sql_repl.cc:
  reset_slave() sends it own error.
  RESET SLAVE and CHANGE MASTER will now give an error if slave is running.
  This fixes a problem in replication where RESET SLAVE could crash a running slave.
2002-12-13 12:05:24 +02:00
unknown
46cd8ff4e4 Changed binlog name padding from binlog.001 to binlog.000001
mysql-test/Makefile.am:
  Changed binlog.001 to be binlog.000001
mysql-test/r/rpl000015.result:
  Changed binlog.001 to be binlog.000001
mysql-test/r/rpl000018.result:
  Changed binlog.001 to be binlog.000001
mysql-test/r/rpl_flush_log_loop.result:
  Changed binlog.001 to be binlog.000001
mysql-test/r/rpl_log.result:
  Changed binlog.001 to be binlog.000001
mysql-test/r/rpl_log_pos.result:
  Changed binlog.001 to be binlog.000001
mysql-test/r/rpl_rotate_logs.result:
  Changed binlog.001 to be binlog.000001
mysql-test/t/rpl000017-slave.sh:
  Changed binlog.001 to be binlog.000001
mysql-test/t/rpl_log.test:
  Changed binlog.001 to be binlog.000001
mysql-test/t/rpl_rotate_logs.test:
  Changed binlog.001 to be binlog.000001
sql/log.cc:
  Changed binlog.001 to be binlog.000001
2002-10-29 15:11:13 -07:00
unknown
458ced9f34 altered syntax from SLAVE START|STOP to START|STOP SLAVE
mysql-test/mysql-test-run.sh:
  Added --rpl option which tests all t/rpl*.test tests.
2002-10-24 17:46:14 -06:00
unknown
87f9ad3724 Use our version of RWLOCKS on UNIXWARE 7
More DBUG info for replication
Better error messages from replication
Fixed bug in replication code when connecting to 'localhost' (time was not released properly)
Block ALARM signal on Linux for signal handler thread (Fixes problem with running mysqld with --debug)
Removed warning when setting an AUTO_INCREMENT field to NULL


Build-tools/Do-compile:
  Always run test with --warnings during build
Docs/manual.texi:
  Changelog
configure.in:
  Use our version of RWLOCKS on UNIXWARE 7
include/my_pthread.h:
  Use our version of RWLOCKS on UNIXWARE 7
include/mysql_version.h.in:
  Fixed warning when compiling embedded server
include/mysqld_error.h:
  New error messages
libmysql/libmysql.c:
  Give connect error message on reconnect if it fails.
  Fixed possible buffer overflow in expand_error()
  Added error messages for some error conditions.
mysql-test/mysql-test-run.sh:
  Portability fixes:
  - Search after 'time' in path.
  - Search after mysqld in libexec
  - Remove end / when doing rm -r (fix for BSD)
  Clean up skip_test handling.
mysql-test/r/rpl_empty_master_crash.result:
  New results
mysql-test/t/rpl_empty_master_crash.test:
  Extended test
mysys/mf_iocache.c:
  Remember file position on failed read.
mysys/mf_iocache2.c:
  Fixed bug in filelength() call.
mysys/thr_alarm.c:
  Made alarm handling more threadsafe when use with DBUG.
mysys/thr_mutex.c:
  More debug info
sql/log_event.cc:
  More DBUG_PRINT statements.
sql/mini_client.cc:
  Better error reporting on failures.
  Return connect error on reconnect failure (instead of SERVER_GONE_ERROR)
  Fixed critical bug in alarm handling on connect (could leave an alarm event on indefinitely)
sql/mysql_priv.h:
  Fixed arguments to mysql_binlog_send()
sql/mysqld.cc:
  Block ALARM signal on Linux for signal handler thread (Fixes problem with running mysqld with --debug)
sql/net_pkg.cc:
  Removed dead code
sql/net_serv.cc:
  Ensure that last_errno is set in net_real_write()
sql/repl_failsafe.cc:
  Code cleanup.
  Better error handling.
sql/share/czech/errmsg.txt:
  New error messages.
sql/share/danish/errmsg.txt:
  New error messages.
sql/share/dutch/errmsg.txt:
  New error messages.
sql/share/english/errmsg.txt:
  New error messages.
sql/share/estonian/errmsg.txt:
  New error messages.
sql/share/french/errmsg.txt:
  New error messages.
sql/share/german/errmsg.txt:
  New error messages.
sql/share/greek/errmsg.txt:
  New error messages.
sql/share/hungarian/errmsg.txt:
  New error messages.
sql/share/italian/errmsg.txt:
  New error messages.
sql/share/japanese/errmsg.txt:
  New error messages.
sql/share/korean/errmsg.txt:
  New error messages.
sql/share/norwegian-ny/errmsg.txt:
  New error messages.
sql/share/norwegian/errmsg.txt:
  New error messages.
sql/share/polish/errmsg.txt:
  New error messages.
sql/share/portuguese/errmsg.txt:
  New error messages.
mysql-test/r/rpl_log_pos.result:
  Updated results
mysql-test/t/rpl_log_pos.test:
  Added 'sleep' commands to make tests repeatable.
sql/share/romanian/errmsg.txt:
  New error messages.
sql/share/russian/errmsg.txt:
  New error messages.
sql/share/slovak/errmsg.txt:
  New error messages.
sql/share/spanish/errmsg.txt:
  New error messages.
sql/share/swedish/errmsg.txt:
  New error messages.
sql/share/ukrainian/errmsg.txt:
  New error messages.
sql/slave.cc:
  Code optimization and cleanup.
  More DBUG statements.
  Better cleanup if start slave fails.
  Better error messages from 'fetch_master_table'
  Thread safer handling of 'wait_for_pos'
sql/slave.h:
  Better handling of wait_for_pos
sql/sql_load.cc:
  Removed warning when setting an AUTO_INCREMENT field to NULL
sql/sql_parse.cc:
  Fixed calling of function that has changed.
sql/sql_repl.cc:
  More DBUG statements
  Give a proper error number from mysql_binlog_send() so that we know when we have to abort slaves.
2002-08-21 22:04:22 +03:00
Renamed from mysql-test/r/rpl000014.result (Browse further)