Move plugin declarations after system functions have been checked
(Fixes problem with ndb_config failing becasue SHM is not declared)
Fixed some memory leaks
configure.in:
Move plugin declarations after system functions have been checked
(Fixes problem with ndb_config failing becasue SHM is not declared)
mysql-test/t/disabled.def:
Disabled ndb_load, as it is in 5.0
(Fails randomly in binlog_close_connection())
mysql-test/t/log_tables.test:
Update error numbers
mysql-test/t/ndb_config.test:
Moved test depending on SHM to ndb_config2.test
mysql-test/t/ndb_partition_error.test:
Update error numbers
sql/event_timed.cc:
Removed not needed line
sql/ha_berkeley.cc:
Fixed compiler warning
sql/ha_heap.cc:
Fixed compiler warning
sql/ha_innodb.cc:
Fixed compiler warning
sql/ha_myisam.cc:
Fixed compiler warning
sql/ha_myisammrg.cc:
Fixed compiler warning
sql/ha_ndbcluster.cc:
Fixed compiler warning
sql/ha_partition.cc:
Fixed compiler warning
sql/mysql_priv.h:
After merge fix
sql/mysqld.cc:
Fixed memory leak in skip_grant.test
sql/share/errmsg.txt:
Removed wrong error messages
sql/sql_lex.cc:
More debugging
Faster lex_end()
sql/sql_partition.cc:
Fixed memory leak
sql/sql_view.cc:
Fixed memory leak
mysql-test/r/ndb_config2.result:
New BitKeeper file ``mysql-test/r/ndb_config2.result''
mysql-test/t/ndb_config2.test:
New BitKeeper file ``mysql-test/t/ndb_config2.test''
config/ac-macros/plugins.m4:
remove unneccessary `ifelse'
add comment, add missing dnl
configure.in:
change description for heap engine
include/mysql/plugin.h:
change macro name
sql/ha_berkeley.cc:
store strings statically for use in handlerton and plugin structures
sql/ha_federated.cc:
store strings statically for use in handlerton and plugin structures
sql/ha_heap.cc:
store strings statically for use in handlerton and plugin structures
sql/ha_innodb.cc:
store strings statically for use in handlerton and plugin structures
sql/ha_myisam.cc:
store strings statically for use in handlerton and plugin structures
sql/ha_myisammrg.cc:
store strings statically for use in handlerton and plugin structures
sql/ha_ndbcluster.cc:
store strings statically for use in handlerton and plugin structures
sql/ha_partition.cc:
store strings statically for use in handlerton and plugin structures
storage/archive/ha_archive.cc:
store strings statically for use in handlerton and plugin structures
storage/blackhole/ha_blackhole.cc:
store strings statically for use in handlerton and plugin structures
storage/csv/ha_tina.cc:
store strings statically for use in handlerton and plugin structures
storage/example/ha_example.cc:
store strings statically for use in handlerton and plugin structures
into xiphis.org:/home/antony/work2/wl3201.merge
BUILD/SETUP.sh:
Auto merged
libmysqld/Makefile.am:
Auto merged
sql/ha_heap.cc:
Auto merged
sql/ha_innodb.cc:
Auto merged
sql/ha_myisammrg.cc:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
sql/ha_ndbcluster_binlog.cc:
Auto merged
sql/ha_partition.cc:
Auto merged
sql/handler.cc:
Auto merged
sql/handler.h:
Auto merged
sql/log.cc:
Auto merged
sql/mysqld.cc:
Auto merged
sql/partition_info.cc:
Auto merged
sql/sql_plugin.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
storage/archive/ha_archive.cc:
Auto merged
storage/archive/ha_archive.h:
Auto merged
storage/example/ha_example.cc:
Auto merged
Makefile.am:
Merge for WL#3201, some post-merge fixes will be required.
configure.in:
Merge for WL#3201
plugin/Makefile.am:
Merge for WL#3201
storage/innobase/Makefile.am:
Merge for WL#3201
Fixes after first review
config/ac-macros/ha_ndbcluster.m4:
WL#3201
Undo change
config/ac-macros/plugins.m4:
WL#3201
Remove unneccesary use of AC_DEFUN
fix shell script to be more portable
configure.in:
WL#3201
Remove use of word "engine" when desribing partition module
Undo ndb config files change
sql/ha_partition.cc:
WL#3201
Remove use of word "engine" when desribing partition module
sql/handler.cc:
WL#3201
Add comment describing installed_htons array
Fixed up create_handler_files call
sql/ha_ndbcluster.cc:
Fixed up create_handler_files call
sql/ha_partition.cc:
Fixed up create_handler_files call
sql/handler.h:
Fixed up create_handler_files call
sql/sql_table.cc:
Fixed up create_handler_files call
sql/unireg.cc:
Fixed up create_handler_files call
into c-870ae253.1238-1-64736c10.cust.bredbandsbolaget.se:/home/pappa/wl2826
configure.in:
Auto merged
dbug/dbug.c:
Auto merged
include/my_sys.h:
Auto merged
sql/ha_heap.cc:
Auto merged
sql/log.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/partition_info.h:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_partition.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
sql/table.cc:
Auto merged
BUILD/SETUP.sh:
manual merge
BUILD/compile-pentium-debug-max:
manual merge
sql/ha_ndbcluster.cc:
manual merge
sql/ha_ndbcluster.h:
manual merge
sql/ha_partition.cc:
manual merge
sql/ha_partition.h:
manual merge
sql/handler.h:
manual merge
sql/share/errmsg.txt:
manual merge
sql/sql_table.cc:
manual merge
sql/unireg.cc:
manual merge
After review changes
mysql-test/r/ndb_partition_key.result:
Fixed result file
sql/ha_ndbcluster.cc:
Fixed interface to create_handler_files
sql/ha_ndbcluster.h:
Fixed interface to create_handler_files
sql/ha_partition.cc:
Fixed interface to create_handler_files and made it two-stage for rename
Removed print_error and now it's used by MySQL Server parts instead
sql/ha_partition.h:
Fixed interface to create_handler_files
sql/mysql_priv.h:
Fixed error injects
Externalised Global DDL log mutex
Some interface changes
sql/mysqld.cc:
Moved close of DDL log until all user threads been closed
sql/sql_base.cc:
Interface changes
sql/sql_partition.cc:
Moved print_error to mysql server part
sql/sql_table.cc:
Lots of after review changes
sql/table.cc:
Fixed upgrade code
" Configure support for server plugins "
storage/blackhole/ha_blackhole.h:
Rename: sql/ha_blackhole.h -> storage/blackhole/ha_blackhole.h
BitKeeper/deleted/.del-storage.m4~24bf2fffdaa328ad:
Delete: config/ac-macros/storage.m4
BitKeeper/deleted/.del-ha_archive.m4~a07fac7110b39294:
Delete: config/ac-macros/ha_archive.m4
BitKeeper/deleted/.del-ha_blackhole.m4~8ed06eb91f6420ed:
Delete: config/ac-macros/ha_blackhole.m4
BitKeeper/deleted/.del-ha_example.m4~1dfb268163297708:
Delete: config/ac-macros/ha_example.m4
BitKeeper/deleted/.del-ha_federated.m4~7acddd58286acfd6:
Delete: config/ac-macros/ha_federated.m4
BitKeeper/deleted/.del-ha_innodb.m4~6f141fb5b80c1f39:
Delete: config/ac-macros/ha_innodb.m4
BitKeeper/deleted/.del-ha_partition.m4~bc57067550be5f89:
Delete: config/ac-macros/ha_partition.m4
BitKeeper/deleted/.del-ha_tina.m4~f658506ebbc113ca:
Delete: config/ac-macros/ha_tina.m4
BitKeeper/deleted/.del-handlerton.cc.in~377156e7b06067cc:
Delete: sql/handlerton.cc.in
BitKeeper/deleted/.del-handlerton-win.cc~322a7e59507976df:
Delete: sql/handlerton-win.cc
BUILD/SETUP.sh:
WL#3201
Changes in configure arguments
Makefile.am:
WL#3201
changes in build subst names
config/ac-macros/ha_berkeley.m4:
WL#3201
remove unused variable
Makefile is always made
config/ac-macros/ha_ndbcluster.m4:
WL#3201
remove unused variables
Split big macro
configure.in:
WL#3201
out with storage.m4, in with plugins.m4
change how plugins are declared
include makefiles, remove handlerton.cc, add sql_builtin.cc
include/mysql/plugin.h:
WL#3201
support static and dynamic build - MYSQL_DYNAMIC_PLUGIN
libmysqld/Makefile.am:
WL#3201
Storage engine files still left in sql subdir are not conditionally
compiled. Should move them out soon,
plugin/Makefile.am:
WL#3201
update makefile
plugin/fulltext/Makefile.am:
WL#3201
update makefile
plugin/fulltext/plugin_example.c:
WL#3201
change to mysql_declare_plugin macro
sql/Makefile.am:
WL#3201
Storage engine files still left in sql subdir are not conditionally
compiled. Should move them out soon,
sql/ha_berkeley.cc:
WL#3201
make into a plugin
conditionally compile content
sql/ha_federated.cc:
WL#3201
make into a plugin
conditionally compile content
sql/ha_heap.cc:
WL#3201
make into a plugin
sql/ha_innodb.cc:
WL#3201
make into a plugin
conditionally compile content
sql/ha_myisam.cc:
WL#3201
make into a plugin
sql/ha_myisammrg.cc:
WL#3201
make into a plugin
sql/ha_ndbcluster.cc:
WL#3201
make into a plugin
conditionally compile content
sql/ha_ndbcluster_binlog.cc:
WL#3201
make into a plugin
conditionally compile content
sql/ha_partition.cc:
WL#3201
make into a plugin
conditionally compile content
sql/handler.cc:
WL#3201
Simplify how storage engines are found by db_type
(hopefully we can get rid of it soon)
Code cleanup
sql/handler.h:
WL#3201
new DB_TYPE_FIRST_DYNAMIC
new func ha_finalize_handlerton()
remove ha_register_builtin_plugins()
sql/log.cc:
WL#3201
make into a plugin
sql/mysqld.cc:
WL#3201
remove ha_register_builtin_plugins()
alter init order so that storage engines are initialized before first use
sql/partition_info.cc:
WL#3201
conditionally compile content
sql/sql_delete.cc:
WL#3201
conditionally include ha_innodb.h
sql/sql_plugin.cc:
WL#3201
All compiled in plugins are in mysqld_builtins[]
add funcs for plugin finalization
install builtin plugins on initialization
sql/sql_show.cc:
WL#3201
Fix to use plugin_foreach()
sql/sql_yacc.yy:
WL#3201
SHOW FULL PLUGIN
storage/archive/Makefile.am:
WL#3201
setup as plugin makefile
storage/archive/ha_archive.cc:
WL#3201
Convert into a plugin
storage/archive/ha_archive.h:
WL#3201
azlib.h now in local dir
storage/blackhole/ha_blackhole.cc:
WL#3201
convert into a plugin
storage/csv/Makefile.am:
WL#3201
setup as plugin makefile
storage/csv/ha_tina.cc:
WL#3201
remove conditional compilation on MYSQL_PLUGIN
mysql_declare_plugin macro change
storage/example/Makefile.am:
WL#3201
fix as new-style plugin makefile
storage/example/ha_example.cc:
WL#3201
remove conditional compilation on MYSQL_PLUGIN
mysql_declare_plugin macro change
storage/innobase/Makefile.am:
WL#3201
Lets make life easier and reduce innodb into a single library file
config/ac-macros/plugins.m4:
New BitKeeper file ``config/ac-macros/plugins.m4''
sql/sql_builtin.cc.in:
New BitKeeper file ``sql/sql_builtin.cc.in''
storage/blackhole/Makefile.am:
New BitKeeper file ``storage/blackhole/Makefile.am''
Current auto increment value is placed in partition in which latest
record was saved. So to get auto_increment they have to scan
all partitions and return max value.
mysql-test/r/partition.result:
Fix for bug#18753 Partitions: auto_increment fails
test case
mysql-test/t/partition.test:
Fix for bug#18753 Partitions: auto_increment fails
test case
into c-4908e253.1238-1-64736c10.cust.bredbandsbolaget.se:/home/pappa/wl2826
configure.in:
Auto merged
BUILD/SETUP.sh:
Auto merged
include/my_dbug.h:
Auto merged
sql/ha_heap.cc:
Auto merged
sql/ha_myisammrg.cc:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
sql/ha_ndbcluster.h:
Auto merged
sql/ha_partition.h:
Auto merged
sql/handler.h:
Auto merged
sql/log.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/partition_info.h:
Auto merged
sql/set_var.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_partition.cc:
Auto merged
sql/sql_table.cc:
Auto merged
sql/share/errmsg.txt:
Auto merged
sql/sql_yacc.yy:
Auto merged
sql/table.cc:
Auto merged
mysql-test/r/ndb_partition_key.result:
manual merge
mysql-test/t/ndb_partition_key.test:
manual merge
sql/ha_partition.cc:
manual merge
into linux.site:/home/reggie/work/mysql-5.1-bug17631
sql/ha_partition.cc:
Auto merged
sql/sql_partition.cc:
Auto merged
sql/sql_show.cc:
Auto merged
sql/sql_table.cc:
Auto merged
mysql-test/r/partition.result:
results block for bug # 17631
mysql-test/t/partition.test:
test block for bug #17631
sql/ha_partition.cc:
move table_type func to .cc file and return table_type from
the first handler. This is acceptable since we know we have
at least one handler and we currently do not support multiple
engine types. Later, we'll need to extend this to return
some type of delimited list
sql/ha_partition.h:
removed inline version of this function
sql/sql_show.cc:
if the table is partitioned, we add the term "partitioned" to the
create options. We make sure we are using the partitioned
handlerton before we do this. When we support more native partition
handlers then this will need to change.
Added missing DBUG_xxx_RETURN statements
Fixed some usage of not initialized variables (as found by valgrind)
Ensure that we don't remove locked tables used as name locks from open table cache until unlock_table_names() are called.
This was fixed by having drop_locked_name() returning any table used as a name lock so that we can free it in unlock_table_names()
This will allow Tomas to continue with his work to use namelocks to syncronize things.
Note: valgrind still produces a lot of warnings about using not initialized code and shows memory loss errors when running the ndb tests
BitKeeper/etc/ignore:
added mysql-test/r/*.log
client/mysqltest.c:
Change type of variables to get rid of compiler warnings
More debugging
Fix memory leak
mysql-test/mysql-test-run.sh:
Collect warnings about missing DBUG_RETURN statements
mysql-test/r/lock_multi.result:
Add test of new code
mysql-test/r/ndb_condition_pushdown.result:
Drop used tables before test
mysql-test/t/lock_multi.test:
Add test of new code
mysql-test/t/ndb_condition_pushdown.test:
Drop used tables before test
mysql-test/valgrind.supp:
Ignore 'safe' warnings from libz (when used with archive)
sql/event.cc:
More comments
Simplify code
Fixed memory leak found by valgrind
sql/ha_archive.cc:
Remove compiler warnings (Wrong handlerton structure and signed/unsigned comparison)
sql/ha_berkeley.cc:
Fixed compiler warning
sql/ha_blackhole.cc:
Fixed compiler warning
sql/ha_federated.cc:
Fixed compiler warning
sql/ha_heap.cc:
Fixed compiler warning
sql/ha_myisam.cc:
Fixed compiler warning
sql/ha_myisammrg.cc:
Fixed compiler warning
sql/ha_ndbcluster.cc:
Fixed compiler warnings
sql/ha_partition.cc:
Fixed compiler warning
Fixed error noticed by valgrind in ha_partition::rnd_init()
sql/handler.cc:
Fixed compiler warning
sql/handler.h:
Fixed compiler warning
sql/item.cc:
Fixed compiler warning
sql/item_xmlfunc.cc:
Fixed warning from valgrind when calling memcpy with wrong address
sql/lock.cc:
More debugging
sql/log.cc:
Fixed compiler warning
Indentation fixes
sql/log.h:
Fixed compiler warning
sql/mysql_priv.h:
Changed prototype for 'drop_locked_tables'
sql/opt_range.cc:
Indentation fix
sql/password.c:
Removed compiler warnings
sql/set_var.cc:
Fixed compiler warning
sql/slave.cc:
Fixed compiler warning
sql/sp_head.cc:
Fixed compiler warning
sql/sql_acl.cc:
Fixed compiler warning
sql/sql_analyse.cc:
Added missing DBUG_RETURN statements
sql/sql_base.cc:
Removed de-reference of not initialized pointer
More comments
drop_locked_tables() changed to not delete tables used for name locking
Fixed compiler warnings
sql/sql_delete.cc:
Fixed usage of not initialized variable
(deleted could be referenced in some not common error conditions)
sql/sql_parse.cc:
Added missing DBUG_VOID_RETURN
Simplify code
sql/sql_partition.cc:
Fixed usage of wrong variable (noticed by valgrind)
sql/sql_plugin.cc:
Removed compiler warning
sql/sql_show.cc:
Removed compiler warning
sql/sql_table.cc:
Ensure that we don't remove locked tables used as name locks from open table cache until unlock_table_names() are called.
This was fixed by having drop_locked_name() returning any table used as a name lock so that we can free it in unlock_table_names()
This will allow Tomas to continue with his work to use namelocks to syncronize things.
Fixed wrong test of 'table_type' (path_length could otherwise be accessed uninitialized)
Remove compile warnings about not initialized variables.
sql/sql_yacc.yy:
Ensure that no_write_to_binlog is properly initialized
(Was accessed uninitialized by partition code)
sql/table.cc:
Removed valgrind warnings (not fatal)
Removed compiler warnings
sql/tztime.cc:
Removed valgrind warning
storage/ndb/include/ndbapi/NdbIndexStat.hpp:
Removed compiler warning
Loads of review comments fixed
inactivate => deactivate
table log => ddl log
Commented on Error Inject Module added
Put various #defines into enums
Fixed abort_and_upgrade_lock, removed unnecessary parameter
Fixed mysqlish method intro's
Fixed warning statements
5.1.7 was released still with partition states in clear text
Fixed io_size bug
Fixed bug in open that TRUNCATED before reading :)
file_entry => file_entry_buf
Don't open DDL log until first write call to DDL log
handler_type => handler_name
no => num
sql/ha_partition.cc:
Loads of review comments fixed
inactivate => deactivate
table log => ddl log
sql/mysql_priv.h:
Loads of review comments fixed
inactivate => deactivate
table log => ddl log
Commented on Error Inject Module added
Put various #defines into enums
Fixed abort_and_upgrade_lock, removed unnecessary parameter
sql/mysqld.cc:
Loads of review comments fixed
inactivate => deactivate
table log => ddl log
Commented on Error Inject Module added
Put various #defines into enums
Fixed abort_and_upgrade_lock, removed unnecessary parameter
sql/partition_element.h:
Loads of review comments fixed
inactivate => deactivate
table log => ddl log
Commented on Error Inject Module added
Put various #defines into enums
Fixed abort_and_upgrade_lock, removed unnecessary parameter
sql/partition_info.h:
Loads of review comments fixed
inactivate => deactivate
table log => ddl log
Commented on Error Inject Module added
Put various #defines into enums
Fixed abort_and_upgrade_lock, removed unnecessary parameter
sql/share/errmsg.txt:
Loads of review comments fixed
inactivate => deactivate
table log => ddl log
Commented on Error Inject Module added
Put various #defines into enums
Fixed abort_and_upgrade_lock, removed unnecessary parameter
sql/sql_base.cc:
Loads of review comments fixed
inactivate => deactivate
table log => ddl log
Commented on Error Inject Module added
Put various #defines into enums
Fixed abort_and_upgrade_lock, removed unnecessary parameter
sql/sql_partition.cc:
Loads of review comments fixed
inactivate => deactivate
table log => ddl log
Commented on Error Inject Module added
Put various #defines into enums
Fixed abort_and_upgrade_lock, removed unnecessary parameter
Fixed mysqlish method intro's
Fixed warning statements
sql/sql_table.cc:
Loads of review comments fixed
inactivate => deactivate
table log => ddl log
Commented on Error Inject Module added
Put various #defines into enums
Fixed abort_and_upgrade_lock, removed unnecessary parameter
Fixed mysqlish method intro's
Fixed warning statements
Fixed io_size bug
Fixed bug in open that TRUNCATED before reading :)
file_entry => file_entry_buf
Don't open DDL log until first write call to DDL log
handler_type => handler_name
no => num
sql/table.cc:
Loads of review comments fixed
inactivate => deactivate
table log => ddl log
Commented on Error Inject Module added
Put various #defines into enums
Fixed abort_and_upgrade_lock, removed unnecessary parameter
Fixed mysqlish method intro's
Fixed warning statements
5.1.7 was released still with partition states in clear text
Fixed io_size bug
Fixed bug in open that TRUNCATED before reading :)
file_entry => file_entry_buf
Don't open DDL log until first write call to DDL log
handler_type => handler_name
no => num
into c-8808e253.1238-1-64736c10.cust.bredbandsbolaget.se:/home/pappa/wl2826
configure.in:
Auto merged
dbug/dbug.c:
Auto merged
include/my_sys.h:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
sql/ha_ndbcluster.h:
Auto merged
sql/ha_partition.h:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/set_var.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_partition.cc:
Auto merged
sql/sql_table.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
sql/table.cc:
Auto merged
sql/unireg.cc:
Auto merged
sql/ha_heap.cc:
manual merge
sql/ha_myisammrg.cc:
manual merge
sql/ha_partition.cc:
manual merge
sql/handler.h:
manual merge
sql/log.cc:
manual merge
sql/mysqld.cc:
manual merge
sql/share/errmsg.txt:
manual merge
added HA_EXTRA_WRITE_CACHE case to ha_partition::extra()
mysql-test/r/partition.result:
Fix for bug#15336 Partitions: crash if create table as select
test case
mysql-test/t/partition.test:
Fix for bug#15336 Partitions: crash if create table as select
test case
Make partitioned tables report the row format of the underlying
tables (when they are all the same).
mysql-test/r/partition.result:
Add new results
mysql-test/t/partition.test:
Add regression test
sql/ha_partition.cc:
Add get_row_type(), which peeks at the underlying tables and returns
the row_type if they are consistent.
sql/ha_partition.h:
Add get_row_type() method
into linux.site:/home/reggie/work/mysql-5.1
mysql-test/r/partition.result:
Auto merged
mysql-test/t/partition.test:
Auto merged
sql/ha_partition.cc:
Auto merged
sql/sql_partition.cc:
Auto merged
client/mysqltest.c:
Auto merged
NULL value handling
mysql-test/r/ndb_partition_error.result:
Fix for bug#15447 Partitions: NULL is treated as zero
test case
mysql-test/r/partition.result:
Fix for bug#15447 Partitions: NULL is treated as zero
test case
mysql-test/t/ndb_partition_error.test:
Fix for bug#15447 Partitions: NULL is treated as zero
test case
mysql-test/t/partition.test:
Fix for bug#15447 Partitions: NULL is treated as zero
test case
sql/partition_element.h:
Fix for bug#15447 Partitions: NULL is treated as zero
added null value flag to partition_element object
sql/partition_info.h:
Fix for bug#15447 Partitions: NULL is treated as zero
added null value flag to partition_info object
added has_null partition id variable
Minor cleanup from Mikael's review
sql/ha_partition.cc:
minor cleanup of code, returning inside the first if clause and then
calling loop_extra if the if clause is not executed.
Fix this by passing the HA_EXTRA_PREPARE_FOR_DELETE onto the newly added or about to be dropped partitions
so they have an opportunity to close their OS file handle.
client/mysqltest.c:
prevent positive find of pattern when pattern has zero length (this has nothing to do with this bug fix)
sql/ha_partition.cc:
initialize m_new_file to NULL
call new function prepare_for_delete for the HA_EXTRA_PREPARE_FOR_DELETE operation
inside prepare_for_delete, loop over m_new_file and m_reorged_file if they are non-NULL
sql/ha_partition.h:
added decl for new prepare_for_delete function
and new binlog format called "mixed" (which is statement-based except if only row-based is correct,
in this cset it means if UDF or UUID is used; more cases could be added in later 5.1 release):
SET GLOBAL|SESSION BINLOG_FORMAT=row|statement|mixed|default;
the global default is statement unless cluster is enabled (then it's row) as in 5.1-alpha.
It's not possible to use SET on this variable if a session is currently in row-based mode and has open temporary tables (because CREATE
TEMPORARY TABLE was not binlogged so temp table is not known on slave), or if NDB is enabled (because
NDB does not support such change on-the-fly, though it will later), of if in a stored function (see below).
The added tests test the possibility or impossibility to SET, their effects, and the mixed mode,
including in prepared statements and in stored procedures and functions.
Caveats:
a) The mixed mode will not work for stored functions: in mixed mode, a stored function will
always be binlogged as one call and in a statement-based way (e.g. INSERT VALUES(myfunc()) or SELECT myfunc()).
b) for the same reason, changing the thread's binlog format inside a stored function is
refused with an error message.
c) the same problems apply to triggers; implementing b) for triggers will be done later (will ask
Dmitri).
Additionally, as the binlog format is now changeable by each user for his session, I remove the implication
which was done at startup, where row-based automatically set log-bin-trust-routine-creators to 1
(not possible anymore as a user can now switch to stmt-based and do nasty things again), and automatically
set --innodb-locks-unsafe-for-binlog to 1 (was anyway theoretically incorrect as it disabled
phantom protection).
Plus fixes for compiler warnings.
mysql-test/r/rpl_row_4_bytes.result:
update
mysql-test/t/rpl_row_4_bytes.test:
don't influence next tests
sql/ha_archive.cc:
please pay attention to this structure when you change it...
sql/ha_berkeley.cc:
please pay attention to this structure when you change it...
sql/ha_blackhole.cc:
please pay attention to this structure when you change it...
sql/ha_federated.cc:
please pay attention to this structure when you change it...
sql/ha_heap.cc:
please pay attention to this structure when you change it...
sql/ha_innodb.cc:
please pay attention to this structure when you change it...
sql/ha_myisam.cc:
please pay attention to this structure when you change it...
sql/ha_myisammrg.cc:
please pay attention to this structure when you change it...
sql/ha_ndbcluster_binlog.cc:
no more global 'binlog_row_based'
sql/ha_partition.cc:
please pay attention to this structure when you change it...
sql/handler.cc:
please pay attention to this structure when you change it...
sql/handler.h:
it's good to initialize statically (to get no compiler warning) even if to a null value.
sql/item_func.cc:
UDFs require row-based if this is the "mixed" binlog format.
sql/item_strfunc.cc:
UUID() requires row-based binlogging if this is the "mixed" binlog format
sql/log.cc:
binlog_row_based -> thd->current_stmt_binlog_row_based
sql/log.h:
the enum enum_binlog_format moves to log.h from mysqld.cc as we need it in several places.
sql/log_event.cc:
binlog_row_based -> thd->current_stmt_binlog_row_based
sql/log_event.h:
this global variable not used anymore
sql/mysql_priv.h:
these global variables not used anymore
sql/mysqld.cc:
simplification in the handling of --binlog-format (but with no user-visible change), thanks to
the new global system variable.
RBR does not anymore turn on --log-bin-trust-function-creators and --innodb-locks-unsafe-for-binlog
as these are global options and RBR is now settable per session.
sql/partition_info.cc:
compiler warnings
sql/set_var.cc:
new class of thread's variable, to handle the binlog_format (like sys_var_thd_enum except
that is_readonly() is overriden for more checks before update).
compiler warnings (ok'd by Serg)
sql/set_var.h:
new class for the thread's binlog_format (see set_var.cc)
sql/share/errmsg.txt:
some messages for when one can't toggle from one binlog format to another
sql/sp_head.cc:
binlog_row_based -> thd->current_stmt_binlog_row_based
sql/sql_base.cc:
binlog_row_based -> thd->current_stmt_binlog_row_based
sql/sql_class.cc:
When a THD is initialized, we set its current_stmt_binlog_row_based
sql/sql_class.h:
new THD::variables.binlog_format (the value of the session variable set by SET
or inherited from the global value), and THD::current_stmt_binlog_row_based which tells if the
current statement does row-based or statement-based binlogging. Both members are needed
as the 2nd one cannot be derived only from the first one (the statement's type plays a role too),
and the 1st one is needed to reset the 2nd one.
sql/sql_delete.cc:
binlog_row_based -> thd->current_stmt_binlog_row_based
sql/sql_insert.cc:
binlog_row_based -> thd->current_stmt_binlog_row_based
sql/sql_load.cc:
binlog_row_based -> thd->current_stmt_binlog_row_based.
sql/sql_parse.cc:
when we are done with a statement, we reset the current_stmt_binlog_row_based to the value
derived from THD::variables.binlog_format.
sql/sql_partition.cc:
compiler warning
sql/sql_show.cc:
compiler warning
sql/sql_table.cc:
binlog_row_based -> thd->current_stmt_binlog_row_based
tests/mysql_client_test.c:
compiler warning
mysql-test/r/ndb_binlog_basic2.result:
new result
mysql-test/r/rpl_switch_stm_row_mixed.result:
new result
mysql-test/t/ndb_binlog_basic2.test:
new test to verify that if cluster is enabled, can't change binlog format on the fly.
mysql-test/t/rpl_switch_stm_row_mixed.test:
test to see if one can switch between SBR, RBR, and "mixed" mode, and when one cannot,
and test to see if the switching, and the mixed mode, work properly (using UUID() to test,
as using UDFs is not possible in the testsuite for portability reasons).
into linux.site:/home/reggie/work/mysql-5.1-bug15408
sql/ha_ndbcluster.cc:
Auto merged
sql/ha_partition.cc:
Auto merged
sql/handler.h:
Auto merged
sql/opt_range.cc:
Auto merged
sql/sql_show.cc:
Auto merged
into c-9a08e253.1238-1-64736c10.cust.bredbandsbolaget.se:/home/pappa/wl2826
configure.in:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
sql/ha_ndbcluster.h:
Auto merged
sql/handler.h:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_partition.cc:
Auto merged
sql/sql_table.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
sql/table.cc:
Auto merged
dbug/dbug.c:
Manual merge
include/my_dbug.h:
Manual merge
sql/ha_heap.cc:
Manual merge
sql/ha_myisammrg.cc:
Manual merge
sql/ha_partition.cc:
Manual merge
sql/log.cc:
Manual merge
sql/share/errmsg.txt:
Manual merge
5.1-related fixes
BitKeeper/etc/ignore:
Added scripts/mysql_upgrade to the ignore list
sql/ha_partition.cc:
ha_check and ha_repair now to be called
sql/handler.cc:
code modified to be 5.1 compliant
a partitioned table, the value of auto_increment fields was not calculated
until after deciding what partition to add the row into, which led to rows
being written to the wrong partitions (or spurious errors).
mysql-test/r/partition.result:
Add new results
mysql-test/t/partition.test:
Add new regression test
sql/ha_partition.cc:
Fix notes about, and handling of, auto_increment in ha_partition::write_row().
We have to decide on an auto_increment value before we can figure out which
partition the rows should be inserted into.
into big_geek.:C:/Work/mysql/mysql-5.1-bug15408
sql/ha_partition.cc:
Auto merged
sql/opt_range.cc:
Auto merged
sql/sql_partition.cc:
Auto merged
sql/sql_show.cc:
Auto merged
sql/handler.h:
merging changes into my partition code reorg
Also, moved some of the code out of handler.h and into partition specific files for better
separation.
Also, moved some of the C funcs into partition_info as formal C++ methods
mysql-test/r/partition_mgm_err.result:
result block for test of bug # 15408
mysql-test/t/partition_mgm_err.test:
test for duplicate subpartition names
sql/Makefile.am:
adding sql_partition.h, partition_info.cpp, partition_info.h, and partition_element.h to the makefile
sql/ha_partition.cc:
using the new members of partition_info
sql/ha_partition.h:
using the new members of partition_info
sql/handler.h:
moved this code into sql_partition.h
sql/mysql_priv.h:
including sql_partition.h also now
sql/opt_range.cc:
using the new members of partition_info
sql/sql_partition.cc:
moved some of the functions out and into the partition_info class
using the new members of partition_info
sql/sql_show.cc:
using the new members of partition_info
win/cmakefiles/sql:
added partition_info.cpp to the sql cmake file
sql/partition_element.h:
New BitKeeper file ``sql/partition_element.h''
sql/partition_info.h:
New BitKeeper file ``sql/partition_info.h''
sql/sql_partition.h:
New BitKeeper file ``sql/sql_partition.h''
KEY event. Partitioning wrongly claimed to be able to handle HA_DUPP_POS
when it was supported by the underlying storage engine, which resulted
in a crash when handling REPLACE statements.
mysql-test/r/partition.result:
Add new results
mysql-test/t/partition.test:
Add regression test
sql/ha_partition.cc:
Fix list of table flags that are not passed through for partitioned
tables, and add HA_DUPP_POS to that list. Also, handle HA_EXTRA_FLUSH_CACHE
in ha_partition::extra().
First step for handling errors in ALTER TABLE for partitioning
sql/ha_partition.cc:
First step for handling errors in ALTER TABLE for partitioning
sql/sql_partition.cc:
First step for handling errors in ALTER TABLE for partitioning
sql/sql_table.cc:
First step for handling errors in ALTER TABLE for partitioning
used. The problem is that the actual engine was not stored in the .par
file, causing confusion when the default engine was changed. Now the
actual storage engine is stored for subpartitions, as was intended.
mysql-test/r/partition.result:
Add new results
mysql-test/t/partition.test:
Add new regression test, marker for end of 5.1 tests
sql/ha_partition.cc:
Record correct engine type for subpartition parts, and fix use of
constant for .par extension instead of ha_par_ext variable.
into zim.tangent.org:/home/brian/raid/mysql-5.1-new
sql/ha_myisam.cc:
Auto merged
sql/ha_partition.cc:
Auto merged
sql/handler.h:
Auto merged
sql/lex.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/sql_show.cc:
Auto merged
sql/table.cc:
Auto merged
sql/sql_yacc.yy:
SCCS merged
Make lots of fixes to handle the most complex case of reorganising
of partitions where two-phased processes are needed in some cases.
sql/ha_partition.cc:
Rewrote the rename partitions and drop partitions to align with how
the table log handles things.
sql/handler.h:
Added new entry to partition_element to keep track of log entry for
a partition during ALTER TABLE that reorganises existing partitions.
sql/mysql_priv.h:
Converted 'd', 'e' and so forth to constants with somewhat more
descriptive names
Added method to inactivate log entries
sql/sql_partition.cc:
Fix change of partitions
sql/sql_table.cc:
More constants with somewhat descriptive names
Moved around some methods between internal part and external part
Added new method to handle inactivation of log entries
Error handling
Crash if any error after reaching beyond certain point in
ALTER TABLE processing
sql/ha_partition.cc:
Error handling
Crash if any error after reaching beyond certain point in
ALTER TABLE processing
sql/sql_partition.cc:
Error handling
Crash if any error after reaching beyond certain point in
ALTER TABLE processing
Step 14: First version of table log for add/Drop partition
sql/ha_partition.cc:
Moved create partition name code to sql_partition.cc
sql/handler.h:
Added entries in partition_info to keep track of table log entries
sql/mysql_priv.h:
Moved create partition name code to sql_partition.cc
sql/sql_partition.cc:
Moved create partition name code to sql_partition.cc
First version of table log for add/drop partition
sql/sql_table.cc:
Add IO_SIZE to table log header
BUILD/SETUP.sh:
Fixed BUILD scripts
BUILD/compile-pentium-debug-max:
Fixed BUILD scripts
sql/ha_partition.cc:
Need to handle states differently when creating handler files
sql/mysql_priv.h:
Some error inject fixes
sql/mysqld.cc:
Some error inject fixes
sql/set_var.cc:
Some error inject fixes
sql/sql_partition.cc:
Fixing a bug with generate partition syntax
A number of fixes
sql/sql_table.cc:
Fix a few bugs
sql/table.cc:
fix
into mysql.com:/home/stewart/Documents/MySQL/5.1/wl1359
sql/ha_innodb.cc:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
sql/ha_partition.cc:
Auto merged
sql/handler.h:
Auto merged
sql/log.cc:
Auto merged
sql/sql_show.cc:
SCCS merged
Final patch
-----------
This WL is about using this bitmap in all parts of the partition handler.
Thus for:
rnd_init/rnd_next
index_init/index_next and all other variants of index scans
read_range_... the various range scans implemented in the partition handler.
Also use those bitmaps in the various other calls that currently loop over all
partitions.
mysql-test/r/partition_pruning.result:
WL# 2986
New results reflecting bitmap being used to determine if a partition is to be
included
mysql-test/t/partition_pruning.test:
WL# 2986
New tests to show bitmap being used in ha_partition
sql/ha_partition.cc:
WL# 2986
Used work from 2682 and removed the partition select code.
Added do {} while loop to any iteration over partitions to now utilise
m_part_info->used_partitions bitmap to determine if a partition should be
used.
sql/ha_partition.h:
WL# 2986
Removed unused member
sql/handler.h:
WL# 2986
Removed unused member
sql/opt_range.cc:
WL# 2986
Added bitmap_clear_all to clear bitmap prior to pruning
DBUG code for testing
sql/sql_partition.cc:
WL# 2986
Changed < to <=, which fixes the problem with edge cases going awry.