BUILD/compile-pentium-debug-max:
Added --with-raid
configure.in:
Removed -DFN_NO_CASE_SENCE for Mac OS X as this is not always true
mysql-test/install_test_db.sh:
Added --skip-warnings
mysql-test/mysql-test-run.sh:
Fixes to get --gdb and --ddd to work
mysql-test/r/lowercase_table2.result:
Test for lower_case_table_names=2 and temporary tables
mysql-test/r/lowercase_table3.result:
Fixed error message
mysql-test/r/multi_update.result:
Test of behaviour of multi-table-delete and alias
mysql-test/t/lowercase_table2.test:
Test for lower_case_table_names=2 and temporary tables
mysql-test/t/lowercase_table3.test:
Fixed error
mysql-test/t/multi_update.test:
Test of behaviour of multi-table-delete and alias (Bug #2940)
mysys/mf_iocache.c:
Renamed _flush_io_cache to my_b_flush_io_cache
sql/ha_myisam.cc:
Added comment
sql/lock.cc:
Extra debugging
sql/log.cc:
New parameter to flush_relay_log_info
sql/log_event.cc:
New parameter to flush_relay_log_info
sql/mf_iocache.cc:
Removed not used header files
sql/mysqld.cc:
More debugging info
Less warnings when run with --skip-warnings
sql/opt_range.cc:
More debug information
sql/repl_failsafe.cc:
New parameter to flush_relay_log_info
sql/slave.cc:
First start SQL thread, then start IO thread. This fixed a raze condition in SLAVE START (Bug #2921)
Ensure that we have a lock on the IO thread before flushing a relay log file that. The original code could core dump when a relay log rotated.
sql/slave.h:
New parameter to flush_relay_log_info
sql/sql_base.cc:
Added warning
sql/sql_handler.cc:
Indentation fix
sql/sql_repl.cc:
New parameter to flush_relay_log_info
sql/sql_select.cc:
Fixed problem with deleting temporary tables when using lower_case_table_names=2. (Bug #2858)
sql/sql_table.cc:
Fixed comment
sql/sql_yacc.yy:
Removed compiler warning
include/my_sys.h:
Fixed usage of unpack_filename
mysys/mf_pack.c:
Changed unpack_filename() to return length of result string.
mysys/test_fn.c:
Fixed usage of unpack_filename
sql/sql_db.cc:
Fixed memory leak with raid tables
sql/table.cc:
Fixed usage of unpack_filename
INSERT DELAYED works only for one-row inserts (in latest 4.0 versions
at least). So killing a delayed_insert thread does not spoil replication:
the rows which actually went into the table are exactly those listed
in the binlog. So when the delayed_insert thread is killed, don't log
it as 'killed', because it causes superfluous stops on the slave.
sql/log_event.cc:
INSERT DELAYED works only for one-row inserts (in latest 4.0 versions
at least). So killing a delayed_insert thread does not spoil replication:
the rows which actually went into the table are exactly those listed
in the binlog. So when the delayed_insert thread is killed, don't log
it as 'killed', because it causes superfluous stops on the slave.
Allow one to force lower_case_table_names to 0, even if the file system is case insensitive. This fixes some issues on Mac OS X (Bug #2994)
Added variables "lower_case_file_system", "version_compile_os" and "license"
mysql-test/t/lowercase_table3-master.opt:
Rename: mysql-test/t/lowercase_table2-master.opt -> mysql-test/t/lowercase_table3-master.opt
mysys/my_getopt.c:
Ensure that one can't from the command line set a variable too small (could happen when sub_size was set)
sql/mysql_priv.h:
Added lower_case_file_system
sql/mysqld.cc:
Allow one to force lower_case_table_names to 0, even if the file system is case insensitive
sql/set_var.cc:
Added variable "lower_case_file_system"
Added variable "version_compile_os"
Added variable "license"
sql/set_var.h:
Added support for read only strings
sql/sql_select.cc:
Make join optimizer killable
"Table truncated when creating another table name with Spaces"
added to check_db_name, check_table_name and check_column_name
test for end space
mysql-test/r/create.result:
added test for Bug #2985
"Table truncated when creating another table name with Spaces"
mysql-test/t/create.test:
added test for Bug #2985
"Table truncated when creating another table name with Spaces"
sql/sql_db.cc:
cancel strip end spaces for database name
sql/sql_parse.cc:
cancel strip end spaces for database name
sql/table.cc:
added to check_db_name, check_table_name and check_column_name
test for end space
mysql-test/r/func_math.result:
added test for Bug #3051 "FLOOR returns invalid"
mysql-test/t/func_math.test:
added test for Bug #3051 "FLOOR returns invalid"
fixed linking query_prealloc_size to query cache presence
mysql-test/r/query_cache.result:
test of QC invalidation by LOCK command
mysql-test/t/query_cache.test:
test of QC invalidation by LOCK command
sql/mysqld.cc:
new variable query_cache_wlock_invalidate
fixed query_prealloc_size with QC absence
sql/set_var.cc:
new variable query_cache_wlock_invalidate
sql/sql_cache.cc:
new method for table invalidation
sql/sql_cache.h:
new method for table invalidation
sql/sql_class.h:
new variable query_cache_wlock_invalidate
sql/sql_parse.cc:
layout fixed
nsure that rows in a multi-row INSERT DELAYED are inserted atomicly
mysql-test/mysql-test-run.sh:
Make test case safe for openserver/unixware (Bug #2700)
sql/sql_delete.cc:
Rollback statement on kill
sql/sql_insert.cc:
Ensure that rows in a multi-row INSERT DELAYED are inserted atomicly (without releasing logs).
This is needed to ensure that the mysqlbinlog is consistent.
Bug #2491
sql/sql_list.h:
Ensure that rows in a multi-row INSERT DELAYED is inserted atomicly (without releasing logs).
This is needed to ensure that the mysqlbinlog is consistent.
Bug #2491
sql/sql_update.cc:
Rollback statement on kill
even if the thread was killed, we write the DROP with error_code=0.
This will remove unneeded stops on slave, and will lose nothing:
if a real update was killed, this real update will be logged with the
nonzero error code and will cause the stop on slave.
"(binlog, position) stored by InnoDB for a replication slave can be wrong".
This code contains conditional #if to distinguish between versions;
it should be merged into 4.1 and 5.0.
sql/ha_innodb.cc:
correcting the binlog position stored in InnoDB in a slave.
sql/log_event.cc:
better code to store the binlog position in InnoDB for a slave.
sql/slave.h:
Better code for storing the binlog position in InnoDB for a slave.
"wrong Relay_Log_Pos if Rotate is in the middle of a transaction in relay log"
increment 'pending' instead of 'relay_log_pos'.
mysql-test/r/rpl_trunc_binlog.result:
result update
sql/log_event.cc:
- corrected error message
- in Rotate_log_event::exec_event(), if we're in a transaction (which
can happen if the I/O slave thread reconnected while reading a
transaction), don't increment relay_log_pos but pending instead.
Otherwise, relay_log_pos becomes garbage (and so if slave stops at that
moment, it will never restart).
VC++Files/innobase/innobase.dsp:
odbc0odbc.c was removed from the tree.
VC++Files/libmysql/libmysql.dsp:
strxnmov.c is needed in this module.
sql/log_event.cc:
Cast required to resolve compile error on Windows - byte * is
not equivalent to char *.
sql/opt_range.cc:
Cast to const char * required to resolve compile error on Windows.
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted
Add diagnostic code to analyze an assertion failure in ha_innodb.cc on line 2020 reported by a user (Bug #2903)
sql/ha_innodb.cc:
Add diagnostic code to analyze an assertion failure in ha_innodb.cc on line 2020 reported by a user (Bug #2903)
ChangeSet 1.1616.23.1
Fix for BUG#1858 "SQL-Thread stops working when using optimize table".
A test for this.
sql/sql_base.cc:
In remove_table_from_cache(), kill only delayed threads.
Don't do fsync on temporary .frm files
include/config-win.h:
Increase number of open files to 2048 on windows
sql/unireg.cc:
Don't do fsync on temporary files
Make the drop InnoDB database operation aware of the setting FOREIGN_KEY_CHECKS=0; DROP DATABASE seems to work ok anyway, but that is because MySQL first calls DROP TABLE for each table which has an .frm file
sql/ha_innodb.cc:
Make the drop InnoDB database operation aware of the setting FOREIGN_KEY_CHECKS=0; DROP DATABASE seems to work ok anyway, but that is because MySQL first calls DROP TABLE for each table which has an .frm file
sql/share/english/errmsg.txt:
Added note to ensure that no one adds new error message to 4.0.
This is important as it causes too many problems with test suite in 4.1
sql/sql_load.cc:
Removed wrong comment.
Always use all LOAD DATA options in replication.
Fixed problem in mysqlbinlog where LOAD DATA options could be overwritten.
client/mysqlbinlog.cc:
Ensure that we don't call init_dynamic_array() before my_init() has been done
configure.in:
Always use libtool with "--preserve-dup-deps" to prevent link problems with g++
mysql-test/r/mysqlbinlog.result:
new results
mysql-test/r/range.result:
new results
mysql-test/t/range.test:
add missing DROP TABLE
sql/log_event.cc:
Always use all LOAD DATA options. This is needed to handle commands of type "FIELDS TERMINATED BY ''"
Allocate memory for Create_file_log_event options as these may be overwritten in mysqlbinlog
sql/log_event.h:
Free buffer
mysql-test/r/select_found.result:
added new tests for bugs with range optimization (bugs #2448 and #2698)
mysql-test/t/select_found.test:
added new tests for bugs with range optimization (bugs #2448 and #2698)
client/mysqlbinlog.cc:
Ensure that errors are returned to upper levels instead of just doing 'exit/die' in sub function.
sql/handler.h:
Indentation cleanup
sql/sql_insert.cc:
Indentation cleanup
Allow always DROPping of a table which is only referenced by FOREIGN KEY constraints from the same table
Many files:
Do not let REPLACE to perform internally an UPDATE if the table is referenced by a FOREIGN KEY: the manual says that REPLACE must resolve a duplicate key error semantically with DELETE(s) + INSERT, and not by an UPDATE; the internal update caused foreign key checks and cascaded operations to behave in a semantically wrong way
sql/ha_innodb.cc:
Do not let REPLACE to perform internally an UPDATE if the table is referenced by a FOREIGN KEY: the manual says that REPLACE must resolve a duplicate key error semantically with DELETE(s) + INSERT, and not by an UPDATE; the internal update caused foreign key checks and cascaded operations to behave in a semantically wrong way
sql/sql_insert.cc:
Do not let REPLACE to perform internally an UPDATE if the table is referenced by a FOREIGN KEY: the manual says that REPLACE must resolve a duplicate key error semantically with DELETE(s) + INSERT, and not by an UPDATE; the internal update caused foreign key checks and cascaded operations to behave in a semantically wrong way
sql/ha_innodb.h:
Do not let REPLACE to perform internally an UPDATE if the table is referenced by a FOREIGN KEY: the manual says that REPLACE must resolve a duplicate key error semantically with DELETE(s) + INSERT, and not by an UPDATE; the internal update caused foreign key checks and cascaded operations to behave in a semantically wrong way
sql/handler.h:
Do not let REPLACE to perform internally an UPDATE if the table is referenced by a FOREIGN KEY: the manual says that REPLACE must resolve a duplicate key error semantically with DELETE(s) + INSERT, and not by an UPDATE; the internal update caused foreign key checks and cascaded operations to behave in a semantically wrong way
innobase/dict/dict0dict.c:
Do not let REPLACE to perform internally an UPDATE if the table is referenced by a FOREIGN KEY: the manual says that REPLACE must resolve a duplicate key error semantically with DELETE(s) + INSERT, and not by an UPDATE; the internal update caused foreign key checks and cascaded operations to behave in a semantically wrong way
innobase/include/dict0dict.h:
Do not let REPLACE to perform internally an UPDATE if the table is referenced by a FOREIGN KEY: the manual says that REPLACE must resolve a duplicate key error semantically with DELETE(s) + INSERT, and not by an UPDATE; the internal update caused foreign key checks and cascaded operations to behave in a semantically wrong way
innobase/row/row0mysql.c:
Allow always DROPping of a table which is only referenced by FOREIGN KEY constraints from the same table
If AUTOCOMMIT=1, then we do not need to make a plain SELECT set shared locks even on the SERIALIZABLE isolation level, because we know the transaction is read-only: a read-only transaction can always be performed on the REPEATABLE READ level, and that does not endanger the serializability
sql/ha_innodb.cc:
If AUTOCOMMIT=1, then we do not need to make a plain SELECT set shared locks even on the SERIALIZABLE isolation level, because we know the transaction is read-only: a read-only transaction can always be performed on the REPEATABLE READ level, and that does not endanger the serializability