1
0
mirror of https://github.com/MariaDB/server.git synced 2025-05-01 08:45:04 +03:00

442 Commits

Author SHA1 Message Date
unknown
1b51f98e47 Remove extra '/' after mysql_real_data_home
Add missing parameter to strxnmov() that caused some INTO OUTFILE commands to core dump


mysql-test/mysql-test-run.sh:
  Ensure that clients used the supplied --socket argument
mysql-test/r/lowercase_table.result:
  Remove tables used in other tests that may affect this one
mysql-test/r/rename.result:
  Remove tables used in other tests that may affect this one
mysql-test/t/lowercase_table.test:
  Remove tables used in other tests that may affect this one
mysql-test/t/rename.test:
  Remove tables used in other tests that may affect this one
sql/item_cmpfunc.cc:
  Remove not relevant comment
sql/sql_class.cc:
  Add missing parameter to strxnmov() that caused some INTO OUTFILE commands to core dump
sql/sql_load.cc:
  Remove extra '/' after mysql_real_data_home
sql/sql_table.cc:
  Remove extra '/' after mysql_real_data_home
2004-09-03 02:25:27 +03:00
unknown
20f24a422b Portablity fixes & simple optimizations
sql/ha_ndbcluster.cc:
  Added missing cast
sql/item.cc:
  Portability fix (for windows)
sql/lock.cc:
  Cleanup + more comments
sql/sql_class.cc:
  Portability fix + more comments
sql/sql_select.cc:
  Portability fix
sql/sql_table.cc:
  Simpler handling of auto_increment in ALTER TABLE
2004-08-24 18:00:45 +03:00
unknown
7d4ad390e0 Fixed uninitialized variable
Fixed error messages


sql/share/czech/errmsg.txt:
  Fixed error message to us long
sql/share/danish/errmsg.txt:
  Fixed error message to us long
sql/share/dutch/errmsg.txt:
  Fixed error message to us long
sql/share/english/errmsg.txt:
  Fixed error message to us long
sql/share/estonian/errmsg.txt:
  Fixed error message to us long
sql/share/french/errmsg.txt:
  Fixed error message to us long
sql/share/german/errmsg.txt:
  Fixed error message to us long
sql/share/greek/errmsg.txt:
  Fixed error message to us long
sql/share/hungarian/errmsg.txt:
  Fixed error message to us long
sql/share/italian/errmsg.txt:
  Fixed error message to us long
sql/share/japanese/errmsg.txt:
  Fixed error message to us long
sql/share/korean/errmsg.txt:
  Fixed error message to us long
sql/share/norwegian-ny/errmsg.txt:
  Fixed error message to us long
sql/share/norwegian/errmsg.txt:
  Fixed error message to us long
sql/share/polish/errmsg.txt:
  Fixed error message to us long
sql/share/portuguese/errmsg.txt:
  Fixed error message to us long
sql/share/romanian/errmsg.txt:
  Fixed error message to us long
sql/share/russian/errmsg.txt:
  Fixed error message to us long
sql/share/serbian/errmsg.txt:
  Fixed error message to us long
sql/share/slovak/errmsg.txt:
  Fixed error message to us long
sql/share/spanish/errmsg.txt:
  Fixed error message to us long
sql/share/swedish/errmsg.txt:
  Fixed error message to us long
sql/share/ukrainian/errmsg.txt:
  Fixed error message to us long
sql/sql_table.cc:
  Fixed uninitialized variable
2004-08-24 01:08:48 +03:00
unknown
0745a2b783 after merge fix
myisam/Makefile.am:
  put zlib at the end (libtool adds the whole bunch of dependencies right after that)
sql/Makefile.am:
  put zlib at the end (libtool adds the whole bunch of dependencies right after that)
2004-08-20 22:54:42 +02:00
unknown
e7157aba3a (manual port from 4.0 - was needed)
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:
  changing test to test a bug (but anyway, mysql-test-run --manager looks like not working in 4.1 currently,
  so this test is never run).
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 not 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 arg from mysql_create_table()
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 23:24:35 +02:00
unknown
945625ebaa manually merged
BitKeeper/etc/logging_ok:
  auto-union
BitKeeper/deleted/.del-mytest-old.c~5237697b30cf59e4:
  Auto merged
Build-tools/Bootstrap:
  Auto merged
Build-tools/mysql-copyright:
  Auto merged
configure.in:
  Auto merged
BitKeeper/deleted/.del-mysql_fix_privilege_tables.sql:
  Auto merged
VC++Files/innobase/innobase.dsp:
  Auto merged
client/mysql.cc:
  Auto merged
include/my_global.h:
  Auto merged
innobase/dict/dict0crea.c:
  Auto merged
innobase/dict/dict0dict.c:
  Auto merged
innobase/include/mtr0log.h:
  Auto merged
innobase/include/mtr0log.ic:
  Auto merged
innobase/include/srv0srv.h:
  Auto merged
innobase/include/ut0dbg.h:
  Auto merged
innobase/lock/lock0lock.c:
  Auto merged
innobase/os/os0file.c:
  Auto merged
innobase/row/row0mysql.c:
  Auto merged
innobase/row/row0sel.c:
  Auto merged
innobase/srv/srv0srv.c:
  Auto merged
innobase/ut/ut0dbg.c:
  Auto merged
innobase/ut/ut0mem.c:
  Auto merged
libmysql/Makefile.am:
  Auto merged
libmysql/Makefile.shared:
  Auto merged
libmysql/conf_to_src.c:
  Auto merged
libmysql/dll.c:
  Auto merged
libmysql/errmsg.c:
  Auto merged
libmysql/manager.c:
  Auto merged
libmysql_r/Makefile.am:
  Auto merged
myisam/mi_key.c:
  Auto merged
mysql-test/Makefile.am:
  Auto merged
mysql-test/mysql-test-run.sh:
  Auto merged
mysql-test/r/having.result:
  Auto merged
mysql-test/r/heap.result:
  Auto merged
mysql-test/r/type_date.result:
  Auto merged
mysql-test/r/type_float.result:
  Auto merged
mysql-test/t/having.test:
  Auto merged
mysql-test/t/heap.test:
  Auto merged
mysql-test/t/type_date.test:
  Auto merged
mysql-test/t/type_float.test:
  Auto merged
mysql-test/t/type_uint.test:
  Auto merged
scripts/make_binary_distribution.sh:
  Auto merged
scripts/make_win_src_distribution.sh:
  Auto merged
sql/Makefile.am:
  Auto merged
sql/field.h:
  Auto merged
sql/ha_heap.cc:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/item_func.h:
  Auto merged
sql/item_sum.h:
  Auto merged
sql/lock.cc:
  Auto merged
sql/log.cc:
  Auto merged
sql/protocol.cc:
  Auto merged
sql/repl_failsafe.cc:
  Auto merged
sql/sql_acl.cc:
  Auto merged
sql/sql_analyse.cc:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/share/czech/errmsg.txt:
  Auto merged
sql/share/danish/errmsg.txt:
  Auto merged
sql/share/dutch/errmsg.txt:
  Auto merged
sql/share/english/errmsg.txt:
  Auto merged
sql/share/estonian/errmsg.txt:
  Auto merged
sql/share/french/errmsg.txt:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
sql/share/greek/errmsg.txt:
  Auto merged
sql/share/hungarian/errmsg.txt:
  Auto merged
sql/share/japanese/errmsg.txt:
  Auto merged
sql/share/korean/errmsg.txt:
  Auto merged
sql/share/norwegian-ny/errmsg.txt:
  Auto merged
sql/share/norwegian/errmsg.txt:
  Auto merged
sql/share/polish/errmsg.txt:
  Auto merged
sql/share/portuguese/errmsg.txt:
  Auto merged
sql/share/romanian/errmsg.txt:
  Auto merged
sql/share/russian/errmsg.txt:
  Auto merged
sql/share/slovak/errmsg.txt:
  Auto merged
sql/share/spanish/errmsg.txt:
  Auto merged
sql/share/swedish/errmsg.txt:
  Auto merged
sql/share/ukrainian/errmsg.txt:
  Auto merged
2004-08-18 19:57:55 +02:00
unknown
978e1ba084 bug#4881 - crash in ALTER .. RENAME if rename fails
sql/sql_select.cc:
  typos in comments
  harmless (hopefully) bug in optimizer fixed
2004-08-07 18:26:59 +02:00
unknown
00e7ec4279 Fix for:
Bug #4810 "deadlock with KILL when the victim was in a wait state"
(I included mutex unlock into exit_cond() for future safety)
and BUG#4827 "KILL while START SLAVE may lead to replication slave crash"


sql/lock.cc:
  we did exit_cond() before unlock(LOCK_open), which led to deadlocks with THD::awake(). Fixing this.
sql/log.cc:
  mutex unlock is now included in exit_cond()
sql/repl_failsafe.cc:
  we did exit_cond() before unlock(LOCK_rpl_status), which led to deadlocks with THD::awake(). Fixing this.
sql/slave.cc:
  we did exit_cond() before unlock(cond_lock), which led to deadlocks with THD::awake(). Fixing this.
  Fixing also that if killed while waiting for slave thread to start, we don't release the mutex
  (that caused a double release of the mutex => crash).
sql/sql_class.h:
  comments about exit_cond()/enter_cond().
  Mutex unlock is now included in exit_cond() so that it's always done in the good order.
sql/sql_table.cc:
  unlock is now included in exit_cond().
2004-07-31 22:33:20 +02:00
unknown
864405db7d no_auto_value_on_zero + alter table bug 2004-07-30 14:17:12 +02:00
unknown
cf8dbcc683 Fixes for
BUG#4506 "mysqlbinlog --position --read-from-remote-server has wrong "# at" lines",
BUG#4553 "Multi-table DROP TABLE replicates improperly for nonexistent table" with a test file.
It was not possible to add a test for BUG#4506 as in the test suite we must use --short-form
which does not display the "# at" lines.


client/mysqlbinlog.cc:
  Fix for BUG#4506 "mysqlbinlog --position --read-from-remote-server has wrong "# at" lines"
  when reading a remote binlog, the start position is not always BIN_LOG_HEADER_SIZE (4).
sql/sql_table.cc:
  Fix for BUG#4553 "Multi-table DROP TABLE replicates improperly for nonexistent table"
  we must my_error() _before_ we write to the binlog, so that a meaningful error code is available
  in thd->net.last_errno for storage of the DROP TABLE statement into the binlog.
2004-07-17 16:58:16 +02:00
unknown
b42209774a Cleanup of db option cacheing
Some bug fixes to last pushed code


mysql-test/mysql-test-run.sh:
  Fix for new valgrind (2.1.1)
mysql-test/r/bdb.result:
  Updated results
mysql-test/t/ps_1general.test:
  removed wrong error condition
sql/ha_berkeley.cc:
  Fix for index_flags() in new code
sql/item_strfunc.cc:
  Cleanup (fixed indentation, removed short variable names)
sql/mysql_priv.h:
  Cleanup of db option cacheing
sql/mysqld.cc:
  Cleanup of db option cacheing
sql/sql_db.cc:
  Cleanup of db option cacheing
sql/sql_parse.cc:
  Cleanup of db option cacheing
sql/sql_table.cc:
  sprintf -> strxmov
sql/table.cc:
  key_read should be tested on key parts, not the whole key
2004-07-09 10:55:16 +03:00
unknown
f96b20c95e WL#807 Optimize loading database options in load_db_opt
also known as
BUG#2326 Charset of table is determined by charset of db only if "USE db;"
2004-07-08 15:03:01 +05:00
unknown
6cf3092224 Added missing my_time.c file to mysqlclient project
Moved include <assert.h> to my_global.h


VC++Files/client/mysqlclient.dsp:
  Added missing my_time.c file to mysqlclient project
include/my_dbug.h:
  Moved include <assert.h> to my_global.h
  Removed NDEBUG as asserts should be indenpendent of if we are using DBUG or not
include/my_global.h:
  Added assert.h as this is included in a lot of places
sql/sql_table.cc:
  Initialize forgotten variable
2004-06-28 00:42:02 +03:00
unknown
c6e23c8549 Merge with 4.0 to get the latest bug patches to 4.1
BitKeeper/etc/ignore:
  added sql/mysql_tzinfo_to_sql
BitKeeper/etc/logging_ok:
  auto-union
acinclude.m4:
  Auto merged
extra/perror.c:
  Auto merged
include/mysql.h:
  Auto merged
innobase/include/mach0data.ic:
  Auto merged
innobase/include/mtr0log.h:
  Auto merged
innobase/include/mtr0log.ic:
  Auto merged
innobase/mem/mem0dbg.c:
  Auto merged
innobase/pars/lexyy.c:
  Auto merged
BitKeeper/deleted/.del-4.0.XX-gpl.ipr~f5909a9e9bd8094:
  Auto merged
BitKeeper/deleted/.del-Clients and Tools.fgl~bf0f776883577f02:
  Auto merged
BitKeeper/deleted/.del-Development.fgl~6392ce285e73f5fc:
  Auto merged
mysql-test/mysql-test-run.sh:
  Auto merged
mysql-test/r/innodb_cache.result:
  Auto merged
mysql-test/r/lowercase_table2.result:
  Auto merged
mysql-test/t/innodb_cache.test:
  Auto merged
mysql-test/t/lowercase_table2.test:
  Auto merged
sql/ha_berkeley.cc:
  Auto merged
sql/handler.cc:
  Auto merged
scripts/make_win_src_distribution.sh:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
libmysql/libmysql.c:
  Merge with 4.0
mysql-test/r/bdb.result:
  Merge with 4.0
mysql-test/r/range.result:
  Merge with 4.0
mysql-test/t/bdb.test:
  Merge with 4.0
mysys/hash.c:
  Merge with 4.0
scripts/mysql_install_db.sh:
  Merge with 4.0
sql/field.cc:
  Merge with 4.0
sql/field.h:
  Merge with 4.0
sql/mysql_priv.h:
  Merge with 4.0
sql/sql_handler.cc:
  Merge with 4.0
sql/sql_select.cc:
  Merge with 4.0
sql/sql_table.cc:
  Merge with 4.0
2004-06-25 20:13:05 +03:00
unknown
0f42f82d2d Merge mysql.com:/home/mydev/mysql-4.0
into mysql.com:/home/mydev/mysql-4.0-bug3565


sql/sql_table.cc:
  Auto merged
2004-06-25 12:14:54 +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
3db93f8086 lower_case_table_names=2 (Keep case for table names) was not honored
with ALTER TABLE and CREATE/DROP INDEX. (Bug #3109)
Make net_buffer_length visible for mysql clients (Bug #4206)


include/mysql.h:
  Make net_buffer_length visible for mysql clients
libmysql/libmysql.c:
  Make net_buffer_length visible for mysql clients
mysql-test/mysql-test-run.sh:
  Don't give warning for some common 'safe' warnings
mysql-test/r/lowercase_table2.result:
  Test name conversion with ALTER TABLE / CREATE INDEX (Bug #3109)
mysql-test/t/lowercase_table2.test:
  Test name conversion with ALTER TABLE / CREATE INDEX (Bug #3109)
scripts/mysql_install_db.sh:
  Removed not used variable
sql/sql_table.cc:
  lower_case_table_names=2 (Keep case for table names) was not honored
  with ALTER TABLE and CREATE/DROP INDEX. (Bug #3109)
2004-06-23 16:44:34 +03:00
unknown
eb70dc5593 merged
configure.in:
  Auto merged
mysql-test/Makefile.am:
  Auto merged
mysql-test/r/fulltext.result:
  Auto merged
sql/field.cc:
  Auto merged
sql/ha_berkeley.cc:
  Auto merged
sql/ha_innodb.cc:
  Auto merged
sql/ha_innodb.h:
  Auto merged
sql/handler.cc:
  Auto merged
sql/handler.h:
  Auto merged
sql/item_subselect.cc:
  Auto merged
sql/lex.h:
  Auto merged
sql/opt_range.cc:
  Auto merged
sql/sql_acl.cc:
  Auto merged
sql/sql_cache.cc:
  Auto merged
sql/sql_delete.cc:
  Auto merged
sql/sql_help.cc:
  Auto merged
sql/sql_insert.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
sql/sql_update.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
sql/table.cc:
  Auto merged
sql/unireg.cc:
  Auto merged
2004-06-23 12:36:07 +02:00
unknown
9a554b4751 handler interface cleanups:
more logical table/index_flags
  return  HA_ERR_WRONG_COMMAND instead of abstract methods where appropriate
  max_keys and other limits renamed to max_supported_keys/etc
  max_keys/etc are now wrappers to max_supported_keys/etc 
  ha_index_init/ha_rnd_init/ha_index_end/ha_rnd_end are now wrappers to real {index,rnd}_{init,end} to enforce strict pairing


include/myisam.h:
  increasing myisam_max_temp_file_length
include/my_base.h:
  handler interface cleanup
myisam/mi_static.c:
  warning removed
mysql-test/Makefile.am:
  followup
mysql-test/r/fulltext.result:
  fulltext indexes are not ordered
mysql-test/r/rpl_user_variables.result:
  followup
sql/field.cc:
  index_flags
sql/filesort.cc:
  rnd_init -> ha_rnd_init
  rnd_end -> ha_rnd_end
sql/ha_berkeley.cc:
  cleanup
sql/ha_berkeley.h:
  table/index_flags revamped
sql/ha_heap.cc:
  ensure index is accessed only after index_init (esp. important for temp tables)
sql/ha_heap.h:
  table/index_flags revamped
sql/ha_innodb.cc:
  don't workaround MySQL sloppiness
sql/ha_innodb.h:
  table/index_flags revamped
sql/ha_isam.h:
  table/index_flags revamped
sql/ha_isammrg.h:
  table/index_flags revamped
sql/ha_myisam.cc:
  ensure index is accessed only after index_init (esp. important for temp tables)
sql/ha_myisam.h:
  table/index_flags revamped
sql/ha_myisammrg.h:
  table/index_flags revamped
sql/handler.cc:
  handler interface cleanups
sql/handler.h:
  handler interface cleanups:
    more logical table/index_flags
    return  HA_ERR_WRONG_COMMAND instead of abstract methods
    max_keys and other limits renamed to max_supported_keys/etc
    max_keys/etc are now wrappers to max_supported_keys/etc 
    ha_index_init/ha_rnd_init/ha_index_end/ha_rnd_end are now wrappers to enforce strict pairing
sql/item_subselect.cc:
  index_init/index_end/rnd_init/rnd_end strict pairing fixed
sql/lex.h:
  renamed to avoid conflicts
sql/opt_range.cc:
  index_init/index_end/rnd_init/rnd_end strict pairing fixed
  table/index_flags cleanup
sql/opt_range.h:
  index_init/index_end/rnd_init/rnd_end strict pairing fixed
sql/opt_sum.cc:
  index_init/index_end/rnd_init/rnd_end strict pairing fixed
  table/index_flags cleanup
sql/records.cc:
  index_init/index_end/rnd_init/rnd_end strict pairing fixed
sql/sql_acl.cc:
  index_init/index_end/rnd_init/rnd_end strict pairing fixed
sql/sql_cache.cc:
  cleanup
sql/sql_delete.cc:
  index_init/index_end/rnd_init/rnd_end strict pairing fixed
sql/sql_handler.cc:
  index_init/index_end/rnd_init/rnd_end strict pairing fixed
sql/sql_help.cc:
  index_init/index_end/rnd_init/rnd_end strict pairing fixed
sql/sql_insert.cc:
  table/index_flags cleanup
sql/sql_select.cc:
  index_init/index_end/rnd_init/rnd_end strict pairing fixed
  table/index_flags cleanup
sql/sql_table.cc:
  index_init/index_end/rnd_init/rnd_end strict pairing fixed
  table/index_flags cleanup
sql/sql_update.cc:
  index_init/index_end/rnd_init/rnd_end strict pairing fixed
sql/sql_yacc.yy:
  INDEX -> INDEX_SYM
sql/table.cc:
  table/index_flags cleanup
2004-06-23 12:29:05 +02:00
unknown
5275eb21c2 Allocate memory when a character set is requested:
- For simple character sets: from_uni convertion table.
- For UCA: alternative weight arrays.
Use mbminlen instead of MY_CS_NONTEXT
2004-06-11 16:29:16 +05:00
unknown
d9b81f3a08 EXISTS(SELECT * ...)
close table before opening in optimize


mysql-test/r/subselect.result:
  test of EXISTS(SELECT * ...)
mysql-test/t/subselect.test:
  test of EXISTS(SELECT * ...)
sql/sql_base.cc:
  EXISTS(SELECT * ...)
sql/sql_table.cc:
  close table before opening one
2004-06-10 21:33:15 +03:00
unknown
7849222652 WL#1689 "Map OPTIMIZE TABLE to ALTER TABLE for InnoDB"
exactly it's mapped to "ALTER TABLE t; ANALYZE TABLE t;"


sql/ha_innodb.cc:
  ::optimize() now returns "try ALTER and then analyze" instead of only analyze.
sql/handler.h:
  new code to say "try alter and analyze".
sql/mysql_priv.h:
  as we may now use mysql_alter_table() internally to ::optimize we must prevent it from talking to the client.
  New function mysql_recreate_table() which is the same as ALTER TABLE t;
sql/sql_parse.cc:
  the big block removed here is moved into mysql_recreate_table().
sql/sql_table.cc:
  In mysql_admin_table(): if the handler returns HA_ADMIN_TRY_ALTER,
  we close the table, recreate it, then open it and analyze it.
  This is currently used only for OPTIMIZE TABLE of an InnoDB table.
2004-06-10 16:41:24 +02:00
unknown
43489240ad Making DROP TABLE IF EXISTS, DROP DATABASE IF EXISTS, DELETE FROM, UPDATE be logged to
binlog even if they changed nothing, and a test for this.
This is useful when users use these commands to clean up their master and slave by issuing
one command on master (assume master and slave have slightly different data for some
reason and you want to clean up both).
Note that I have not changed multi-table DELETE and multi-table UPDATE because their
error-reporting mechanism is more complicated.


mysql-test/r/mysqlbinlog.result:
  result update
mysql-test/r/rpl_charset.result:
  result update
mysql-test/r/rpl_flush_log_loop.result:
  result update
mysql-test/r/rpl_replicate_do.result:
  result update
mysql-test/r/rpl_temporary.result:
  result update
mysql-test/t/mysqlbinlog.test:
  moving SET TIMESTAMP up as DROP shows up in binlog
sql/sql_db.cc:
  DROP DATABASE IF EXISTS is now always logged to binlog, even if db did not exist
sql/sql_delete.cc:
  DELETE FROM t is now always logged to binlog even if no rows deleted (but in this case, only if really no error).
sql/sql_table.cc:
  DROP TABLE IF EXISTS is now always logged to binlog even if table did not exist
sql/sql_update.cc:
  UPDATE is now always logged to binlog even if no rows updated (but in this case, only if really no error).
2004-06-09 16:07:01 +02:00
unknown
4cb7f4944d Merge msvensson@bk-internal.mysql.com:/home/bk/mysql-4.1
into neptunus.(none):/home/magnus/mysql-4.1


sql/handler.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
2004-05-25 12:25:22 +02:00
unknown
69859967af Fix for sporadically failures of innodb.test on Darwin 7.3
which occured because we were not lowering case of file names 
for temporary tables altough handler assumes so if 
lower_case_table_names==2. Now we are lowering case for them.


sql/sql_select.cc:
  Now we are lowering case of file names for temporary tables.
sql/sql_table.cc:
  Now we are lowering case of file names for temporary tables.
2004-05-25 02:30:09 +04:00
unknown
8233cdd783 Merge eagle.mysql.r18.ru:/home/vva/work/mysql.orig/clear/mysql-4.1
into eagle.mysql.r18.ru:/home/vva/work/TASK_ALTER_INFO/mysql-4.1


sql/sql_table.cc:
  Auto merged
2004-05-24 20:58:57 +05:00
unknown
0e86cf8aba Fix for bug which caused grant.test fail on darwin7.3. We were converting db and table
names to lower case using latin1 instead of utf-8 in sql_acl.cc if lower_case_table_names 
was on. Also replaced in other such places system_charset_info with files_charset_info
for consistency.


sql/handler.cc:
  Replaced system_charset_info with files_charset_info in places where we are converting 
  names to lower case because of lower_case_table_names for consistency.
sql/sql_acl.cc:
  We should use files_charset_info when converting db/table names to lower case because they
  could be in utf-8 and not in latin1!
sql/sql_cache.cc:
  Added clarifying comments in tricky place after discussion with Sanja.
  Replaced system_charset_info with files_charset_info in places where we 
  are converting names to lower case because of lower_case_table_names for 
  consistency.
sql/sql_db.cc:
  Replaced system_charset_info with files_charset_info in places where we are converting 
  names to lower case because of lower_case_table_names for consistency.
sql/sql_show.cc:
  Replaced system_charset_info with files_charset_info in places where we are converting 
  names to lower case because of lower_case_table_names for consistency.
sql/sql_table.cc:
  Replaced system_charset_info with files_charset_info in places where we are converting 
  names to lower case because of lower_case_table_names for consistency.
2004-05-22 23:41:58 +04:00
unknown
ea63df7f54 Introduced parameter object "ALTER_INFO" for mysql_alter_table
to make list of parameters in mysql_alter_table shorted
to avoid warning in MSVC (windows) building 


sql/mysql_priv.h:
  Introduced parameter object "ALTER_INFO" for mysql_alter_table
  - changed declaration of mysql_alter_table
  - changed declaration of mysql_drop_index 
    (replaced List<Alter_drop> by ALTER_INFO)
sql/sql_lex.h:
  Introduced parameter object "ALTER_INFO" for mysql_alter_table
  - declared struct ALTER_INFO
  - added ALTER_INFO alter_info; into LEX
  - removed fields which were added into ALTER_INFO from LEX
sql/sql_parse.cc:
  Introduced parameter object "ALTER_INFO" for mysql_alter_table
  - changed invotaions of mysql_alter_table
  - replaced cleaning fields in SQLCOM_OPTIMIZE by ALTER_INFO::reset
  - changed invocation of mysql_drop_index (replaced lex->drop_list by &lex->alter_info)
  - changed definition of mysql_create_index and mysql_drop_index to use ALTER_INFO
sql/sql_table.cc:
  Introduced parameter object "ALTER_INFO" for mysql_alter_table
  - changed definition of mysql_alter_table
sql/sql_yacc.yy:
  Introduced parameter object "ALTER_INFO" for mysql_alter_table
  - replaced using of removed from LEX fields my fields of LEX::alter_info
2004-05-21 19:57:03 +05:00
unknown
4d3f8f210a Merge
sql/ha_ndbcluster.cc:
  Auto merged
sql/handler.cc:
  Auto merged
sql/handler.h:
  Auto merged
sql/sql_table.cc:
  Auto merged
sql/ha_ndbcluster.h:
  SCCS merged
2004-05-17 09:57:02 +02:00
unknown
36bce25112 merged
mysql-test/r/innodb.result:
  Auto merged
mysql-test/t/innodb.test:
  Auto merged
sql/sql_select.cc:
  Auto merged
2004-05-15 11:26:58 +02:00
unknown
c9667f1146 Better fix for bug #3749 (bug in deleting automatic generated foreign keys)
mysql-test/r/func_encrypt.result:
  Update tests (left after sanjas last push)
mysql-test/r/innodb.result:
  Added test for bug #3749 (bug in deleting automatic generated foreign keys)
mysql-test/t/innodb.test:
  Added test for bug #3749 (bug in deleting automatic generated foreign keys)
sql/sql_class.cc:
  Updated comment
tests/client_test.c:
  Added missing mysql_stmt_close()
2004-05-15 11:57:40 +03:00
unknown
321d50fd06 better fix for bug#3749 - do not consider already removed keys in key removal process
mysql-test/r/innodb.result:
  tests for bug#3749
mysql-test/t/innodb.test:
  tests for bug#3749
2004-05-14 12:49:18 +02:00
unknown
6f0946d6dd sql_table.cc:
Fix bug #3749: if there were several indexs that made an automatically generated FOREIGN KEY index redundant, then MySQL miscalculated the number of keys, and the AUTO_INCREMENT flag was forgotten by MySQL from a PRIMARY KEY. There were probably a multitude of other errors caused by this.


sql/sql_table.cc:
  Fix bug #3749: if there were several indexs that made an automatically generated FOREIGN KEY index redundant, then MySQL miscalculated the number of keys, and the AUTO_INCREMENT flag was forgotten by MySQL from a PRIMARY KEY. There were probably a multitude of other errors caused by this.
2004-05-14 09:02:06 +03:00
unknown
d8834661ec Merge msvensson@bk-internal.mysql.com:/home/bk/mysql-4.1
into neptunus.(none):/home/magnus/mysql-4.1


ndb/src/ndbapi/NdbScanOperation.cpp:
  Auto merged
sql/sql_table.cc:
  Auto merged
BitKeeper/deleted/.del-regression.sh~c19f771726612629:
  Auto merged
2004-05-13 13:28:56 +02:00
unknown
d3fcd8d4c0 Don't automaticly generate a new key for a foreign key constraint if there is already a usable key.
Prefer not automatic keys before automatic keys. If there is two conf


BitKeeper/etc/ignore:
  added *.d
include/my_base.h:
  Added flag for automaticly generated key
mysql-test/r/constraints.result:
  Update tests after bug fix
mysql-test/r/create.result:
  Update tests after bug fix
mysql-test/r/innodb.result:
  Added test of automatic creation of foreign keys
mysql-test/t/innodb.test:
  Added test of automatic creation of foreign keys
mysql-test/t/key_cache.test:
  Portability fixes (64 BIT os)
sql/sql_acl.cc:
  Indentation fixes
sql/sql_class.cc:
  Fix key comparison to handle prefix and optionally key segments in different order.
sql/sql_class.h:
  Added flag for automaticly generated keys
sql/sql_parse.cc:
  Added flag for automaticly generated keys
sql/sql_table.cc:
  Don't automaticly generate a new key for a foreign key constraint if there is already a usable key.
  Prefer not automatic keys before automatic keys. If there is two conflicting automatic keys, prefer the longer one.
sql/sql_yacc.yy:
  Added flag for automaticly generated keys
strings/strings-x86.s:
  Portability fix.
2004-05-12 00:29:52 +03:00
unknown
5b92b23bbf Merge msvensson@bk-internal.mysql.com:/home/bk/mysql-4.1
into neptunus.(none):/home/magnus/mysql-4.1


sql/sql_table.cc:
  Auto merged
2004-05-10 15:09:19 +02:00
unknown
4a3580ca1a Merge msvensson@bk-internal.mysql.com:/home/bk/mysql-4.1
into neptunus.(none):/home/magnus/mysql-4.1


mysql-test/mysql-test-run.sh:
  Auto merged
sql/ha_ndbcluster.h:
  Auto merged
sql/sql_table.cc:
  Auto merged
2004-05-07 16:21:54 +02:00
unknown
be45b61584 Merge marko@build.mysql.com:/home/bk/mysql-4.1
into hundin.mysql.fi:/home/marko/j/mysql-4.1


sql/sql_table.cc:
  Auto merged
2004-05-07 16:01:47 +03:00
unknown
6b313c6998 Merge marko@build.mysql.com:/home/bk/mysql-4.1
into hundin.mysql.fi:/home/marko/j/mysql-4.1


sql/sql_table.cc:
  Auto merged
2004-05-07 12:48:01 +03:00
unknown
c207325aaf Merge mysql.com:/home/mydev/mysql-4.1
into mysql.com:/home/mydev/mysql-4.1-wl1687


sql/handler.h:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
2004-05-07 11:13:58 +02:00
unknown
dedea9b66b Portablity fix for system with case insenstive table names. (Without this ALTER TABLE can fail for InnoDB) 2004-05-07 06:34:44 +03:00
unknown
bfe2425aad WL#1687 - Optimize UNION DISTINCT ... UNION ALL (again).
HEAP: Copies the key count to a backup variable and sets the key count to zero.
That way, no HEAP function will ever try to touch any index.
Re-enabling is done by copying back the backup variable.
To avoid memory leak at table close, disable deletes all index trees.
Re-enabling must be done with empty indexes and data anyway. Otherwise,
the indexes would need to be repaired, wich HEAP is not capable of.
MyISAM: Only the key_map is cleared and set.
Re-enabling must be done with empty indexes and data. Otherwise, repair needs
to be done which will enable all keys persistently.
The former implementation disabled only non-unique keys and maked this persistent.
The new implementation additionally can disable all keys, but only without
making this persistent. Re-enabling all keys can be done without repair,
if data file and indexes are empty.


heap/heapdef.h:
  WL#1687 - Optimize UNION DISTINCT ... UNION ALL (again).
  Pulled hp_clear_keys() out of hp_clear().
heap/hp_clear.c:
  WL#1687 - Optimize UNION DISTINCT ... UNION ALL (again).
  Pulled hp_clear_keys() out of hp_clear().
  Added the new functions for disabling and enabling keys and to ask for the key state.
include/heap.h:
  WL#1687 - Optimize UNION DISTINCT ... UNION ALL (again).
  Added a new HP_SHARE element to save the key count while keys are disabled.
  Added declarations for the new functions.
myisam/mi_open.c:
  WL#1687 - Optimize UNION DISTINCT ... UNION ALL (again).
  Added the new functions for disabling and enabling keys and to ask for the key state.
myisam/myisamdef.h:
  WL#1687 - Optimize UNION DISTINCT ... UNION ALL (again).
  Added declarations for the new functions.
sql/ha_heap.cc:
  WL#1687 - Optimize UNION DISTINCT ... UNION ALL (again).
  Pulled set_keys_for_scanning() out of open().
  Added the new functions for disabling and enabling keys and to ask for the key state.
sql/ha_heap.h:
  WL#1687 - Optimize UNION DISTINCT ... UNION ALL (again).
  Added declarations for the new functions.
sql/ha_myisam.cc:
  WL#1687 - Optimize UNION DISTINCT ... UNION ALL (again).
  Extended disable_indexes() for all keys and no save.
  The argument is now 'mode' as it must handle different cases.
  Extended enable_indexes() for no save.
  The new feature needs the new argument 'mode' with the same semantics as in disable_indexes().
  Added indexes_are_disabled() to ask for the key state.
  Extended the existing call to enable_indexes() by the new argument.
sql/ha_myisam.h:
  WL#1687 - Optimize UNION DISTINCT ... UNION ALL (again).
  Modified the declarations of dis-/enable_indexes() for the new argument.
  Added the declaration of the new function to ask for the key state.
sql/handler.h:
  WL#1687 - Optimize UNION DISTINCT ... UNION ALL (again).
  Added declarations for the operation modes for the key switching functions.
  Modified the declarations of dis-/enable_indexes() for the new argument.
  Added the declaration of the new function to ask for the key state.
sql/sql_select.cc:
  WL#1687 - Optimize UNION DISTINCT ... UNION ALL (again).
  In create_myisam_from_heap() take notice of disabled keys
  and disable them in the new table before copying the data.
sql/sql_table.cc:
  WL#1687 - Optimize UNION DISTINCT ... UNION ALL (again).
  Modified the calls of dis-/enable_indexes() for the new argument.
2004-05-06 15:53:01 +02:00
unknown
9d99ebe394 BUG# 3658 ALTER TABLE corrupts table
Added  test file for ALTER TABLE, engine = ndbcluster


sql/ha_ndbcluster.cc:
  Add code to retriev all fields if HA_EXTRA_RETRIEVE_ALL_COLS are set.
sql/ha_ndbcluster.h:
  Add var for retreiving all fields
sql/sql_table.cc:
  Send HA_EXTRA_RETRIEVE_ALL_COLS to handler in copy_data_between_tables
2004-05-05 16:04:23 +02:00
unknown
e4ea53257c Merge marko@build.mysql.com:/home/bk/mysql-4.1
into hundin.mysql.fi:/home/marko/j/mysql-4.1


sql/sql_table.cc:
  Auto merged
2004-05-05 14:21:42 +03:00
unknown
030587a7a6 Fix to handle unsigned data in prepared statements (Bug #3447)
Fixed security problem that password was temporarly reset when someone changed GRANT for a user. (Bug #3404)
Fixed problem with PROCEDURE analyse() and impossible WHERE (Bug #2238)
Don't auto-repair tables in mysqlcheck if table type doesn't support 'check' command.


Docs/mysqld_error.txt:
  Updated error values
client/mysqlcheck.c:
  Don't cause auto-repair on 'note' (Tables that doesn't support 'check')
libmysql/libmysql.c:
  Fix to handle unsigned data in prepared statements (Bug #3447)
mysql-test/r/analyse.result:
  Test of analyze + impossible where (Bug #2238)
mysql-test/r/bdb.result:
  Update results
mysql-test/r/ctype_ujis.result:
  Update results
mysql-test/r/isam.result:
  Update results
mysql-test/r/repair.result:
  Update results
mysql-test/t/analyse.test:
  Test of analyze + impossible where (Bug #2238)
mysql-test/t/ctype_ujis.test:
  Added test for LIKE (Bug #3438)
sql/sql_acl.cc:
  Fixed security problem that password was temporarly reset when someone changed GRANT for a user. (Bug #3404)
sql/sql_select.cc:
  Fixed problem with PROCEDURE analyse() and impossible WHERE (Bug #2238)
sql/sql_table.cc:
  Changed 'error' to 'note' when table doesn't support admin command.
sql/sql_update.cc:
  Indentaion cleanup
tests/client_test.c:
  Added test for handling unsigned/signed strings with prepared statements
2004-05-04 15:02:38 +03:00
unknown
c9e1538298 Introduce keys in child tables corresponding to FOREIGN KEYs
Remove redundant keys in CREATE TABLE and ALTER TABLE


mysql-test/r/constraints.result:
  Remove redundant keys
mysql-test/r/create.result:
  Remove redundant keys
mysql-test/r/innodb.result:
  Remove redundant keys
mysql-test/r/range.result:
  Remove redundant keys
mysql-test/t/range.test:
  Remove redundant keys
sql/sql_class.cc:
  Equality comparison of keys (ignoring name)
sql/sql_class.h:
  Equality comparison of keys (ignoring name)
sql/sql_table.cc:
  Remove redundant keys
sql/sql_yacc.yy:
  Introduce keys in child tables corresponding to FOREIGN KEYs
2004-04-21 13:15:43 +03:00
unknown
b43af929f8 Added NDB storage engine
include/my_base.h:
  Added three new errorcodes to be returned by the handler
sql/Makefile.am:
  Add new files discover.cc, ha_ndbcluster.cc and ha_ndbcluster.h
  Add include path of NDB files
sql/handler.cc:
  Added variable for keeping track of number of "discovers"
  Added NDB to list of storage engines
  Added calls to NDB for commit, rollback etc.
  Added function ha_discover for discovering a table from handler
sql/handler.h:
  Added NDB to list of storage engines
  Added vbariable in transaction for keeping a ndb transaction handle
sql/lex.h:
  Changed AND to AND_SYM and OR to OR_SYM to avoid nameclash
sql/mysql_priv.h:
  Added prototypes for new functions readfrm, writefrm and create_table_from_handler
sql/mysqld.cc:
  Added NDB support
  Disable NDB with --skip-ndbcluster
sql/set_var.cc:
  Add posibilty to show if NDB handler is supported
sql/ha_ndbcluster.cc:
  Add ifdef for whole file for not compiling anything if NDB sholdn't be included
  Updated timestamp handling to use new vars timestamp_default_now and timestamp_on_update_now
sql/sql_base.cc:
  If frm file is not found on disk, ask handler if it knows about the table. Then retry the open.
  This new functionality is called "discover" and can be used by any handler.
sql/sql_class.h:
  Added variable for keeping a NDB connection handle
sql/sql_table.cc:
  Before trying to create a table, ask handler if a table with that name already exists.
  If user said CREATE TABLE IF NOT EXISTS, disocver the table from handler
sql/sql_yacc.yy:
  Add NDBCLUSTER_SYM
  Change AND to AND_SYM
  Change OR to OR_SYM
sql/table.cc:
  Fixe for probelm when NullS is returned from bas_ext of a handler.
2004-04-15 09:14:14 +02:00
unknown
10e15762b8 Don't enable HA_EXTRA_WRITE_CACHE if too few rows
Revert main parts of patch for online index builds. Should be done differently
Added support for %lx in my_snprintf()


sql/ha_myisam.cc:
  Don't enable HA_EXTRA_WRITE_CACHE if too few rows
sql/handler.h:
  Indentaion fix
sql/mysql_priv.h:
  Removed real_alter_table, mysql_add_column and mysql_drop_column
sql/sql_class.cc:
  After merge fix
sql/sql_insert.cc:
  Don't user bulk_insert if only one row (common case)
sql/sql_parse.cc:
  Added mysql_create_index() and mysql_drop_index() as these are only wrappers for mysql_alter_table()
sql/sql_table.cc:
  Revert main parts of patch for online index builds
  Changed back to use tabs to make merges possible between trees
sql/unireg.cc:
  Added comments and minor cleanup
strings/my_vsnprintf.c:
  Added support for %lx.
  Proper long support
2004-04-08 17:56:45 +03:00
unknown
3c8ae89052 merged
sql/handler.h:
  Auto merged
sql/sql_base.cc:
  Auto merged
2004-04-07 17:14:38 +02:00
unknown
b6f2a534fe merged
sql/field.cc:
  Auto merged
sql/item.cc:
  Auto merged
sql/protocol.cc:
  Auto merged
sql/sql_acl.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_insert.cc:
  Auto merged
sql/sql_show.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
sql/table.cc:
  Auto merged
2004-04-07 16:20:46 +02:00