Now, every transaction (including autocommit transactions) start with
a BEGIN and end with a COMMIT/ROLLBACK in the binlog.
Added a test case, and updated lots of test case result files.
mysql-test/t/rpl_transaction-master.opt:
BitKeeper file /home/sven/bk/b26395-autocommit-xa/5.0-rpl/mysql-test/t/rpl_transaction-master.opt
mysql-test/t/rpl_transaction-slave.opt:
BitKeeper file /home/sven/bk/b26395-autocommit-xa/5.0-rpl/mysql-test/t/rpl_transaction-slave.opt
mysql-test/r/mix_innodb_myisam_binlog.result:
Updated result file
mysql-test/r/multi_update.result:
Updated result file
mysql-test/r/rpl_transaction.result:
New result file for new test case.
mysql-test/r/sp_trans_log.result:
Updated result file
mysql-test/r/variables-big.result:
Updated result file
mysql-test/t/rpl_transaction.test:
New test case.
sql/log.cc:
- Always write BEGIN and COMMIT around statements, even in autocommit
mode.
- Added comments for binlog_commit and binlog_rollback.
sql/log_event.cc:
Added debug trigger to avoid writing xid events to the binlog.
into linux-st28.site:/home/martin/mysql/src/bug32848/my51-bug32848
sql/field.cc:
Auto merged
sql/field.h:
Auto merged
sql/item.cc:
Auto merged
sql/sql_select.cc:
Auto merged
mysql-test/r/union.result:
Bug#32848: Manual merge
mysql-test/t/union.test:
Bug#32848: Manual merge
w/ Field_date instead of Field_newdate
Field_date was still used in temp table creation.
Fixed by using Field_newdate consistently throughout the server
except when reading tables defined with older MySQL version.
No test suite is possible because both Field_date and Field_newdate
return the same values in all the metadata calls.
mysql-test/r/type_decimal.result:
Bug #33256: removed redundant warnings
sql/field.h:
Bug #33256: Add a constructor similar to Field_date::Field_date()
sql/item.cc:
Bug #33256: Use Field_newdate instead of Field_date
for all temp tables and CREATE .. SELECT
sql/item_sum.cc:
Bug #33256: Use Field_newdate instead of Field_date
for all temp tables and CREATE .. SELECT
sql/item_timefunc.cc:
Bug #33256: Use Field_newdate instead of Field_date
for all temp tables and CREATE .. SELECT
sql/item_timefunc.h:
Bug #33256: Use Field_newdate instead of Field_date
for all temp tables and CREATE .. SELECT
ignores future_group_master_log_p
There was a redundant assignement. However, that's the only artifact.
Wrt to future_group_master_log_position, there is no issue.
The counter is supposed to be set at Log_event::exec_event().
It's used only by Innodb for recovery purposes.
sql/sql_repl.cc:
removing a redundant line which arrived with the revision 1.102.1.7.
When set the server-id dynamically, the server_id member of current thread is not updated.
Update the server_id member of current thread after updated the global variable value.
sql/set_var.cc:
Update server_id of current thread
mysql-test/r/rpl_server_id.result:
Add test for BUG#28908
mysql-test/t/rpl_server_id.test:
Add test for BUG#28908
into janus.mylan:/usr/home/serg/Abk/mysql-5.1
configure.in:
Auto merged
libmysql/CMakeLists.txt:
Auto merged
libmysqld/lib_sql.cc:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/r/information_schema.result:
Auto merged
mysql-test/t/information_schema.test:
Auto merged
sql/Makefile.am:
Auto merged
sql/field.cc:
Auto merged
sql/handler.cc:
Auto merged
sql/item.cc:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_geofunc.cc:
Auto merged
sql/item_subselect.cc:
Auto merged
sql/key.cc:
Auto merged
sql/lock.cc:
Auto merged
sql/log.cc:
Auto merged
sql/log_event.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/net_serv.cc:
Auto merged
sql/opt_sum.cc:
Auto merged
sql/protocol.h:
Auto merged
sql/repl_failsafe.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/set_var.h:
Auto merged
sql/sp_head.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_cache.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_delete.cc:
Auto merged
sql/sql_insert.cc:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_prepare.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_select.h:
Auto merged
sql/sql_show.cc:
Auto merged
sql/sql_table.cc:
Auto merged
sql/sql_update.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
sql/table.h:
Auto merged
storage/archive/ha_archive.cc:
Auto merged
storage/innobase/buf/buf0buf.c:
Auto merged
storage/innobase/buf/buf0flu.c:
Auto merged
storage/innobase/buf/buf0lru.c:
Auto merged
storage/innobase/include/buf0buf.h:
Auto merged
storage/innobase/include/buf0buf.ic:
Auto merged
storage/innobase/include/sync0arr.h:
Auto merged
storage/innobase/include/sync0rw.h:
Auto merged
storage/innobase/include/sync0rw.ic:
Auto merged
storage/innobase/include/sync0sync.h:
Auto merged
storage/innobase/os/os0sync.c:
Auto merged
storage/innobase/sync/sync0arr.c:
Auto merged
storage/innobase/sync/sync0rw.c:
Auto merged
storage/innobase/sync/sync0sync.c:
Auto merged
storage/myisam/ha_myisam.cc:
Auto merged
storage/myisam/mi_open.c:
Auto merged
storage/myisammrg/ha_myisammrg.cc:
Auto merged
sql/ha_ndbcluster.cc:
merged
sql/item_cmpfunc.cc:
merged
sql/protocol.cc:
merged
sql/slave.cc:
merged
sql/sql_class.h:
merged
sql/sql_parse.cc:
merged
mysql-test/suite/binlog/r/binlog_row_binlog.result:
updated result file.
This part of the test was created in parallel with the fix to bug#26395,
which modifies the output of mysqlbinlog and hence the output of many
tests, including this one.
mysql-test/suite/rpl_ndb/r/rpl_ndb_transaction.result:
updated result file
mysql-test/suite/rpl_ndb/t/rpl_ndb_transaction.test:
1. replaced include/show_slave_status.inc by more specific tests for the
SQL error and IO error, as well as Slave_IO_State.
2. drop all tables at the end of test.
Removed dead option
mysqlslap.c:
Updates from Paul for help.
Removed dead option
client/mysqlslap.c:
Updates from Paul for help.
Removed dead option
client/client_priv.h:
Removed dead option
called from a SELECT doesn't cause ROLLBACK of state"
Make private all class handler methods (PSEA API) that may modify
data. Introduce and deploy public ha_* wrappers for these methods in
all sql/.
This necessary to keep track of all data modifications in sql/,
which is in turn necessary to be able to optimize two-phase
commit of those transactions that do not modify data.
sql/ha_partition.cc:
Class ha_partition is no longer a friend of class handler.
Use the public handler interface (handler::ha_ methods) for partition
operations.
Remove unnecessary casts from char[] to const char *.ppзи выафвыаafa
sql/handler.cc:
Function ha_create_table() is no longer a friend of class handler.
Use public handler::change_table_ptr() to access private members.
This fixes a subtle bug (no test case in the test suite) when a
deletion error occurs inside one partition of a partitioned engine.
The old code would crash in handler::print_error() in this case.
Implement the newly introduced public ha_* wrappers of the private
virtual handler methods.
sql/handler.h:
Introduce ha_* wrappers to all class handler methods that may
modify data. This is necessary to be able to keep track of
data modifying operations of class handler and optimize read-only
transactions.
sql/item_sum.cc:
delete_all_rows -> ha_delete_all_rows
sql/sql_base.cc:
Use the new public wrappers.
sql/sql_delete.cc:
delete_all_rows -> ha_delete_all_rows
sql/sql_partition.cc:
Use the new public wrappers.
sql/sql_select.cc:
delete_all_rows -> ha_delete_all_rows
delete_table -> ha_delete_table
disabe_indexes -> ha_disable_idnexes
sql/sql_show.cc:
delete_all_rows -> ha_delete_all_rows
sql/sql_table.cc:
Use the public wrappers for class handler DDL methods.
All methods which may change handler data are now accessed via a public
wrapper.
sql/sql_union.cc:
delete_all_rows -> ha_delete_all_rows
{enable,disable}_indexes -> ha_{enable,disable}_indexes
sql/sql_update.cc:
bulk_update_row -> ha_bulk_update_row
sql/unireg.cc:
create_handler_files -> ha_create_handler_files
Complementary patch since LOAD DATA INFILE was not covered in
the previous patch.
This patch adds a check so that the slave skip counter is not
decreased to zero if seeing a BEGIN_LOAD_QUERY_EVENT,
APPEND_BLOCK_EVENT, or CREATE_FILE_EVENT since these cannot
end a group. The group is terminated by an EXECUTE_LOAD_QUERY_
EVENT or DELETE_FILE_EVENT.
mysql-test/r/rpl_slave_skip.result:
Result change.
mysql-test/t/rpl_slave_skip.test:
Adding tests to test that the first event of a LOAD DATA INFILE
can be skipped safely for both transactional and non-transactional
tables. Also include a case that will generate a DELETE_FILE event
last in the group, and this should be properly skipped as well.
sql/slave.cc:
Not decrementing slave skip counter to zero when seeing a
BEGIN_LOAD_QUERY_EVENT, APPEND_BLOCK_EVENT, or CREATE_FILE_EVENT
since these cannot end a group.
into linux-st28.site:/home/martin/mysql/src/bug32848/my51-bug32848-gca
mysql-test/r/union.result:
Auto merged
mysql-test/t/union.test:
Auto merged
sql/field.h:
Auto merged
sql/sql_select.cc:
Auto merged
sql/field.cc:
Bug#32848: Manual merge
sql/item.cc:
Bug#32848: Manual merge
into mysql.com:/misc/mysql/31990/50-31990
mysql-test/r/cast.result:
Auto merged
mysql-test/r/type_date.result:
Auto merged
mysql-test/t/cast.test:
Auto merged
sql/field.cc:
Auto merged
sql/field.h:
Auto merged
sql/item_timefunc.cc:
Auto merged
sql/item_timefunc.h:
Auto merged
mysql-test/t/type_date.test:
manual merge
into mysql.com:/misc/mysql/31990/51-31990
mysql-test/r/type_date.result:
Auto merged
mysql-test/t/cast.test:
Auto merged
mysql-test/t/type_date.test:
Auto merged
sql/field.cc:
Auto merged
sql/field.h:
Auto merged
sql/item_timefunc.cc:
Auto merged
into mysql.com:/misc/mysql/31990/51-31990
mysql-test/r/cast.result:
Auto merged
mysql-test/t/cast.test:
Auto merged
sql/field.h:
Auto merged
sql/item_timefunc.cc:
Auto merged
sql/item_timefunc.h:
Auto merged
mysql-test/r/type_date.result:
manual merge
mysql-test/t/type_date.test:
manual merge
sql/field.cc:
manual merge
Parser rejects ODBC's escape sequences for outer joins other
than left outer join, yet the escape sequence BNF specifies
that this syntax can be used for left, right, and full outer
join syntax.
The problem is that although the MySQL Connector/ODBC advertises
"Outer Join Escape Sequence" capabilities, the parsing is done
in the server and historically it only supported this syntax
for left outer joins and applications such as Crystal Reports
11 tries to use this syntax for inner joins.
The chosen solution is to reorganize a couple of parser rules
to ignore any kind of SQL escape sequence. Ignoring the escape
sequences is harmless because the various SQL join clauses
are supported by the server.
mysql-test/r/parser.result:
Add test case result for Bug#28317
mysql-test/t/parser.test:
Add test case for Bug#28317
sql/sql_yacc.yy:
Reorganize rules in order to ignore SQL Escape Sequences
into janus.mylan:/usr/home/serg/Abk/mysql-5.1
mysql-test/mysql-test-run.pl:
Auto merged
storage/innobase/buf/buf0buf.c:
Auto merged
storage/innobase/buf/buf0flu.c:
Auto merged
storage/innobase/buf/buf0lru.c:
Auto merged
storage/innobase/include/buf0buf.h:
Auto merged
storage/innobase/include/buf0buf.ic:
Auto merged
storage/innobase/include/sync0arr.h:
Auto merged
storage/innobase/include/sync0rw.h:
Auto merged
storage/innobase/include/sync0rw.ic:
Auto merged
storage/innobase/include/sync0sync.h:
Auto merged
storage/innobase/os/os0sync.c:
Auto merged
storage/innobase/sync/sync0arr.c:
Auto merged
storage/innobase/sync/sync0rw.c:
Auto merged
storage/innobase/sync/sync0sync.c:
Auto merged
into janus.mylan:/usr/home/serg/Abk/mysql-5.1
mysql-test/r/variables.result:
Auto merged
sql/set_var.cc:
Auto merged
mysql-test/t/variables.test:
merged
bug#33382
mysql-test/r/variables.result:
typo in a test case
mysql-test/t/variables.test:
typo in a test case
sql/set_var.cc:
correct invalid values in SET GLOBAL var=DEFAULT
that the entire server uses their public ha_* counterparts instead,
since only then we can ensure proper tracing of these calls that
is necessary for Bug#12713.
A pre-requisite for Bug#12713 "Error in a stored function called from
a SELECT doesn't cause ROLLBACK of statem"
sql/ha_partition.cc:
Use ha_write_row, ha_update_row, ha_delete_row instead of now-private
write_row, update_row, delete_row.
In future ha_* calls will contain more than just a call to the binary
log, so it's essential they are used consistently everywhere in the server.
Disable the undesired effect of double binary logging of changes
to partitioned tables with tmp_disable_binlog.
sql/handler.h:
Make write_row, update_row, delete_row private. It's critical
that the entire code base uses ha_write_row, ha_update_row, ha_delete_row
instead -- in future, ha_* counterparts will have more common
functionality than just a call to the binary log.
sql/sql_select.cc:
Use ha_write_row, ha_update_row, ha_delete_row instead of
write_row, update_row, delete_row respectively.
The change affects the join execution code that works with an
intermediate internal temporary table. Do not disable binary logging,
since it's unnecessary - temporary tables are not replicated
by row level replication.
sql/sql_table.cc:
Use ha_write_row in copy_data_between_tables - the function
that writes data from the original table to a temporary copy
when executing ALTER TABLE. Do not disable binary logging
since temporary tables are not replicated by row level
replication anyway.
into dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl-merge
mysql-test/include/have_multi_ndb.inc:
Auto merged
mysql-test/lib/mtr_cases.pl:
Auto merged
mysql-test/lib/mtr_report.pl:
Auto merged
mysql-test/suite/binlog/r/binlog_stm_blackhole.result:
Auto merged
mysql-test/suite/rpl_ndb/r/rpl_row_basic_7ndb.result:
Auto merged
mysql-test/suite/rpl_ndb/t/disabled.def:
Auto merged
sql/ha_ndbcluster_binlog.cc:
Auto merged
sql/log.cc:
Auto merged
sql/log_event_old.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/rpl_rli.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/set_var.h:
Auto merged
sql/slave.cc:
Auto merged
sql/sql_binlog.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_string.cc:
Auto merged
mysql-test/Makefile.am:
SCCS merged
mysql-test/mysql-test-run.pl:
Manual merge.
mysql-test/suite/binlog/t/disabled.def:
Manual merge.
mysql-test/suite/rpl/r/rpl_row_tabledefs_2myisam.result:
Manual merge.
mysql-test/suite/rpl/r/rpl_row_tabledefs_3innodb.result:
Manual merge.
sql/log_event.cc:
Manual merge.
,