This change allows us to use the stmt_binlog function in the code without ifdefs
(We should avoid having ifdefs in the .cc and .c files)
sql/handler.h:
Removed compiler warnings
Fixed wrong table flags type in ndbcluster that caused previous commit to fail
client/mysqltest.c:
Portability fix
mysys/my_bitmap.c:
Remove compiler warning
mysys/my_handler.c:
Remove compiler warning
mysys/thr_lock.c:
Remove compiler warning
plugin/fulltext/plugin_example.c:
Remove compiler warning
sql/ha_ndbcluster.h:
Fixed wrong of handler flags (caused previous commit to fail)
sql/ha_ndbcluster_binlog.cc:
Remove compiler warning
sql/handler.cc:
Indentation cleanups
sql/mysql_priv.h:
Changed log_output_options to ulong to remove compiler warning (and wrong test on 64 bit machines)
sql/mysqld.cc:
Changed log_output_options to ulong to remove compiler warning (and wrong test on 64 bit machines)
Split initialization of variables of different types to remove compiler warning
sql/set_var.cc:
Fixed indentation
sql/set_var.h:
sys_var_log_output now takes a pointer to ulong
storage/archive/archive_test.c:
Remove compiler warning
is_injective -> table_flag() HA_HAS_OWN_BINLOGGING
(Faster and easier to understand)
Allow cluster_binlogging also in mixed replication mode.
mysql-test/t/rpl_truncate_7ndb.test:
Ensure that test is only run with mixed or row based replication
sql/ha_ndbcluster.cc:
Enforce row based replication if a cluster table is used
sql/ha_ndbcluster.h:
Remove is_injective() (Is now a table flag)
sql/ha_ndbcluster_binlog.cc:
Use cluster binlogging also in mixed binary logging
(Using a cluster table will enforce row based replication in mixed mode, so this should be ok)
sql/handler.cc:
is_injective -> HA_HAS_OWN_BINLOGGING
sql/handler.h:
is_injective -> HA_HAS_OWN_BINLOGGING
mysql-test/include/have_binlog_format_mixed_or_row.inc:
New BitKeeper file ``mysql-test/include/have_binlog_format_mixed_or_row.inc''
mysql-test/r/rpl_truncate_7ndb_2.result:
New BitKeeper file ``mysql-test/r/rpl_truncate_7ndb_2.result''
mysql-test/t/rpl_truncate_7ndb_2-master.opt:
New BitKeeper file ``mysql-test/t/rpl_truncate_7ndb_2-master.opt''
mysql-test/t/rpl_truncate_7ndb_2.test:
New BitKeeper file ``mysql-test/t/rpl_truncate_7ndb_2.test''
sql/handler.cc:
Generating table maps from all locks that can be available: THD::extra_lock,
THD::lock, and THD::locked_tables.
sql/sql_class.h:
Adding member Open_tables:state::extra_lock to hold the extra lock used by select_create.
Removing select_insert::lock.
sql/sql_insert.cc:
Adding member Open_tables:state::extra_lock to hold the extra lock used by select_create.
Removing select_insert::lock.
into mysql.com:/home/my/mysql-5.1
mysql-test/extra/rpl_tests/rpl_log.test:
Auto merged
mysql-test/r/rpl_ndb_log.result:
Auto merged
mysql-test/r/rpl_row_log.result:
Auto merged
mysql-test/r/rpl_row_log_innodb.result:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
sql/log_event.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_show.cc:
Auto merged
sql/mysql_priv.h:
SCCS merged
into bk-internal.mysql.com:/data0/bk/mysql-5.1-kt
mysql-test/r/partition_error.result:
Auto merged
sql/mysql_priv.h:
Auto merged
mysql-test/r/partition.result:
Auto merged
into bk-internal.mysql.com:/data0/bk/mysql-5.1-kt
mysql-test/r/show_check.result:
Auto merged
sql/log.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/set_var.h:
Auto merged
sql/sql_delete.cc:
Auto merged
Need to flag when a copy is needed to not overwrite a create_info
object connected to the lex structure
sql/mysql_priv.h:
Need to flag when a copy is needed to not overwrite a create_info
object connected to the lex structure
sql/sql_insert.cc:
Need to flag when a copy is needed to not overwrite a create_info
object connected to the lex structure
sql/sql_parse.cc:
Need to flag when a copy is needed to not overwrite a create_info
object connected to the lex structure
sql/sql_table.cc:
Need to flag when a copy is needed to not overwrite a create_info
object connected to the lex structure
mysql-test/r/partition_error.result:
result fix
sql/log.cc:
use open_slow_log() instead of open_query_log() for slow query log
sql/log.h:
after merge fix
sql/set_var.cc:
after merge fix
use open_slow_log() instead of open_query_log() for slow query log
sql/table.cc:
Remove error printouts when error occurs during open frm as part of
CREATE/ALTER TABLE
sql/unireg.cc:
Ensure .par file is removed after error
into may.pils.ru:/home/svoj/devel/mysql/BUG18036/mysql-5.1
configure.in:
Auto merged
include/my_global.h:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/r/myisam.result:
Auto merged
sql/item_func.cc:
Auto merged
sql/mysqld.cc:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_update.cc:
Auto merged
tests/mysql_client_test.c:
Auto merged
mysql-test/t/myisam.test:
Manual merge.
SHOW STATUS are not anymore put in slow query log because of no index usage.
Implemntation done by removing orig_sql_command and moving logic of SHOW STATUS to mysql_excute_command()
This simplifies code and allows us to remove some if statements all over the code.
Upgraded uc_update_queries[] to sql_command_flags and added more bitmaps to better categorize commands.
This allowed some overall simplifaction when testing sql_command.
Fixes bugs:
Bug#10210: running SHOW STATUS increments counters it shouldn't
Bug#19764: SHOW commands end up in the slow log as table scans
mysql-test/r/grant_cache.result:
Fixed results after SHOW STATUS doesn't anymore affect status variables
mysql-test/r/information_schema.result:
Added extra test to cover more code
mysql-test/r/query_cache.result:
Remove resuts from previous tests
mysql-test/r/status.result:
Added more tests for testing of last_query_cost and how SHOW STATUS affects status variables.
(Bug#10210)
mysql-test/r/temp_table.result:
Fixed results after SHOW STATUS doesn't anymore affect status variables
mysql-test/r/union.result:
Fixed results after SHOW STATUS is not logged to slow query log
(Bug#19764)
mysql-test/t/events_microsec.test:
Disable warnings at init
mysql-test/t/information_schema.test:
Added extra test to cover more code
mysql-test/t/query_cache.test:
Remove resuts from previous tests
mysql-test/t/status.test:
Added more tests for testing of last_query_cost and how SHOW STATUS affects status variables.
(Bug #10210)
sql/mysql_priv.h:
Added 'sql_command_flags'
sql/sql_class.cc:
New function add_diff_to_status(), used to update global status variables when using SHOW STATUS
sql/sql_class.h:
New function 'fill_information_schema_tables()'
(One could not anymore use fill_derived_tables() for this as only_view_structures() is not relevant for information schema tables)
Added defines for bit flags in sql_command_flags[]
sql/sql_lex.cc:
Remove orig_sql_command
sql/sql_lex.h:
Remove orig_sql_command
sql/sql_parse.cc:
Rename uc_update_queries -> sql_command_flags.
Enhanced 'sql_command_flags' to better classify SQL commands
uc_update_queries[] != 0 is changed to (sql_command_flags[] & CF_CHANGES_DATA)
lex->orig_sql_command == SQLCOM_END is changed to (sql_command_flags[lex->sql_command] & CF_STATUS_COMMAND) == 0)
Simplify incrementing of thd->status_var.com_stat[] as we don't have to do special handling for SHOW commands.
Split SQLCOM_SELECT handling in mysql_execute_command() to a separate function.
Added special handling of SHOW STATUS commands in mysql_execute_command() and call common SQLCOM_SELECT handling.
These changes allows us to easily fix that we save and restore status variables during execution of a SHOW STATUS command.
Don't log SHOW STATUS commands to slow query log.
This fixes Bug#10210 and Bug#19764 without adding additional 'if' code.
(The new code is faster than the original as we now have fewer if's than before)
sql/sql_prepare.cc:
Clean up prepare-check handling of SQLCOM commands by using sql_command_flags[]
This simplifes code and ensures that code works even if someone forgets to put a new status commands into the switch statement.
sql/sql_select.cc:
Remove special handling of SHOW STATUS.
(This is now done in SQLCOM_SHOW_STATUS part in mysql_execute_command())
sql/sql_show.cc:
Remove orig_sql_command
Only change sql_command during 'open_normal_and_derived_tables()' (for views) and not for the full duration of generating data.
Changed 'show status' to use thd->initial_status_var to ensure that the current statement is not affecting the to-be-used values.
Use thd->fill_information_schema_tables() instead of 'thd->fill_derived_tables()' as the later wrongly checks the value of sql_command.
sql/sql_yacc.yy:
Remove usage of orig_sql_command.
One side effect of this is that we need to test for cursors if the current command is a SELECT or a SHOW command.
sql/structs.h:
Updated comment
The bug was found in rpl_stm_000001 testing. In essence the following happens
SLAVE thread receives what happens
start
init THD and its temp_table (tt0)
stop
storing tt0 pointer to rli->save...
start
restoring temp_tables - new pointer tt1
executing regular binlog event DROP temp_table
at the end of which tt1-refered list
must be empty (slave_open_temp_tables == 0)
but the pointer refers to tt0 location!
shutdown
end_slave calls cleaning of temp_tables and crashes.
The reason of the crash is that tt1 values is not zero upon DROPing the single temp table.
This is due to alg of removing links from temp_tables list which "adapted" 5.0 code
but w/o accounting that thd->temporary_tables in slave thread in prone to freeing.
Upon freeing there is no more original '0' value available to denote empty list.
temporary_tables must not refer to any "external" location, one of which thd->temporary_tables represents (since belong to THD instance).
The fix done in sql_base.cc for two functions, look at there for details.
sql/sql_base.cc:
refining prepend and remove link operation to thd->temporary_tables.
The list turns to be "flat" double-linked, i.e "prev" accessor refers to an item instead of pointer to one as it was previously with "open_prev".
On removal an invariant involving slave_open_temp_tables counter is checked.
When it is zero thd->temporary_tables is set to zero explicitly. This can not be done, for what previous code hoped, because thd object changes when slave stop/start while
slave's temporary_tables are maintained all the time, until reset/shutdow
into bk-internal.mysql.com:/data0/bk/mysql-5.1-kt
mysql-test/r/join.result:
Auto merged
mysql-test/t/join.test:
Auto merged
sql/log.h:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_show.cc:
Auto merged
BUG#18036 - update of table joined to self reports table as crashed
Set exclude_from_table_unique_test value back to FALSE. It is needed for
further check in multi_update::prepare whether to use record cache.
sql/sql_update.cc:
Set exclude_from_table_unique_test value back to FALSE. It is needed for
further check in multi_update::prepare whether to use record cache.
into mysql.com:/users/lthalmann/bk/MERGE/mysql-5.1-merge
mysql-test/t/archive.test:
Auto merged
sql/log.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_insert.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_table.cc:
Auto merged