Bug N 15126 character_set_database is not replicated (LOAD DATA INFILE need it)
Positions of some binlog events were changed because of
additional logging of @@collation_database.
into pilot.blaudden:/home/msvensson/mysql/mysql-5.0-maint-bug20166
BitKeeper/etc/ignore:
auto-union
BitKeeper/deleted/.del-init_db.sql:
Auto merged
BitKeeper/deleted/.del-init_db.sql~a77d572c39d5a1f8:
Auto merged
client/mysqltest.c:
Auto merged
mysql-test/Makefile.am:
Auto merged
mysql-test/lib/mtr_process.pl:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
- Build lib/init-db.sql from the output of mysql_create_system_tables
- Remove mysql-test/init_db.sql and mysql-test/lib/init_db.sql
- Leave netware/init_db.sql until 5.0 where we should soon have possibility
to test with mysql-test-run.pl
BitKeeper/deleted/.del-init_db.sql:
Delete: mysql-test/init_db.sql
BitKeeper/deleted/.del-init_db.sql~a77d572c39d5a1f8:
Delete: mysql-test/lib/init_db.sql
BitKeeper/etc/ignore:
Added mysql-test/lib/init_db.sql to the ignore list
mysql-test/Makefile.am:
Build lib/init_db.sql from the output of mysql_create_system_tables
- Split out initial data in mysql_system_tables.sql to it's own file
- Use file from mysql_install_db and mysql-test-run
scripts/mysql_system_tables_fix.sql:
Rename: scripts/mysql_fix_privilege_tables.sql.in -> scripts/mysql_system_tables_fix.sql
mysql-test/mysql-test-run.pl:
- Add mysql_system_tables_data.sql as part of the bootstrap
- Remove the addition of pid to end of bootstrap.sql, now
to file used for bootstrap will be $opt_vardir/tmp/bootstrap.sql
- Improve error message descibing how to find cause of a
failed bootstrap
scripts/Makefile.am:
- Rename mysql_fix_privileg_tables.sql.in to mysql_system_tables_fix.sql
- Build mysql_fix_privilege_tables from mysql_system_tables.sql and
mysql_system_tables_fix.sql
- Add mysql_system_tables_fix.sql to EXTRA_DIST
scripts/mysql_install_db.sh:
- Use mysql_system_tables_data.sql file when bootstrapping
mysql, it will contain initial data for MysQL system tables
scripts/mysql_system_tables.sql:
Move initial data for system tables to it's own file
scripts/mysql_system_tables_data.sql:
Move initial data for system tables to it's own file
into mysql.com:/home/bar/mysql-5.0.b15126
sql/log_event.cc:
Auto merged
sql/log_event.h:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_load.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
mysql-test/r/mysqlbinlog.result:
After merge fix
mysql-test/t/mysqlbinlog.test:
After merge fix
This patch fixes problem that LOAD DATA could use different
character sets when loading files on master and on slave sides:
- Adding replication of thd->variables.collation_database
- Adding optional character set clause into LOAD DATA
Note, the second way, with explicit CHARACTER SET clause
should be the recommended way to load data using an alternative
character set.
The old way, using "SET @@character_set_database=xxx" should be
gradually depricated.
mysql-test/r/mysqlbinlog.result:
Adding test case
mysql-test/t/mysqlbinlog.test:
Adding test case
sql/log_event.cc:
Adding logging of thd->variables.collation_database
sql/log_event.h:
Adding declarations
sql/sql_class.cc:
Exchange character set is null by default
sql/sql_class.h:
Adding character set into sql_exchange
sql/sql_load.cc:
- Using exchange character set (if it was specified in LOAD DATA syntax)
- Using thd->variables.collation_database by default
sql/sql_yacc.yy:
Adding optional character set clause into LOAD DATA syntax
mysql-test/r/rpl_loaddata2.result:
New BitKeeper file ``mysql-test/r/rpl_loaddata2.result''
mysql-test/std_data/loaddata6.dat:
New BitKeeper file ``mysql-test/std_data/loaddata6.dat''
mysql-test/t/rpl_loaddata2.test:
New BitKeeper file ``mysql-test/t/rpl_loaddata2.test''
- Add error handling for waitpid returns -1 for "simple run of command"
mysql-test/lib/mtr_process.pl:
- Add error handling for waitpid returns -1
when a simple command is run.
- Add missing return
- Add mtr_errors where the program should never come
- Remove an else to improve program readability
- Change mtr_debug to mtr_warning for "Got EAGAIN from fork()..."
into mysql.com:/home/ram/work/b26038/b26038.5.0
sql/item_geofunc.cc:
Auto merged
sql/spatial.cc:
Auto merged
sql/spatial.h:
Auto merged
mysql-test/r/gis.result:
will be fixed after the merging.
mysql-test/t/gis.test:
merging, the result will be fixed in an after-merge fix CS
sql/item_geofunc.h:
merging
into pilot.blaudden:/home/msvensson/mysql/mysql-5.0-maint
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/t/rpl_temporary.test:
Auto merged
sql/mysqld.cc:
Auto merged
into mysql_cab_desk.:C:/source/c++/mysql-5.0-rpl
sql/item_func.cc:
Auto merged
sql/log.cc:
Auto merged
sql/sp_head.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_class.h:
Auto merged
into mysql.com:/home/gluh/MySQL/Merge/5.0-opt
sql/item.cc:
Auto merged
sql/item.h:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_insert.cc:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_prepare.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_union.cc:
Auto merged
sql/sql_update.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
Problem: DROP TRIGGER was not properly handled in combination
with slave filters, which made replication stop
Fix: loading table name before checking slave filters when
dropping a trigger.
mysql-test/r/rpl_replicate_do.result:
Adding test case
mysql-test/t/rpl_replicate_do.test:
Adding test case
sql/sql_parse.cc:
Loading table name when dropping a trigger
before checking slave filtering rules.
sql/sql_trigger.cc:
Making add_table_for_trigger() public
sql/sql_trigger.h:
Making add_table_for_trigger() public
- Use mysql_system_tables.sql to create MySQL system tables in
all places where we create them(mysql_install_db, mysql-test-run-pl
and mysql_fix_privilege_tables.sql)
BitKeeper/deleted/.del-init_db.sql:
Rename: mysql-test/init_db.sql -> BitKeeper/deleted/.del-init_db.sql
BitKeeper/deleted/.del-init_db.sql~a77d572c39d5a1f8:
Rename: mysql-test/lib/init_db.sql -> BitKeeper/deleted/.del-init_db.sql~a77d572c39d5a1f8
BitKeeper/deleted/.del-mysql_create_system_tables.sh:
Rename: scripts/mysql_create_system_tables.sh -> BitKeeper/deleted/.del-mysql_create_system_tables.sh
BitKeeper/etc/ignore:
Added scripts/mysql_fix_privilege_tables.sql to the ignore list
mysql-test/Makefile.am:
lib/init_db.sql has been removed
mysql-test/mysql-test-run.pl:
- Build var/tmp/bootstrap.sql from mysql_system_tables.sql,
mysql_test_data_timezone.sql and fill_help_tables.sql and use
it when bootsraping the system tables to use during test.
mysql-test/r/create.result:
Update result file
mysql-test/r/derived.result:
Update result file
mysql-test/r/join.result:
Update result file
mysql-test/r/mysql_upgrade.result:
Update result file
mysql-test/r/sp-security.result:
Update result file
mysql-test/t/create.test:
Add user mysqltest_1 before trying to connect as that user - no
anon users by default anymore
mysql-test/t/derived.test:
Add user mysqltest_1 before trying to connect as that user - no
anon users by default anymore
mysql-test/t/grant2.test:
Add anonymous users for part of thes that need it.
mysql-test/t/grant_cache.test:
Add anonymous users for part of thes that need it.
mysql-test/t/init_connect.test:
Add anonymous users for part of thes that need it.
mysql-test/t/lock_multi.test:
Add anonymous users for part of thes that need it.
mysql-test/t/ndb_basic.test:
Connect as "root", blank user will take currently logged in
username
mysql-test/t/ndb_index_ordered.test:
Connect as "root", blank user will take currently logged in
username
mysql-test/t/ndb_multi.test:
Connect as "root", blank user will take currently logged in
username
mysql-test/t/overflow.test:
Connect as root - no anonymous users by default anymore
mysql-test/t/rpl_temporary.test:
Add anonymous users for the test
mysql-test/t/xa.test:
Connect as "root", blank user wil pick currently logged in user
scripts/Makefile.am:
Remove mysql_create_system_tables.sh
Add mysql_system_tables.sql and mysql_test_data_timezone.sql
Build mysql_fix_privilege_tables.sql from mysql_system_tables.sql
and mysql_fix_privilege_tables.sql.in
scripts/mysql_fix_privilege_tables.sh:
Update message describing what the script does
scripts/mysql_fix_privilege_tables.sql.in:
Remove the part that creates system tables as that will be added to
mysql_fix_privileg_tables.sql from mysql_system_tables.sql
Change all comments to use #
scripts/mysql_install_db.sh:
Use mysql_system_tables.sql to create the MySQL system tables
Update comments and indentation
Add more descriptive comments about --windows switch
Reduce number of hardcoded names for the SQL files the script
looks for
mysql-test/include/add_anonymous_users.inc:
New BitKeeper file ``mysql-test/include/add_anonymous_users.inc''
mysql-test/include/delete_anonymous_users.inc:
New BitKeeper file ``mysql-test/include/delete_anonymous_users.inc''
scripts/mysql_system_tables.sql:
New BitKeeper file ``scripts/mysql_system_tables.sql''
scripts/mysql_test_data_timezone.sql:
New BitKeeper file ``scripts/mysql_test_data_timezone.sql''
into mysql.com:/nfsdisk1/lars/MERGE/mysql-5.0-merge
sql/field.cc:
Auto merged
sql/item_func.cc:
Auto merged
sql/log.cc:
Auto merged
sql/log_event.cc:
Auto merged
sql/log_event.h:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/slave.cc:
Auto merged
sql/sql_insert.cc:
Auto merged
into mysql.com:/nfsdisk1/lars/MERGE/mysql-5.0-merge
sql/field.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/slave.cc:
Auto merged
sql/sql_insert.cc:
Auto merged
mysql-test/t/disabled.def:
Manual merge
Log messages from shell-scripts were put to var/log/<test id>.log
file. Now, this file is used by mysql-test-run.pl. So, move log
messages to var/log/<test id>.script.log.
mysql-test/t/kill_n_check.sh:
Log messages from shell-scripts were put to var/log/<test id>.log
file. Now, this file is used by mysql-test-run.pl. So, move log
messages to var/log/<test id>.script.log.
mysql-test/t/log.sh:
Log messages from shell-scripts were put to var/log/<test id>.log
file. Now, this file is used by mysql-test-run.pl. So, move log
messages to var/log/<test id>.script.log.
mysql-test/t/wait_for_process.sh:
Log messages from shell-scripts were put to var/log/<test id>.log
file. Now, this file is used by mysql-test-run.pl. So, move log
messages to var/log/<test id>.script.log.
mysql-test/t/wait_for_socket.sh:
Log messages from shell-scripts were put to var/log/<test id>.log
file. Now, this file is used by mysql-test-run.pl. So, move log
messages to var/log/<test id>.script.log.
Triggers in SBR mode."
BUG#14914 "SP: Uses of session variables in routines are not always
replicated"
BUG#25167 "Dupl. usage of user-variables in trigger/function is not
replicated correctly"
User-defined variables used inside of stored functions/triggers in
statements which did not update tables directly were not replicated.
We also had problems with replication of user-defined variables which
were used in triggers (or stored functions called from table-updating
statements) more than once.
This patch addresses the first issue by enabling logging of all
references to user-defined variables in triggers/stored functions
and not only references from table-updating statements.
The second issue stemmed from the fact that for user-defined
variables used from triggers or stored functions called from
table-updating statements we were writing binlog events for each
reference instead of only one event for the first reference.
This problem is already solved for stored functions called from
non-updating statements with help of "event unioning" mechanism.
So the patch simply extends this mechanism to the case affected.
It also fixes small problem in this mechanism which caused wrong
logging of references to user-variables in cases when non-updating
statement called several stored functions which used the same
variable and some of these function calls were omitted from binlog
as they were not updating any tables.
mysql-test/r/rpl_user_variables.result:
BUG#20141 - User-defined variables are not replicated properly for SF/Triggers in SBR mode.
This patch adds the correct results for execution of the added test procedures to the
rpl_user_variables test.
mysql-test/t/rpl_user_variables.test:
BUG#20141 - User-defined variables are not replicated properly for SF/Triggers in SBR mode.
This patch adds additional tests to the rpl_user_variables test that test many of the
different ways user-defined variables can be required to be replicated.
sql/item_func.cc:
BUG#20141 - User-defined variables are not replicated properly for SF/Triggers in SBR mode.
To properly log accesses to user-defined variables from stored functions/triggers,
the get_var_with_binlog() method needs to log references to such variables even from
non-table-updating statements within them.
sql/log.cc:
BUG#20141 - User-defined variables are not replicated properly for SF/Triggers in SBR mode.
This patch modifies the start_union_events method to accept the query id from a parameter.
This allows callers to set the query_id to the id of the sub statement such as a trigger
or stored function. Which permits the code to identify when a user defined variable has
been used by the statement and this already present in THD::user_var_event.
Note:
The changes to sql_class.cc, sp_head.cc, and log.cc are designed to allow the proper
replication of access to user-defined variables under a special test case (the last case
shown in rpl_user_variables.test).
sql/sp_head.cc:
BUG#20141 - User-defined variables are not replicated properly for SF/Triggers in SBR mode.
This patch modifies the code to allow for cases where events for function calls have
a separate union for each event and thus cannot use the query_id of the caller as the
start of the union. Thus, we use an artifically created query_id to set the start of
the events.
Note:
The changes to sql_class.cc, sp_head.cc, and log.cc are designed to allow the proper
replication of access to user-defined variables under a special test case (the last case
shown in rpl_user_variables.test).
sql/sql_class.cc:
BUG#20141 - User-defined variables are not replicated properly for SF/Triggers in SBR mode.
This patch adds the query_id parameter to the calls to mysql_bin_log.start_union_events().
Note:
The changes to sql_class.cc, sp_head.cc, and log.cc are designed to allow the proper
replication of access to user-defined variables under a special test case (the last case
shown in rpl_user_variables.test).
sql/sql_class.h:
BUG#20141 - User-defined variables are not replicated properly for SF/Triggers in SBR mode.
This patch adds the query_id parameter to the calls to mysql_bin_log.start_union_events().
which accidentally got broken during the merge
on 16-Feb-2007.
mysql-test/r/view.result:
Updated result file.
mysql-test/t/view.test:
Fix test for views with national characters,
which accidentally got broken during the merge
on 16-Feb-2007.
Now view.test is in UTF8 character set,
so SET NAMES is required.
Fix timeouts. Only test suite is changed.
mysql-test/mysql-test-run.pl:
Decrease MySQL server shutdown delay.
Trasactional storage engines are not used here,
so it should be enough.
mysql-test/t/im_daemon_life_cycle.imtest:
Increase wait-timeout.
When handling DELETE ... FROM if there is no
condition it is internally transformed to
TRUNCATE for more efficient execution by the
storage handler.
The check for validity of the optional ORDER BY
clause is done after the check for the above
optimization and will not be performed if the
optimization can be applied.
Moved the validity check for ORDER BY before
the optimization so it performed regardless of
the optimization.
mysql-test/r/delete.result:
Bug #26186: test case
mysql-test/t/delete.test:
Bug #26186: test case
sql/sql_delete.cc:
Bug #26186: do validity check of the ORDER BY
before deciding to skip it.
into pilot.blaudden:/home/msvensson/mysql/mysql-5.0-maint
mysql-test/t/mysql.test:
Auto merged
mysql-test/t/mysqlbinlog.test:
Auto merged
sql/share/errmsg.txt:
Auto merged
extra/comp_err.c:
Manual merge
"INSERT... ON DUPLICATE KEY UPDATE skips auto_increment values"
didn't make it into 5.0.36 and 5.1.16,
so we need to adjust the bug-detection-based-on-version-number code.
Because the rpl tree has a too old version, rpl_insert_id cannot pass,
so I disable it (like is already the case in 5.1-rpl for the same reason),
and the repl team will re-enable it when they merge 5.0 and 5.1 into
their trees (thus getting the right version number).
mysql-test/t/disabled.def:
rpl_insert_id tests statement-based replication of INSERT ON
DUPLICATE KEY UPDATE. This type of INSERT had BUG#24432, which is
fixed in 5.0.38; we made the slave detect if it is connected to a
<5.0.38 master and if so refuse to replicate.
The problem is that this 5.0-rpl tree, even though it will produce
the 5.0.38 release, still has a 5.0.36 version in configure.in.
Thus rpl_insert_id fails. So I disable it. As soon as the 5.0-rpl
tree gets the changesets from the main 5.0, its version will change
to 5.0.38 and so the repl team will re-enable the test.
sql/slave.cc:
the fix for BUG#24432 didn't make it into 5.0.36 and 5.1.16,
so we need to adjust the bug-detection-based-on-version-number code.
- Return empty string also if count is unsigned and value is 0
mysql-test/r/func_str.result:
Update test result
mysql-test/t/func_str.test:
Add test case for using an unsigned value as count parameter
for REPEAT
sql/item_strfunc.cc:
The repeat function should return the emptystring if
count is unsigned and equal to zero or
count is signed and less than or equal to zero
into mysql.com:/home/my/mysql-5.0
mysys/my_thr_init.c:
Auto merged
ndb/include/util/OutputStream.hpp:
Auto merged
ndb/src/common/debugger/EventLogger.cpp:
Auto merged
ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp:
Auto merged
ndb/src/kernel/blocks/dbdih/Dbdih.hpp:
Auto merged
ndb/src/kernel/blocks/dblqh/Dblqh.hpp:
Auto merged
ndb/src/kernel/blocks/dblqh/DblqhMain.cpp:
Auto merged
ndb/src/kernel/blocks/dbtc/Dbtc.hpp:
Auto merged
ndb/src/kernel/blocks/dbtc/DbtcMain.cpp:
Auto merged
ndb/src/kernel/blocks/dbtup/Dbtup.hpp:
Auto merged
ndb/src/kernel/blocks/ndbcntr/Ndbcntr.hpp:
Auto merged
ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp:
Auto merged
ndb/src/kernel/blocks/qmgr/Qmgr.hpp:
Auto merged
ndb/src/kernel/blocks/qmgr/QmgrMain.cpp:
Auto merged
ndb/src/mgmapi/mgmapi.cpp:
Auto merged
ndb/src/mgmsrv/InitConfigFileParser.cpp:
Auto merged
ndb/src/mgmsrv/MgmtSrvr.cpp:
Auto merged
ndb/src/mgmsrv/MgmtSrvr.hpp:
Auto merged
ndb/src/mgmsrv/Services.cpp:
Auto merged
ndb/src/ndbapi/ClusterMgr.hpp:
Auto merged
ndb/src/ndbapi/SignalSender.cpp:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
sql/mysqld.cc:
Auto merged
it doesn't select.
This bug was fixed along with bug #16861: User defined variable can
have a wrong value if a tmp table was used.
There the fix consisted of Item_func_set_user_var overloading the method
Item::save_in_field. Consider the query from the test case:
INSERT INTO foo( bar, baz )
SELECT
bar,
@newBaz := 1 + baz
FROM
foo
WHERE
quux <= 0.1;
Here the assignment expression '@newBaz := 1 + baz' is represented by an
Item_func_set_user_var. Its member method save_in_field, which writes the
value of this assignment into the result field, writes the val_xxx() value,
which is not updated at this point. In the fix introduced by the patch,
the save_in_field method reads the actual variable value instead.
See also comment for
ChangeSet@1.2368.1.3, 2007-01-09 23:24:56+03:00, evgen@moonbone.local +4 -0
and comment for
Item_func_set_user_var::save_in_field (item_func.cc)
mysql-test/r/update.result:
BUG#24010
The correct, and expected, result
mysql-test/t/update.test:
BUG#24010
The test case for this bug. When the bug is active, the INSERT ... SELECT
statement will try to insert the values <1, 2> which gives an error
into moonbone.local:/mnt/gentoo64/work/23800-bug1-5.0-opt-mysql
sql/item.cc:
Auto merged
sql/item.h:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/sql_select.cc:
Auto merged
created for sorting.
Any outer reference in a subquery was represented by an Item_field object.
If the outer select employs a temporary table all such fields should be
replaced with fields from that temporary table in order to point to the
actual data. This replacement wasn't done and that resulted in a wrong
subquery evaluation and a wrong result of the whole query.
Now any outer field is represented by two objects - Item_field placed in the
outer select and Item_outer_ref in the subquery. Item_field object is
processed as a normal field and the reference to it is saved in the
ref_pointer_array. Thus the Item_outer_ref is always references the correct
field. The original field is substituted for a reference in the
Item_field::fix_outer_field() function.
New function called fix_inner_refs() is added to fix fields referenced from
inner selects and to fix references (Item_ref objects) to these fields.
The new Item_outer_ref class is a descendant of the Item_direct_ref class.
It additionally stores a reference to the original field and designed to
behave more like a field.
sql/item.cc:
Bug#23800: Correlated sub query returning incorrect results when operated upon.
Now all outer fields are substituted with references to them (Item_outer_ref objects)
in the Item_field::fix_outer_field() function.
The original field is saved in the Item_outer_ref object.
sql/item.h:
Bug#23800: Correlated sub query returning incorrect results when operated upon.
Added the Item_outer_ref class.
sql/mysql_priv.h:
Bug#23800: Correlated sub query returning incorrect results when operated upon.
Added the fix_inner_refs() function prototype.
sql/sql_delete.cc:
Bug#23800: Correlated sub query returning incorrect results when operated upon.
Added call to the fix_inner_refs() function.
sql/sql_select.cc:
Bug#23800: Correlated sub query returning incorrect results when operated upon.
The new function called fix_inner_refs() is added.
mysql-test/r/subselect.result:
Added a test case for bug#23800: Correlated sub query returning incorrect results when
operated upon.
sql/sql_update.cc:
Bug#23800: Correlated sub query returning incorrect results when operated upon.
Added call to the fix_inner_refs() function.
mysql-test/r/subselect3.result:
Corrected test cases result after fix for bug#23800: Correlated sub query returning
incorrect results when operated upon.
mysql-test/t/subselect.test:
Added a test case for bug#23800: Correlated sub query returning incorrect results when
operated upon.
sql/sql_lex.cc:
Bug#23800: Correlated sub query returning incorrect results when operated upon.
Added cleanup of the inner_refs_list.
sql/sql_lex.h:
Bug#23800: Correlated sub query returning incorrect results when operated upon.
The inner_refs_list is added to the SELECT_LEX class.