now by default, FLUSH, OPTIMIZE, ANALYZE, REPAIR commands are written to the
binlog, unless the new NO_WRITE_TO_BINLOG keyword was used :
OPTIMIZE NO_WRITE_TO_BINLOG table t;
Previously these commands were never written to the binlog, but there are
2 reasons to change this :
- the RENAME TABLE in MERGE table bug (#175) on slave
- the possible "differently optimised queries may lead to different
updates on the master and slave" bug, until we have automatic ORDER BY.
FLUSH LOGS/SLAVE/MASTER/TABLES WITH READ LOCK are never written to the binlog.
New test for the new logging behaviour.
Other small change : reload_acl_and_cache() and reset_slave() don't send their errors themselves,
this is more usual.
mysql-test/mysql-test-run.sh:
rpl_flush_tables.test generates 'table xx is open on rename'.
This is normal and done on purpose, so don't report it.
sql/lex.h:
New keyword NO_WRITE_TO_BINLOG
sql/mysql_priv.h:
reload_acl_and_cache() now decides if we want to write the FLUSH command
to the binlog or not (FLUSH MASTER, FLUSH SLAVE, FLUSH TABLES
WITH READ LOCK, FLUSH LOGS cannot go into the binlog).
sql/mysqld.cc:
updated for new prototype of reload_acl_and_cache().
sql/sql_lex.h:
New boolean no_write_to_binlog in the lex structure.
sql/sql_parse.cc:
reload_acl_and_cache() now does not send its errors itself;
it saves the error and the caller sends it.
FLUSH, OPTIMIZE, ANALYZE, REPAIR commands don't write to the binlog
if the NO_WRITE_TO_BINLOG keyword was used.
sql/sql_repl.cc:
reset_slave() does not send its errors himself.
sql/sql_yacc.yy:
New optional keyword NO_WRITE_TO_BINLOG for OPTIMIZE/ANALYZE/REPAIR/FLUSH :
OPTIMIZE NO_WRITE_TO_BINLOG TABLE t;
ANALYZE NO_WRITE_TO_BINLOG TABLE t;
REPAIR NO_WRITE_TO_BINLOG TABLE t;
FLUSH NO_WRITE_TO_BINLOG TABLE t;
mysql-test/r/create.result:
Update for new error messages
mysql-test/r/type_blob.result:
Update for new error messages
strings/my_strtoll10-x86.s:
Faster str->longlong
strings/my_strtoll10.c:
Updated comments
new test for this.
sql/item_create.cc:
Proper replication of CONNECTION_ID() (bug 177).
This is just for replication; mysqlbinlog|mysql still does not work
with CONNECTION_ID(), it will wait for row-level binlogging.
sql/item_strfunc.cc:
Proper replication of the new 4.1 PASSWORD() (bug 344)
Fixed memory leak in new filesort code
Optimzed sub selects to use keys with outer references.
Increased max tables in join to 62
client/Makefile.am:
Remve test programs
myisam/mi_check.c:
Remove compiler warnings
myisam/mi_delete.c:
Remove 'rnd' variable to make usage repeatable
myisam/mi_open.c:
Remove 'rnd' variable to make usage repeatable
myisam/mi_write.c:
Remove 'rnd' variable to make usage repeatable
myisam/myisamdef.h:
Remove 'rnd' variable to make usage repeatable
myisam/myisamlog.c:
Remove 'rnd' variable to make usage repeatable
mysql-test/r/subselect.result:
new test
mysql-test/t/join.test:
Updated test
mysql-test/t/subselect.test:
new test
sql/filesort.cc:
Added function to free buffers allocated by filesort
sql/item.cc:
Sub select optimization
sql/item_cmpfunc.cc:
Sub select optimization
sql/item_subselect.cc:
Sub select optimization
sql/item_sum.cc:
Removed compiler warnings
sql/item_sum.h:
Simple code cleanup
sql/log.cc:
Removed compiler warning
sql/mysql_priv.h:
Made table_map ulonglong to allow 62 tables in join
sql/records.cc:
Moved free of filesort buffers to own function
sql/sql_select.cc:
subselect optimization
Call filesort_free_buffers() to free memory from filesort
sql/unireg.h:
Sub select optimization
was not properly stored in the buffer.
sql/item_strfunc.cc:
Made it work on MacOS X (bigendian) where int4store is a macro that expands
the arguments several times.
It's possible this should be done differently, like not side-stepping the
String methods the way it's done here, or fixing String::c_ptr(), but this
simple fix was the quickest way.
Protocol_cursor task
net_field_length definitions trimmed with Monty's suggestions
BitKeeper/etc/ignore:
Added sql/pack.c to the ignore list
include/my_global.h:
my_ulonglong definition moved here from mysql.h
include/mysql.h:
we define my_ulonglong here only if no global.h included
include/mysql_com.h:
net_field_length_ll definition is here now
sql/mini_client.cc:
unnecessary cast removed
sql/handler.h:
Auto merged
sql/item.cc:
Auto merged
sql/item_strfunc.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_table.cc:
Auto merged
into hundin.mysql.fi:/home/igor/dev/mysql-4.1
mysql-test/r/ctype_collate.result:
Auto merged
sql/mysqld.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_select.cc:
Auto merged
is executed, even if the transaction spans on >=2 relay logs (bug #53).
New variable relay_log_purge =0|1
New test to verify bug #53
sql/log.cc:
Now we purge a relay log only when we are sure we won't need it,
i.e. we have executed the final query (if autocommit=1) or the COMMIT.
sql/log_event.cc:
Better tracking of the relay log's name and position
lastly executed, even if we are in a transaction which spans on
2 or more relay logs.
sql/mysql_priv.h:
new option relay_log_purge (the user can now decide himself
if he wants his relay logs to be automatically purged or not,
we don't make unsafe guesses like before)
sql/mysqld.cc:
new option --innodb (replaces --skip-innodb).
Useful for the test suite : we have skip-innodb in mysql-test-run,
but we can ('-opt.info' file) choose to start the server with
InnoDB for this test only.
New option --bdb
sql/repl_failsafe.cc:
Better tracking of the relay log's name and position
lastly executed, even if we are in a transaction which spans on
2 or more relay logs.
sql/set_var.cc:
new variable relay_log_purge
sql/slave.cc:
Better tracking of the relay log's name and position
lastly executed, even if we are in a transaction which spans on
2 or more relay logs.
Now we purge a relay log only when we are sure we won't need it,
i.e. we have executed the final query (if autocommit=1) or the COMMIT
sql/slave.h:
Better tracking of the relay log's name and position
lastly executed, even if we are in a transaction which spans on
2 or more relay logs.
sql/sql_class.h:
prototypes change
sql/sql_parse.cc:
removed thd argument (was not used in the function's body)
sql/sql_repl.cc:
Better tracking of the relay log's name and position
lastly executed, even if we are in a transaction which spans on
2 or more relay logs.
Turn relay_log_purge silently off when someone does CHANGE
MASTER TO RELAY_LOG_*
Added the MAX_LENGTH_FOR_SORT_DATA option
ctype_collate.result:
Added the MAX_LENGTH_FOR_SORT_DATA option
mysql-test/r/ctype_collate.result:
Added the MAX_LENGTH_FOR_SORT_DATA option
mysql-test/r/ctype_many.result:
Added the MAX_LENGTH_FOR_SORT_DATA option
mysql-test/r/func_gconcat.result:
Added the MAX_LENGTH_FOR_SORT_DATA option
Added the MAX_LENGTH_FOR_SORT_DATA option
filesort.cc:
Added the MAX_LENGTH_FOR_SORT_DATA option
sql/filesort.cc:
Added the MAX_LENGTH_FOR_SORT_DATA option
sql/mysqld.cc:
Added the MAX_LENGTH_FOR_SORT_DATA option
sql/opt_range.cc:
Added the MAX_LENGTH_FOR_SORT_DATA option
sql/records.cc:
Added the MAX_LENGTH_FOR_SORT_DATA option
sql/set_var.cc:
Added the MAX_LENGTH_FOR_SORT_DATA option
sql/sql_base.cc:
Added the MAX_LENGTH_FOR_SORT_DATA option
sql/sql_class.h:
Added the MAX_LENGTH_FOR_SORT_DATA option
sql/sql_delete.cc:
Added the MAX_LENGTH_FOR_SORT_DATA option
sql/sql_select.cc:
Added the MAX_LENGTH_FOR_SORT_DATA option
sql/sql_sort.h:
Added the MAX_LENGTH_FOR_SORT_DATA option
sql/sql_table.cc:
Added the MAX_LENGTH_FOR_SORT_DATA option
sql/sql_update.cc:
Added the MAX_LENGTH_FOR_SORT_DATA option
sql/structs.h:
Added the MAX_LENGTH_FOR_SORT_DATA option
sql/table.h:
Added the MAX_LENGTH_FOR_SORT_DATA option
sql/uniques.cc:
Added the MAX_LENGTH_FOR_SORT_DATA option
We don't need this code any more. It was used to initialize CONVERT structure in 4.0.
sql/set_var.cc:
We don't need this code any more. It was used to initialize CONVERT structure in 4.0.
into sanja.is.com.ua:/home/bell/mysql/bk/work-order-4.1
mysql-test/r/subselect.result:
Auto merged
mysql-test/t/subselect.test:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
mysql-test/r/subselect.result:
new test results
test of bug 185
mysql-test/t/subselect.test:
test of bug 185
sql/item.h:
new method
sql/item_cmpfunc.cc:
new Item to control NULL value in HAVING clouse
sql/item_cmpfunc.h:
new Item to control NULL value in HAVING clouse
sql/item_subselect.cc:
if IN was rewrited through WHERE thien it will be rewrited in following way:
WHERE left_expr=item or is null(item) heving is_not_null_test(item)
sql/item_subselect.h:
Item_is_not_null_test can change was_null flag
sql/sql_select.cc:
some layout fix