Parse column names (and not variables) only in UPDATE ... SET ...
mysql-test/r/sp-error.result:
New test case for BUG#2272
mysql-test/t/sp-error.test:
New test case for BUG#2272
sql/sql_yacc.yy:
"UPDATE table SET id = val" should only recognize column names, and not
local SP variables for 'id'.
(Also removed "as locator" syntax which is not supported.)
allow delete table by alias in multi-delete statement
include/mysqld_error.h:
new error message about non-updateable table
mysql-test/r/derived.result:
test of multi-update and multi-delete
mysql-test/t/derived.test:
test of multi-update and multi-delete
sql/share/czech/errmsg.txt:
new error message about non-updateable table
sql/share/danish/errmsg.txt:
new error message about non-updateable table
sql/share/dutch/errmsg.txt:
new error message about non-updateable table
sql/share/english/errmsg.txt:
new error message about non-updateable table
sql/share/estonian/errmsg.txt:
new error message about non-updateable table
sql/share/french/errmsg.txt:
new error message about non-updateable table
sql/share/german/errmsg.txt:
new error message about non-updateable table
sql/share/greek/errmsg.txt:
new error message about non-updateable table
sql/share/hungarian/errmsg.txt:
new error message about non-updateable table
sql/share/italian/errmsg.txt:
new error message about non-updateable table
sql/share/japanese/errmsg.txt:
new error message about non-updateable table
sql/share/korean/errmsg.txt:
new error message about non-updateable table
sql/share/norwegian-ny/errmsg.txt:
new error message about non-updateable table
sql/share/norwegian/errmsg.txt:
new error message about non-updateable table
sql/share/polish/errmsg.txt:
new error message about non-updateable table
sql/share/portuguese/errmsg.txt:
new error message about non-updateable table
sql/share/romanian/errmsg.txt:
new error message about non-updateable table
sql/share/russian/errmsg.txt:
new error message about non-updateable table
sql/share/serbian/errmsg.txt:
new error message about non-updateable table
sql/share/slovak/errmsg.txt:
new error message about non-updateable table
sql/share/spanish/errmsg.txt:
new error message about non-updateable table
sql/share/swedish/errmsg.txt:
new error message about non-updateable table
sql/share/ukrainian/errmsg.txt:
new error message about non-updateable table
sql/sql_parse.cc:
allow delete table by alias
separate error message for try to delete derived table
sql/sql_update.cc:
test "is updated table derived?"
sql/sql_yacc.yy:
error message in case of try to update derived table
(BUG#2089)
mysql-test/r/subselect_innodb.result:
correct results
sql/mysql_priv.h:
new parameter for setup_tables()
sql/sql_base.cc:
new parameter for setup_tables() added to avoid dropping query_id of fields during reinitialization subquery
sql/sql_class.cc:
layout fixed
sql/sql_help.cc:
new parameter for setup_tables()
sql/sql_insert.cc:
new parameter for setup_tables()
sql/sql_lex.cc:
removed incorrect code
sql/sql_load.cc:
new parameter for setup_tables()
sql/sql_olap.cc:
new parameter for setup_tables()
sql/sql_prepare.cc:
new parameter for setup_tables()
sql/sql_select.cc:
new parameter for setup_tables()
sql/sql_update.cc:
new parameter for setup_tables()
Added support for lower_case_table_names=2, which is to be used on case insensitive file systems.
This tells MySQL to preserve the used case of filenames and database names to make it esier to move files between cases sensitive can case insensitive file systems (like Windows and Linux)
client/mysqltest.c:
Indentation cleanup
include/myisam.h:
Made some pointers 'const'
mysql-test/mysql-test-run.sh:
Portability fix for OSX
sql/filesort.cc:
Safety fix (not needed for current code but needed for 5.0)
sql/ha_berkeley.cc:
More debugging
Changed 'create' to return error number
sql/ha_berkeley.h:
Added HA_FILE_BASED
sql/ha_innodb.cc:
Added missing DBUG_RETURN
sql/ha_isam.cc:
Changed create to return error number
sql/ha_isam.h:
Added HA_FILE_BASED
sql/ha_isammrg.h:
Added HA_FILE_BASED
sql/ha_myisam.cc:
Changed create to return error number
sql/ha_myisam.h:
Added HA_FILE_BASED
sql/ha_myisammrg.cc:
Changed create to return error number
sql/ha_myisammrg.h:
Added HA_FILE_BASED
sql/handler.cc:
Ensure that table engines gets table names in lower case even if we are using lower_case_table_names
Removed test for DB_TYPE_INNODB by ensuring that create method returns error number.
sql/handler.h:
Added HA_FILE_BASED
Made some struct entries 'const'
Added 'alias' for create to be able to create tables in mixed case on case insensitive file systems
sql/mysql_priv.h:
Support for lower_case_table_names=2
sql/mysqld.cc:
Support for lower_case_table_names=2
Moved test of case insenstive file system after all mutex are created
sql/set_var.cc:
Support for lower_case_table_names=2
sql/sql_class.h:
Indentation change
sql/sql_db.cc:
Support for lower_case_table_names=2
sql/sql_insert.cc:
Indentation change
sql/sql_parse.cc:
Support for lower_case_table_names=2
sql/sql_rename.cc:
Support for lower_case_table_names=2
Added missing 'unpack_filename' to RENAME which may fix a bug in RENAME TABLE on windows
sql/sql_show.cc:
If lower_case_table_name=2 is given, show original case in SHOW CREATE TABLE
sql/sql_table.cc:
Support for lower_case_table_names=2 for DROP TABLE, RENAME TABLE, ALTER TABLE and CREATE TABLE
Portability fixes
mysql-test/r/rpl_until.result:
Portability fix
mysql-test/t/rpl_until.test:
Portability fix
sql/slave.cc:
Write UNTIL position to logs (for debugging)
sql/slave.h:
Write UNTIL position to logs (for debugging)
sql/sql_acl.cc:
Fixed bug in table level privilege GRANT handling. (Bug #2178)
install-test-db did not substiture the path to charsets file, so tests failed with non-default collation incompiled, for example --with-collation=latin1_german1_ci
mysqld.cc:
better error messaging
sql/mysqld.cc:
better error messaging
mysql-test/install_test_db.sh:
install-test-db did not substiture the path to charsets file, so tests failed with non-default collation incompiled, for example --with-collation=latin1_german1_ci
BitKeeper/etc/ignore:
auto-union
mysql-test/r/bdb.result:
Auto merged
mysql-test/r/func_group.result:
Auto merged
mysql-test/r/func_test.result:
Auto merged
mysql-test/r/heap_btree.result:
Auto merged
mysql-test/r/index_merge.result:
Auto merged
mysql-test/r/innodb.result:
Auto merged
mysql-test/r/join_outer.result:
Auto merged
mysql-test/r/range.result:
Auto merged
mysql-test/r/select.result:
Auto merged
mysql-test/r/subselect.result:
Auto merged
mysql-test/t/range.test:
Auto merged
sql/item.cc:
Auto merged
sql/item.h:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_func.h:
Auto merged
sql/item_strfunc.h:
Auto merged
sql/sql_list.h:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_select.h:
Auto merged
sql/opt_range.cc:
Merge
mysql-test/r/func_str.result:
Test for the bug #2182: lpad returns incorrect result
mysql-test/t/func_str.test:
Test for the bug #2182: lpad returns incorrect result
sql/item_strfunc.cc:
Fix for the bug #2182: lpad returns incorrect result
client/mysqltest.c:
Auto merged
sql/filesort.cc:
Auto merged
sql/item.h:
Auto merged
sql/item_func.cc:
Auto merged
sql/log_event.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_prepare.cc:
Auto merged
Portability fixes
mysql-test/r/rpl_relayrotate.result:
Portability fix
mysql-test/t/rpl_relayrotate.test:
Portability fix.
sql/log_event.cc:
Removed ++ from uint4korr() becasue this caused side effects
sql/uniques.cc:
Removed not used argument to get_merge_buffers_cost()
Removed wrong cast which caused compiler failures
Cast arguments to ceil() to double (portability problem)
Fixed bug in ORDER BY on a small column (Bug #2147)
Fixed error from pthread_mutex_destroy() when one had wrong errmsg file
client/mysqltest.c:
Added handling of error on query send
(Needed for init_connection.test)
mysql-test/mysql-test-run.sh:
Added tracing of mysqldump and mysqlbinlog
mysql-test/r/init_connect.result:
Updated tests
mysql-test/r/order_by.result:
Added test for bug filesort bug
mysql-test/t/init_connect-master.opt:
Added proper quoting (for Solaris and OSF)
mysql-test/t/init_connect.test:
Portability fix
mysql-test/t/order_by.test:
Added test for bug #2147 (bug in filesort)
sql/filesort.cc:
Fixed bug in filesort (Bug #2147)
sql/item.h:
Clear 'fixed' on cleanup (For prepared statements)
sql/item_func.cc:
Protect mutex destroy.
(Fixed error from pthread_mutex_destroy() when one had wrong errmsg file)
sql/log_event.cc:
Portability fix
sql/sql_class.h:
Fixed compiler warning
sql/sql_prepare.cc:
Portability fix. (Some compilers doesn't support jump over variables declared in for())
Some code cleanup
mysql-test/r/sp.result:
Update results after adding quotes around function/procedure names
sql/sp.cc:
Moved DBUG_ENTER after all variable declarations
Eliminated some variables.
Added more DBUG_ENTER commands.
Added memory allocation checking in create_string()
Fixed memory leak in sp_show_create_function()
Removed usage of sprintf
sql/sql_parse.cc:
Simple cleanup
Fixed memory leaks for mailformed SP definitions
into mysql.com:/home/mysql_src/mysql-5.0-new-binlog-format
sql/ha_innodb.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_class.h:
Auto merged
For previous commit I had run only rpl* tests, here the other ones had a
few surprises. Latest status:
- all tests pass
- all replication tests pass with Valgrind
This is the final-final commit & push.
Doc remains.
client/mysqlbinlog.cc:
Making remote mysqlbinlog work with the new format of 5.0.0, and still be
able to talk to older servers.
This is a quickfix, but now mysqlbinlog.test passes (mysqlbinlog seems to
work in Valgrind, too).
mysql-test/r/drop_temp_table.result:
result update
mysql-test/r/insert_select.result:
result update
mysql-test/r/mix_innodb_myisam_binlog.result:
result update
mysql-test/r/mysqlbinlog.result:
result update
mysql-test/t/mix_innodb_myisam_binlog.test:
position update
mysql-test/t/mysqlbinlog.test:
position update
sql/log_event.cc:
a comment (noticed the problem by watching the results of
mix_innodb_myisam_binlog.test)
into mysql.com:/home/mysql_src/mysql-5.0-new-binlog-format
include/my_sys.h:
Auto merged
mysql-test/r/rpl_max_relay_size.result:
Auto merged
mysql-test/r/rpl_rotate_logs.result:
Auto merged
mysql-test/r/rpl_trunc_binlog.result:
Auto merged
mysql-test/t/rpl_log_pos.test:
Auto merged
mysql-test/t/rpl_max_relay_size.test:
Auto merged
mysql-test/t/rpl_rotate_logs.test:
Auto merged
mysql-test/t/rpl_trunc_binlog.test:
Auto merged
sql/ha_innodb.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_class.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_repl.cc:
Auto merged
into mysql.com:/dbdata/psergey/mysql-5.0-imerge-unique
BitKeeper/etc/logging_ok:
auto-union
include/my_global.h:
Auto merged
sql/filesort.cc:
Auto merged
sql/ha_innodb.cc:
Auto merged
sql/handler.h:
Auto merged
sql/item_create.cc:
Auto merged
sql/item_func.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/opt_range.cc:
Auto merged
sql/records.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_union.cc:
Auto merged
sql/sql_update.cc:
Auto merged
sql/uniques.cc:
Auto merged
* A more dynamic binlog format which allows small changes (1064)
* Log session variables in Query_log_event (1063)
It contains a few bugfixes (which I made when running the testsuite).
I carefully updated the results of the testsuite (i.e. I checked for every one,
if the difference between .reject and .result could be explained).
Apparently mysql-test-run --manager is broken in 4.1 and 5.0 currently,
so I could neither run the few tests which require --manager, nor check
that they pass nor modify their .result. But for builds, we don't run
with --manager.
Apart from --manager, the full testsuite passes, with Valgrind too (no errors).
I'm going to push in the next minutes. Remains: update the manual.
Note: by chance I saw that (in 4.1, in 5.0) rpl_get_lock fails when run alone;
this is normal at it makes assumptions on thread ids. I will fix this one day
in 4.1.
mysql-test/r/rpl000015.result:
result update
mysql-test/r/rpl_change_master.result:
result update
mysql-test/r/rpl_error_ignored_table.result:
result update
mysql-test/r/rpl_flush_log_loop.result:
result update
mysql-test/r/rpl_flush_tables.result:
result update
mysql-test/r/rpl_loaddata.result:
result update
mysql-test/r/rpl_loaddata_rule_m.result:
result update
mysql-test/r/rpl_loaddata_rule_s.result:
result update
mysql-test/r/rpl_log.result:
result update
mysql-test/r/rpl_log_pos.result:
result update
mysql-test/r/rpl_max_relay_size.result:
result update
mysql-test/r/rpl_relayrotate.result:
result update
mysql-test/r/rpl_replicate_do.result:
result update
mysql-test/r/rpl_reset_slave.result:
result update
mysql-test/r/rpl_rotate_logs.result:
result update
mysql-test/r/rpl_session_var.result:
result update
mysql-test/r/rpl_temporary.result:
result update
mysql-test/r/rpl_trunc_binlog.result:
result update
mysql-test/r/rpl_until.result:
result update
mysql-test/r/rpl_user_variables.result:
result update
mysql-test/t/rpl000010-slave.opt:
need to wait 2 events, because now we receive a Format_desc on top of the Rotate,
when replication starts.
mysql-test/t/rpl000015.test:
relay log information is not repeatable in general (if a reconnection
happens because --sleep=10 for example), so we hide these columns.
mysql-test/t/rpl_change_master.test:
relay log information is not repeatable in general (if a reconnection
happens because --sleep=10 for example), so we hide these columns.
mysql-test/t/rpl_empty_master_crash.test:
relay log information is not repeatable in general (if a reconnection
happens because --sleep=10 for example), so we hide these columns.
mysql-test/t/rpl_error_ignored_table.test:
relay log information is not repeatable in general (if a reconnection
happens because --sleep=10 for example), so we hide these columns.
mysql-test/t/rpl_flush_log_loop.test:
relay log information is not repeatable in general (if a reconnection
happens because --sleep=10 for example), so we hide these columns.
mysql-test/t/rpl_loaddata.test:
position update
mysql-test/t/rpl_loaddata_rule_m.test:
position update
mysql-test/t/rpl_loaddata_rule_s.test:
position update
mysql-test/t/rpl_log.test:
position update
mysql-test/t/rpl_log_pos.test:
position update
mysql-test/t/rpl_max_relay_size.test:
relay log information is not repeatable in general (if a reconnection
happens because --sleep=10 for example), so we hide these columns.
mysql-test/t/rpl_openssl.test:
relay log information is not repeatable in general (if a reconnection
happens because --sleep=10 for example), so we hide these columns.
mysql-test/t/rpl_redirect.test:
relay log information is not repeatable in general (if a reconnection
happens because --sleep=10 for example), so we hide these columns.
mysql-test/t/rpl_relayrotate-slave.opt:
better options for this test
mysql-test/t/rpl_relayrotate.test:
using max() is better for debugging (it shows at which place the slave
SQL thread resumed)
mysql-test/t/rpl_replicate_do.test:
relay log information is not repeatable in general (if a reconnection
happens because --sleep=10 for example), so we hide these columns.
mysql-test/t/rpl_reset_slave.test:
relay log information is not repeatable in general (if a reconnection
happens because --sleep=10 for example), so we hide these columns.
mysql-test/t/rpl_rotate_logs.test:
relay log information is not repeatable in general (if a reconnection
happens because --sleep=10 for example), so we hide these columns.
mysql-test/t/rpl_session_var.test:
100 because password() is longer than 10 chars
mysql-test/t/rpl_trunc_binlog.test:
relay log information is not repeatable in general (if a reconnection
happens because --sleep=10 for example), so we hide these columns.
mysql-test/t/rpl_until.test:
position update
mysql-test/t/rpl_user_variables.test:
position update
sql/log.cc:
Ensure that the Format_desc propagated on next relay logs does not trigger
undue actions (like incrementing some positions or clearing some files).
sql/log_event.cc:
* When the slave SQL thread finds a Rotate/Format_desc/Stop in the middle of
a transaction (then these were written by the slave itself to its relay log),
it should not increment rli->group* variables, but only rli->event* ones.
* When the slave SQL thread finds a Format_desc not to be ignored (not
the same server id as the slave's), if it has log_pos==0 it must not trigger
"unfinished transaction in master's binlog" (log_pos==0 is always a marker
in the relay log to mean "this event was not at this place in the master's
binlog": it's for fake Rotate events, and for Format_description events which the master had
to send us for replication to start).
* In the Query_log_event on disk, catalog is now terminated by '\0'.
* thd->catalog must be set to 0 when some exec_event() terminate (otherwise
double free).
sql/slave.cc:
* Fixes for a few bugs when ignoring events in the slave SQL thread:
- do not decrement rli->slave_skip_counter if the event is an event
related to the binlog or relay log itself (FORMAT_DESCRIPTION,
ROTATE, STOP) because these events should never be skipped (or the slave
will be confused). Usually the user wants to skip a query, not a Rotate...
- when we (re)connect to the master, we must free description_event_for_queue
(otherwise memory leak when we reconnect).
* Changed a bit the code where we change description_event_for_queue,
to make it look "safer".
* Moved 'created=0' to log.cc where it is safer.
* When the slave SQL thread finds a Rotate/Format_desc/Stop in the middle of
a transaction (then these were written by the slave itself to its relay log),
it should not increment rli->group* variables, but only rli->event* ones.
sql/sql_class.h:
a warning comment
sql/sql_repl.cc:
A mistake: I had passed a char* instead of char**
BitKeeper/etc/logging_ok:
auto-union
client/mysql.cc:
Auto merged
configure.in:
Auto merged
client/mysqltest.c:
Auto merged
include/my_global.h:
Auto merged
include/my_pthread.h:
Auto merged
include/mysql_com.h:
Auto merged
libmysql/libmysql.c:
Auto merged
libmysqld/lib_sql.cc:
Auto merged
myisam/mi_check.c:
Auto merged
mysql-test/r/insert.result:
Auto merged
mysql-test/r/join_outer.result:
Auto merged
mysql-test/r/multi_update.result:
Auto merged
mysql-test/r/query_cache.result:
Auto merged
mysql-test/r/symlink.result:
Auto merged
mysql-test/t/func_time.test:
Auto merged
mysql-test/t/insert.test:
Auto merged
mysql-test/t/multi_update.test:
Auto merged
mysql-test/t/query_cache.test:
Auto merged
sql/ha_innodb.cc:
Auto merged
sql/item.cc:
Auto merged
sql/item.h:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_func.h:
Auto merged
sql/item_subselect.cc:
Auto merged
sql/item_sum.cc:
Auto merged
sql/item_sum.h:
Auto merged
sql/item_timefunc.cc:
Auto merged
sql/lex.h:
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/opt_range.cc:
Auto merged
sql/records.cc:
Auto merged
sql/repl_failsafe.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/slave.cc:
Auto merged
sql/sql_acl.h:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_cache.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_db.cc:
Auto merged
sql/sql_delete.cc:
Auto merged
sql/sql_insert.cc:
Auto merged
sql/sql_load.cc:
Auto merged
sql/sql_prepare.cc:
Auto merged
sql/sql_rename.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_show.cc:
Auto merged
sql/sql_update.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
sql/table.h:
Auto merged
sql/share/czech/errmsg.txt:
Auto merged
sql/share/romanian/errmsg.txt:
Auto merged
sql/filesort.cc:
Snippet of filesort() code moved to function reuse_freed_buff() -
change buffpek pointers to use buff from freed BUFFPEK
Used in filesort() and merge_walk().
sql/item_sum.cc:
Implementation of Item_sum_sum_distinct - SUM(DISTINCT) item,
which uses Unique to resolve duplicates
sql/item_sum.h:
New sum Item added - Item_sum_sum_distinct - for SUM(DISTINCT) function
sql/sql_class.h:
added walk() and reset() methods to Unique, used in Item_sum_sum_distinct.
sql/sql_sort.h:
declaration for reuse_freed_buff() to be able to use it in uniques.cc
sql/sql_yacc.yy:
parser extended to handle MIN(DISTICNT), MAX(DISTINCT), SUM(DISTINCT)
sql/uniques.cc:
Implementation for Unique::reset(), Unique::walk() as well as for merge_walk()
algorithm.
"USE db" affected the character set of further CREATE DATABASEs,
which should have not happened.
mysys/charset2html.c:
It's earier to operate hex values when editing charset configuration file
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted
Build-tools/Bootstrap:
Auto merged
client/mysql.cc:
Auto merged
mysql-test/r/auto_increment.result:
Auto merged
mysql-test/t/auto_increment.test:
Auto merged
mysql-test/t/type_decimal.test:
Auto merged
sql/opt_range.cc:
Auto merged
sql/share/czech/errmsg.txt:
Auto merged
sql/share/english/errmsg.txt:
Auto merged
sql/share/estonian/errmsg.txt:
Auto merged
sql/slave.cc:
Auto merged
sql/share/french/errmsg.txt:
Auto merged
sql/share/greek/errmsg.txt:
Auto merged
sql/share/hungarian/errmsg.txt:
Auto merged
sql/share/japanese/errmsg.txt:
Auto merged
sql/share/korean/errmsg.txt:
Auto merged
sql/share/norwegian-ny/errmsg.txt:
Auto merged
sql/share/norwegian/errmsg.txt:
Auto merged
sql/share/polish/errmsg.txt:
Auto merged
sql/share/romanian/errmsg.txt:
Auto merged
sql/share/slovak/errmsg.txt:
Auto merged
client/mysqldump.c:
Auto merged
client/mysqltest.c:
Auto merged
include/my_global.h:
Auto merged
libmysqld/lib_sql.cc:
Auto merged
mysql-test/r/warnings.result:
Auto merged
mysql-test/t/type_enum.test:
Auto merged
sql/field.cc:
Auto merged
sql/lex.h:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_show.cc:
Auto merged
sql/sql_table.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
sql/table.cc:
Auto merged
Cleaned up embedded library access and query cache handling
Changed min stack size to 128K (to allow longer MyISAM keys)
Fixed wrong priority for XOR (should be less than NEG to get -1^1 to work)
client/mysqldump.c:
Fixed bugs found after merge
include/mysql_embed.h:
Disable query cache when using embedded version
myisam/mi_check.c:
Removed not used variable
mysql-test/r/auto_increment.result:
Fixed bugs found after merge
mysql-test/r/bdb.result:
Fixed bugs found after merge
mysql-test/r/func_group.result:
Fixed bugs found after merge
mysql-test/r/func_str.result:
Fixed bugs found after merge
mysql-test/r/func_time.result:
Fixed bugs found after merge
mysql-test/r/group_by.result:
Fixed bugs found after merge
mysql-test/r/innodb.result:
Fixed bugs found after merge
mysql-test/r/insert.result:
Fixed bugs found after merge
mysql-test/r/join_outer.result:
Fixed bugs found after merge
mysql-test/r/loaddata.result:
Fixed bugs found after merge
mysql-test/r/multi_update.result:
Fixed bugs found after merge
mysql-test/r/mysqldump.result:
Update results
mysql-test/r/rpl_EE_error.result:
Fixed bugs found after merge
mysql-test/r/rpl_multi_update.result:
Fixed bugs found after merge
mysql-test/r/symlink.result:
Update results
mysql-test/r/type_blob.result:
Update results
mysql-test/r/type_datetime.result:
Update results
mysql-test/r/type_decimal.result:
Update results
mysql-test/r/type_enum.result:
Fixed bugs found after merge
mysql-test/r/type_timestamp.result:
Update results
mysql-test/r/union.result:
Update results
mysql-test/r/warnings.result:
Update results
mysql-test/t/bdb.test:
Fix test for 4.1
mysql-test/t/innodb.test:
Fix test for 4.1
mysql-test/t/multi_update.test:
Fix test for 4.1
mysql-test/t/mysqldump.test:
Fix test for 4.1
mysql-test/t/rpl_EE_error.test:
Fix test for 4.1
mysql-test/t/rpl_multi_update.test:
Fix test for 4.1
mysql-test/t/union.test:
Cleanup
mysys/charset.c:
Check results from my_once_alloc()
mysys/my_handler.c:
part of 4.0 merge
sql-common/client.c:
Part of 4.0 merge
sql/field.cc:
After merge fixes
sql/field.h:
After merge fixes
sql/ha_innodb.cc:
Remove duplicate include files
sql/item.cc:
Changed automatic int conversion to be of type binary
sql/item.h:
After merge fixes
sql/item_func.cc:
Changed automatic int conversion to be of type binary
sql/item_func.h:
After merge fixes
sql/item_strfunc.cc:
Added comments
sql/item_subselect.cc:
Indentation fixes
sql/item_sum.cc:
Changed automatic int conversion to be of type binary
sql/item_sum.h:
After merge fixes
sql/mysql_priv.h:
Cleanup embedded library access checks
sql/mysqld.cc:
Changed min stack size to 128K (to allow longer MyISAM keys)
sql/set_var.cc:
Fixed compiler warnings
sql/share/czech/errmsg.txt:
Better error message
sql/share/danish/errmsg.txt:
Better error message
sql/share/dutch/errmsg.txt:
Better error message
sql/share/english/errmsg.txt:
Better error message
sql/share/estonian/errmsg.txt:
Better error message
sql/share/french/errmsg.txt:
Better error message
sql/share/greek/errmsg.txt:
Better error message
sql/share/hungarian/errmsg.txt:
Better error message
sql/share/italian/errmsg.txt:
Better error message
sql/share/japanese/errmsg.txt:
Better error message
sql/share/korean/errmsg.txt:
Better error message
sql/share/norwegian-ny/errmsg.txt:
Better error message
sql/share/norwegian/errmsg.txt:
Better error message
sql/share/polish/errmsg.txt:
Better error message
sql/share/romanian/errmsg.txt:
Better error message
sql/share/russian/errmsg.txt:
Better error message
sql/share/serbian/errmsg.txt:
Better error message
sql/share/slovak/errmsg.txt:
Better error message
sql/share/spanish/errmsg.txt:
Better error message
sql/share/swedish/errmsg.txt:
Better error message
sql/share/ukrainian/errmsg.txt:
Better error message
sql/sql_acl.h:
Cleaned up embedded library acccess checks
sql/sql_base.cc:
After merge fixes
sql/sql_client.cc:
After merge fixes
sql/sql_parse.cc:
After merge fixes
Changed access check code for embedded library (needed to make code shorter and ensure that check_table_access() is called)
Recoded create-table handling for CREATE TABLE ... SELECT to make code shorter and faster
sql/sql_prepare.cc:
Add missing arguments
sql/sql_select.cc:
After merge fixes
sql/sql_update.cc:
After merge fixes
sql/sql_yacc.yy:
Fixed wrong priority for XOR (should be less than NEG to get -1^1 to work)
sql/table.cc:
After merge fixes
into eagle.mysql.r18.ru:/home/vva/work/BUG_2086/mysql-4.0
sql/share/czech/errmsg.txt:
Auto merged
sql/share/english/errmsg.txt:
Auto merged
sql/share/estonian/errmsg.txt:
Auto merged
sql/share/french/errmsg.txt:
Auto merged
sql/share/greek/errmsg.txt:
Auto merged
sql/share/hungarian/errmsg.txt:
Auto merged
sql/share/japanese/errmsg.txt:
Auto merged
sql/share/korean/errmsg.txt:
Auto merged
sql/share/norwegian-ny/errmsg.txt:
Auto merged
sql/share/norwegian/errmsg.txt:
Auto merged
sql/share/polish/errmsg.txt:
Auto merged
sql/share/romanian/errmsg.txt:
Auto merged
sql/share/slovak/errmsg.txt:
Auto merged
client/mysqltest.c:
Auto merged
include/mysqld_error.h:
Auto merged
libmysql/libmysql.c:
Auto merged
libmysqld/lib_sql.cc:
Auto merged
mysql-test/r/variables.result:
Auto merged
mysql-test/t/variables.test:
Auto merged
sql/handler.cc:
Auto merged
sql/handler.h:
Auto merged
sql/lex.h:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/net_serv.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_show.cc:
Auto merged
sql/sql_table.cc:
Auto merged
sql/udf_example.cc:
Auto merged
include/sql_state.h:
SCCS merged
sql/sql_yacc.yy:
SCCS merged
into psergey-rh8.(none):/home/psergey/mysql-5.0-imerge-unique
mysql-test/r/index_merge_innodb.result:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/opt_range.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_update.cc:
Auto merged
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted
Fixed not updated test from last changeset
mysql-test/r/auto_increment.result:
Updated results
sql/mysqld.cc:
Cleaned up pid file handling (to remove compiler warning)
mysql-test/t/auto_increment.test:
Fixed wrong comment
sql/opt_range.cc:
Removed not used variable
sql/sql_select.cc:
Removed indentation level (This will also make merges into 4.1 easier)
This is the main commit for Worklog tasks:
* A more dynamic binlog format which allows small changes (1064)
* Log session variables in Query_log_event (1063)
Below 5.0 means 5.0.0.
MySQL 5.0 is able to replicate FOREIGN_KEY_CHECKS, UNIQUE_KEY_CHECKS (for speed),
SQL_AUTO_IS_NULL, SQL_MODE. Not charsets (WL#1062), not some vars (I can only think
of SQL_SELECT_LIMIT, which deserves a special treatment). Note that this
works for queries, except LOAD DATA INFILE (for this it would have to wait
for Dmitri's push of WL#874, which in turns waits for the present push, so...
the deadlock must be broken!). Note that when Dmitri pushes WL#874 in 5.0.1,
5.0.0 won't be able to replicate a LOAD DATA INFILE from 5.0.1.
Apart from that, the new binlog format is designed so that it can tolerate
a little variation in the events (so that a 5.0.0 slave could replicate a
5.0.1 master, except for LOAD DATA INFILE unfortunately); that is, when I
later add replication of charsets it should break nothing. And when I later
add a UID to every event, it should break nothing.
The main change brought by this patch is a new type of event, Format_description_log_event,
which describes some lengthes in other event types. This event is needed for
the master/slave/mysqlbinlog to understand a 5.0 log. Thanks to this event,
we can later add more bytes to the header of every event without breaking compatibility.
Inside Query_log_event, we have some additional dynamic format, as every Query_log_event
can have a different number of status variables, stored as pairs (code, value); that's
how SQL_MODE and session variables and catalog are stored. Like this, we can later
add count of affected rows, charsets... and we can have options --don't-log-count-affected-rows
if we want.
MySQL 5.0 is able to run on 4.x relay logs, 4.x binlogs.
Upgrading a 4.x master to 5.0 is ok (no need to delete binlogs),
upgrading a 4.x slave to 5.0 is ok (no need to delete relay logs);
so both can be "hot" upgrades.
Upgrading a 3.23 master to 5.0 requires as much as upgrading it to 4.0.
3.23 and 4.x can't be slaves of 5.0.
So downgrading from 5.0 to 4.x may be complicated.
Log_event::log_pos is now the position of the end of the event, which is
more useful than the position of the beginning. We take care about compatibility
with <5.0 (in which log_pos is the beginning).
I added a short test for replication of SQL_MODE and some other variables.
TODO:
- after committing this, merge the latest 5.0 into it
- fix all tests
- update the manual with upgrade notes.
client/Makefile.am:
mysqlbinlog.cc depends slightly on sql/mysql_priv.h
client/mysqlbinlog.cc:
Make mysqlbinlog able to read the new binlog format,
by seeking to the start and reading the first few events, to
detect the format of the binlog.
include/my_sys.h:
a correct tell() for SEQ_READ_APPEND caches.
mysys/mf_iocache2.c:
a correct tell() for SEQ_READ_APPEND caches
(my_b_tell() is not working for such caches).
sql/ha_innodb.cc:
we are getting rid of event lengthes here and there, which is good.
sql/log.cc:
Start events will have created==0 if generated by rotation (like in 3.23).
In 5.0 we always write a Format_description_log_event at the beginning of
every master's binary log and of every slave's relay log.
We also add Rotate and Stop to relay logs (like there already was in
master's binary logs).
When we rotate a relay log, we write the previous relay log's Start event
(the one which was sent from the master) to the beginning of the new log,
so that we don't need the previous relay log to understand the new one;
that's the purpose of MYSQL_LOG::description_event_for_queue.
Removed logging of SET FOREIGN_KEY_CHECKS, because we handle it as flags
in the Query event now.
sql/log_event.cc:
New event type: Format_description_log_event, to describe the log's format.
read_log_event() needs to be passed this event to be able to read 5.0 events.
Query_log_event has new members flags2 and sql_mode for replication of session
variables (except charsets which are WL#1062) and SQL_MODE.
flags2 is in fact a kind of copy of thd->options (&'d with a mask).
Now with this replication of FOREIGN_KEY_CHECKS, SQL_AUTO_IS_NULL, UNIQUE_CHECKS
and SQL_MODE work; with mysqlbinlog too.
sql/log_event.h:
Binlog version is changed to 4.
New classes (details in sql/log_event.cc).
Removing some useless #defines.
sql/mysql_priv.h:
Definition of SELECT_DISTINCT and others must be visible in client/mysqlbinlog.cc,
so adding #ifdefs.
sql/mysqld.cc:
update for prototype change
sql/slave.cc:
When the slave opens a relay log, it reads the first few events to know the format.
When slave I/O thread receives a Rotate from the master, it rotates its relay log
(to avoid mixed format in the relay log).
sql/slave.h:
in the slave we avoid lengthes and rely on absolute positions instead;
hence the introduction of future_group_master_log_pos and future_event_relay_log_pos
(explained in code).
sql/sql_class.cc:
catalog in THD
sql/sql_class.h:
catalog, and new members in MYSQL_LOG
sql/sql_repl.cc:
When the master starts sending binlog to slave, it must
first read the first few events to detect the binlog's format.
Same for SHOW BINLOG EVENTS.
New Statement: SHOW [STORAGE] ENGINES
New System Variable: storage_engine
New mysqld Argument: --default-storage-engine=
include/mysqld_error.h:
We now call handlers STORAGE ENGINEs
include/sql_state.h:
We now call handlers STORAGE ENGINEs
mysql-test/r/create.result:
table_type system variable becomes storage_engine
mysql-test/r/key_cache.result:
table_type system variable becomes storage_engine
mysql-test/r/variables.result:
table_type system variable becomes storage_engine
mysql-test/r/warnings.result:
Test for deprecated table_type system variable
mysql-test/t/create.test:
table_type system variable becomes storage_engine
mysql-test/t/key_cache.test:
table_type system variable becomes storage_engine
mysql-test/t/variables.test:
table_type system variable becomes storage_engine
mysql-test/t/warnings.test:
Test for deprecated table_type system variable
sql/handler.cc:
change name for consistency
sql/handler.h:
change name for consistency
sql/lex.h:
New keywords - ENGINES and STORAGE
sql/mysql_priv.h:
change name for consistency
sql/mysqld.cc:
New command like argument for default-storage-engine
sql/set_var.cc:
New system variable for storage_engine
sql/set_var.h:
New system variable for storage_engine
sql/sql_lex.h:
Change for consistancy
sql/sql_parse.cc:
Change for consistancy
sql/sql_show.cc:
Change for consistancy
sql/sql_table.cc:
Change for consistancy
sql/sql_yacc.yy:
New keywords: STORAGE and ENGINES
Change table_types to storage_engines
New statement: SHOW [STORAGE] ENGINES
(bug #2086)
include/mysqld_error.h:
added error message for receiving variable with wrong GLOBAL|LOCAL type
mysql-test/r/variables.result:
added error message for receiving variable with wrong GLOBAL|LOCAL type
mysql-test/t/variables.test:
added error message for receiving variable with wrong GLOBAL|LOCAL type
sql/set_var.cc:
added error message for receiving variable with wrong GLOBAL|LOCAL type
sql/share/czech/errmsg.txt:
added error message for receiving variable with wrong GLOBAL|LOCAL type
sql/share/danish/errmsg.txt:
added error message for receiving variable with wrong GLOBAL|LOCAL type
sql/share/dutch/errmsg.txt:
added error message for receiving variable with wrong GLOBAL|LOCAL type
sql/share/english/errmsg.txt:
added error message for receiving variable with wrong GLOBAL|LOCAL type
sql/share/estonian/errmsg.txt:
added error message for receiving variable with wrong GLOBAL|LOCAL type
sql/share/french/errmsg.txt:
added error message for receiving variable with wrong GLOBAL|LOCAL type
sql/share/german/errmsg.txt:
added error message for receiving variable with wrong GLOBAL|LOCAL type
sql/share/greek/errmsg.txt:
added error message for receiving variable with wrong GLOBAL|LOCAL type
sql/share/hungarian/errmsg.txt:
added error message for receiving variable with wrong GLOBAL|LOCAL type
sql/share/italian/errmsg.txt:
added error message for receiving variable with wrong GLOBAL|LOCAL type
sql/share/japanese/errmsg.txt:
added error message for receiving variable with wrong GLOBAL|LOCAL type
sql/share/korean/errmsg.txt:
added error message for receiving variable with wrong GLOBAL|LOCAL type
sql/share/norwegian-ny/errmsg.txt:
added error message for receiving variable with wrong GLOBAL|LOCAL type
sql/share/norwegian/errmsg.txt:
added error message for receiving variable with wrong GLOBAL|LOCAL type
sql/share/polish/errmsg.txt:
added error message for receiving variable with wrong GLOBAL|LOCAL type
sql/share/portuguese/errmsg.txt:
added error message for receiving variable with wrong GLOBAL|LOCAL type
sql/share/romanian/errmsg.txt:
added error message for receiving variable with wrong GLOBAL|LOCAL type
sql/share/russian/errmsg.txt:
added error message for receiving variable with wrong GLOBAL|LOCAL type
sql/share/slovak/errmsg.txt:
added error message for receiving variable with wrong GLOBAL|LOCAL type
sql/share/spanish/errmsg.txt:
added error message for receiving variable with wrong GLOBAL|LOCAL type
sql/share/swedish/errmsg.txt:
added error message for receiving variable with wrong GLOBAL|LOCAL type
sql/share/ukrainian/errmsg.txt:
added error message for receiving variable with wrong GLOBAL|LOCAL type
BitKeeper/etc/logging_ok:
auto-union
Build-tools/Do-compile:
Auto merged
acinclude.m4:
Auto merged
configure.in:
Auto merged
dbug/dbug.c:
Auto merged
include/config-win.h:
Auto merged
include/my_base.h:
Auto merged
include/my_global.h:
Auto merged
include/my_pthread.h:
Auto merged
include/my_sys.h:
Auto merged
include/mysql.h:
Auto merged
include/mysql_com.h:
Auto merged
innobase/lock/lock0lock.c:
Auto merged
innobase/row/row0ins.c:
Auto merged
innobase/row/row0sel.c:
Auto merged
innobase/row/row0umod.c:
Auto merged
innobase/row/row0upd.c:
Auto merged
myisam/ft_boolean_search.c:
Auto merged
myisam/mi_check.c:
Auto merged
myisam/mi_dbug.c:
Auto merged
myisam/mi_open.c:
Auto merged
mysql-test/r/auto_increment.result:
Auto merged
mysql-test/r/bdb.result:
Auto merged
mysql-test/r/func_op.result:
Auto merged
Build-tools/Bootstrap:
Merge with 4.0
client/mysql.cc:
Merge with 4.0
client/mysqldump.c:
Merge with 4.0
client/mysqltest.c:
Use local version
innobase/btr/btr0cur.c:
Merge with 4.0 (Heikki should check if we should remove btr_cur_update_sec_rec_in_place()
libmysql/libmysql.c:
Merge with 4.0
libmysqld/lib_sql.cc:
Merge with 4.0
myisam/mi_key.c:
Merge with 4.0
myisam/mi_search.c:
Merge with 4.0
mysql-test/r/binary.result:
Merge with 4.0
mysql-test/r/func_group.result:
Merge with 4.0
mysql-test/r/func_str.result:
Merge with 4.0
mysql-test/r/func_time.result:
Merge with 4.0
mysql-test/r/group_by.result:
Merge with 4.0
mysql-test/r/handler.result:
Merge with 4.0
mysql-test/r/innodb.result:
Merge with 4.0
mysql-test/r/insert.result:
Merge with 4.0
mysql-test/r/join_outer.result:
Merge with 4.0
mysql-test/r/loaddata.result:
Merge with 4.0
mysql-test/r/lowercase_table.result:
Merge with 4.0
mysql-test/r/multi_update.result:
Merge with 4.0
mysql-test/r/mysqldump.result:
Merge with 4.0
mysql-test/r/query_cache.result:
Merge with 4.0
mysql-test/r/rpl_max_relay_size.result:
Merge with 4.0
mysql-test/r/rpl_rotate_logs.result:
Merge with 4.0
mysql-test/r/rpl_trunc_binlog.result:
Merge with 4.0
mysql-test/r/select_found.result:
Merge with 4.0
mysql-test/r/symlink.result:
Merge with 4.0
mysql-test/r/truncate.result:
Merge with 4.0
mysql-test/r/type_blob.result:
Merge with 4.0
mysql-test/r/type_datetime.result:
Merge with 4.0
mysql-test/r/type_decimal.result:
Merge with 4.0
mysql-test/r/type_enum.result:
Merge with 4.0
mysql-test/r/type_timestamp.result:
Merge with 4.0
mysql-test/r/union.result:
Merge with 4.0
mysql-test/t/auto_increment.test:
Merge with 4.0
mysql-test/t/bdb.test:
Merge with 4.0
mysql-test/t/func_group.test:
Merge with 4.0
mysql-test/t/func_op.test:
Merge with 4.0
mysql-test/t/func_str.test:
Merge with 4.0
mysql-test/t/func_time.test:
Merge with 4.0
mysql-test/t/group_by.test:
Merge with 4.0
mysql-test/t/handler.test:
Merge with 4.0
mysql-test/t/innodb.test:
Merge with 4.0
mysql-test/t/insert.test:
Merge with 4.0
mysql-test/t/join_outer.test:
Merge with 4.0
mysql-test/t/limit.test:
Merge with 4.0
mysql-test/t/loaddata.test:
Merge with 4.0
mysql-test/t/lowercase_table.test:
Merge with 4.0
mysql-test/t/multi_update.test:
Merge with 4.0
mysql-test/t/mysqldump.test:
Merge with 4.0
mysql-test/t/query_cache.test:
Merge with 4.0
mysql-test/t/rpl_log_pos.test:
Merge with 4.0
mysql-test/t/rpl_max_relay_size.test:
Merge with 4.0
mysql-test/t/rpl_rotate_logs.test:
Merge with 4.0
mysql-test/t/rpl_trunc_binlog.test:
Merge with 4.0
mysql-test/t/select_found.test:
Merge with 4.0
mysql-test/t/symlink.test:
Merge with 4.0
mysql-test/t/truncate.test:
Merge with 4.0
mysql-test/t/type_blob.test:
Merge with 4.0
mysql-test/t/type_datetime.test:
Merge with 4.0
mysql-test/t/type_decimal.test:
Merge with 4.0
mysql-test/t/type_enum.test:
Merge with 4.0
mysql-test/t/type_timestamp.test:
Merge with 4.0
mysql-test/t/union.test:
Merge with 4.0
mysys/charset.c:
Merge with 4.0
mysys/my_init.c:
Merge with 4.0
mysys/my_symlink.c:
Merge with 4.0
mysys/my_thr_init.c:
Merge with 4.0
regex/reginit.c:
Merge with 4.0
sql/field.cc:
Change fix_datetime() to print errors
sql/field.h:
Merge with 4.0
sql/ha_innodb.cc:
Merge with 4.0
sql/item.cc:
Merge with 4.0
sql/item.h:
Merge with 4.0
sql/item_cmpfunc.cc:
Merge with 4.0
sql/item_func.cc:
Merge with 4.0
sql/item_func.h:
Merge with 4.0
sql/item_strfunc.cc:
Merge with 4.0
sql/item_strfunc.h:
Merge with 4.0
sql/item_sum.cc:
Merge with 4.0
sql/item_sum.h:
Merge with 4.0
sql/item_timefunc.cc:
Merge with 4.0
sql/lex.h:
Merge with 4.0
sql/log.cc:
Merge with 4.0
sql/log_event.cc:
Merge with 4.0
sql/log_event.h:
Merge with 4.0
sql/mysql_priv.h:
Merge with 4.0
sql/mysqld.cc:
Merge with 4.0
sql/nt_servc.cc:
Merge with 4.0
sql/opt_range.cc:
Merge with 4.0
sql/records.cc:
Merge with 4.0
sql/repl_failsafe.cc:
Merge with 4.0
sql/slave.cc:
Merge with 4.0
sql/sql_acl.cc:
Merge with 4.0
sql/sql_analyse.cc:
Merge with 4.0
sql/sql_base.cc:
Merge with 4.0
sql/sql_cache.cc:
Merge with 4.0
sql/sql_class.h:
Merge with 4.0
sql/sql_db.cc:
Merge with 4.0
sql/sql_delete.cc:
Merge with 4.0
sql/sql_insert.cc:
Merge with 4.0
sql/sql_load.cc:
Merge with 4.0
sql/sql_parse.cc:
Merge with 4.0
sql/sql_rename.cc:
Merge with 4.0
sql/sql_select.cc:
Merge with 4.0
sql/sql_show.cc:
Merge with 4.0
sql/sql_table.cc:
Merge with 4.0
sql/sql_update.cc:
Merge with 4.0
sql/sql_yacc.yy:
Merge with 4.0
sql/table.cc:
Merge with 4.0
sql/table.h:
Merge with 4.0
sql/time.cc:
Merge with 4.0
sql/uniques.cc:
Merge with 4.0
strings/ctype-tis620.c:
Merge with 4.0
strings/strto.c:
Merge with 4.0
support-files/mysql.server.sh:
Merge with 4.0
support-files/mysql.spec.sh:
Merge with 4.0