just a flush_relay_log_info() at the end of CHANGE MASTER
(there was already flush_master_info()).
sql/sql_repl.cc:
Comments.
Flush relay-log.info after CHANGE MASTER, or the changes
to the relay log parameters (relay log name and position, and
the corresponding master's binlog name and position) will be
lost if the slave mysqld is shutdown immediately after the
CHANGE MASTER (without the slave threads being started).
I extended the task to cleaning error messages, making them look nicer,
and making the output of SHOW SLAVE STATUS (column Last_error) be as complete
as what's printed on the .err file;
previously we would have, for a failure of a replicated LOAD DATA INFILE:
- in the .err, 2 lines:
"duplicate entry 2708 for key 1"
"failed loading SQL_LOAD-5-2-2.info"
- and in SHOW SLAVE STATUS, only:
"failed loading SQL_LOAD-5-2-2.info".
Now SHOW SLAVE STATUS will contain the concatenation of the 2 messages.
sql/log_event.cc:
Print the default database when replication stops because of an error. Previously, we had:
"error "Duplicate entry 87987 for key 1", query 'insert into t values(87987)'", ie the db
was not mentioned, making it hard for cases where the same table name is used in
several databases.
Lengthened some error messages (for failing replication of LOAD DATA: mention the table
and the db).
Changes so that SHOW SLAVE STATUS reports as complete errors as the .err file.
sql/slave.cc:
Removed a useless declaration (the rewrite_db() function is already declared in slave.h).
Added missing ')' in error messages.
Tried to make error messages look nicer (previously we had
"do START SLAVE;, error_code=1062"
now we'll have
"do START SLAVE; . Error_code=1062".
This form has been discussed, I agree it's no panacea, but it's still more readable
like this. To be improved in the future :)
sql/slave.h:
declarations.
Here is fix for bug 554.
Added configure options
--with-openssl-includes[=DIR] and --with-openssl-libs[=DIR]
acinclude.m4:
Bug #554: Support for --with-openssl[=DIR]
Fix bug: if there was a 'record too long' error in an insert, InnoDB forgot to free reserved file space extents; they were only freed in mysqld restart
innobase/btr/btr0cur.c:
Fix bug: if there was a 'record too long' error in an insert, InnoDB forgot to free reserved file space extents; they were only freed in mysqld restart
Fix bug reported by Dyego Souza do Carmo: if a row becomes too long, > 8000 bytes, in an update, then InnoDB simply removes the clustered index record and does not report of table handler error 139
innobase/btr/btr0cur.c:
Fix bug reported by Dyego Souza do Carmo: if a row becomes too long, > 8000 bytes, in an update, then InnoDB simply removes the clustered index record and does not report of table handler error 139
myisam/mi_locking.c:
Here we use F_EXTRA_LCK
myisam/myisamchk.c:
lines of "locking - emulation" replaced with mi_lock_database call
myisam/myisamdef.h:
no need for MI_TEMPORARY_TABLE
sql/ha_myisam.cc:
We use F_WRLCK instead MI_TEMPORARY_TABLE
acinclude.m4:
Fixed problem with openssl on RedHat 9
vio/viosocket.c:
Removed compiler warning
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted
myisam/mi_check.c:
Fixed memory overrun in _mi_put_key_in_record
myisam/mi_key.c:
Fixed unnecessary memory allocation
mysql-test/r/insert_select.result:
Added test case for memory corruption
mysql-test/t/insert_select.test:
Added test case for memory corruption
mysys/safemalloc.c:
Removed compiler warnings
sql/sql_acl.cc:
Fixed core dump when running with --debug
a node name was changed in manual.texi which resulted in a very large
ReadMe.txt file, as the generating script could not find the (renamed)
ending node. Fixed the ending node name in Docs/Makefile.am and the
Docs/Support/generate-text-files.pl Perl script to make sure this does
not happen again (I only discovered this because the Do-pkg script was
not able to add the ReadMe.txt to the Apple Disk image because it ran out
of disk space due to the size of the file)
Docs/Makefile.am:
- Fixed a node name that was changed in manual.texi and resulted in
the generation of a _very_ large ReadMe.txt file (down to the very end
of the manual, since the ending node was not found)
Docs/Support/generate-text-files.pl:
- added a safeguard: if the ending node was not found, abort with an error
to indicate that the generated text file might be too large (as it would
contain the whole manual, down from the starting node)
- made some cosmetical changes
myisammrg/myrg_open.c:
never mark merge table as readonly even if all underlying myisam tables are readonly,
otherwise ALTER TABLE merge UNION=(t1,t2,t3,...) will not work
sql/handler.cc:
map EACCES to ER_OPEN_AS_READONLY.
can only happen on modifying merge table that has (some) read-only myisam tables
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
Revert the previous patch: MySQL would not allow creation of VARCHAR columns whose total max length is > 8000 bytes, though InnoDB can easily store them as trailing spaces are removed
sql/ha_innodb.h:
Revert the previous patch: MySQL would not allow creation of VARCHAR columns whose total max length is > 8000 bytes, though InnoDB can easily store them as trailing spaces are removed
Fix wrong error message: If one tried to create table with a very big row len, MySQL claimed the max len is 64 kB for InnoDB, while it normally is 8000 bytes
sql/ha_innodb.h:
Fix wrong error message: If one tried to create table with a very big row len, MySQL claimed the max len is 64 kB for InnoDB, while it normally is 8000 bytes
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()
Monty revoked any locks for temporary tables in
ha_myisam::external_lock()
But further code bans using write cache on nonlocked tables
this makes operations much slower
myisam/mi_locking.c:
Handling of MI_TEMPORARY_TABLE lock
myisam/myisamdef.h:
defining of MI_TEMPORARY_TABLE
sql/ha_myisam.cc:
now we lock temporary tables using MI_TEMPORARY_TABLE lock
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
Put back a 50 millisecond sleep in too high concurrency situations which I removed in the previous push; count also such sleeping threads to the InnoDB queue in SHOW INNODB STATUS
innobase/srv/srv0srv.c:
Put back a 50 millisecond sleep in too high concurrency situations which I removed in the previous push; count also such sleeping threads to the InnoDB queue in SHOW INNODB STATUS
Fix a benign bug introduced in 4.0.14: InnoDB could complain 'Error: trying to declare trx to enter InnoDB' if several threads tried to init the auto-inc counter for the same table at the same time; in theory, the bug could even lead to a hang of the server, but that shuld be extremely improbable
innobase/srv/srv0srv.c:
Fix a benign bug introduced in 4.0.14: InnoDB could complain 'Error: trying to declare trx to enter InnoDB' if several threads tried to init the auto-inc counter for the same table at the same time; in theory, the bug could even lead to a hang of the server, but that shuld be extremely improbable
Allow also O_DIRECT as innodb_flush_method; it only affects writing to data files
innobase/os/os0file.c:
Allow also O_DIRECT as innodb_flush_method; it only affects writing to data files
innobase/include/os0file.h:
Allow also O_DIRECT as innodb_flush_method; it only affects writing to data files
innobase/include/srv0srv.h:
Allow also O_DIRECT as innodb_flush_method; it only affects writing to data files
innobase/srv/srv0start.c:
Allow also O_DIRECT as innodb_flush_method; it only affects writing to data files