Commit graph

249 commits

Author SHA1 Message Date
unknown
f63c8f53b0 Bug#7823 - FLUSH TABLES WITH READ LOCK + INSERT DELAYED = deadlock
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.
2005-04-27 12:40:37 +02:00
unknown
8104faa083 Fixes for bugs reported by Stefano Di Paola (stefano.dipaola@wisec.it)
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
2005-03-03 19:51:29 +01:00
unknown
934fde094c Bug#7011
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()
2005-01-30 10:24:03 +00:00
unknown
5ab6c5e532 postreview fixes
sql/mysql_priv.h:
  constant definition
sql/sql_base.cc:
  difine used instead of constant
sql/sql_cache.cc:
  difine used instead of constant
  typo fixed
2004-10-22 22:51:04 +03:00
unknown
fe46310640 Code cleanups while doing review of pushed code
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
2004-10-06 17:20:39 +03:00
unknown
697cb7b106 BUG#4286 - HANDLER tables are closed by FLUSH TABLE(S).
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.
2004-09-24 18:39:25 +02:00
unknown
ad1f3bb17d Merge bk-internal.mysql.com:/home/bk/mysql-4.0
into build.mysql.com:/users/rburnett/mysql-4.0


BitKeeper/etc/logging_ok:
  auto-union
sql/mysql_priv.h:
  Auto merged
2004-08-26 13:43:27 +02:00
unknown
0572112d43 merge
sql/mysql_priv.h:
  Auto merged
sql/sql_parse.cc:
  Auto merged
mysql-test/mysql-test-run.sh:
  merge (use new code)
2004-08-26 00:39:43 +03:00
unknown
8ed5952a86 Remove default argument to mysql_truncate()
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()
2004-08-26 00:37:25 +03:00
unknown
b15ee67874 Merge bk-internal.mysql.com:/home/bk/mysql-4.0
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
2004-08-25 06:39:19 +02:00
unknown
cd8054d431 Making FLUSH TABLES WITH READ LOCK block COMMITs of existing transactions,
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.
2004-08-20 16:35:23 +02:00
unknown
87bce8540c Bug #4466 Nothing in .err when mysql service ends because of malformed my.ini options
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
2004-08-19 17:56:32 +02:00
unknown
95334ac6c7 Fix for BUG#4971 "CREATE TABLE ... TYPE=HEAP SELECT ... stops slave (wrong DELETE in binlog)":
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).
2004-08-19 00:29:11 +02:00
unknown
4736e7d4bd BUG# 4466 - Nothing in .err when mysql service ends because of malformed my.ini options
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
2004-08-18 22:31:01 +02:00
unknown
767d880f9c 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
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
2004-08-14 03:38:37 +02:00
unknown
f4b2b7aa2d mysql_find_files() made extern (from static to sql_show.cc) 2004-07-10 11:13:05 +02:00
unknown
8f6664c59a bug#3565 - HANDLER and FLUSH TABLE/TABLES deadlock.
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().
2004-06-24 15:06:56 +02:00
unknown
66c96f2c57 Fix for BUG#3829 "Setting server_id on fly doesn't allow replication to start"
(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
2004-05-19 15:03:32 +02:00
unknown
8b9ecce08c Fixed http address in some scripts (Bug #3460)
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
2004-04-28 17:45:08 +03:00
unknown
965158f28f Merge
mysql-test/install_test_db.sh:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
mysql-test/mysql-test-run.sh:
  SCCS merged
2004-03-12 01:13:04 +02:00
unknown
a1d9e1eec4 Ensure that install_test_db.sh script works with both 'make install' and 'make_binary_distribution' layouts
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()
2004-03-12 01:10:22 +02:00
unknown
bd6c4ef400 Fix for BUG#2983 "If statement was killed on master, slave errors despite replicate-wild-ignore-t"
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.
2004-03-11 17:38:19 +01:00
unknown
5bc89a9644 Merge bk-internal.mysql.com:/home/bk/mysql-4.0
into mysql.com:/home/my/mysql-4.0


sql/mysql_priv.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/sql_insert.cc:
  Auto merged
2004-03-06 10:43:53 +02:00
unknown
aa20bd9e8c Ensure that one can't from the command line set a variable too small. (Bug #2710)
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
2004-03-06 10:43:35 +02:00
unknown
52236ae1e1 Fixed Bug#2491, INSERT DELAYED causes binary log unusable by mysqlbinlog (replication is ok)
Setting insert delayed threads = 0 at mysql_init_command.


sql/mysql_priv.h:
  New session variable, max_insert_delayed_threads
sql/mysqld.cc:
  New session variable, max_insert_delayed_threads
sql/set_var.cc:
  New session variable, max_insert_delayed_threads
sql/sql_class.h:
  New session variable, max_insert_delayed_threads
sql/sql_insert.cc:
  New session variable, max_insert_delayed_threads
BitKeeper/etc/logging_ok:
  Logging to logging@openlogging.org accepted
2004-03-04 17:58:36 +00:00
unknown
ec76183bec Added new option --sync-frm / --skip-sync-frm
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
2004-02-03 18:10:45 +00:00
unknown
ef55f2dcdb Fix for bug #2523 '"func_time" test fails on QNX'.
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.
2004-01-30 19:15:11 +03:00
unknown
376fb08072 Some small portability fixes.
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
2003-12-30 13:14:21 +02:00
unknown
759ea82ee1 Fix autoincrement for signed columns (Bug #1366)
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)
2003-12-12 22:26:58 +02:00
unknown
468dcb6092 WL#1175: more default_week_formats for iso compatibility
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
2003-12-07 15:10:21 +04:00
unknown
74ea459412 Add new user variables for tuning memory usage:
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
2003-10-11 22:00:24 +03:00
unknown
ad0a7a3034 - enable changing the number of table bits for JOINs to be increased
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
2003-09-29 12:01:10 +02:00
unknown
867aec2fe4 Replaced deprecated since OpenSSL 0.9.7 des_ calls and types with
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
2003-09-12 22:33:43 +04:00
unknown
6fd5403d31 Portability fixes
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()
2003-08-28 22:18:02 +03:00
unknown
2ad17fa6e0 Merge bk-internal.mysql.com:/home/bk/mysql-4.0
into narttu.mysql.fi:/my/mysql-4.0


sql/mysql_priv.h:
  Auto merged
sql/sql_table.cc:
  Auto merged
2003-08-23 12:26:08 +03:00
unknown
af9b771a32 show symlinked directories in SHOW CREATE TABLE 2003-08-23 12:25:39 +03:00
unknown
2d2f576545 After merge fixes
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
2003-08-22 18:43:46 +03:00
unknown
0eaf4d8d7e Fix mutex handling in SHOW_VARIABLES (key_buffer_size was not properly protected)
Changed some non fatal myisamchk error messages to warnings


myisam/myisamchk.c:
  Change error -> warning
sql/handler.cc:
  Add mutex around keybuff_size usage
sql/mysql_priv.h:
  Indentation update
sql/set_var.cc:
  Add mutex around longlong variable usage
sql/sql_parse.cc:
  Fix mutex handling in SHOW_VARIABLES
sql/sql_show.cc:
  Fix mutex handling in SHOW_VARIABLES
2003-08-17 14:10:15 +03:00
unknown
d289accb0a Fuller implementation of lower case table names.
Bug record #828
2003-07-23 17:36:56 +03:00
unknown
964c2fe083 Merge gbichot@bk-internal.mysql.com:/home/bk/mysql-4.0
into mysql.com:/home/mysql_src/mysql-4.0


sql/mysql_priv.h:
  Auto merged
sql/slave.h:
  Auto merged
sql/sql_parse.cc:
  Auto merged
2003-07-06 18:01:39 +02:00
unknown
27601fc5ee WL#912 (more user control on relay logs):
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.
2003-07-06 17:59:54 +02:00
unknown
2d5d754c8c Status query on killed mysql connection results in segmentation fault (Bug #738)
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
2003-07-04 03:18:15 +03:00
unknown
2373397e13 Cleaner implementation if INSERT ... SELECT with same tables
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
2003-07-03 11:55:36 +03:00
unknown
a1a58d6c5a Don't install signal handler for SIGINT by default
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.
2003-06-10 21:42:29 +03:00
unknown
2d23d49b1f Merge bk-internal.mysql.com:/home/bk/mysql-4.0
into narttu.mysql.fi:/my/mysql-4.0


sql/mysql_priv.h:
  Auto merged
2003-06-01 12:33:23 +03:00
unknown
2ef52d46a4 Fixed bug in ALTER TABLE DISABLE KEYS and INSERT DELAYED. Bug #478
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
2003-06-01 12:32:53 +03:00
unknown
fadfa46796 Fix for compiling MySQL-4.0.13 with SSL support on OpenBSD 2003-05-30 18:41:19 +05:00
unknown
4920a3326f Fixed problem with mysql prompt when server disconnect. (Bug 356)
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)
2003-05-27 16:40:14 +03:00
unknown
68aa31f268 Merge bk-internal.mysql.com:/home/bk/mysql-4.0
into narttu.mysql.fi:/my/mysql-4.0


sql/mysql_priv.h:
  Auto merged
2003-05-19 12:02:11 +03:00
unknown
18dd37b8a1 Added option --read-only (Thanks to Markus Benning)
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
2003-05-19 12:01:38 +03:00