Commit graph

15 commits

Author SHA1 Message Date
unknown
7d183320b0 Bug#14397 - OPTIMIZE TABLE with an open HANDLER causes a crash
Version for 4.0.
It fixes two problems:
1. The cause of the bug was that we did not check the table version for
   the HANDLER ... READ commands. We did not notice when a table was
   replaced by a new one. This can happen during ALTER TABLE, REPAIR
   TABLE, and OPTIMIZE TABLE (there might be more cases). I call the fix
   for this problem "the primary bug fix".
2. mysql_ha_flush() was not always called with a locked LOCK_open.
   Though the function comment clearly said it must.
   I changed the code so that the locking is done when required. I call
   the fix for this problem "the secondary fix".


mysql-test/r/handler.result:
  Bug#14397 - OPTIMIZE TABLE with an open HANDLER causes a crash
  The test result.
mysql-test/t/handler.test:
  Bug#14397 - OPTIMIZE TABLE with an open HANDLER causes a crash
  The test case.
sql/mysql_priv.h:
  Bug#14397 - OPTIMIZE TABLE with an open HANDLER causes a crash
  Changed a definition for the secondary fix.
sql/sql_base.cc:
  Bug#14397 - OPTIMIZE TABLE with an open HANDLER causes a crash
  Changed function calls for the secondary fix.
sql/sql_class.cc:
  Bug#14397 - OPTIMIZE TABLE with an open HANDLER causes a crash
  Changed a function call for the secondary fix.
sql/sql_handler.cc:
  Bug#14397 - OPTIMIZE TABLE with an open HANDLER causes a crash
  The first two diffs make the primary bug fix.
  The rest is for the secondary fix.
sql/sql_table.cc:
  Bug#14397 - OPTIMIZE TABLE with an open HANDLER causes a crash
  Changed function calls for the secondary fix.
2005-11-03 18:24:12 +01: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
cdf7471c2c Fix and test case for BUG#3649.
mysql-test/r/handler.result:
  Test case for BUG#3649
mysql-test/t/handler.test:
  Test case for BUG#3649
sql/sql_handler.cc:
  Fix for BUG#3649: when doing an index scan for an equality condition, use index_next_same to retrieve subsequent rows.
2004-05-18 22:59:43 +04:00
unknown
febc79bb5d BUG#2304 - HANDLER and tables in non-current db 2004-01-13 12:31:25 +01:00
unknown
3357bc7ea3 Portability fixes (mostly test suite)
Make ENGINE= an alias for TYPE= (Compabiltiy with 4.1)
Fix when using symlinked data files and realpath() is not working


client/mysqltest.c:
  Copied mysqltest from 4.1 and modified this to compile in 4.0
  This was needed to get replace_columns to work.
include/my_sys.h:
  Stop compiler warnings about alloca on freebsd
myisam/mi_check.c:
  Fix when using symlinked data files and realpath() is not working
mysql-test/r/handler.result:
  test engine=
mysql-test/r/rpl_max_relay_size.result:
  Use replace_columns to replace some 'not constant' columns
mysql-test/r/rpl_rotate_logs.result:
  Use replace_columns to replace some 'not constant' columns
mysql-test/r/rpl_trunc_binlog.result:
  Use replace_columns to replace some 'not constant' columns
mysql-test/t/handler.test:
  test engine=
mysql-test/t/rpl_log_pos.test:
  Use replace_columns to replace some 'not constant' columns
mysql-test/t/rpl_max_relay_size.test:
  Use replace_columns to replace some 'not constant' columns
mysql-test/t/rpl_rotate_logs.test:
  Use replace_columns to replace some 'not constant' columns
mysql-test/t/rpl_trunc_binlog.test:
  Use replace_columns to replace some 'not constant' columns
mysys/my_symlink.c:
  More debugging
sql/lex.h:
  Make ENGINE= an alias for TYPE=
sql/mysqld.cc:
  Code cleanup
strings/strto.c:
  Fix for True64
strings/strtoll.c:
  Fix for True64
strings/strtoull.c:
  Remove not needed include file
2003-12-16 13:20:17 +02:00
unknown
30341167c5 fix and test case for the bug #787: HANDLER without INDEX doesn't work with deleted rows
mysql-test/r/handler.result:
  test case for the bug #787: HANDLER without INDEX doesn't work with deleted rows
mysql-test/t/handler.test:
  test case for the bug #787: HANDLER without INDEX doesn't work with deleted rows
sql/sql_handler.cc:
  fix for the bug #787: HANDLER without INDEX doesn't work with deleted rows
2003-07-04 17:15:16 +05:00
unknown
4b50f4f252 handler should be used with constant expressions only (or rand) 2003-07-04 12:55:25 +02:00
unknown
8d7eb4a0e5 Proposed fix for #751
Fields in key_expr (mysql_ha_read) wasn't linked to tables.
Hmm. How did it work at all?


mysql-test/r/alias.result:
  It's better to delete table after the test
mysql-test/r/handler.result:
  appropriate result
mysql-test/t/alias.test:
  it's better to drop table after test
mysql-test/t/handler.test:
  test case for #751
sql/sql_handler.cc:
  fix_fields called
2003-07-03 20:57:51 +05:00
unknown
87ee470db0 tests updated 2003-02-22 18:22:39 +01:00
unknown
d490b56ed1 fixed "DROP table_open_in_handler" hang 2003-01-28 14:36:22 +01:00
unknown
0f2ab68c6f Some trivial optimzations
Check if AND/OR expression can be NULL; Fixed bug in GROUP BY and-or-expression where expression could be NULL
Bug fix for SHOW OPEN TABLES when user didn't have privilege to access all open tables.
Better fix for ALTER TABLE on BDB tables.


Docs/manual.texi:
  Changelog
client/mysql.cc:
  Simple optimization
libmysql/libmysql.c:
  Removed initialization of varibles that are already set to zero
myisam/myisamchk.c:
  Fixed comment for extend-check
mysql-test/r/bdb-alter-table-1.result:
  Updated results
mysql-test/r/bdb-alter-table-2.result:
  Updated results
mysql-test/r/distinct.result:
  Updated results after bug fix
mysql-test/r/handler.result:
  Updated results
mysql-test/r/innodb_handler.result:
  Updated results
mysql-test/r/select.result:
  Updated results
mysql-test/r/varbinary.result:
  Updated results
mysql-test/t/bdb-alter-table-1.test:
  Added comments
mysql-test/t/bdb-alter-table-2.test:
  Added comments
mysql-test/t/select.test:
  Remove OPTION in SET OPTION
  Added tests for ORDER BY key LIMIT
sql/item_cmpfunc.cc:
  Check if AND/OR expression can be NULL
sql/mysqld.cc:
  mysqld --help now shows value of datadir
sql/share/english/errmsg.txt:
  Better error message for syntax error
sql/sql_base.cc:
  Bug fix for SHOW OPEN TABLES
sql/sql_class.cc:
  Moved virtual function to .cc file to avoid that we have to include assert.h everywhere.
sql/sql_class.h:
  Moved virtual function to .cc file to avoid that we have to include assert.h everywhere.
sql/sql_parse.cc:
  Removed old dead code from 3.23
sql/sql_select.cc:
  Improved optimization of ORDER BY key LIMIT
sql/sql_table.cc:
  More comments,
  Better fix for ALTER TABLE on BDB tables.
2002-09-03 15:44:25 +03:00
unknown
0abc68fbeb handler+alter table
mysql-test/r/handler.result:
  alter table test
mysql-test/t/handler.test:
  alter table test
sql/sql_handler.cc:
  bugfix
2002-01-03 14:31:54 +00:00
unknown
29f148bd36 client/mysqlmanagerc.c
added support for quiet
    increased line buffer size
client/mysqltest.c
    fixed memory leak
    added query logging to result file
    added error message logging to result file
    added enable_query_log/disable_query_log
mysql-test/mysql-test-run.sh
    converted tests to use mysqlmanager

Updated test results


BitKeeper/etc/ignore:
  added *.reject
client/mysqlmanagerc.c:
  added support for quiet
  increased line buffer size
client/mysqltest.c:
  fixed memory leak
  added query logging to result file
  added error message logging to result file
  added enable_query_log/disable_query_log
mysql-test/mysql-test-run.sh:
  converted tests to use mysqlmanager
mysql-test/r/alias.result:
  log queries
mysql-test/r/alter_table.result:
  log queries
mysql-test/r/analyse.result:
  log queries
mysql-test/r/auto_increment.result:
  log queries
mysql-test/r/backup.result:
  log queries
mysql-test/r/bdb-crash.result:
  log queries
mysql-test/r/bench_count_distinct.result:
  log queries
mysql-test/r/bigint.result:
  log queries
mysql-test/r/binary.result:
  log queries
mysql-test/r/bulk_replace.result:
  log queries
mysql-test/r/case.result:
  log queries
mysql-test/r/check.result:
  log queries
mysql-test/r/comments.result:
  log queries
mysql-test/r/compare.result:
  log queries
mysql-test/r/count_distinct.result:
  log queries
mysql-test/r/count_distinct2.result:
  log queries
mysql-test/r/create.result:
  log queries
mysql-test/r/ctype_latin1_de.result:
  log queries
mysql-test/r/delayed.result:
  log queries
mysql-test/r/dirty-close.result:
  log queries
mysql-test/r/distinct.result:
  log queries
mysql-test/r/drop.result:
  log queries
mysql-test/r/empty_table.result:
  log queries
mysql-test/r/explain.result:
  log queries
mysql-test/r/flush.result:
  log queries
mysql-test/r/fulltext.result:
  log queries
mysql-test/r/fulltext_cache.result:
  log queries
mysql-test/r/fulltext_distinct.result:
  log queries
mysql-test/r/fulltext_left_join.result:
  log queries
mysql-test/r/fulltext_multi.result:
  log queries
mysql-test/r/fulltext_order_by.result:
  log queries
mysql-test/r/fulltext_update.result:
  log queries
mysql-test/r/fulltext_var.result:
  log queries
mysql-test/r/func_crypt.result:
  log queries
mysql-test/r/func_date_add.result:
  log queries
mysql-test/r/func_equal.result:
  log queries
mysql-test/r/func_group.result:
  log queries
mysql-test/r/func_in.result:
  log queries
mysql-test/r/func_like.result:
  log queries
mysql-test/r/func_math.result:
  log queries
mysql-test/r/func_misc.result:
  log queries
mysql-test/r/func_op.result:
  log queries
mysql-test/r/func_regexp.result:
  log queries
mysql-test/r/func_set.result:
  log queries
mysql-test/r/func_str.result:
  log queries
mysql-test/r/func_system.result:
  log queries
mysql-test/r/func_test.result:
  log queries
mysql-test/r/func_time.result:
  log queries
mysql-test/r/func_timestamp.result:
  log queries
mysql-test/r/group_by.result:
  log queries
mysql-test/r/handler.result:
  log queries
mysql-test/r/having.result:
  log queries
mysql-test/r/heap.result:
  log queries
mysql-test/r/identity.result:
  log queries
mysql-test/r/ins000001.result:
  log queries
mysql-test/r/insert.result:
  log queries
mysql-test/r/insert_select.result:
  log queries
mysql-test/r/isam.result:
  log queries
mysql-test/r/join.result:
  log queries
mysql-test/r/join_crash.result:
  log queries
mysql-test/r/join_outer.result:
  log queries
mysql-test/r/key.result:
  log queries
mysql-test/r/key_diff.result:
  log queries
mysql-test/r/key_primary.result:
  log queries
mysql-test/r/keywords.result:
  log queries
mysql-test/r/kill.result:
  log queries
mysql-test/r/limit.result:
  log queries
mysql-test/r/lock.result:
  log queries
mysql-test/r/merge.result:
  log queries
mysql-test/r/multi_update.result:
  log queries
mysql-test/r/myisam.result:
  log queries
mysql-test/r/null.result:
  log queries
mysql-test/r/null_key.result:
  log queries
mysql-test/r/odbc.result:
  log queries
mysql-test/r/openssl_1.result:
  log queries
mysql-test/r/openssl_2.result:
  log queries
mysql-test/r/order_by.result:
  log queries
mysql-test/r/order_fill_sortbuf.result:
  log queries
mysql-test/r/raid.result:
  log queries
mysql-test/r/range.result:
  log queries
mysql-test/r/rename.result:
  log queries
mysql-test/r/replace.result:
  log queries
mysql-test/r/rollback.result:
  log queries
mysql-test/r/rpl000001.result:
  log queries
mysql-test/r/rpl000002.result:
  log queries
mysql-test/r/rpl000003.result:
  log queries
mysql-test/r/rpl000004.result:
  log queries
mysql-test/r/rpl000005.result:
  log queries
mysql-test/r/rpl000006.result:
  log queries
mysql-test/r/rpl000007.result:
  log queries
mysql-test/r/rpl000008.result:
  log queries
mysql-test/r/rpl000009.result:
  log queries
mysql-test/r/rpl000010.result:
  log queries
mysql-test/r/rpl000011.result:
  log queries
mysql-test/r/rpl000012.result:
  log queries
mysql-test/r/rpl000013.result:
  log queries
mysql-test/r/rpl000014.result:
  log queries
mysql-test/r/rpl000015.result:
  log queries
mysql-test/r/rpl000016.result:
  log queries
mysql-test/r/rpl000017.result:
  log queries
mysql-test/r/rpl000018.result:
  log queries
mysql-test/r/rpl_get_lock.result:
  log queries
mysql-test/r/rpl_log.result:
  log queries
mysql-test/r/rpl_magic.result:
  log queries
mysql-test/r/rpl_mystery22.result:
  log queries
mysql-test/r/rpl_sporadic_master.result:
  log queries
mysql-test/r/sel000001.result:
  log queries
mysql-test/r/sel000002.result:
  log queries
mysql-test/r/sel000003.result:
  log queries
mysql-test/r/sel000031.result:
  log queries
mysql-test/r/sel000032.result:
  log queries
mysql-test/r/sel000033.result:
  log queries
mysql-test/r/sel000100.result:
  log queries
mysql-test/r/select.result:
  log queries
mysql-test/r/select_found.result:
  log queries
mysql-test/r/select_safe.result:
  log queries
mysql-test/r/show_check.result:
  log queries
mysql-test/r/slave-running.result:
  log queries
mysql-test/r/slave-stopped.result:
  log queries
mysql-test/r/status.result:
  log queries
mysql-test/r/symlink.result:
  log queries
mysql-test/r/tablelock.result:
  log queries
mysql-test/r/temp_table.result:
  log queries
mysql-test/r/truncate.result:
  log queries
mysql-test/r/type_blob.result:
  log queries
mysql-test/r/type_date.result:
  log queries
mysql-test/r/type_datetime.result:
  log queries
mysql-test/r/type_decimal.result:
  log queries
mysql-test/r/type_enum.result:
  log queries
mysql-test/r/type_float.result:
  log queries
mysql-test/r/type_ranges.result:
  log queries
mysql-test/r/type_time.result:
  log queries
mysql-test/r/type_timestamp.result:
  log queries
mysql-test/r/type_uint.result:
  log queries
mysql-test/r/type_year.result:
  log queries
mysql-test/r/union.result:
  log queries
mysql-test/r/update.result:
  log queries
mysql-test/r/user_var.result:
  log queries
mysql-test/r/varbinary.result:
  log queries
mysql-test/r/variables.result:
  log queries
mysql-test/t/bench_count_distinct.test:
  log queries
mysql-test/t/check.test:
  log queries
mysql-test/t/count_distinct2.test:
  log queries
mysql-test/t/flush.test:
  log queries
mysql-test/t/isam.test:
  log queries
mysql-test/t/multi_update.test:
  log queries
mysql-test/t/myisam.test:
  log queries
mysql-test/t/order_fill_sortbuf.test:
  log queries
mysql-test/t/rpl000016.test:
  log queries
tools/managertest1.nc:
  test for def_exec overwrite
tools/mysqlmanager.c:
  support def_exec overwrite and queries on running server
2001-09-27 23:05:54 -06:00
unknown
d288993577 mysqltest bugfix
typo/bad merge fixed
chmod a-x for man/*.1 files


man/isamchk.1:
  Change mode to -rw-rw-r--
man/mysqlaccess.1:
  Change mode to -rw-rw-r--
man/mysqladmin.1:
  Change mode to -rw-rw-r--
man/mysqld.1:
  Change mode to -rw-rw-r--
man/mysqldump.1:
  Change mode to -rw-rw-r--
man/mysqlshow.1:
  Change mode to -rw-rw-r--
man/perror.1:
  Change mode to -rw-rw-r--
man/safe_mysqld.1:
  Change mode to -rw-rw-r--
mysql-test/r/handler.result:
  new tests added
client/mysqltest.c:
  bug fixed: errors from handler.test (that is send_error()
  after send_fields) weren't catched by expected_errno
mysql-test/t/handler.test:
  typo fixed
sql/Makefile.am:
  bad merge fixed
sql/sql_yacc.yy:
  bad merge (?) fixed
2001-04-15 20:14:40 +02:00
unknown
7006b51823 Preliminary commit of HANDLER syntax (w/o LIMIT or column-list) 2001-04-07 00:18:33 +02:00