Commit graph

3368 commits

Author SHA1 Message Date
unknown
0c6b96658e Bug 4937: different date -> string conversion when using
SELECT ... UNION and INSERT ... SELECT ... UNION
2004-08-18 14:46:31 +02:00
unknown
8ddcba9d8a Merge bk-internal:/home/bk/mysql-4.0/
into serg.mylan:/usr/home/serg/Abk/mysql-4.0
2004-08-18 09:25:27 +02:00
unknown
0c062ae60f srv0start.c, ut0mem.c, ut0dbg.c, ut0dbg.h, srv0start.h:
Changes for NetWare to exit the InnoDB gracefully instead of crashing the server (patch by PRam@novell.com, polished a little by Heikki Tuuri)
mysqld.cc, ha_innodb.cc:
  Changes for NetWare to exit the InnoDB gracefully instead of crashing the server (patch by PRam@novell.com, polished a little by Heikki Tuuri) 


sql/ha_innodb.cc:
  Changes for NetWare to exit the InnoDB gracefully instead of crashing the server (patch by PRam@novell.com, polished a little by Heikki Tuuri)
sql/mysqld.cc:
  Changes for NetWare to exit the InnoDB gracefully instead of crashing the server (patch by PRam@novell.com, polished a little by Heikki Tuuri)
innobase/include/srv0start.h:
  Changes for NetWare to exit the InnoDB gracefully instead of crashing the server (patch by PRam@novell.com, polished a little by Heikki Tuuri)
innobase/include/ut0dbg.h:
  Changes for NetWare to exit the InnoDB gracefully instead of crashing the server (patch by PRam@novell.com, polished a little by Heikki Tuuri)
innobase/ut/ut0dbg.c:
  Changes for NetWare to exit the InnoDB gracefully instead of crashing the server (patch by PRam@novell.com, polished a little by Heikki Tuuri)
innobase/ut/ut0mem.c:
  Changes for NetWare to exit the InnoDB gracefully instead of crashing the server (patch by PRam@novell.com, polished a little by Heikki Tuuri)
innobase/srv/srv0start.c:
  Changes for NetWare to exit the InnoDB gracefully instead of crashing the server (patch by PRam@novell.com, polished a little by Heikki Tuuri)
2004-08-18 01:48:01 +03:00
unknown
fdc8712cb0 use my_vsnprintf() just in case
bug#4925
2004-08-18 00:04:43 +02:00
unknown
b5ea2224a6 A desperate attempt to comment one place where we do conversions. 2004-08-16 15:07:45 -07:00
unknown
621506815f Escaping [] so that darwin[7-8] gets into 'configure' and not darwin7-8
Adding a compilation define so that on recent Darwin mysqld does not react to SIGHUP and SIGQUIT:
this fixes a rpl000001 problem on our Powermac G5 machine (popping after an upgrade from 10.3.4 to
10.3.5) and is expected to fix 
BUG#2030 "relay bin log on slave resets multiple times a second"
(i.e. under some Mac OS X Panther versions, mysqld receives many SIGHUP and SIGQUIT).
So this fix is more a problem-hider than a real understanding of why mysqld receives so many signals.
Note that we saw other problems on this OS where mysqld reacts to Ctrl-Z but apparently only once,
where using SSL seems to make the problem more frequent...


configure.in:
  Escaping [] so that darwin[7-8] gets into 'configure' and not darwin7-8
  Adding a compilation define so that on recent Darwin mysqld does not react to SIGHUP and SIGQUIT.
sql/mysqld.cc:
  optionally ignore SIGHUP and SIGQUIT, for some Mac OS X Panther versions which send too many of those.
2004-08-13 15:29:47 +02:00
unknown
4dfe16c287 Merge vvagin@bk-internal.mysql.com:/home/bk/mysql-4.0
into eagle.mysql.r18.ru:/home/vva/work/BUG_4358/mysql-4.0
2004-08-13 02:27:21 +05:00
unknown
a88902033a Merge eagle.mysql.r18.ru:/home/vva/work/mysql.orig/clear/mysql-4.0
into eagle.mysql.r18.ru:/home/vva/work/BUG_4358/mysql-4.0


sql/sql_select.cc:
  Auto merged
2004-08-13 02:25:50 +05:00
unknown
72ca699723 Merge vvagin@bk-internal.mysql.com:/home/bk/mysql-4.0
into eagle.mysql.r18.ru:/home/vva/work/BUG_4973/mysql-4.0
2004-08-13 01:25:35 +05:00
unknown
cbf8c35974 Merge eagle.mysql.r18.ru:/home/vva/work/mysql.orig/clear/mysql-4.0
into eagle.mysql.r18.ru:/home/vva/work/BUG_4973/mysql-4.0
2004-08-13 01:21:22 +05:00
unknown
7e5247aade fixed Bug #4358 Problem with HAVING clause that uses alias
from the select list and TEXT field 

make setup_copy_fields to insert Item_copy_string for blobs in 
the beginning of the copy_funcs (push_back instead of push_front)

the thing is that Item_copy_string::copy for function can call 
Item_copy_string::val_int for blob via Item_ref.
But if Item_copy_string::copy for blob isn't called before, 
it's value will be wrong.

So all the Item_copy_string::copy for blobs should be called before 
Item_copy_string::copy for functions.


mysql-test/r/having.result:
  added test case for
  Bug #4358 Problem with HAVING clause that uses
              alias from the select list and TEXT field
mysql-test/t/having.test:
  added test case for
  Bug #4358 Problem with HAVING clause that uses
              alias from the select list and TEXT field
sql/sql_select.cc:
  make setup_copy_fields to insert Item_copy_string for blobs in 
  the beginning of the copy_funcs (push_back instead of push_front)
  
  the thing is that Item_copy_string::copy for function can call 
  Item_copy_string::val_int for blob via Item_ref.
  But if Item_copy_string::copy for blob isn't called before, 
  it's value will be wrong.
  
  So all the Item_copy_string::copy for blobs should be called before 
  Item_copy_string::copy for functions.
  
  fixed 
  Bug #4358 Problem with HAVING clause that
             uses alias from the select list and TEXT field
2004-08-12 20:37:31 +05:00
unknown
1b666071d1 Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-4.0
into gw.mysql.r18.ru:/usr/home/ram/work/4.0.b4898
2004-08-12 14:59:33 +05:00
unknown
bb10ca26ec A fix (Bug#4898: User privileges depending on ORDER BY Settings of table db) 2004-08-12 09:41:35 +05:00
unknown
acf5df3a6d Merge bk-internal.mysql.com:/home/bk/mysql-4.0
into pcgem.rdg.cyberkinetica.com:/usr/home/acurtis/work/bug4411


BitKeeper/etc/logging_ok:
  auto-union
2004-08-11 23:26:44 +01:00
unknown
4f08c4b726 Bug#4411
Fix for server hang bug


mysql-test/r/heap.result:
  Bug#4411
    Test for server hang bug
mysql-test/t/heap.test:
  Bug#4411
    Test for server hang bug
sql/opt_sum.cc:
  Bug#4411
    Allow code to exit the loop.
BitKeeper/etc/logging_ok:
  Logging to logging@openlogging.org accepted
2004-08-11 23:24:36 +01:00
unknown
ab64eb64af Bug #4797 - 32 bit and 64 bit builds behave differently on int32 overflow
include/my_global.h:
  uint_max constants moved from sql_analyse.cc
sql/sql_analyse.cc:
  cleanup
2004-08-11 23:43:41 +02:00
unknown
b0fcf80b23 fixed Bug #4973 Memory is not released when HEAP table is dropped
sql/ha_heap.cc:
  added calling fn_format(name,..) for name before heap_delete_table
  as it's done before heap_create
  
  fixed Bug #4973 Memory is not released when HEAP table is dropped
2004-08-11 18:55:12 +05:00
unknown
d6dabde216 Merge marko@build.mysql.com:/home/bk/mysql-4.0
into hundin.mysql.fi:/home/marko/k/mysql-4.0
2004-08-10 16:16:21 +03:00
unknown
2c900be0ef InnoDB: Use create_temp_file() when available
innobase/include/os0file.h:
  Improve the comment of os_file_create_tmpfile()
innobase/os/os0file.c:
  os_file_create_tmpfile(): Use create_temp_file()
  via innobase_mysql_tmpfile() unless UNIV_HOTBACKUP is defined
sql/ha_innodb.cc:
  Added innobase_mysql_tmpfile(), a wrapper around create_temp_file()
2004-08-10 14:17:32 +03:00
unknown
c17bc7a7ff Merge bk-internal.mysql.com:/home/bk/mysql-4.0
into brandersnatch.localdomain:/home/dlenev/src/mysql-4.0-bg4491
2004-08-10 02:57:32 +04:00
unknown
3603196b19 Merge mysql.com:/home/mydev/mysql-4.0
into mysql.com:/home/mydev/mysql-4.0-4000
2004-08-09 11:41:50 +02:00
unknown
63ae5d0b4d bug#4497 - Serious regression if disk based TMP table is used.
Solved performance problems by enabling write buffer.



sql/sql_select.cc:
  bug#4497 - Serious regression if disk based TMP table is used.
  Solved performance problems by enabling write buffer.
  Supplied no test case, as it required too much data to see the performance regression.
2004-08-09 11:39:26 +02:00
unknown
fc4364e350 InnoDB: Add option for disabling innodb_status.<pid> files.
InnoDB: Implement tmpfile() differently on Windows (Bug #3998)


innobase/dict/dict0dict.c:
  Check the return value of os_file_create_tmpfile(),
  as it can now return NULL
innobase/include/os0file.h:
  Note that os_file_create_tmpfile() can now return NULL
innobase/include/srv0srv.h:
  Add a new server flag (srv_innodb_status) to disable
  the creation of innodb_status.<pid> files
innobase/lock/lock0lock.c:
  Check the return value of os_file_create_tmpfile(),
  as it can now return NULL
innobase/os/os0file.c:
  os_file_create_tmpfile(): separate implementation for Win32;
  errors will be reported but will not cause assertion failure
innobase/srv/srv0srv.c:
  Add a new server flag (srv_innodb_status) to disable
  the creation of innodb_status.<pid> files
innobase/srv/srv0start.c:
  innobase_start_or_create_for_mysql(): create srv_monitor_file
  with tmpfile() or with a visible name "innodb_status.<pid>",
  depending on the setting of the flag srv_innodb_status.
sql/ha_innodb.cc:
  innobase_init(): initialize srv_innodb_status
  update_table_comment(), get_foreign_key_create_info(): replace
  tmpfile() with os_file_create_tmpfile()
sql/ha_innodb.h:
  Add new Boolean flag, innobase_create_status_file.
sql/mysqld.cc:
  Add new Boolean flag, innodb_status_file
2004-08-06 15:55:50 +03:00
unknown
3a00469e4a Fix for bug #4491 "timestamp(19) doesn't work".
We should allow 19 as length of newly created TIMESTAMP fields.


mysql-test/r/type_timestamp.result:
  Added test of TIMESTAMP(19) support.
mysql-test/t/type_timestamp.test:
  Added test of TIMESTAMP(19) support.
sql/sql_parse.cc:
  add_field_to_list(): TIMESTAMP columns should also support 19 as length since it is
  length of 4.1 compatible representation.
BitKeeper/etc/logging_ok:
  Logging to logging@openlogging.org accepted
2004-08-06 12:15:40 +04:00
unknown
963e45b9e2 Merge sand.box:/home/tim/m/40/bk into sand.box:/home/tim/m/40/a 2004-08-04 10:14:07 -06:00
unknown
03daa16a95 Print MYSQL_COMPILATION_COMMENT after ER_READY on server startup
sql/share/czech/errmsg.txt:
  Remove trailing \n from ER_READY (it is now printed in mysqld.cc)
sql/share/danish/errmsg.txt:
  Remove trailing \n from ER_READY (it is now printed in mysqld.cc)
sql/share/dutch/errmsg.txt:
  Remove trailing \n from ER_READY (it is now printed in mysqld.cc)
sql/share/english/errmsg.txt:
  Remove trailing \n from ER_READY (it is now printed in mysqld.cc)
sql/share/estonian/errmsg.txt:
  Remove trailing \n from ER_READY (it is now printed in mysqld.cc)
sql/share/french/errmsg.txt:
  Remove trailing \n from ER_READY (it is now printed in mysqld.cc)
sql/share/german/errmsg.txt:
  Remove trailing \n from ER_READY (it is now printed in mysqld.cc)
sql/share/greek/errmsg.txt:
  Remove trailing \n from ER_READY (it is now printed in mysqld.cc)
sql/share/hungarian/errmsg.txt:
  Remove trailing \n from ER_READY (it is now printed in mysqld.cc)
sql/share/japanese/errmsg.txt:
  Remove trailing \n from ER_READY (it is now printed in mysqld.cc)
sql/share/korean/errmsg.txt:
  Remove trailing \n from ER_READY (it is now printed in mysqld.cc)
sql/share/norwegian-ny/errmsg.txt:
  Remove trailing \n from ER_READY (it is now printed in mysqld.cc)
sql/share/norwegian/errmsg.txt:
  Remove trailing \n from ER_READY (it is now printed in mysqld.cc)
sql/share/polish/errmsg.txt:
  Remove trailing \n from ER_READY (it is now printed in mysqld.cc)
sql/share/portuguese/errmsg.txt:
  Remove trailing \n from ER_READY (it is now printed in mysqld.cc)
sql/share/romanian/errmsg.txt:
  Remove trailing \n from ER_READY (it is now printed in mysqld.cc)
sql/share/russian/errmsg.txt:
  Remove trailing \n from ER_READY (it is now printed in mysqld.cc)
sql/share/slovak/errmsg.txt:
  Remove trailing \n from ER_READY (it is now printed in mysqld.cc)
sql/share/spanish/errmsg.txt:
  Remove trailing \n from ER_READY (it is now printed in mysqld.cc)
sql/share/swedish/errmsg.txt:
  Remove trailing \n from ER_READY (it is now printed in mysqld.cc)
sql/share/ukrainian/errmsg.txt:
  Remove trailing \n from ER_READY (it is now printed in mysqld.cc)
2004-08-04 10:12:57 -06:00
unknown
69789688b6 Merge gbichot@bk-internal.mysql.com:/home/bk/mysql-4.0
into mysql.com:/home/mysql_src/mysql-4.0
2004-07-31 22:39:11 +02:00
unknown
9ca47d047e BUG#4393, BUG#4356 - incorrect decimals in fix_length_and_dec() in some functions
mysql-test/mysql-test-run.sh:
  report failed test name
mysql-test/r/func_math.result:
  test results fixed
2004-07-31 22:39:10 +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
6ce5da27a7 removing assertion (will be moved to 4.1) for non-debug to compile
sql/sql_class.h:
  removing the assertion as I don't want to include assert.h (inclusion of assert.h has already been
  reworked in 4.1, so I'll move the assertion to 4.1). Assertion makes compilation fail if non-debug.
2004-07-31 09:49:32 +02:00
unknown
4b20223387 Merge gbichot@bk-internal.mysql.com:/home/bk/mysql-4.0
into mysql.com:/home/mysql_src/mysql-4.0
2004-07-30 01:01:36 +02:00
unknown
1adf793ddf Reverting a line I had just added to slave.cc (mutex is already locked
when we come at this place).


sql/slave.cc:
  stupid me; this line is a mistake
2004-07-30 01:00:52 +02:00
unknown
d475643da8 Avoiding a theoretically possible crash (pthread_mutex_lock(0)) which could (at least in POSIX Threads books)
happen on SMP machines, when a thread is going to wait on a condition and it is KILLed at the
same time.
Cleaning code a bit by adding a test in enter_cond() that we have the mutex (was already the case in all places
where it's called except one which is fixed here).


sql/log.cc:
  safe_mutex_assert_owner() is now in THD::enter_cond()
sql/slave.cc:
  lock mutex before waiting on condition.
sql/sql_class.cc:
  THD::awake(): before locking the mutex, let's test it's not zero;
  in theory indeed, the killer thread may see current_cond non-zero and current_mutex zero
  (order of assignments is not guaranteed by POSIX).
  A comment noting that there is still a small chance a KILL does not work and needs
  being re-issued.
sql/sql_class.h:
  Assert in enter_cond() that we have the mutex.
  It is already the case in all places where we call enter_cond(), so better ensure it there.
2004-07-30 00:53:25 +02:00
unknown
65ba6aa293 BUG#4717 - check for valid table names in ALTER TABLE ... RENAME 2004-07-26 10:52:40 +02:00
unknown
473eec2328 distclean:
rm -f lex_hash.h
BUG#4583
2004-07-22 19:28:11 +02:00
unknown
382ff793bb Fix for BUG#4551 "Temporary InnoDB tables not replicated properly with CREATE TABLE .. SELECT"
The problem was that (for any storage engine), the created temporary table was not removed if CREATE SELECT failed (because
of a constraint violation for example). This was not consistent with the manual and with CREATE SELECT (no TEMPORARY).


sql/sql_insert.cc:
  Fix for BUG#4551 "Temporary InnoDB tables not replicated properly with CREATE TABLE .. SELECT"
  The problem was that (for any storage engine), the created temporary table was not removed if CREATE SELECT failed (because
  of a constraint violation for example). This was not consistent with the manual and with CREATE SELECT (no TEMPORARY).
  And it led to the above bug, because the binlogging of CREATE SELECT is done by select_insert::send_eof() (same function
  as INSERT SELECT) and so, if the table is transactional and there is a failure, the statement is considered as rolled
  back and so nothing is written in the binlog. So temp table MUST be deleted.
2004-07-18 14:34:35 +02:00
unknown
474c2578c5 Merge gbichot@bk-internal.mysql.com:/home/bk/mysql-4.0
into mysql.com:/home/mysql_src/mysql-4.0
2004-07-17 17:10:52 +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
9870801123 Merge marko@build.mysql.com:/home/bk/mysql-4.0
into hundin.mysql.fi:/home/marko/j/mysql-4.0
2004-07-13 15:28:29 +03:00
unknown
1e23a0efef A fix for a long standing bug in LOAD DATA .. LOCAL ..'
sql/sql_load.cc:
  A fix for a long standing bug in LOAD DATA .. LOCAL ..'
  
  When the error occurs, a link is broken instead of simply returning
  the error message and maintaining the same connection.
2004-07-13 13:54:20 +03:00
unknown
fbc420ba0e InnoDB: LOCK TABLE clean-up
innobase/include/lock0lock.h:
  Improve comments regarding LOCK_TABLE_EXP
innobase/include/row0mysql.h:
  Rename row_unlock_table_for_mysql() to row_unlock_tables_for_mysql()
  and improve its comment
innobase/include/trx0trx.h:
  Rename n_tables_locked to n_lock_table_exp
innobase/lock/lock0lock.c:
  Rename n_tables_locked to n_lock_table_exp
  Increment n_lock_table_exp already in lock_table_create()
  Replace some ut_ad() assertions with ut_a()
innobase/row/row0mysql.c:
  Rename n_tables_locked to n_lock_table_exp
  Rename row_unlock_table_for_mysql() to row_unlock_tables_for_mysql()
  and improve its comment
innobase/trx/trx0trx.c:
  Rename n_tables_locked to n_lock_table_exp
sql/ha_innodb.cc:
  Rename n_tables_locked to n_lock_table_exp
  Rename row_unlock_table_for_mysql() to row_unlock_tables_for_mysql()
2004-07-12 16:47:22 +03:00
unknown
f4b2b7aa2d mysql_find_files() made extern (from static to sql_show.cc) 2004-07-10 11:13:05 +02:00
unknown
aae8874dd1 Merge gbichot@bk-internal.mysql.com:/home/bk/mysql-4.0
into mysql.com:/home/mysql_src/mysql-4.0
2004-06-30 16:16:57 +02:00
unknown
62a6733e4e Fix for BUG#4326 "Replicated LOAD DATA INFILE show nothing in
processlist on slave":
we now report in SHOW PROCESSLIST that we are writing to the temp
files or loading the table. When we are writing to the tmp file:
| 3  | system user |                 |    | Connect | 6    | Making temp file /tmp/SQL_LOAD-2-1-2.data | 
and when we are actually loading the .data temp file into the table:
| 3  | system user |                 | test | Connect | 2    | | LOAD DATA INFILE '/tmp/SQL_LOAD-2-1-2.data' INTO TABLE `t` <...> |


sql/log_event.cc:
  Replication of LOAD DATA INFILE:
  we now report in SHOW PROCESSLIST that we are creating
  the temp files or loading the table.
  Plus removing a line which had a comment "should not be needed"
  and a guarding assertion which we have never heard fail (and logic
  says it should not fail).
2004-06-30 15:41:35 +02:00
unknown
07589a6da5 Merge mysql.com:/home/my/mysql-3.23 into mysql.com:/home/my/mysql-4.0
sql/sql_parse.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
2004-06-25 18:55:03 +03:00
unknown
f1257b3f91 Merge mysql.com:/home/mydev/mysql-4.0
into mysql.com:/home/mydev/mysql-4.0-bug2686
2004-06-25 14:44:37 +02:00
unknown
fb987c8907 Merge
sql/ha_berkeley.cc:
  Auto merged
mysql-test/r/bdb.result:
  SCCS merged
mysql-test/t/bdb.test:
  SCCS merged
2004-06-25 12:59:47 +02: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
d75022fff7 parameter of my_yyoverflow made independed from YYSIZE_T (BUG#4204)
sql/sql_parse.cc:
  parameter of my_yyoverflow made independed from YYSIZE_T
sql/sql_yacc.yy:
  parameter of my_yyoverflow made independed from YYSIZE_T
2004-06-24 22:15:15 +03: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