Added protection against global read lock while creating and
initializing a delayed insert handler.
Allowed to ignore a global read lock when locking the table
inside the delayed insert handler.
Added some minor improvements.
sql/lock.cc:
Bug#7823 - FLUSH TABLES WITH READ LOCK + INSERT DELAYED = deadlock
Changed mysql_lock_tables() to allow for ignoring global read lock.
Added functions to set/unset protection against global read lock.
sql/mysql_priv.h:
Bug#7823 - FLUSH TABLES WITH READ LOCK + INSERT DELAYED = deadlock
Changed existing and added new function declarations.
sql/sql_insert.cc:
Bug#7823 - FLUSH TABLES WITH READ LOCK + INSERT DELAYED = deadlock
Added and extended some comments.
Added a protection against global read lock while a handler is
created and initialized.
Moved the unlock of the delayed insert object past its last usage
in delayed_get_table().
Changed the table locking in handle_delayed_insert() so that it
does not wait for global read lock.
include/my_global.h:
O_NOFOLLOW
isam/create.c:
create table files with O_EXCL|O_NOFOLLOW
merge/mrg_create.c:
create table files with O_EXCL|O_NOFOLLOW
myisam/mi_create.c:
create files of temporary tables with O_EXCL|O_NOFOLLOW
myisammrg/myrg_create.c:
create table files with O_EXCL|O_NOFOLLOW
mysys/mf_tempfile.c:
create temporary files with O_EXCL|O_NOFOLLOW
sql/ha_myisam.cc:
let mi_create know if the table is TEMPORARY
sql/mysql_priv.h:
--allow_suspicious_udfs
sql/mysqld.cc:
--allow_suspicious_udfs
sql/share/english/errmsg.txt:
typo
sql/sql_udf.cc:
--allow_suspicious_udfs
don't allow xxx() udf without any of xxx_init/deinit/add/reset
check paths when loading from mysql.func
sql/table.cc:
create frm of temporary table with O_EXCL|O_NOFOLLOW
Fix replication for multi-update
new test - rpl_multi_update2
sql/mysql_priv.h:
Bug#7011
New function mysql_multi_update_lock()
sql/sql_parse.cc:
Bug#7011
New function check_multi_update_lock()
For multi-update on slave, perform an early open&lock
sql/sql_update.cc:
Bug#7011
Split out multi-update locking into its own function,
mysql_multi_update_lock()
myisam/mi_locking.c:
More comments
sql/mysql_priv.h:
Change mode to uint (as it's a bitmap)
sql/sql_handler.cc:
Change mode to uint (as it's a bitmap)
Fixed DBUG_PRINT to use same format as other MySQL code
BUG#4335 - one name can be handler open'ed many times.
Reworked the HANDLER functions and interface.
Using a HASH to store information on open tables that
survives FLUSH TABLE.
HANDLER tables alias names must now be unique, though it
is allowed in 4.0 to qualify them with the database name
of the base table.
mysql-test/r/flush_table.result:
BUG#4286 - HANDLER tables are closed by FLUSH TABLE(S).
BUG#4335 - one name can be handler open'ed many times.
Moved pure handler test results to handler.result.
Added the new test results.
mysql-test/r/handler.result:
BUG#4286 - HANDLER tables are closed by FLUSH TABLE(S).
BUG#4335 - one name can be handler open'ed many times.
Moved pure handler test results from flush_table.result to here.
mysql-test/t/flush_table.test:
BUG#4286 - HANDLER tables are closed by FLUSH TABLE(S).
BUG#4335 - one name can be handler open'ed many times.
Moved pure handler tests to handler.test.
Added new tests.
mysql-test/t/handler.test:
BUG#4286 - HANDLER tables are closed by FLUSH TABLE(S).
BUG#4335 - one name can be handler open'ed many times.
Moved pure handler tests from flush_table.test to here.
sql/mysql_priv.h:
BUG#4286 - HANDLER tables are closed by FLUSH TABLE(S).
BUG#4335 - one name can be handler open'ed many times.
Reworked the handler interface.
sql/sql_base.cc:
BUG#4286 - HANDLER tables are closed by FLUSH TABLE(S).
BUG#4335 - one name can be handler open'ed many times.
Replaced mysql_ha_close_list() by the better named
function mysql_ha_flush() with readable options.
sql/sql_class.cc:
BUG#4286 - HANDLER tables are closed by FLUSH TABLE(S).
BUG#4335 - one name can be handler open'ed many times.
Added initialization for the handler tables hash.
Changed the handler tables clean-up code.
Unreleted to bug: Changed the order of THD initialization
to avoid warning messages on Linux with gcc.
sql/sql_class.h:
BUG#4286 - HANDLER tables are closed by FLUSH TABLE(S).
BUG#4335 - one name can be handler open'ed many times.
Added the handler tables HASH to THD.
sql/sql_handler.cc:
BUG#4286 - HANDLER tables are closed by FLUSH TABLE(S).
BUG#4335 - one name can be handler open'ed many times.
Completely reworked the handler functions.
Added an introducing comment, describing the new functionality.
sql/sql_table.cc:
BUG#4286 - HANDLER tables are closed by FLUSH TABLE(S).
BUG#4335 - one name can be handler open'ed many times.
replaced mysql_ha_close() by the better named
function mysql_ha_flush() with readable options.
Update to new valgrind
mysql-test/mysql-test-run.sh:
Update for new valgrind
sql/mysql_priv.h:
Remove default argument to mysql_truncate()
sql/sql_parse.cc:
Remove default argument to mysql_truncate()
into build.mysql.com:/users/rburnett/mysql-4.0
BitKeeper/etc/logging_ok:
auto-union
client/mysql.cc:
Auto merged
sql/log.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
in a deadlock-free manner. This splits locking the global read lock in two steps.
This fixes a consequence of this bug, known as:
BUG#4953 'mysqldump --master-data may report incorrect binlog position if using InnoDB'
And a test.
sql/handler.cc:
making COMMIT wait if FLUSH TABLES WITH READ LOCK happened.
sql/lock.cc:
an additional stage so that FLUSH TABLES WITH READ LOCK blocks COMMIT:
make_global_read_lock_block_commit():
taking the global read lock is TWO steps (2nd step is optional; without
it, COMMIT of existing transactions will be allowed):
lock_global_read_lock() THEN make_global_read_lock_block_commit().
sql/mysql_priv.h:
new argument to wait_if_global_read_lock()
sql/sql_class.h:
THD::global_read_lock now an uint to reflect the 2 steps of global read lock (does not block COMMIT / does)
sql/sql_db.cc:
update for new prototype
sql/sql_parse.cc:
implementing the two steps of global read lock so that FLUSH TABLES WITH READ LOCK can block COMMIT without deadlocking with COMMITs.
mysqld.cc:
Changed LOGLEVEL enum to loglevel
mysql_priv.h, log.cc:
Changed LOGLEVEL to loglevel. Removed startup_ from some of the DBUG_ENTER macros. Removed the print_msg_to_log function as it was unused.
my_getopt.c, my_getopt.h:
Renamed LOGLEVEL to loglevel to match coding standards
include/my_getopt.h:
Renamed LOGLEVEL to loglevel to match coding standards
mysys/my_getopt.c:
Renamed LOGLEVEL to loglevel to match coding standards
sql/log.cc:
Changed LOGLEVEL to loglevel. Removed startup_ from some of the DBUG_ENTER macros. Removed the print_msg_to_log function as it was unused.
sql/mysql_priv.h:
Changed LOGLEVEL to loglevel. Removed startup_ from some of the DBUG_ENTER macros. Removed the print_msg_to_log function as it was unused.
sql/mysqld.cc:
Changed LOGLEVEL enum to loglevel
replacing the no_log argument of mysql_create_table() by some safer method
(temporarily setting OPTION_BIN_LOG to 0) which guarantees that even the automatic
DELETE FROM heap_table does not get into the binlog when a not-yet-existing HEAP table
is opened by mysql_create_table().
mysql-test/r/rpl_heap.result:
result update
mysql-test/t/rpl_heap.test:
testing a bug
sql/log.cc:
new class Disable_binlog used to temporarily disable binlogging for one thread.
sql/mysql_priv.h:
removing argument no_log from mysql_create_table(); no_log was perfect as some
binlogging could still be done by open_unireg_entry() for a HEAP table.
sql/sql_class.h:
new class Disable_binlog used to temporarily disable binlogging for one thread.
sql/sql_parse.cc:
removing no_log
sql/sql_table.cc:
removing no_log from mysql_create_table(); instead using new class Disable_binlog.
Disabling binlogging in some cases, where the binlogging is done later by some other code
(case of CREATE SELECT and ALTER).
mysqld.cc:
Changed option_error_reporter to match new function header that includes LOGLEVEL enum
mysql_priv.h:
Removed the MY_ERROR style bitmask. Changed function headers to use new LOGLEVEL enum
log.cc:
Changed print_buffer_to_log to print_buffer_to_file. Remove the timestamp bool and now all log entries written to stderr are timestamped. Removed some unused commented code. changed to use the new LOGLEVEL enum.
my_getopt.c:
Changed functions to use the new LOGLEVEL enum and changed the included error reporter to be default_reporter. This reporter is used in handle_options if a reporter is not given
my_getopt.h:
changed typedefs to use better naming convention. Moved error bitmask into the LOGLEVEL enum and included it here.
include/my_getopt.h:
changed typedefs to use better naming convention. Moved error bitmask into the LOGLEVEL enum and included it here.
mysys/my_getopt.c:
Changed functions to use the new LOGLEVEL enum and changed the included error reporter to be default_reporter. This reporter is used in handle_options if a reporter is not given
sql/log.cc:
Changed print_buffer_to_log to print_buffer_to_file. Remove the timestamp bool and now all log entries written to stderr are timestamped. Removed some unused commented code. changed to use the new LOGLEVEL enum.
sql/mysql_priv.h:
Removed the MY_ERROR style bitmask. Changed function headers to use new LOGLEVEL enum
sql/mysqld.cc:
Changed option_error_reporter to match new function header that includes LOGLEVEL enum
Added declarations for print_msg_to_log and vprint_msg_to_log. sql_print_error are simple functions that wrap calls to print_msg_to_log. Define the different error types with MY_ERROR_TYPE, MY_WARNING_TYPE, and MY_INFORMATION_TYPE
gen_lex_hash.cc:
Added NULL error reporting parameter to handle_options
log.cc:
Add print_msg_to_log, print_buffer_to_log, and vprint_msg_to_log. Print_msg_to_log will write the message to the windows event log if on NT. We now have error, warning, and information versions of sql_print_xxxx. T his is a variation of a similar changeset WAX did.
mysqld.cc:
Added option_error_reporter callback function and pass that into handle_options
mysql.cc:
Added NULL as error reporter arg to the end of handle_options
Many files:
Added NULL error reporter parameter as the last paramter to handle_options
my_getopt.c:
Added second function pointer to server as an error reporting callback. Added local function report_option_error that will either write the error to stderr or to the error reporting callback. changed all calls in handle_options from fprintf(stderr, ... ) to report_option_error
my_getopt.h:
Changed declaration of handle_options to use typedefs for the two function pointers. added second function pointer to server as an error reporting callback
mysqld.dsp:
Added custom build step for compiling message file and added message resource file (output of mc)
VC++Files/sql/mysqld.dsp:
Added custom build step for compiling message file and added message resource file (output of mc)
client/mysqladmin.c:
Added NULL error reporter parameter as the last paramter to handle_options
client/mysqlcheck.c:
Added NULL error reporter parameter as the last paramter to handle_options
client/mysqldump.c:
Added NULL error reporter parameter as the last paramter to handle_options
client/mysqlimport.c:
Added NULL error reporter parameter as the last paramter to handle_options
client/mysqlmanager-pwgen.c:
Added NULL error reporter parameter as the last paramter to handle_options
client/mysqlmanagerc.c:
Added NULL error reporter parameter as the last paramter to handle_options
client/mysqlbinlog.cc:
Added NULL error reporter parameter as the last paramter to handle_options
client/mysqlshow.c:
Added NULL error reporter parameter as the last paramter to handle_options
client/mysqltest.c:
Added NULL error reporter parameter as the last paramter to handle_options
extra/my_print_defaults.c:
Added NULL error reporter parameter as the last paramter to handle_options
extra/mysql_install.c:
Added NULL error reporter parameter as the last paramter to handle_options
extra/mysql_waitpid.c:
Added NULL error reporter parameter as the last paramter to handle_options
extra/perror.c:
Added NULL error reporter parameter as the last paramter to handle_options
extra/resolve_stack_dump.c:
Added NULL error reporter parameter as the last paramter to handle_options
extra/resolveip.c:
Added NULL error reporter parameter as the last paramter to handle_options
isam/isamchk.c:
Added NULL error reporter parameter as the last paramter to handle_options
isam/pack_isam.c:
Added NULL error reporter parameter as the last paramter to handle_options
myisam/mi_test1.c:
Added NULL error reporter parameter as the last paramter to handle_options
myisam/myisam_ftdump.c:
Added NULL error reporter parameter as the last paramter to handle_options
myisam/myisamchk.c:
Added NULL error reporter parameter as the last paramter to handle_options
myisam/myisampack.c:
Added NULL error reporter parameter as the last paramter to handle_options
include/my_getopt.h:
Changed declaration of handle_options to use typedefs for the two function pointers. added second function pointer to server as an error reporting callback
mysys/my_getopt.c:
Added second function pointer to server as an error reporting callback. Added local function report_option_error that will either write the error to stderr or to the error reporting callback. changed all calls in handle_options from fprintf(stderr, ... ) to report_option_error
tools/mysqlmanager.c:
Added NULL error reporter parameter as the last paramter to handle_options
client/mysql.cc:
Added NULL as error reporter arg to the end of handle_options
sql/mysqld.cc:
Added option_error_reporter callback function and pass that into handle_options
sql/log.cc:
Add print_msg_to_log, print_buffer_to_log, and vprint_msg_to_log. Print_msg_to_log will write the message to the windows event log if on NT. We now have error, warning, and information versions of sql_print_xxxx. T his is a variation of a similar changeset WAX did.
sql/gen_lex_hash.cc:
Added NULL error reporting parameter to handle_options
sql/mysql_priv.h:
Added declarations for print_msg_to_log and vprint_msg_to_log. sql_print_error are simple functions that wrap calls to print_msg_to_log. Define the different error types with MY_ERROR_TYPE, MY_WARNING_TYPE, and MY_INFORMATION_TYPE
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted
Redesigned the handler close functions so that they are usable
at different places where waiting for closing tables is done.
mysql-test/r/flush_table.result:
bug#3565 - HANDLER and FLUSH TABLE/TABLES deadlock.
Added the test results.
mysql-test/t/flush_table.test:
bug#3565 - HANDLER and FLUSH TABLE/TABLES deadlock.
Activated old test case.
Added new test cases.
sql/mysql_priv.h:
bug#3565 - HANDLER and FLUSH TABLE/TABLES deadlock.
Made mysql_ha_close() more flexible.
Removed mysql_ha_closeall(), which closed only one table despite its name.
Added mysql_ha_close_list(), which closes the complete list or all tables and does not lock.
Removed a duplicate declaration.
sql/sql_base.cc:
bug#3565 - HANDLER and FLUSH TABLE/TABLES deadlock.
Added proper close calls before some wait points to avoid deadlocks
or infinite loops.
sql/sql_handler.cc:
bug#3565 - HANDLER and FLUSH TABLE/TABLES deadlock.
Redesigned the internal function find_table_ptr_by_name().
It can now suppress locking and tells if the requested table
has been flushed by itself.
Extended mysql_ha_close() so that it can now suppres locking
and error reporting. That way it can be used at more places and the
old function mysql_ha_closeall() is now obsolete.
Added a new function mysql_ha_close_list() which closes a whole list
of HANDLER tables or all HANDLER tables, if the list is NULL.
Furthermore is can close all 'old' (marked for flush) HANDLER tables.
sql/sql_table.cc:
bug#3565 - HANDLER and FLUSH TABLE/TABLES deadlock.
Replaced the obsolte mysql_ha_closeall() by the new mysql_ha_close().
(fix by our Harrison Fisk): when one does SET GLOBAL SERVER_ID=x, we must set
server_id_supplied to 1.
sql/mysql_priv.h:
server_id_supplied must be here to be visible in set_var.cc
sql/mysqld.cc:
rephrasing warnings when server id is not set explicitely.
sql/set_var.cc:
when one does SET GLOBAL SERVER_ID=x; it should be considered as explicitely setting
the server id, so do server_id_supplied=1.
sql/slave.cc:
Correcting wrong comment
Output TIMESTAMP in 4.1 format for 4.1 tables (or for TIMESTAMP(19)) (portability fix)
Fixed that INTERVAL can handle big integers. (Bug #3498)
Fixed that hostname="" works identical as hostname="%" for table/column grants (Bug #3473)
mysql-test/mysql-test-run.sh:
Fixed wrong http address (Bug #3460)
mysql-test/r/func_time.result:
Results for new test cases
mysql-test/t/func_time.test:
Added test of INTERVAL with big integers
scripts/mysqld_safe.sh:
Added html address to manual in case of error
sql/field.cc:
Output TIMESTAMP in 4.1 format for 4.1 tables (or for TIMESTAMP(19))
sql/item_timefunc.cc:
Fixed that INTERVAL can handle big integers. (Bug #3498)
sql/mysql_priv.h:
Removed not needed prototype
sql/sql_acl.cc:
Fixed that hostname="" works identical as hostname="%" for table/column grants (Bug #3473)
Moved GRANT_TABLE::GRANT_TABLE functions ou from class definition to make it possible to debug them
sql/structs.h:
Fix for long values to INTERVAL
Abort if we can't allocate memory for table cache
Fix bug with multi-update-tables and BDB tables.
extra/replace.c:
Fix comments
mysql-test/install_test_db.sh:
Change internal option from -bin to --bin
Ensure that script works with both 'make install' and 'make_binary_distribution' layouts (Bug #3031)
mysql-test/mysql-test-run.sh:
Change internal option from -bin to --bin
sql/ha_berkeley.cc:
More debug
sql/mysql_priv.h:
Change table_cache_init to return error
sql/mysqld.cc:
Abort if we can't allocate memory for table cache. (Bug #3085)
Enable warnings by default
sql/sql_base.cc:
Change table_cache_init to return error
sql/sql_update.cc:
Fix bug with multi-update-tables and BDB tables. Bug #3098
Problem was that we didn't initialize BDB for calls to rnd_pos()
We introduce a new function mysql_test_parse_for_slave().
If the slave sees that the query got a really bad error on master
(killed e.g.), then it calls this function to know if this query
can be ignored because of replicate-*-table rules (do not worry
about replicate-*-db rules: they are checked so early that they have
no bug). If the answer is yes, it skips the query and continues. If
it's no, then it stops and say "fix your slave data manually" (like it
did before this change).
mysql-test/r/rpl_error_ignored_table.result:
result update
mysql-test/t/rpl_error_ignored_table-slave.opt:
ignore more tables
mysql-test/t/rpl_error_ignored_table.test:
we test if a killed query on the master, is ignored on the slave
if the tables it involves should be excluded because of replicate-*-table
rules.
sql/log_event.cc:
If the query got a really bad error on the master (thread killed etc),
parse it to test the table names: if the replicate-*-do|ignore-table
rules say "this query must be ignored" then we exit gracefully;
otherwise we warn about the bad error and tell DBA to check/fix it.
Before this change, we always warned and stopped.
sql/mysql_priv.h:
new function
sql/slave.cc:
don't print error immediately as we need to do one more test to
be sure.
sql/sql_parse.cc:
we add a function mysql_test_parse_for_slave(), to be used only
by the slave if it wants to know if the query should be ignored or not;
so this function only parses the query, does not execute it.
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
Marked --bdb-no-sync as deprecated
Added --sync-bdb-logs / --disable-sync-bdb-logs as a synonym / alternative.
mysys/my_getopt.c:
Changed my_getopt so that disabled_my_option can be used for
GET_BOOL type options too.
sql/mysql_priv.h:
Added opt_sync_frm
sql/mysqld.cc:
Added sync-frm / disable-sync-frm to mysqld, to be able to disable
use of my_sync() (fsync()). This defaults to behavior in 4.0.16
and before, where creating of new tables is quicker than currently.
This option is enabled by default.
Marked --bdb-no-sync as deprecated option and added another one,
--sync-bdb-logs besides. --bdb-no-sync and --disabled-sync-bdb-logs
are now synonyms.
sql/unireg.cc:
One can disable my_sync() by using --disable-sync-frm
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted
Moved all range checks for TIMESTAMP value to my_gmt_sec().
Also fixed check of upper boundary of TIMESTAMP range (which
also now will catch datetime values which are too small for
TIMESTAMP in case if time_t is unsigned).
mysql-test/r/timezone.result:
Added test which checks if TIMESTAMP range is checked
correctly (current time zone is honoured and both upper
and lower bounds of TIMESTAMP range are checked).
mysql-test/t/timezone.test:
Added test which checks if TIMESTAMP range is checked
correctly (current time zone is honoured and both upper
and lower bounds of TIMESTAMP range are checked).
sql/field.cc:
Check if datetime value is in TIMESTAMP range has moved to
my_gmt_sec() function.
sql/mysql_priv.h:
Added more constants for checking if datetime is in allowed
range for TIMESTAMP.
sql/time.cc:
Check if datetime value is in TIMESTAMP range has moved to
my_gmt_sec() function. Fixed check of its return value
to catch overflows in both directions and also overflows in
case of unsigned time_t.
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
Fixed problem with char > 128 in QUOTE() function. (Bug #1868)
Disable creation of symlinks if my_disable_symlink is set
Fixed searching of TEXT with end space. (Bug #1651)
Fixed caching bug in multi-table-update where same table was used twice. (Bug #1711)
Fixed problem with UNIX_TIMESTAMP() for timestamps close to 0. (Bug #1998)
Fixed timestamp.test
include/my_base.h:
Add HA_END_SPACE_KEY to mark keys that has VARCHAR/TEXT fields.
myisam/mi_check.c:
Delete not used variable
myisam/mi_key.c:
Fix autoincrement for signed columns (Bug #1366). Patch by Holyfoot
myisam/mi_open.c:
Bug fix for future (doesn't affect current code)
myisam/mi_search.c:
Ignore end space for VARCHAR/TEXT columns
mysql-test/r/auto_increment.result:
Test auto_increment with signed numbers
mysql-test/r/binary.result:
Update results (old result was wrong)
mysql-test/r/func_str.result:
Added test of QUOTE()
mysql-test/r/func_time.result:
Add test of unix_timestamp()
mysql-test/r/have_met_timezone.require:
Fixed test
mysql-test/r/innodb.result:
Add test for InnoDB behaviour with TRUNCATE
mysql-test/r/multi_update.result:
Test of multi-update bug
mysql-test/r/symlink.result:
Test of ALTER TABLE and symlinks
mysql-test/r/timezone.result:
Test of from_unixtime()
mysql-test/r/truncate.result:
Test of truncate and auto_increment
mysql-test/r/type_blob.result:
Test of key search on TEXT/VARCHAR column with end space
mysql-test/t/auto_increment.test:
Test auto_increment with signed numbers
mysql-test/t/func_str.test:
Added test of QUOTE()
mysql-test/t/func_time.test:
Add test of unix_timestamp()
mysql-test/t/innodb.test:
Add test for InnoDB behaviour with TRUNCATE
mysql-test/t/multi_update.test:
Test of multi-update bug
mysql-test/t/symlink.test:
Test of ALTER TABLE and symlinks
mysql-test/t/timezone.test:
Test of from_unixtime()
mysql-test/t/truncate.test:
Test of truncate and auto_increment
mysql-test/t/type_blob.test:
Test of key search on TEXT/VARCHAR column with end space
mysys/my_symlink2.c:
Disable creation of symlinks if my_disable_symlink is set
sql/field.h:
Indentation cleanup
sql/ha_innodb.cc:
HA_PART_KEY -> HA_PART_KEY_SEG
sql/item_strfunc.cc:
Fixed problem with char > 128 in QUOTE() function. (Bug #1868)
sql/mysql_priv.h:
Make check_dup() external
sql/opt_range.cc:
Fixed searching of TEXT with end space. (Bug #1651)
sql/records.cc:
Fixed caching bug in multi-table-update where same table was used twice.
(Bug #1711)
sql/sql_acl.cc:
Reset ip and ip_mask if hostname is NULL
sql/sql_parse.cc:
Make check_dup() global
sql/sql_select.cc:
Fixed searching of TEXT with end space. (Bug #1651)
sql/sql_table.cc:
Fixed searching of TEXT with end space. (Bug #1651)
sql/sql_update.cc:
Fixed caching bug in multi-table-update where same table was used twice.
(Bug #1711)
sql/table.cc:
Fixed searching of TEXT with end space. (Bug #1651)
sql/table.h:
Fixed caching bug in multi-table-update where same table was used twice.
(Bug #1711)
sql/time.cc:
Fixed problem with UNIX_TIMESTAMP() for timestamps close to 0. (Bug #1998)
New formats added for 'week()' function and 'default_week_format' option(4 - 7).
Next formats is supported now:
*Value* *Meaning*
`0' Week starts on Sunday; First Sunday of the year starts week 1.
Week() returns 0-53.
`1' Week starts on Monday; Weeks numbered according to ISO 8601:1988.
Week() returns 0-53.
`2' Week starts on Sunday; First Sunday of the year starts week 1.
Week() returns 1-53.
`3' Week starts on Monday; Weeks numbered according to ISO 8601:1988.
Week() returns 1-53.
`4' Week starts on Sunday; Weeks numbered according to ISO 8601:1988.
Week() returns 0-53.
`5' Week starts on Monday; First Monday of the year starts week 1.
Week() returns 0-53.
`6' Week starts on Sunday; Weeks numbered according to ISO 8601:1988.
Week() returns 1-53.
`7' Week starts on Monday; First Monday of the year starts week 1.
Week() returns 1-53.
mysql-test/r/func_time.result:
Test for 'default_week_format' option and 'week' function
mysql-test/t/func_time.test:
Test for 'default_week_format' option and 'week' function
sql/item_timefunc.cc:
WL#1175 more default_week_formats for iso compatibility
sql/mysql_priv.h:
WL#1175 more default_week_formats for iso compatibility
sql/mysqld.cc:
WL#1175 more default_week_formats for iso compatibility
sql/time.cc:
WL#1175 more default_week_formats for iso compatibility
query_alloc_block_size, query_prealloc_size, range_alloc_block_size,transaction_alloc_block_size and transaction_prealloc_size
Add more checks for "out of memory" detection in range optimization
configure.in:
Added detection of mallinfo
mysql-test/r/variables.result:
Test of new variables
mysql-test/t/variables.test:
Test of new variables
sql/ha_berkeley.cc:
Use init_sql_alloc instead of init_alloc_root for better OOM detection
sql/log_event.cc:
Add new user variables for tuning memory usage
sql/mysql_priv.h:
Add new user variables for tuning memory usage
sql/mysqld.cc:
Add new user variables for tuning memory usage
sql/opt_ft.cc:
Add new user variables for tuning memory usage
sql/opt_ft.h:
Add new user variables for tuning memory usage
sql/opt_range.cc:
Add new user variables for tuning memory usage
Add more checks for out of memory conditions
sql/opt_range.h:
Add new user variables for tuning memory usage
sql/set_var.cc:
Add new user variables for tuning memory usage
sql/sql_acl.cc:
Add new user variables for tuning memory usage
sql/sql_class.h:
Add new user variables for tuning memory usage
sql/sql_delete.cc:
Add new user variables for tuning memory usage
sql/sql_parse.cc:
Add new user variables for tuning memory usage
sql/sql_select.cc:
Add new user variables for tuning memory usage
sql/sql_test.cc:
Add information about memory useage if system supports mallinfo()
sql/sql_udf.cc:
Add new user variables for tuning memory usage
sql/sql_update.cc:
Add new user variables for tuning memory usage
sql/table.cc:
Add new user variables for tuning memory usage
from ulong to ulonglong by defining -DBIG_JOINS
sql/mysql_priv.h:
- enable changing the number of table bits for JOINs to be increased
from ulong to ulonglong by defining BIG_JOINS
their newer DES_ versions.
Provided macros for backward compatibility.
include/my_global.h:
Added macros for DES_ OpenSSL functions for compatibility with pre 0.9.7
sql/des_key_file.cc:
Replaced deprecated OpenSSL des_ calls and types with newer
sql/item_strfunc.cc:
Replaced deprecated OpenSSL des_ calls and types with newer
sql/mysql_priv.h:
Replaced deprecated OpenSSL des_ types with newer
client/mysqltest.c:
Removed not used functions
myisam/mi_dynrec.c:
Added assert to avoid compilation errors
mysql-test/r/isam.result:
Updated results after merge
sql/log_event.cc:
Cleanup
sql/mysql_priv.h:
Cleanup
sql/sql_class.cc:
Moved Table_ident functions to .cc file to allow them to use table_case_convert()
sql/sql_class.h:
Moved Table_ident functions to .cc file to allow them to use table_case_convert()
mysql-test/r/func_test.result:
Auto merged
mysql-test/r/grant.result:
Auto merged
mysql-test/t/func_test.test:
Auto merged
mysql-test/t/grant.test:
Auto merged
sql/ha_innodb.cc:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/sql_acl.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_table.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
FLUSH LOGS now rotates relay logs,
and a new variable max_relay_log_size.
Plus a very small bit of code cleaning.
libmysqld/lib_sql.cc:
open_log has no default arguments anymore.
mysql-test/r/rpl_flush_log_loop.result:
result update now that FLUSH LOGS rotates relay logs.
mysql-test/r/rpl_log.result:
result update now that FLUSH LOGS rotates relay logs.
mysql-test/r/rpl_rotate_logs.result:
result update now that max_binlog_size is 4096.
mysql-test/t/rpl_rotate_logs-master.opt:
now max_binlog_size must be a multiple of 4096 (see change in mysqld.cc)
sql/log.cc:
Got rid of default arguments of various MYSQL_LOG methods (the default arguments
made code reading uneasy).
Set max_size in ::init().
New function set_max_size() to set max_size of a MYSQL_LOG on-the-fly.
More DBUG info.
sql/mysql_priv.h:
no defaults in open_log().
New variables max_relay_log_size.
sql/mysqld.cc:
New variable and option max_relay_log_size.
max_binlog_size and max_relay_log_size are multiples of IO_SIZE.
No more default arguments for log functions.
sql/set_var.cc:
New variable max_relay_log_size.
If it is 0, then max_binlog_size will apply to relay logs.
When one of these variables is changed, fix_max_%log_size is called
to update max_size of the binary and/or relay logs.
sql/slave.cc:
New function rotate_relay_log().
sql/slave.h:
New function rotate_relay_log().
sql/sql_class.h:
New member max_size of MYSQL_LOG (for automatic rotation).
New method set_max_size() for setting on-the-fly.
sql/sql_parse.cc:
Flush the relay log in FLUSH LOGS.
Added MAX_PASSWORD_LENGTH. This increased master-slave passwords to 32 bytes (Bug #766)
Fixed server crash on purge master logs or show master logs when binlog is off. (Bug #733)
client/mysql.cc:
status query on killed mysql connection results in segmentation fault (Bug #738)
configure.in:
Portability fix for Unixware
include/my_global.h:
Removed wrong patch from previous changeset
sql/mysql_priv.h:
Added MAX_PASSWORD_LENGTH. This increased master-slave passwords to 32 bytes
sql/slave.h:
Optimized structure
sql/sql_repl.cc:
Memory overrun safety fixes (not critical)
Fixed server crash on purge master logs or show master logs when binlog is off. (Bug #733)
sql/sql_repl.h:
Fixed to use right define
strings/strmake.c:
Fixed comment
Tests cleanup (put drop database first in tests)
client/mysql.cc:
Cleanup of code in last pull
include/config-win.h:
Remove HAVE_CHSIZE on windows as it's not 64 bit clean
include/my_global.h:
Portability fix
mysql-test/r/drop.result:
Clean up results
mysql-test/r/flush.result:
Clean up results
mysql-test/r/grant_cache.result:
Clean up results
mysql-test/r/innodb.result:
Clean up results
mysql-test/r/insert_select.result:
Clean up results
mysql-test/r/merge.result:
Clean up results
mysql-test/r/query_cache.result:
Clean up results
mysql-test/t/drop.test:
Clean up tests
mysql-test/t/flush.test:
Clean up tests
mysql-test/t/grant_cache.test:
Clean up tests
mysql-test/t/innodb.test:
Clean up tests
mysql-test/t/insert_select.test:
Added more tests
mysql-test/t/merge.test:
Test of bug 515
mysql-test/t/query_cache.test:
Clean up tests
mysql-test/t/symlink.test:
Clean up tests
sql/mysql_priv.h:
Cleaner implementation if INSERT ... SELECT with same tables
sql/sql_lex.h:
Cleaner implementation if INSERT ... SELECT with same tables
sql/sql_list.h:
Indentation cleanup
sql/sql_parse.cc:
Cleaner implementation if INSERT ... SELECT with same tables
sql/sql_yacc.yy:
Cleaner implementation if INSERT ... SELECT with same tables
Added option --gdb
Free memory used by replicate_xxx and binglog_xxx options
mysql-test/mysql-test-run.sh:
Added --gdb when using gdb
mysys/thr_alarm.c:
Safety check
sql/mysql_priv.h:
Don't install signal handler for SIGINT by default
sql/mysqld.cc:
Don't install signal handler for SIGINT by default
Added option --gdb
Free memory used by replicate_xxx and binglog_xxx options.
Add statistics variable for killed threads
sql/repl_failsafe.cc:
Incremented aborted_connects on failure
sql/sql_list.cc:
Added free_list() to free memory on shutdown.
mysql-test/r/alter_table.result:
new results
mysql-test/r/lowercase_table.result:
new results
mysql-test/t/alter_table.test:
Test of ALTER TABLE DISABLE KEYS + INSERT DELAYED
mysql-test/t/lowercase_table.test:
Added test of alias name comparison
sql/mysql_priv.h:
Made closed_cached_table local
sql/sql_table.cc:
Fixed bug in ALTER TABLE DISABLE KEYS and INSERT DELAYED
Fixed problem with localtime -> gmt where some times resulted in
different (but correct) timestamps. Now MySQL should use the smallest
possible timestamp value in this case. (Bug 316)
client/mysql.cc:
Fixed problem with prompt when server disconnect. (Bug 356)
client/mysqltest.c:
More debug information
mysql-test/mysql-test-run.sh:
Added support for --timezone in -master.opt
mysql-test/t/raid.test:
Fixed test if raid is enabled
sql/field.cc:
New my_gmt_sec() parameters
sql/mysql_priv.h:
New my_gmt_sec() parameters
sql/mysqld.cc:
Remove LOCK_timezone.
Code cleanup
sql/time.cc:
Fixed problem with localtime -> gmt where some times resulted in
different (but correct) timestamps. Now MySQL should use the smallest
possible timestamp value in this case. (Bug 316)
myisam/myisamchk.c:
Removed warning from fulltext when repairing many tables with fulltext index
sql/init.cc:
Remove not used variables
sql/mysql_priv.h:
Remove not used variables
sql/mysqld.cc:
Removed not used variables
Added option --read-only
Change opt_do_pstack and master_ssl to get them to work with my_getopt
sql/set_var.cc:
Option --read-only
sql/sql_parse.cc:
Option --read-only