into mysql.com:/home/cps/mysql/devel/5.1-rename-bug
mysql-test/r/log_tables.result:
Auto merged
mysql-test/t/log_tables.test:
Auto merged
sql/handler.cc:
Auto merged
sql/handler.h:
Auto merged
sql/log.h:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/sql_delete.cc:
Auto merged
sql/sql_rename.cc:
Auto merged
sql/table.cc:
Auto merged
storage/csv/ha_tina.cc:
Auto merged
storage/myisam/ha_myisam.cc:
Auto merged
sql/log.cc:
manual merge
sql/share/errmsg.txt:
manual merge
sql/sql_table.cc:
manual merge
into willster.(none):/home/stewart/Documents/MySQL/5.1/bug19914-mk2-merge
BitKeeper/deleted/.del-ha_berkeley.cc:
Auto merged
BitKeeper/deleted/.del-ha_berkeley.h:
Auto merged
mysql-test/r/ctype_utf8.result:
Auto merged
mysql-test/t/ctype_utf8.test:
Auto merged
sql/item_sum.cc:
Auto merged
sql/opt_sum.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_union.cc:
Auto merged
sql/sql_view.cc:
Auto merged
sql/table.cc:
Auto merged
storage/archive/ha_archive.cc:
Auto merged
storage/blackhole/ha_blackhole.cc:
Auto merged
storage/blackhole/ha_blackhole.h:
Auto merged
storage/csv/ha_tina.cc:
Auto merged
storage/csv/ha_tina.h:
Auto merged
storage/example/ha_example.cc:
Auto merged
storage/example/ha_example.h:
Auto merged
storage/federated/ha_federated.cc:
Auto merged
storage/federated/ha_federated.h:
Auto merged
storage/heap/ha_heap.cc:
Auto merged
storage/heap/ha_heap.h:
Auto merged
storage/myisam/ha_myisam.h:
Auto merged
storage/myisammrg/ha_myisammrg.cc:
Auto merged
storage/ndb/include/kernel/GlobalSignalNumbers.h:
Auto merged
storage/ndb/include/mgmapi/mgmapi.h:
Auto merged
storage/ndb/include/ndb_version.h.in:
Auto merged
storage/ndb/include/ndbapi/NdbTransaction.hpp:
Auto merged
storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp:
Auto merged
storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp:
Auto merged
storage/ndb/src/kernel/vm/Configuration.cpp:
Auto merged
storage/ndb/src/mgmapi/mgmapi.cpp:
Auto merged
storage/ndb/src/mgmclient/main.cpp:
Auto merged
storage/ndb/src/ndbapi/NdbScanOperation.cpp:
Auto merged
storage/ndb/src/ndbapi/NdbTransaction.cpp:
Auto merged
storage/ndb/tools/ndb_condig.cpp:
Auto merged
storage/ndb/tools/restore/restore_main.cpp:
Auto merged
sql/ha_ndbcluster.cc:
merge
sql/ha_ndbcluster.h:
merge
sql/handler.h:
merge
sql/sql_delete.cc:
merge
storage/archive/ha_archive.h:
merge
storage/innobase/handler/ha_innodb.cc:
merge
storage/innobase/handler/ha_innodb.h:
merge
storage/myisam/ha_myisam.cc:
merge
storage/myisammrg/ha_myisammrg.h:
merge
into willster.(none):/home/stewart/Documents/MySQL/5.0/bug19914-mk2-merge
sql/ha_berkeley.cc:
Auto merged
sql/ha_berkeley.h:
Auto merged
BitKeeper/deleted/.del-ha_isam.cc~4dce65904db2675e:
Auto merged
BitKeeper/deleted/.del-ha_isam.h~bf53d533be3d3927:
Auto merged
BitKeeper/deleted/.del-ha_isammrg.cc~dc682e4755d77a2e:
Auto merged
BitKeeper/deleted/.del-ha_isammrg.h~66fd2e5bfe7207dc:
Auto merged
sql/ha_archive.cc:
Auto merged
sql/ha_archive.h:
Auto merged
sql/ha_blackhole.cc:
Auto merged
sql/ha_blackhole.h:
Auto merged
sql/ha_heap.cc:
Auto merged
sql/ha_heap.h:
Auto merged
sql/ha_innodb.cc:
Auto merged
sql/ha_innodb.h:
Auto merged
sql/ha_myisam.cc:
Auto merged
sql/ha_myisam.h:
Auto merged
sql/ha_myisammrg.cc:
Auto merged
sql/ha_myisammrg.h:
Auto merged
sql/item_sum.cc:
Auto merged
sql/opt_sum.cc:
Auto merged
sql/sql_delete.cc:
Auto merged
sql/examples/ha_example.cc:
Auto merged
sql/examples/ha_example.h:
Auto merged
sql/examples/ha_tina.cc:
Auto merged
sql/examples/ha_tina.h:
Auto merged
sql/sql_union.cc:
Auto merged
sql/ha_ndbcluster.cc:
merge
sql/ha_ndbcluster.h:
merge
sql/handler.h:
merge
sql/sql_select.cc:
merge
Bug #21785 "Server crashes after rename of the log table" and
Bug #21966 "Strange warnings on create like/repair of the log
tables"
According to the patch, from now on, one should use RENAME to
perform a log table rotation (this should also be reflected in
the manual).
Here is a sample:
use mysql;
CREATE TABLE IF NOT EXISTS general_log2 LIKE general_log;
RENAME TABLE general_log TO general_log_backup, general_log2 TO general_log;
The rules for Rename of the log tables are following:
IF 1. Log tables are enabled
AND 2. Rename operates on the log table and nothing is being
renamed to the log table.
DO 3. Throw an error message.
ELSE 4. Perform rename.
The very RENAME query will go the the old (backup) table. This is
consistent with the behavoiur we have with binlog ROTATE LOGS
statement.
Other problems, which are solved by the patch are:
1) Now REPAIR of the log table is exclusive operation (as it should be), this
also eliminates lock-related warnings. and
2) CREATE LIKE TABLE now usese usual read lock on the source table rather
then name lock, which is too restrictive. This way we get rid of another
log table-related warning, which occured because of the above fact
(as a side-effect, name lock resulted in a warning).
mysql-test/r/log_tables.result:
update result file
mysql-test/t/log_tables.test:
Add tests for the bugs
sql/handler.cc:
update comment
sql/handler.h:
update function to reflect changes in log tables
locking logic.
sql/lock.cc:
Now we allow locking of the log tables for "privileged" threads
Privileged thread must explicitly close and lock log tables. This
is required for admin operations such as REPAIR.
sql/log.cc:
Changes to the file:
1) Add checks for table schema. It's more important now,
as we allow rename of the log tables. Since we should
check for schema when writing to a log table.
E.g. if one created a table with one-only comlumn and
renamed it to general_log, the server should cope with
it.
2) refactor LOGGER::flush(), so that we can now use the same
machinery as we use in FLUSH LOGS in other statements:
whenever we have to perform a serious operation on the log
tables, we have to
(a) lock logger, which blocks other concurrent statements (such
as selects) (b) close logs. Then perform an
exclusive operation, c) reenable logs and d) unlock logger.
3) Add a function to check if a given table is a log table.
4) Add support for "privileged" thread
5) merge is_[general/slow]_log_table_enabled() into one function.
6) Add new function: reopen _log_tables, which reopens the tables,
which were enabled (after temporary close, required for admin
operation)
sql/log.h:
1) add a new call close_n_lock_tables(). Now we use it instead of
LOGGER::flush() in FLUSH LOGS implementation.
2) add a prototype for the function to check if a given
table is a log table;
3) add privileged table flag to table logger
4) merge is_[general/slow]_log_table_enabled()
into one function.
sql/mysql_priv.h:
move log table defines to log.h
sql/sql_delete.cc:
use new function check_if_log_table() instead of direct strcmp
sql/sql_rename.cc:
Traverse the list of tables in mysql_rename_tables
to make sure that log tables are processed correctly
(that is, according to the rules specified in the
main CS comment)
sql/sql_table.cc:
1) mysql_admin_table() should disable logs if it performs
exclusive admin operation on a log table. This way we
also eliminate warning on REPAIR of the log table.
2) mysql_create_like_table should read-lock the source table
instead getting name lock on it. Name lock is too restrictive
in this case.
sql/share/errmsg.txt:
Add a new error message for rename of the log tables
sql/table.cc:
use new function instead of direct strcmp.
change my_strcasecmp() -> strcmp(), when
comparing system db and table names
storage/csv/ha_tina.cc:
update function to reflect changes in log tables
locking logic.
storage/myisam/ha_myisam.cc:
update function to reflect changes in log tables
locking logic.
Bug #21785 "Server crashes after rename of the log table" and
Bug #21966 "Strange warnings on create like/repair of the log
tables"
According to the patch, from now on, one should use RENAME to
perform a log table rotation (this should also be reflected in
the manual).
Here is a sample:
use mysql;
CREATE TABLE IF NOT EXISTS general_log2 LIKE general_log;
RENAME TABLE general_log TO general_log_backup, general_log2 TO general_log;
The rules for Rename of the log tables are following:
IF 1. Log tables are enabled
AND 2. Rename operates on the log table and nothing is being
renamed to the log table.
DO 3. Throw an error message.
ELSE 4. Perform rename.
The very RENAME query will go the the old (backup) table. This is
consistent with the behavoiur we have with binlog ROTATE LOGS
statement.
Other problems, which are solved by the patch are:
1) Now REPAIR of the log table is exclusive operation (as it should be), this
also eliminates lock-related warnings. and
2) CREATE LIKE TABLE now usese usual read lock on the source table rather
then name lock, which is too restrictive. This way we get rid of another
log table-related warning, which occured because of the above fact
(as a side-effect, name lock resulted in a warning).
include/mysql/plugin.h:
Adding license information.
plugin/fulltext/plugin_example.c:
License
sql/ha_ndbcluster.cc:
License
sql/ha_partition.cc:
License
sql/handler.h:
License
sql/log.cc:
License
sql/sql_show.cc:
Additional PLUIN display information
storage/archive/ha_archive.cc:
License information added
storage/blackhole/ha_blackhole.cc:
License information added
storage/csv/ha_tina.cc:
License Information
storage/example/ha_example.cc:
License information
storage/federated/ha_federated.cc:
License Information
storage/heap/ha_heap.cc:
License Information
storage/innobase/handler/ha_innodb.cc:
License Information
storage/myisam/ha_myisam.cc:
License Information
storage/myisammrg/ha_myisammrg.cc:
License Information
into zim.(none):/home/brian/mysql/arch-5.1
sql/mysql_priv.h:
Auto merged
sql/share/errmsg.txt:
Auto merged
sql/sql_show.cc:
Auto merged
sql/handler.h:
Merge from G's work
sql/sql_cursor.cc:
Merge from G's work
storage/csv/ha_tina.cc:
Merge of G's work
storage/innobase/handler/ha_innodb.cc:
Merge of G's work
storage/innobase/handler/ha_innodb.h:
Merge of G's work
storage/myisam/ha_myisam.cc:
Merge of G's work
Partitioning now has a flag to allow disabling of engines from being compatible with partitioning. Cleaned up heap naming convention on panic call.
include/heap.h:
Added new function
sql/ha_ndbcluster.cc:
Updated hanlderton functions
sql/ha_ndbcluster_binlog.cc:
Updated handlerton functions.
sql/handler.cc:
Updated handlerton functions.
sql/handler.h:
Updated hanlderton functions
sql/log.cc:
Updated handlerton functions
sql/mysql_priv.h:
Updated handlerton functions
sql/mysqld.cc:
Added Legacy handlerton functions
sql/partition_info.cc:
Added flag support for marking engines not compatible with partitioning
sql/sql_cursor.cc:
Updated hanlderton functions
sql/sql_show.cc:
Updated hanlderton functions
sql/sql_tablespace.cc:
Update for handlerton functions
storage/archive/ha_archive.cc:
Update for hanlderton functions
storage/archive/ha_archive.h:
Update for handlerton functions
storage/blackhole/ha_blackhole.cc:
Update for handlerton functions
storage/csv/ha_tina.cc:
Update for handlerton functions
storage/csv/ha_tina.h:
Update for handlerton functions
storage/federated/ha_federated.cc:
Updated for handlerton functions
storage/federated/ha_federated.h:
Updated for handlerton functions
storage/heap/ha_heap.cc:
Update for handlerton functions
storage/heap/hp_panic.c:
Update of function name
storage/heap/hp_test1.c:
Update of function name
storage/heap/hp_test2.c:
Update of function name.
storage/innobase/handler/ha_innodb.cc:
Update of function name
storage/innobase/handler/ha_innodb.h:
Update of function name
storage/myisam/ha_myisam.cc:
Update of function name.
storage/myisammrg/ha_myisammrg.cc:
Update of function name
sql/ha_ndbcluster.cc:
Removed global hton
sql/ha_ndbcluster.h:
Removed global hton need
sql/ha_partition.cc:
Removed global hton
sql/ha_partition.h:
Removed global hton
sql/handler.cc:
Removed global hton
sql/handler.h:
Removed global hton
storage/archive/ha_archive.cc:
Removed global hton
storage/archive/ha_archive.h:
Global hton removed
storage/blackhole/ha_blackhole.cc:
Global removed hton
storage/blackhole/ha_blackhole.h:
Global hton removal
storage/csv/ha_tina.cc:
Global hton removal
storage/csv/ha_tina.h:
Removed global removed
storage/example/ha_example.cc:
Global removed hton
storage/example/ha_example.h:
Global removed hton
storage/federated/ha_federated.cc:
Global removed hton
storage/federated/ha_federated.h:
Global removed hton
storage/heap/ha_heap.cc:
Global removed hton
storage/heap/ha_heap.h:
Global removed hton
storage/innobase/handler/ha_innodb.cc:
Global removed hton
storage/innobase/handler/ha_innodb.h:
Removed global hton
storage/myisam/ha_myisam.cc:
Globally removed hton
storage/myisam/ha_myisam.h:
Globally removed hton
storage/myisammrg/ha_myisammrg.cc:
Globally removed hton
storage/myisammrg/ha_myisammrg.h:
Globaly removed hton
and so the engine calls current_thd to derive transaction information;
instead we now pass THD to those functions, it looks more logical
(it makes the implicit current_thd parameter more visible).
Approved by Brian and Monty.
sql/handler.h:
cursor's creation functions in the handlerton need a THD,
it's better than have the engine call current_thd
sql/sql_cursor.cc:
pass the THD instead of letting the engine call current_thd
storage/innobase/handler/ha_innodb.cc:
use the passed THD instead of current_thd
storage/innobase/handler/ha_innodb.h:
use the passed THD instead of current_thd
and so the engine calls current_thd to derive transaction information;
instead we now pass THD to those functions, it looks more logical
(it makes the implicit current_thd parameter more visible).
Approved by Brian and Monty.
into mysql.com:/home/cps/mysql/trees/5.1-runtime-new
sql/handler.h:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/sp.cc:
Auto merged
sql/sql_acl.cc:
Auto merged
sql/sql_show.cc:
Auto merged
sql/share/errmsg.txt:
Auto merged
sql/sql_table.cc:
Auto merged
mysql-test/r/sp.result:
manual merge
mysql-test/t/sp.test:
manual merge
storage/csv/ha_tina.cc:
manual merge
storage/myisam/ha_myisam.cc:
manual merge
into xiphis.org:/home/antony/work2/engines-merge
BitKeeper/deleted/.del-ha_berkeley.cc:
Auto merged
mysql-test/r/myisam.result:
Auto merged
mysql-test/t/myisam.test:
Auto merged
sql/opt_range.cc:
Auto merged
storage/heap/ha_heap.cc:
Auto merged
storage/myisam/ha_myisam.cc:
Auto merged
storage/myisam/mi_packrec.c:
Auto merged
storage/myisam/mi_rkey.c:
Auto merged
storage/myisammrg/ha_myisammrg.cc:
Auto merged
include/my_base.h:
manual merge
sql/ha_ndbcluster.cc:
manual merge
sql/handler.cc:
manual merge
sql/handler.h:
manual merge
sql/share/errmsg.txt:
manual merge
storage/innobase/handler/ha_innodb.cc:
manual merge
into mysql.com:/home/cps/mysql/trees/5.1-runtime-new
sql/handler.h:
Auto merged
sql/share/errmsg.txt:
Auto merged
sql/sql_table.cc:
Auto merged
storage/csv/ha_tina.cc:
Auto merged
storage/myisam/ha_myisam.cc:
Auto merged
Bug #18559 "log tables cannot change engine, and
gets deadlocked when dropping w/ log on":
1) Add more generic error messages
2) Add new handlerton flag for engines, which support
log tables
3) Remove (log-tables related) mutex lock in myisam to
improve performance
mysql-test/r/log_tables.result:
update result file to use new error messages
mysql-test/t/log_tables.test:
update test file with new error messages
sql/handler.h:
Add new handlerton flag, to mark whether engine
supports log tables
sql/share/errmsg.txt:
Add more generic error messages
sql/sql_table.cc:
Update error messages
storage/csv/ha_tina.cc:
CSV supports log tables
storage/myisam/ha_myisam.cc:
MyISAM supports log tables
storage/myisam/mi_write.c:
remove mutex lock to improve performance
Bug #18559 "log tables cannot change engine, and
gets deadlocked when dropping w/ log on":
1) Add more generic error messages
2) Add new handlerton flag for engines, which support
log tables
3) Remove (log-tables related) mutex lock in myisam to
improve performance
into chilla.local:/home/mydev/mysql-5.1-toteam
mysql-test/t/disabled.def:
Auto merged
BitKeeper/deleted/.del-index_merge_innodb.result:
Auto merged
mysql-test/include/index_merge2.inc:
Auto merged
mysql-test/include/mix1.inc:
Auto merged
sql/handler.cc:
Auto merged
sql/handler.h:
Auto merged
sql/opt_range.cc:
Auto merged
storage/myisam/ha_myisam.cc:
Auto merged
storage/myisam/ha_myisam.h:
Auto merged
mysql-test/include/handler.inc:
Manual merge 5.1 -> 5.1-engines
mysql-test/r/innodb_mysql.result:
Manual merge 5.1 -> 5.1-engines
into april.(none):/home/svoj/devel/mysql/BUG20256/mysql-5.1-engines
sql/ha_myisam.cc:
Auto merged
sql/ha_myisam.h:
Auto merged
sql/handler.cc:
Auto merged
BitKeeper/deleted/.del-index_merge.result:
Auto merged
mysql-test/include/index_merge1.inc:
Manual merge.
sql/handler.h:
Manual merge.
sql/opt_range.cc:
Manual merge.
Only MyISAM tables locked with LOCK TABLES ... WRITE were affected.
A query that is optimized with index_merge doesn't reflect rows
inserted within LOCK TABLES.
MyISAM doesn't flush a state within LOCK TABLES. index_merge
optimization creates a copy of the handler, which thus gets
outdated MyISAM state.
New handler->clone() method is introduced to fix this problem.
For non-MyISAM storage engines it allocates a handler and opens
it with ha_open(). For MyISAM it additionally copies MyISAM state
pointer to cloned handler.
mysql-test/r/index_merge.result:
A test case for bug#20256.
mysql-test/t/index_merge.test:
A test case for bug#20256.
sql/ha_myisam.cc:
clone method added to handler class.
sql/ha_myisam.h:
clone method added to handler class.
sql/handler.cc:
clone method added to handler class.
sql/handler.h:
clone method added to handler class.
sql/opt_range.cc:
Use handler clone method.
Only MyISAM tables locked with LOCK TABLES ... WRITE were affected.
A query that is optimized with index_merge doesn't reflect rows
inserted within LOCK TABLES.
MyISAM doesn't flush a state within LOCK TABLES. index_merge
optimization creates a copy of the handler, which thus gets
outdated MyISAM state.
New handler->clone() method is introduced to fix this problem.
For non-MyISAM storage engines it allocates a handler and opens
it with ha_open(). For MyISAM it additionally copies MyISAM state
pointer to cloned handler.
into gbichot3.local:/home/mysql_src/mysql-maria
BitKeeper/etc/ignore:
auto-union
libmysqld/Makefile.am:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
mysys/my_pread.c:
Auto merged
sql/Makefile.am:
Auto merged
sql/handler.h:
Auto merged
sql/item_func.h:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/set_var.cc:
Auto merged
sql/sql_class.h:
Auto merged
storage/csv/ha_tina.cc:
Auto merged
storage/myisam/ft_parser.c:
Auto merged
storage/myisam/ha_myisam.cc:
Auto merged
storage/myisam/ha_myisam.h:
Auto merged
storage/myisam/mi_delete_all.c:
Auto merged
storage/myisam/mi_dynrec.c:
Auto merged
storage/myisam/mi_open.c:
Auto merged
storage/myisam/mi_packrec.c:
Auto merged
storage/myisam/mi_unique.c:
Auto merged
storage/myisam/mi_update.c:
Auto merged
storage/myisam/mi_write.c:
Auto merged
storage/myisam/sort.c:
Auto merged
storage/myisammrg/ha_myisammrg.h:
Auto merged
configure.in:
merge
sql/mysqld.cc:
merge
storage/myisam/Makefile.am:
merge
storage/myisam/myisamdef.h:
merge
"strict mode: inserts autogenerated auto_increment value bigger than max"
Strict mode should fail if autoincrement value is out of range
include/my_base.h:
Add new handler error codes
sql/ha_berkeley.cc:
handle error in update_auto_increment()
sql/ha_heap.cc:
handle error in update_auto_increment()
sql/ha_innodb.cc:
handle error in update_auto_increment()
sql/ha_myisam.cc:
handle error in update_auto_increment()
sql/ha_myisammrg.cc:
handle error in update_auto_increment()
sql/ha_ndbcluster.cc:
handle error in update_auto_increment()
sql/handler.cc:
return error from handler::update_auto_increment()
sql/handler.h:
change return type of handler::update_auto_increment() to int
sql/share/errmsg.txt:
new error message for auto-increment
mysql-test/include/strict_autoinc.inc:
New BitKeeper file ``mysql-test/include/strict_autoinc.inc''
mysql-test/r/strict_autoinc_1myisam.result:
New BitKeeper file ``mysql-test/r/strict_autoinc_1myisam.result''
mysql-test/r/strict_autoinc_2innodb.result:
New BitKeeper file ``mysql-test/r/strict_autoinc_2innodb.result''
mysql-test/r/strict_autoinc_3heap.result:
New BitKeeper file ``mysql-test/r/strict_autoinc_3heap.result''
mysql-test/r/strict_autoinc_4bdb.result:
New BitKeeper file ``mysql-test/r/strict_autoinc_4bdb.result''
mysql-test/r/strict_autoinc_5ndb.result:
New BitKeeper file ``mysql-test/r/strict_autoinc_5ndb.result''
mysql-test/t/strict_autoinc_1myisam.test:
New BitKeeper file ``mysql-test/t/strict_autoinc_1myisam.test''
mysql-test/t/strict_autoinc_2innodb.test:
New BitKeeper file ``mysql-test/t/strict_autoinc_2innodb.test''
mysql-test/t/strict_autoinc_3heap.test:
New BitKeeper file ``mysql-test/t/strict_autoinc_3heap.test''
mysql-test/t/strict_autoinc_4bdb.test:
New BitKeeper file ``mysql-test/t/strict_autoinc_4bdb.test''
mysql-test/t/strict_autoinc_5ndb.test:
New BitKeeper file ``mysql-test/t/strict_autoinc_5ndb.test''