Commit graph

141 commits

Author SHA1 Message Date
unknown
68242939d8 Fixed usage of strxnmov() in recent changesets
libmysql/libmysql.c:
  szPipeName -> pipe_name
  fixed usage of strxnmov()
mysys/mf_tempfile.c:
  Fixed usage of strnxmov()
  Simple optimization
mysys/my_tempnam.c:
  Fixed usage of strnxmov()
  Simple optimization
sql/log.cc:
  simple optimization
sql/mini_client.cc:
  szPipeName -> pipe_name
  fixed usage of strxnmov()
sql/mysqld.cc:
  szPipeName -> pipe_name
  fixed usage of strxnmov()
  Fixed indentation
2004-02-19 22:04:31 +02:00
unknown
ddf17601f3 potential problem fixed afer some reasoning 2004-02-19 09:11:46 +01:00
unknown
a50761a565 Fix for BUG#2045 "Sending SIGHUP to mysqld crashes it if running with --log-bin".
The constructor of Rotate_log_event used when we are rotating our binlog or
relay log, should not assume that there is a nonzero THD available.
For example, when we are reacting to SIGHUP, the THD is 0.
In fact we don't need to use the THD in this constructor;
we can do like for Stop_log_event, and use the minimal Log_event
constructor.
If we were allowed to put Unix-specific commands in the testsuite,
I'd add a test for this (<sigh>).


sql/log.cc:
  A comment to warn that thd can be 0.
  The part about LOG_EVENT_FORCED_ROTATE_F is just to avoid segfault;
  this flag is already removed in 4.1 anyway.
sql/log_event.cc:
  A comment.
sql/log_event.h:
  The constructor of Rotate_log_event used when we are rotating our binlog or
  relay log, should not assume that there is a nonzero THD available.
  For example, when we are reacting to SIGHUP, the THD is 0.
  In fact we don't need to use the THD in this constructor;
  we can do like for Stop_log_event, and use the minimal Log_event
  constructor.
  This fixes BUG#2045 
  "Sending SIGHUP to mysqld crashes it if running with --log-bin"
2003-12-08 16:18:25 +01:00
unknown
8764ca94c9 Removing unneeded code: the Intvar_log_event constructor calls the Log_event constructor
which does e.server_id=thd.server_id.


sql/log.cc:
  unneeded: the Intvar_log_event constructor calls the Log_event constructor
  which does e.server_id=thd.server_id.
2003-12-01 14:59:35 +01:00
unknown
2985e91acd Optimized code for setting user variables with := and fixed some bugs in old code (Bug #1194)
Use forced close of socket to make mysqld shutdown faster when used under valgrind


mysql-test/mysql-test-run.sh:
  Added --skip-bdb for valgrind
mysql-test/r/user_var.result:
  Extended test for user variables
mysql-test/t/user_var.test:
  Extended test for user variables
sql/item_func.cc:
  Optimized code for setting user variables with := and fixed some bugs in old code
sql/item_func.h:
  Optimized code for setting user variables
sql/log.cc:
  Fixed comments
sql/mysqld.cc:
  Use forced close of socket to make mysqld shutdown faster when used under valgrind
sql/sql_class.h:
  Optimized code for setting user variables
2003-10-03 00:40:27 +03:00
unknown
874783abb2 Fix for
Bug #1392 "On Win, slave leaves one temp file after successf. replicating LOAD DATA INFILE"
Windows-specific bug (we forgot to close a file before deleting it).
Patch written by me, tested by Miguel (thanks!) and it works.


sql/log.cc:
  changed the comment to mean the truth
sql/log_event.cc:
  When you finish replicating LOAD DATA INFILE, close the SQL_LOADxxx.data file
  before deleting it, or Windows will refuse to delete.
  No need to do the same thing for the SQL_LOADxxx.data file, it's not opened
  at this moment.
2003-09-24 22:55:04 +02:00
unknown
26bb50a19b Add detection of in_addr_t
Add pack_bits to pack_reclength for dynamic rows.  This solves buffer a possible buffer overflow on update.
(This will probably solve bug #563)
Fix test for available file descriptors in mysqltest
Fixed core dump bug in replication tests when running without transactional table support


acconfig.h:
  Add detection of in_addr_t
acinclude.m4:
  Add detection of in_addr_t
configure.in:
  Add detection of in_addr_t
extra/my_print_defaults.c:
  Cleanup
extra/resolveip.c:
  Add detection of in_addr_t
libmysql/dll.c:
  Fixed C++ commments
myisam/mi_dynrec.c:
  Add ASSERT if allocated record length is to small
myisam/mi_open.c:
  Add pack_bits to pack_reclength for dynamic rows.  This solves buffer a possible buffer overflow on update.
myisam/mi_test_all.sh:
  Added valgrind option to make it easier to verify tests
mysql-test/include/check_var_limit.inc:
  Fix test for available file descriptors
mysql-test/r/myisam.result:
  More tests
mysql-test/t/myisam.test:
  More tests
mysql-test/t/query_cache_merge.test:
  Fix test for available file descriptors
mysys/default.c:
  Cleanup
mysys/my_pthread.c:
  Remove C++ comments
sql/log.cc:
  Code cleanup
  Fixed core dump bug in replication tests when running without transactional table support.
2003-08-28 06:08:17 +03:00
unknown
c47ee56915 Clearer states in SHOW PROCESSLIST for replication threads.
For example the Binlog_dump thread (on the master) sometimes showed "Slave:".
And there were confusing messages where "binlog" was employed instead
of "relay log".


sql/log.cc:
  MYSQL_LOG::wait_for_update() is used by the binlog_dump and I/Oslave threads,
  and it updates thd->proc_info, so we need a bool to not show the same
  proc_info for 2 different things (previously we showed "Slave: etc" and that's
  bad for a binlog_dump thread).
sql/slave.cc:
  Clearer thd-proc_info for slave threads.
sql/sql_class.h:
  prototype change
sql/sql_repl.cc:
  clearer thd->proc_info for binlog_dump thread
2003-08-25 14:13:58 +02:00
unknown
fdfb10f2fb 2 minor edits, plus
fix for BUG#1113 "INSERT into non-trans table SELECT ; ROLLBACK" does not send warning"
and
fix for BUG#873 "In transaction, INSERT to non-trans table is written too early to binlog".
Now we don't always write the non-trans update immediately to the binlog;
if there is something in the binlog cache we write it to the binlog cache
(because the non-trans update could depend on a trans table which was modified
earlier in the transaction); then in case of ROLLBACK, we write the binlog
cache to the binlog, wrapped with BEGIN/ROLLBACK.
This guarantees that the slave does the same updates.
For ROLLBACK TO SAVEPOINT: when we execute a SAVEPOINT command we write it
to the binlog cache. At ROLLBACK TO SAVEPOINT, if some non-trans table was updated,
we write ROLLBACK TO SAVEPOINT to the binlog cache; when the transaction
terminates (COMMIT/ROLLBACK), the binlog cache will be flushed to the binlog
(because of the non-trans update) so we'll have SAVEPOINT and ROLLBACK TO
SAVEPOINT in the binlog.

Apart from this rare case of updates of mixed table types in transaction, the
usual way is still clear the binlog cache at ROLLBACK, or chop it at
ROLLBACK TO SAVEPOINT (meaning the SAVEPOINT command is also chopped, which
is fine).
Note that BUG#873 encompasses subbugs 1) and 2) of BUG#333 "3 binlogging bugs when doing INSERT with mixed InnoDB/MyISAM".


client/mysqldump.c:
  Minor edit: one CHANGE MASTER with 2 arguments instead of 2 CHANGE MASTER with one argument each.
mysql-test/r/rpl_loaddata.result:
  result update
mysql-test/t/rpl_loaddata.test:
  minor edit: simplifying the test.
sql/handler.cc:
  Fix for BUG#873. See comments in code, and the description of the changeset.
sql/log.cc:
  * Previously, if a query updated a non-transactional table we wrote it immediately
  to the real binlog. This causes a bug when the update is done inside a transaction
  and uses the content of an updated transactional table (because this makes
  a wrong order of queries in the binlog). So if the binlog cache is not empty,
  we write the query to the binlog cache; otherwise we can write it to the binlog.
  * Previously, when we flushed the binlog cache to the binlog, we wrapped it
  with BEGIN/COMMIT. Now it's also possible to wrap it with BEGIN/ROLLBACK, to handle
  transactions which update both transactional and non-transactional tables.
sql/log_event.cc:
  The slave thread can leave a transaction if COMMIT or if ROLLBACK.
sql/sql_class.h:
  prototype
sql/sql_insert.cc:
  Fix for BUG#1113:
  this was because the INSERT SELECT code did not set OPTION_STATUS_NO_TRANS_UPDATE.
sql/sql_parse.cc:
  Don't send ER_WARNING_NOT_COMPLETE_ROLLBACK if this is the SQL slave thread (see comments).
2003-08-22 15:39:24 +02:00
unknown
d52145da3d Merge gbichot@bk-internal.mysql.com:/home/bk/mysql-4.0
into mysql.com:/home/mysql_src/mysql-4.0


sql/log.cc:
  Auto merged
sql/log_event.cc:
  Auto merged
sql/slave.cc:
  Auto merged
2003-08-20 23:25:58 +02:00
unknown
1542fffb34 First commit for fixing BUG#1100
"LOAD DATA INFILE is badly filtered by binlog-*-db rules".
There will probably be a second final one to merge Dmitri's changes
to rpl_log.result and mine.
2 new tests:
rpl_loaddata_rule_m : test of logging of LOAD DATA INFILE when the master has binlog-*-db rules,
rpl_loaddata_rule_s : test of logging of LOAD DATA INFILE when the slave has binlog-*-db rules and --log-slave-updates.


mysql-test/r/rpl_loaddata.result:
  Test that logging of LOAD DATA INFILE is done on the slave
mysql-test/t/rpl_loaddata.test:
  Test that logging of LOAD DATA is done on the slave
sql/log.cc:
  debug info
sql/log_event.cc:
  * Append_block, Exec_load and Delete_file now have a member 'db' like Create_file.
  This member is filled by mysql_load(). It is used for filtering by binlog-*-db rules,
  that's all. It's not written to the binlog, and so can't be read from the binlog.
  In other words, that's temporary info which is stored in the event and lost when
  it is written and deleted.
  * Better error messages in Append_block et al. events.
  * The slave now logs (log-slave-updates) the Create_file et al. events in mysql_load()
  (they are not directly copied from the events in the relay log, because this
  prevented filtering by binlog-*-db rules). Before, mysql_load() in the slave
  did no logging, now it does the logging, as in any regular thread.
sql/log_event.h:
  New member 'db' for Append_block et al. events.
sql/slave.cc:
  Removed useless code. Why was it useless:
  - CREATE_FILE_EVENT is not defined in 3.23. It appeared in 4.0.
  - in queue_old_event(), which is called only if the master is 3.23, we had a
  case CREATE_FILE_EVENT:
  so this case can be removed.
  - this case was the only caller of process_io_create_file() so this function
  can be removed.
sql/sql_load.cc:
  Pass the db to events, so that they can be well filtered.
sql/sql_repl.cc:
  Pass the db to events so that they can be well filtered.
2003-08-20 23:24:45 +02:00
unknown
de5d47c35d Fixed some varnings from valgrind
Set min value of max_allowed_packet to 1024
Fixed problem with UNION's without braces and SQL_CALC_FOUND_ROWS, LIMIT #,#
and ORDER BY...LIMIT


include/m_string.h:
  Added memcpy_overlap() to avoid warnings when using valgrind on memcpy(A,A,...)
myisam/mi_create.c:
  Fixed comment
myisam/mi_search.c:
  Fix warning from valgrind
myisam/mi_write.c:
  Indentation fix
mysql-test/mysql-test-run.sh:
  Add options handled by general skip- option
mysql-test/r/packet.result:
  Update results after change to mysqld (min max_allowed_packet length is now 1024)
mysql-test/r/union.result:
  Added testing of UNION with SQL_CALC_FOUND_ROWS
mysql-test/t/packet.test:
  Update results after change to mysqld (min max_allowed_packet length is now 1024)
mysql-test/t/union.test:
  Added testing of UNION with SQL_CALC_FOUND_ROWS
sql/field.cc:
  Fix to remove waarning from valgrind
sql/ha_innodb.cc:
  Remove wrong include file
sql/item_cmpfunc.cc:
  Safety fix to handle EOM conditions in IN
sql/item_sum.cc:
  Fixed prototype for update_field() (argument was alwys 0)
sql/item_sum.h:
  Fixed prototype for update_field() (argument was alwys 0)
sql/item_uniq.h:
  Fixed prototype for update_field() (argument was alwys 0)
sql/log.cc:
  Indentation fix
sql/mysqld.cc:
  Set min value of max_allowed_packet to 1024 (to avoid it getting set to 0)
sql/net_serv.cc:
  Indentation changes + trivial optimization
sql/sql_select.cc:
  Fixed prototype for update_field() (argument was alwys 0)
sql/sql_union.cc:
  Fixed problem with UNION's without braces and
  - SQL_CALC_FOUND_ROWS
  - LIMIT #,#
  - ORDER BY ... LIMIT
2003-08-20 16:25:44 +03:00
unknown
d43a347db1 Use my_b_append instead of my_b_write on a SEQ_READ_APPEND cache, when we write
the first 4 bytes of the relay log. Indeed comments in mysys/mf_iocache.c 
say we must always use my_b_append for such a cache.
This *could* avoid a very rare assertion failure which is: 
030524 19:32:38  Slave SQL thread initialized, starting replication in log 'FIRST' at position 0, relay log '/
users/gbichot/4.1.1/mysql-test/var/log/slave-relay-bin.000001' position: 4
030524 19:32:38  next log '/users/gbichot/4.1.1/mysql-test/var/log/slave-relay-bin.000002' is currently active
mysqld: mf_iocache.c:701: _my_b_seq_read: Assertion `pos_in_file == info->end_of_file' failed.
and which seemed to happen always when the SQL thread and/or the I/O thread
were at position 4 in a relay log.


include/my_sys.h:
  moving a function from log_event.cc so that it can be widely used
mysys/mf_iocache.c:
  moving a function from log_event.cc so that it can be widely used
sql/log.cc:
  my_b_write should not be used on a SEQ_READ_APPEND cache, one should use my_b_append
  (otherwise there could be some locking problems).
sql/log_event.cc:
  moved to mysys/mf_iocache.c for wider use.
  A typo.
2003-08-19 17:00:36 +02:00
unknown
e97b2766e1 Fixed wrong test in LOG::close
Fixed test for binary build


mysql-test/r/rpl_max_relay_size.result:
  Fixed test for binary build
mysql-test/t/rpl_max_relay_size.test:
  Fixed test for binary build
sql/log.cc:
  Fixed wrong test in close
2003-07-14 23:49:19 +03:00
unknown
128feded87 Better fix for bug #791: At binlog rotation, INSERTs may not find their way into the binlog
mysql-test/t/rpl_flush_log_loop.test:
  Add timer to avoid problem when 'flush logs' is executed before we have read all data from master
sql/log.cc:
  Better fix for bug #791:
  Mark log as LOG_TO_BE_OPENED instead of LOG_CLOSED when it's closed and opened.
sql/mysqld.cc:
  Better startup message
sql/slave.cc:
  Fix argument to close()
sql/sql_class.h:
  Better handling of log.close()
2003-07-14 14:59:26 +03:00
unknown
e1a3069603 Safety and speedup fixes:
Changed is_open() to work as before.
Added back inited argument to LOG


mysql-test/r/rpl_flush_log_loop.result:
  Fixed results (probably bug in previous rpatch)
sql/handler.cc:
  Changed is_open() to work as before
sql/item_func.cc:
  Changed is_open() to work as before
sql/log.cc:
  Part revert of previous patch.
  The reason for adding back 'inited' is that is that we can't be 100 % sure that init_pthread_objects() is called before mysqld dies (for example on windows)
  I removed mutex lock handling in is_open() as the new code didn't have ANY affect except beeing slower.
  Added back checking of is_open() to some functions as we don't want to do a mutex lock when we are not using logging.
  Indentation/comment fixes
sql/log_event.cc:
  Changed is_open() to work as before
sql/repl_failsafe.cc:
  Changed is_open() to work as before
sql/sql_base.cc:
  Changed is_open() to work as before
sql/sql_class.h:
  Changed is_open() to work as before. Added back 'inited' variable
sql/sql_db.cc:
  Changed is_open() to work as before
sql/sql_delete.cc:
  Changed is_open() to work as before
sql/sql_insert.cc:
  Changed is_open() to work as before
sql/sql_load.cc:
  Changed is_open() to work as before
sql/sql_parse.cc:
  Changed is_open() to work as before
sql/sql_rename.cc:
  Changed is_open() to work as before
sql/sql_repl.cc:
  Changed is_open() to work as before
sql/sql_table.cc:
  Changed is_open() to work as before
sql/sql_update.cc:
  Changed is_open() to work as before
2003-07-14 10:12:05 +03:00
unknown
5526d454fd Member no_rotate in MYSQL_LOG was always 0, I delete it.
sql/log.cc:
  Member no_rotate of MYSQL_LOG is useless; this shows it for sure:
  [guilhem@gbichot2 mysql-4.0]$ bk -r grep no_rotate
  sql/log.cc      1.83       no_rotate(0), need_start_event(1)
  sql/log.cc      1.75      if (no_rotate)
  sql/log.cc      1.89      if (!no_rotate)
  sql/sql_class.h 1.119     bool no_rotate;
  i.e. no_rotate is 0 all the time. So we don't need it.
  Biggest part of the patch is indentation change.
sql/sql_class.h:
  suppress no_rotate
2003-07-12 15:48:26 +02:00
unknown
543208de96 removed 2 small useless if().
sql/log.cc:
  a comment for the future.
sql/mysqld.cc:
  if (p) is not needed: fn_ext() always returns a valid pointed; the way
  to test if an extension was found is if (*p), not if (p).
  But here even if there's no extension, we still want to truncate opt_name
  to FN_REFLEN, so we always execute the code.
  By design, the test was always 'false' (because we strip the extension before
  testing if there's an extension) so log->set_no_rotate never executed.
sql/sql_class.h:
  remove set_no_rotate as we don't need it.
2003-07-12 15:06:40 +02:00
unknown
d974959b4f Fix for BUG#791:
a safer way of initing the mutexes in MYSQL_LOG.
is_open() is now always thread-safe.
See each file for details.


sql/handler.cc:
  is_open() with locks
sql/item_func.cc:
  is_open() with locks
sql/log.cc:
  No more 'inited'.
  We now always use is_open() in a thread-safe manner.
  This simplifies some functions (no more need to test is_open() twice).
sql/log_event.cc:
  is_open() with locks
sql/mysqld.cc:
  Init mutexes for the global MYSQL_LOG objects.
  We care about no_rotate, because we can't do it in open() anymore (because
  we don't have 'inited' anymore).
sql/repl_failsafe.cc:
  is_open() with locks
sql/slave.cc:
  init pthread objects (mutexes, conds) in the constructor of st_relay_log_info.
  Some better locking in rotate_relay_log().
sql/sql_base.cc:
  is_open() with locks
sql/sql_class.h:
  Before, we inited LOCK_log in MYSQL_LOG::open(), so in other places of the code
  when we were never 100% sure that it had been inited. For example, if the server
  was running without --log-bin, ::open() was not called so the mutex was not
  inited. We could detect it with !inited, but not safely as 'inited' was not
  protected by any mutex.
  So now:
  we *always* init the LOCK_log mutex, even if the log is not used. We can't init
  the mutex in MYSQL_LOG's constructor, because for global objects like
  mysql_bin_log, mysql_log etc, the constructor is called before MY_INIT(), but
  safe_mutex depends on MY_INIT(). So we have a new function MYSQL_LOG::init_pthread_objects
  which we call in main(), after MY_INIT().
  For the relay log, we call this function in the constructor of
  st_relay_log_info, which is called before any function tries to
  use the relay log (the relay log is always invoked as rli.relay_log).
  So now we should be safe in all cases and we don't need 'inited'.
sql/sql_db.cc:
  is_open() with locks
sql/sql_delete.cc:
  is_open() with locks
sql/sql_insert.cc:
  is_open() with locks
sql/sql_load.cc:
  is_open() with locks
sql/sql_parse.cc:
  is_open() with locks
sql/sql_rename.cc:
  is_open() with locks
sql/sql_repl.cc:
  is_open() with locks
sql/sql_table.cc:
  is_open() with locks
sql/sql_update.cc:
  is_open() with locks
2003-07-11 14:26:44 +02:00
unknown
3c268e59ec Cleanups
mysql-test/t/distinct.test:
  Cleanup
sql/log.cc:
  Cleanup
sql/slave.cc:
  Cleanup
sql/sql_delete.cc:
  Cleanup
sql/sql_parse.cc:
  Simple optimization
2003-07-09 00:55:07 +03:00
unknown
eed62d993d Fix for
BUG#797 "If query ignored on slave (replicate-ignore-table) the slave still checks if
the returned error (0) is the same as the one on the master, whereas it shouldn't
test this.
Plus a new test for BUG#797.


include/mysqld_error.h:
  New error code (can be sent only to the slave thread, not to normal clients).
sql/log.cc:
  removed comment from a previous debugging.
sql/log_event.cc:
  ER_SLAVE_IGNORED_TABLE is an ignorable error.
sql/share/czech/errmsg.txt:
  for BUG#797
sql/share/danish/errmsg.txt:
  for BUG#797
sql/share/dutch/errmsg.txt:
  for BUG#797
sql/share/english/errmsg.txt:
  for BUG#797
sql/share/estonian/errmsg.txt:
  for BUG#797
sql/share/french/errmsg.txt:
  for BUG#797
sql/share/german/errmsg.txt:
  for BUG#797
sql/share/greek/errmsg.txt:
  for BUG#797
sql/share/hungarian/errmsg.txt:
  for BUG#797
sql/share/italian/errmsg.txt:
  for BUG#797
sql/share/japanese/errmsg.txt:
  for BUG#797
sql/share/korean/errmsg.txt:
  for BUG#797
sql/share/norwegian-ny/errmsg.txt:
  for BUG#797
sql/share/norwegian/errmsg.txt:
  for BUG#797
sql/share/polish/errmsg.txt:
  for BUG#797
sql/share/portuguese/errmsg.txt:
  for BUG#797
sql/share/romanian/errmsg.txt:
  for BUG#797
sql/share/russian/errmsg.txt:
  for BUG#797
sql/share/slovak/errmsg.txt:
  for BUG#797
sql/share/spanish/errmsg.txt:
  for BUG#797
sql/share/swedish/errmsg.txt:
  for BUG#797
sql/share/ukrainian/errmsg.txt:
  for BUG#797
sql/sql_parse.cc:
  when in sql_parse in the slave thread we ignore the query because of replicate-do
  and replicate-ignore options, we return a specific error to the slave thread,
  so that it knows that the query has been ignored (which is different from a
  successful query).
  A small cleanup (test was done twice).
2003-07-08 15:50:57 +02:00
unknown
27601fc5ee WL#912 (more user control on relay logs):
FLUSH LOGS now rotates relay logs,
and a new variable max_relay_log_size.
Plus a very small bit of code cleaning.


libmysqld/lib_sql.cc:
  open_log has no default arguments anymore.
mysql-test/r/rpl_flush_log_loop.result:
  result update now that FLUSH LOGS rotates relay logs.
mysql-test/r/rpl_log.result:
  result update now that FLUSH LOGS rotates relay logs.
mysql-test/r/rpl_rotate_logs.result:
  result update now that max_binlog_size is 4096.
mysql-test/t/rpl_rotate_logs-master.opt:
  now max_binlog_size must be a multiple of 4096 (see change in mysqld.cc)
sql/log.cc:
  Got rid of default arguments of various MYSQL_LOG methods (the default arguments
  made code reading uneasy).
  Set max_size in ::init().
  New function set_max_size() to set max_size of a MYSQL_LOG on-the-fly.
  More DBUG info.
sql/mysql_priv.h:
  no defaults in open_log().
  New variables max_relay_log_size.
sql/mysqld.cc:
  New variable and option max_relay_log_size.
  max_binlog_size and max_relay_log_size are multiples of IO_SIZE.
  No more default arguments for log functions.
sql/set_var.cc:
  New variable max_relay_log_size.
  If it is 0, then max_binlog_size will apply to relay logs.
  When one of these variables is changed, fix_max_%log_size is called
  to update max_size of the binary and/or relay logs.
sql/slave.cc:
  New function rotate_relay_log().
sql/slave.h:
  New function rotate_relay_log().
sql/sql_class.h:
  New member max_size of MYSQL_LOG (for automatic rotation).
  New method set_max_size() for setting on-the-fly.
sql/sql_parse.cc:
  Flush the relay log in FLUSH LOGS.
2003-07-06 17:59:54 +02:00
unknown
ecdd47a72f code cleanup
mysql-test/r/rpl_insert_id.result:
  Test logging of FOREIGN_KEY_CHECKS
mysql-test/t/rpl_insert_id.test:
  Test logging of FOREIGN_KEY_CHECKS
sql/log.cc:
  Code cleanup
2003-05-26 15:08:17 +03:00
unknown
dc90f5ccd7 log.cc:
If FOREIGN_KEY_CHECKS=0, wrap in binlog SQL statements inside SET FOREIGN_...=0; ... ; SET FOREIGN_...=1


sql/log.cc:
  If FOREIGN_KEY_CHECKS=0, wrap in binlog SQL statements inside SET FOREIGN_...=0; ... ; SET FOREIGN_...=1
2003-05-25 23:37:32 +03:00
unknown
6b14b0de14 MySQL-classic did not pass the test suite rpl_rotate_logs.test anymore because a recent 1.1424.2.17 cset introduced an opt_using_transactions
which prevented binlogs to be rotated if transactions were not enabled. Fix for this. This bug did not affect releases.


sql/log.cc:
  MySQL-classic did not pass the test suite rpl_rotate_logs.test anymore because a recent 1.1424.2.17 cset introduced an opt_using_transactions
  which prevented binlogs to be rotated if transactions were not enabled. Fix for this. This bug did not affect releases.
2003-05-10 14:52:22 -04:00
unknown
8d8f52e902 Many files:
Eliminate the LOCK_log bottleneck in group commit in binlogging: flush InnoDB log files only after it has been released


sql/log.cc:
  Eliminate the LOCK_log bottleneck in group commit in binlogging: flush InnoDB log files only after it has been released
sql/handler.cc:
  Eliminate the LOCK_log bottleneck in group commit in binlogging: flush InnoDB log files only after it has been released
sql/handler.h:
  Eliminate the LOCK_log bottleneck in group commit in binlogging: flush InnoDB log files only after it has been released
sql/ha_innodb.cc:
  Eliminate the LOCK_log bottleneck in group commit in binlogging: flush InnoDB log files only after it has been released
sql/ha_innodb.h:
  Eliminate the LOCK_log bottleneck in group commit in binlogging: flush InnoDB log files only after it has been released
innobase/include/log0log.h:
  Eliminate the LOCK_log bottleneck in group commit in binlogging: flush InnoDB log files only after it has been released
innobase/include/trx0trx.h:
  Eliminate the LOCK_log bottleneck in group commit in binlogging: flush InnoDB log files only after it has been released
innobase/os/os0file.c:
  Eliminate the LOCK_log bottleneck in group commit in binlogging: flush InnoDB log files only after it has been released
innobase/buf/buf0flu.c:
  Eliminate the LOCK_log bottleneck in group commit in binlogging: flush InnoDB log files only after it has been released
innobase/trx/trx0trx.c:
  Eliminate the LOCK_log bottleneck in group commit in binlogging: flush InnoDB log files only after it has been released
innobase/log/log0log.c:
  Eliminate the LOCK_log bottleneck in group commit in binlogging: flush InnoDB log files only after it has been released
innobase/srv/srv0srv.c:
  Eliminate the LOCK_log bottleneck in group commit in binlogging: flush InnoDB log files only after it has been released
innobase/row/row0mysql.c:
  Eliminate the LOCK_log bottleneck in group commit in binlogging: flush InnoDB log files only after it has been released
2003-05-03 02:29:40 +03:00
unknown
a65aa6bce3 log.cc:
Fix crash in previous bug fix log.cc reported by Rob Lyon if --skip-innodb is specified


sql/log.cc:
  Fix crash in previous bug fix log.cc reported by Rob Lyon if --skip-innodb is specified
2003-04-04 10:14:06 +03:00
unknown
601780aec5 Merge heikki@build.mysql.com:/home/bk/mysql-4.0
into hundin.mysql.fi:/home/heikki/mysql-4.0


sql/log.cc:
  Auto merged
2003-04-03 21:19:14 +03:00
unknown
e8c9045eeb Explicit message to warn that logging (e.g. binary) is permanently turned off
because of writing problems (such message would have been useful during a recent
support task).
2003-04-03 20:19:13 +02:00
unknown
ecd9e71291 log.cc:
Fix bug number 224: do not call ha_report_binlog_offset_and_commit() when a MyISAM table is updated; this also makes CREATE TABLE not to commit an InnoDB transaction, even when binlogging is enabled


sql/log.cc:
  Fix bug number 224: do not call ha_report_binlog_offset_and_commit() when a MyISAM table is updated; this also makes CREATE TABLE not to commit an InnoDB transaction, even when binlogging is enabled
2003-04-03 21:19:13 +03:00
unknown
7bc65cd823 Merge narttu.mysql.fi:/my/mysql-3.23 into narttu.mysql.fi:/my/mysql-4.0
mysys/my_vsnprintf.c:
  Auto merged
sql/ha_myisam.cc:
  Auto merged
sql/log.cc:
  Auto merged
2003-04-03 13:08:28 +03:00
unknown
2090bc6e43 Fixed bug in memory allocation that could affect 64 bit systems (affected hammer)
mysys/my_vsnprintf.c:
  safety fix
sql/log.cc:
  safety fix
2003-04-03 13:07:42 +03:00
unknown
f5feb33773 Merge with 3.23 to get fixes for:
mysqldump --delete-master-logs
Portability fix for hammer
Memory overrun for MyISAM
LOAD DATA LOCAL replication bug fix.


BitKeeper/etc/logging_ok:
  auto-union
sql/log.cc:
  Auto merged
client/client_priv.h:
  Merge with 3.23
client/mysqldump.c:
  Merge with 3.23
myisam/mi_dynrec.c:
  Merge with 3.23
mysql-test/t/myisam.test:
  Merge with 3.23
sql/log_event.cc:
  Merge with 3.23
sql/slave.cc:
  Merge with 3.23
sql/sql_delete.cc:
  Merge with 3.23
2003-04-03 12:33:13 +03:00
unknown
68fc04c423 Portability fix (for AMD hammer)
sql/log.cc:
  Portability fix (for hammer)
2003-04-03 12:10:38 +03:00
unknown
40c0b2c6c8 New variable rli->ignore_log_space_limit to resolve
a deadlock between I/O and SQL threads in replication
when relay_log_space is too small. This fixes bug #79.


sql/log.cc:
  New variable rli->ignore_log_space_limit to resolve
  a deadlock between I/O and SQL threads in replication
  when relay_log_space is too small.
sql/slave.cc:
  New variable rli->ignore_log_space_limit to resolve
  a deadlock between I/O and SQL threads in replication
  when relay_log_space is too small.
sql/slave.h:
  New variable rli->ignore_log_space_limit to resolve
  a deadlock between I/O and SQL threads in replication
  when relay_log_space is too small.
sql/sql_repl.cc:
  New variable rli->ignore_log_space_limit to resolve
  a deadlock between I/O and SQL threads in replication
  when relay_log_space is too small.
2003-03-17 22:51:56 +01:00
unknown
92e6a9fcf2 Make log_pos be non-zero in the binary log, for BEGIN and COMMIT Query_log_events.
Now log_pos is the real position of the event. For events that are between BEGIN and COMMIT,
log_pos is still the BEGIN's log_pos.
This fixes bug #52 (If only transactions are run on the master then t
2003-03-06 16:22:31 +01:00
unknown
b533cd5c83 Only write to the error log if --log-error is specified and --console is not specified
(On Windows --log-error is enabled by default)



mysys/my_getopt.c:
  Call get_one_option() also for boolean values.
scripts/mysqld_safe.sh:
  Add option --log-error
sql/log.cc:
  Fix for --log-error
sql/mysql_priv.h:
  Fix for --log-error
sql/mysqld.cc:
  Fix for --log-error
sql/sql_udf.cc:
  Lock the mysql/func table properly
2003-01-28 20:56:35 +02:00
unknown
c97ddd06f4 merge
include/my_sys.h:
  Auto merged
sql/item_create.cc:
  Auto merged
sql/log.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
innobase/btr/btr0cur.c:
  Use local file
scripts/make_binary_distribution.sh:
  Add mysql_waitpid
sql/mysqld.cc:
  Simple cleanup
2003-01-28 09:02:51 +02:00
unknown
88b405c4e2 Merge with 3.23.56 (Replace manual with 'empty' document)
Fix for bug when using auto_increment column and LAST_INSERT_ID()


Makefile.am:
  Auto merged
ltconfig:
  Auto merged
innobase/btr/btr0cur.c:
  Auto merged
sql/Makefile.am:
  Auto merged
Docs/Makefile.am:
  Merge with 3.23.56
Docs/manual.texi:
  Merge with 3.23.56 (Replace manual with 'empty' document)
libmysql/libmysql.c:
  Use local version
sql/log.cc:
  Fix for bug when using auto_increment column and LAST_INSERT_ID()
sql/sql_base.cc:
  Use local version
2003-01-28 08:51:03 +02:00
unknown
84f81dc593 Fixes for Netware
Call pthread_mutex_destroy() on not used mutex.
Changed comments in .h and .c files from // -> /* */
Added detection of mutex on which one didn't call pthread_mutex_destroy()
Fixed bug in create_tmp_field() which causes a memory overrun in queries that uses "ORDER BY constant_expression"
Added optimisation for ORDER BY NULL


BitKeeper/deleted/.del-ChangeLog~dfc92e15bee6fc75:
  Delete: sql/ChangeLog
BUILD/compile-pentium-valgrind-max:
  Don't use valgrind with safemalloc as this can hide some bugs
Makefile.am:
  Added platform dirs
bdb/os/os_handle.c:
  Portability fix
client/mysql.cc:
  Fixes for Netware.
  Fixed duplicate output when using 'tee'
  Simple optimisations
client/mysqldump.c:
  Portability fix
client/mysqltest.c:
  Portability fix
configure.in:
  Fixes for Netware
extra/resolveip.c:
  Fixes for Netware
include/Makefile.am:
  Fixes for Netware
include/config-win.h:
  Portability fix
include/my_global.h:
  Fixes for Netware
include/my_net.h:
  Fixes for Netware
include/my_pthread.h:
  Fixes for Netware
  Added detection of mutexes that was not destroyed
include/my_sys.h:
  Fixes for Netware
  Added 'extern' before external functions
include/mysql.h:
  Fixes for Netware
innobase/configure.in:
  Fixes for Netware
innobase/include/os0thread.h:
  Fixes for Netware
innobase/os/os0sync.c:
  Fixes for Netware
innobase/os/os0thread.c:
  Fixes for Netware
innobase/srv/srv0srv.c:
  Fixes for Netware
innobase/srv/srv0start.c:
  Fixes for Netware
innobase/sync/sync0sync.c:
  Fixes for Netware
isam/test3.c:
  Disable test on Netware
libmysql/Makefile.shared:
  Added my_sleep
libmysql/get_password.c:
  Fixes for Netware
libmysql/libmysql.c:
  Fixes for Netware
  Made mysql_once_init() global
libmysql/manager.c:
  Fixes for Netware
myisam/mi_test3.c:
  Disable test for netware
mysql-test/mysql-test-run.sh:
  Give warning if output file contains errors
mysql-test/r/count_distinct.result:
  More tests
mysql-test/r/group_by.result:
  Test of ORDER BY NULL
mysql-test/t/backup.test:
  Fixes for Netware
mysql-test/t/count_distinct.test:
  More tests
mysql-test/t/func_crypt.test:
  Fixes for Netware
mysql-test/t/grant_cache.test:
  Fixes for Netware
mysql-test/t/group_by.test:
  Tests of ORDER BY NULL
mysql-test/t/rpl000015.test:
  Fixes for Netware
mysql-test/t/rpl000017.test:
  Fixes for Netware
mysql-test/t/rpl_rotate_logs.test:
  Fixes for Netware
mysys/Makefile.am:
  Added my_sleep.c and my_netware.c
mysys/charset.c:
  Fixes for Netware
mysys/default.c:
  Fixes for Netware
mysys/mf_tempfile.c:
  Fixes for Netware
mysys/my_clock.c:
  Fixes for Netware
mysys/my_copy.c:
  Fixes for Netware
mysys/my_getwd.c:
  Changed function comment from // -> /* */
mysys/my_init.c:
  Fixes for Netware
mysys/my_lock.c:
  Fixes for Netware
mysys/my_messnc.c:
  Fixes for Netware
mysys/my_os2cond.c:
  Removed comment
mysys/my_os2dirsrch.c:
  Changed function comment from // -> /* */
  Fixed indentation
mysys/my_os2dirsrch.h:
  Changed function comment from // -> /* */
  Fixed indentation
mysys/my_os2file64.c:
  Changed function comment from // -> /* */
  Fixed indentation
mysys/my_os2mutex.c:
  Changed function comment from // -> /* */
  Fixed indentation
mysys/my_os2thread.c:
  Changed function comment from // -> /* */
  Fixed indentation
mysys/my_os2tls.c:
  Changed function comment from // -> /* */
  Fixed indentation
mysys/my_pthread.c:
  Fixes for Netware
mysys/my_redel.c:
  Fixes for Netware
mysys/my_tempnam.c:
  Fixes for Netware
mysys/my_thr_init.c:
  Remove created mutexes when program ends.
mysys/mysys_priv.h:
  Cleanup
mysys/safemalloc.c:
  Prefix error messages with "Error:"
mysys/thr_alarm.c:
  Destroy internal mutex on end_thr_alarm.
mysys/thr_mutex.c:
  Added detection of mutex on which one didn't call pthread_mutex_destroy()
scripts/make_binary_distribution.sh:
  Fixes for Netware
sql/des_key_file.cc:
  Free mutex at end
sql/ha_innodb.cc:
  Free mutex at end
sql/ha_myisam.cc:
  Changed warnings from REPAIR Note:
  (For mysql-test-run)
sql/hostname.cc:
  Fixes for Netware
sql/item.h:
  Fixed bug in create_tmp_field() which causes a memory overrun
sql/item_func.cc:
  Free used mutexes
sql/item_sum.cc:
  Fixed bug in create_tmp_field() which causes a memory overrun
sql/log.cc:
  Free used mutexes
sql/my_lock.c:
  Fixes for Netware
sql/mysql_priv.h:
  Fixes for Netware
sql/mysqld.cc:
  Fixes for Netware
  Added Have_crypt
  Properly free mutexes from MYSQL_LOG by calling cleanup
  Free mutex before exit
sql/repl_failsafe.cc:
  Fixes for Netware
sql/set_var.cc:
  Added have_crypt
sql/share/english/errmsg.txt:
  Added version socket and port to stderr log
sql/slave.cc:
  Remove global MASTER_INFO variable and use instead an allocated variable.
  This allows us to correctly free used mutex.
sql/slave.h:
  Move constructors and destuctors to slave.cc
  (To make it easier to clear all needed variables)
sql/sql_base.cc:
  Safety fix
sql/sql_class.h:
  Portability fixes.
  Added 'cleanup' to log handling to be able to free mutexes.
sql/sql_insert.cc:
  Fixes for Netware
mysys/my_sleep.c:
  E
sql/sql_parse.cc:
  Fixes for Netware
sql/sql_select.cc:
  Added optimisation for ORDER BY NULL
sql/sql_select.h:
  Fixed bug in create_tmp_field() which causes a memory overrun
sql/sql_table.cc:
  Fixed bug in create_tmp_field() which causes a memory overrun
sql/sql_udf.cc:
  Free mutex on end
vio/test-ssl.c:
  Simple code cleanup
vio/test-sslclient.c:
  Simple code cleanup
vio/test-sslserver.c:
  Simple code cleanup
vio/viotest-ssl.c:
  Simple code cleanup
2003-01-28 08:38:28 +02:00
unknown
7245530084 Fix when using auto_increment and last_insert_id() in the same insert statement.
sql/sql_base.cc:
  S
2003-01-28 06:48:26 +02:00
unknown
6958e3289d Added option hostname.err
sql/sql_parse.cc:
  added option hostname.err
2003-01-27 15:37:25 -02:00
unknown
00c6129c10 many bug fixes
sql/log.cc:
  Fix for a bug in query logging ...
sql/mysqld.cc:
  Fix for a bug with max_allowed_packt
sql/sql_select.cc:
  Fix for a bug which is caused when a single table is scanned by
  entire index and WHERE clause is so broad that JOIN type is JT_ALL.
2002-12-23 14:56:41 +02:00
unknown
b512c8b83a Transactions in AUTOCOMMIT=0 mode didn't rotate binary log
Don't enable any bulk insert or record caching code if inserting less than MIN_ROWS_TO_USE_BULK_INSERT rows (100)


myisam/mi_check.c:
  Fixed bug in copying statistics for disabled index
mysql-test/r/distinct.result:
  Fix result after not doing key statistics for first insert.
mysql-test/r/fulltext.result:
  Fix result after not doing key statistics for first insert.
mysql-test/r/insert.result:
  Fix result after not doing key statistics for first insert.
mysql-test/r/key_diff.result:
  Fix result after not doing key statistics for first insert.
mysql-test/r/order_by.result:
  Fix result after not doing key statistics for first insert.
mysql-test/r/select.result:
  Fix result after not doing key statistics for first insert.
mysql-test/r/show_check.result:
  Fix result after not doing key statistics for first insert.
sql/ha_myisam.cc:
  Don't disable index when inserting only a few rows
sql/log.cc:
  Transactions in AUTOCOMMIT=0 mode didn't rotate binary log.
sql/sql_insert.cc:
  Don't enable any bulk insert or record caching code if inserting less than MIN_ROWS_TO_USE_BULK_INSERT
2002-12-14 12:45:31 +02:00
unknown
05e6b27a13 Transactions in AUTOCOMMIT=0 mode didn't rotate binary log. 2002-12-14 12:05:45 +02:00
unknown
b870cfa595 log.cc:
We must not commit inside InnoDB when LOAD DATA INFILE just writes a block to the binlog; only commit if the log event type is QUERY_EVENT or EXECUTE_LOAD_EVENT


sql/log.cc:
  We must not commit inside InnoDB when LOAD DATA INFILE just writes a block to the binlog; only commit if the log event type is QUERY_EVENT or EXECUTE_LOAD_EVENT
2002-12-11 21:24:28 +02:00
unknown
934f5cc466 Ensure that BEGIN / COMMIT is handled properly if slave dies
Added syntax support for
CREATE TABLE foo (a char CHARACTER SET latin1) CHARSET=latin1;


Docs/internals.texi:
  Update binary protocol description
innobase/include/db0err.h:
  Merge from 3.23
mysql-test/r/insert.result:
  Updated test result from 3.23
sql/log.cc:
  Fixed bug in replication and log rotation
sql/log_event.cc:
  Ensure that BEGIN / COMMIT is handled properly if slave dies
sql/slave.cc:
  Fixed bug in replication and log rotation
sql/slave.h:
  Ensure that BEGIN / COMMIT is handled properly if slave dies
sql/sql_analyse.cc:
  Moved usage of res before res is destroyed (by bzero(&s...))
sql/sql_yacc.yy:
  Added syntax support for
  
  CREATE TABLE foo (a char CHARACTER SET latin1) CHARSET=latin1;
  
  To be able to read MySQL 4.1 dump files.
2002-12-11 15:46:39 +02:00
unknown
591b058518 Removed copying of parameters as this leads to memory leaks in embedded server.
Fixed 'not initialized' memory error.


mysql-test/mysql-test-run.sh:
  Updates to be able to more easily use --valgrind
mysql-test/r/alter_table.result:
  Added missing drop table
mysql-test/t/alter_table.test:
  Added missing drop table
sql/field.cc:
  Simple optimizations
sql/ha_innodb.cc:
  Remove copying of parameters as this leads to memory leaks in MySQL.
  Should be instead fixed by, in embedded server, make a temporary copy of
  all parameters and free them on server-end
sql/log.cc:
  Simple optimization
sql/mysql_priv.h:
  Move external reference to struct to include file
sql/mysqld.cc:
  Added safety asserts
sql/sql_class.cc:
  Fixed non fatal 'not initialized memory reference error' in thread init
sql/sql_udf.cc:
  Clear current_thd for global thread
strings/strto.c:
  Simple optimization
2002-12-05 03:40:33 +02:00
unknown
8d0d518ced merge
configure.in:
  Auto merged
sql/field.cc:
  Auto merged
sql/ha_innodb.cc:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/log.cc:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/slave.cc:
  Auto merged
sql/sql_acl.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_insert.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_update.cc:
  Auto merged
2002-11-07 12:49:01 +02:00
unknown
72413e7f81 Put temporary files in binlog cache when using BEGIN/COMMIT
Let MySQL 4.0 read 4.1 .frm files without 4.1 specific extensions
New variables @@rand_seed1 and @@rand_seed2 (used by replication)
DROP TEMPORARY TABLE


mysql-test/r/rpl_log.result:
  Update of results after last replication change
mysql-test/r/variables.result:
  Test of new variables @@rand_seed1 and @@rand_seed2
mysql-test/t/variables.test:
  Test of new variables @@rand_seed1 and @@rand_seed2
sql/field.cc:
  Let MySQL 4.0 read 4.1 .frm files without 4.1 specific extensions
sql/field.h:
  Let MySQL 4.0 read 4.1 .frm files without 4.1 specific extensions
sql/item_func.cc:
  Put temporary files in binlog cache when using BEGIN/COMMIT
sql/log.cc:
  Put temporary files in binlog cache when using BEGIN/COMMIT
  More debug information
sql/log_event.cc:
  Put temporary files in binlog cache when using BEGIN/COMMIT
sql/log_event.h:
  Put temporary files in binlog cache when using BEGIN/COMMIT
sql/set_var.cc:
  Add system variables @@rand_seed1 and @@rand_seed2
sql/set_var.h:
  Add system variables @@rand_seed1 and @@rand_seed2
sql/slave.cc:
  Put temporary files in binlog cache when using BEGIN/COMMIT
sql/sql_acl.cc:
  Put temporary files in binlog cache when using BEGIN/COMMIT
sql/sql_base.cc:
  Store DROP of temporary tables in binlog cache
sql/sql_class.h:
  Put temporary files in binlog cache when using BEGIN/COMMIT
sql/sql_db.cc:
  Put temporary files in binlog cache when using BEGIN/COMMIT
sql/sql_delete.cc:
  Put temporary files in binlog cache when using BEGIN/COMMIT
sql/sql_insert.cc:
  Put temporary files in binlog cache when using BEGIN/COMMIT
sql/sql_lex.h:
  DROP TEMPORARY TABLE
sql/sql_load.cc:
  Put temporary files in binlog cache when using BEGIN/COMMIT
sql/sql_parse.cc:
  Put temporary files in binlog cache when using BEGIN/COMMIT
sql/sql_rename.cc:
  Put temporary files in binlog cache when using BEGIN/COMMIT
sql/sql_repl.cc:
  Put temporary files in binlog cache when using BEGIN/COMMIT
sql/sql_repl.h:
  Put temporary files in binlog cache when using BEGIN/COMMIT
sql/sql_table.cc:
  Put temporary files in binlog cache when using BEGIN/COMMIT
sql/sql_update.cc:
  Put temporary files in binlog cache when using BEGIN/COMMIT
sql/sql_yacc.yy:
  DROP TEMPORARY
sql/table.cc:
  Let MySQL 4.0 read 4.1 .frm files without 4.1 specific extensions
sql/unireg.cc:
  Let MySQL 4.0 read 4.1 .frm files without 4.1 specific extensions
2002-11-07 04:02:37 +02:00