Commit graph

25 commits

Author SHA1 Message Date
serg@janus.mylan
3bd3bd1e30 Followup for bug#30252.
Ensure that all SQLCOM_ constants have corresponding Com_ variables.
2007-12-19 01:27:15 +01:00
dkatz@damien-katzs-computer.local
4b5f344416 Bug #30252 Com_create_function is not incremented.
Added Com_create_spfunction and all other commands previously missing to the global status variables.
2007-12-14 18:27:40 -05:00
ramil/ram@mysql.com/ramil.myoffice.izhnet.ru
0dfe3a8dfb Fix for bug #31285: main.status test fails with different Table_locks_waited
Problem: Table_locks_waited value may depend on general logging.

Fix: switch general logging off.
2007-10-16 13:43:16 +05:00
gkodinov/kgeorge@magare.gmz
acf0ebe69f Merge magare.gmz:/home/kgeorge/mysql/work/B30377-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/work/B30377-5.1-opt
2007-08-29 11:38:05 +03:00
gkodinov/kgeorge@magare.gmz
cfaa0983c8 Bug #30377: EXPLAIN loses last_query_cost when used with UNION
Currently the Last_query_cost session status variable shows
only the cost of a single flat subselect. For complex queries
(with subselects or unions etc) Last_query_cost is not valid
as it was showing the cost for the last optimized subselect.
Fixed by reseting to zero Last_query_cost when the complete
cost of the query cannot be determined.
Last_query_cost will be non-zero only for single flat queries.
2007-08-28 18:51:03 +03:00
jani@hynda.mysql.fi
2cb4a2c0b6 Removed a test which output may differ depending on machine load. 2007-08-22 16:18:27 +03:00
tsmith@ramayana.hindu.god
76d173fa9d Bug #29307: status.test fails with different Table_locks_immediate
Finish premature patch which was accidentally pushed; remove debugging
info and correct the test.
2007-08-18 02:28:08 -06:00
malff/marcsql@weblab.(none)
c7bbd8917c WL#3984 (Revise locking of mysql.general_log and mysql.slow_log)
Bug#25422 (Hang with log tables)
Bug 17876 (Truncating mysql.slow_log in a SP after using cursor locks the
          thread)
Bug 23044 (Warnings on flush of a log table)
Bug 29129 (Resetting general_log while the GLOBAL READ LOCK is set causes
           a deadlock)

Prior to this fix, the server would hang when performing concurrent
ALTER TABLE or TRUNCATE TABLE statements against the LOG TABLES,
which are mysql.general_log and mysql.slow_log.

The root cause traces to the following code:
in sql_base.cc, open_table()
  if (table->in_use != thd)
  {
    /* wait_for_condition will unlock LOCK_open for us */
    wait_for_condition(thd, &LOCK_open, &COND_refresh);
  }
The problem with this code is that the current implementation of the
LOGGER creates 'fake' THD objects, like
- Log_to_csv_event_handler::general_log_thd
- Log_to_csv_event_handler::slow_log_thd
which are not associated to a real thread running in the server,
so that waiting for these non-existing threads to release table locks
cause the dead lock.

In general, the design of Log_to_csv_event_handler does not fit into the
general architecture of the server, so that the concept of general_log_thd
and slow_log_thd has to be abandoned:
- this implementation does not work with table locking
- it will not work with commands like SHOW PROCESSLIST
- having the log tables always opened does not integrate well with DDL
operations / FLUSH TABLES / SET GLOBAL READ_ONLY

With this patch, the fundamental design of the LOGGER has been changed to:
- always open and close a log table when writing a log
- remove totally the usage of fake THD objects
- clarify how locking of log tables is implemented in general.

See WL#3984 for details related to the new locking design.

Additional changes (misc bugs exposed and fixed):

1)

mysqldump which would ignore some tables in dump_all_tables_in_db(),
 but forget to ignore the same in dump_all_views_in_db().

2)

mysqldump would also issue an empty "LOCK TABLE" command when all the tables
to lock are to be ignored (numrows == 0), instead of not issuing the query.

3)

Internal errors handlers could intercept errors but not warnings
(see sql_error.cc).

4)

Implementing a nested call to open tables, for the performance schema tables,
exposed an existing bug in remove_table_from_cache(), which would perform:
  in_use->some_tables_deleted=1;
against another thread, without any consideration about thread locking.
This call inside remove_table_from_cache() was not required anyway,
since calling mysql_lock_abort() takes care of aborting -- cleanly -- threads
that might hold a lock on a table.
This line (in_use->some_tables_deleted=1) has been removed.
2007-07-27 00:31:06 -06:00
gluh@mysql.com/eagle.(none)
579cce54ab WL#3823 Modify VARIABLE_VALUE columns to VARCHAR within INFORMATION_SCHEMA STATUS tables 2007-05-15 12:45:50 +05:00
lars/lthalmann@mysql.com/dl145j.mysql.com
00ba129e51 Version 5.1 needs one connection less 2006-09-21 02:44:58 +02:00
lars/lthalmann@dl145j.mysql.com
57a74ea4af Merge mysql.com:/users/lthalmann/bkroot/mysql-5.1-new-rpl
into  mysql.com:/users/lthalmann/bk/MERGE/mysql-5.1-merge
2006-09-21 00:23:20 +02:00
aivanov/alexi@mysql.com/mysqld.localdomain
9a87889482 WL#3247,#3248: Adding [GLOBAL|SESSION]_STATUS and [GLOBAL|SESSION]_VARIABLES
tables to INFORMATION_SCHEMA.
2006-09-14 03:37:40 +04:00
andrey@lmy004.
2bdd872e5f WL #3337 (Event scheduler new architecture)
Cut Nr. 8.

All tests pass.

Separated Event_scheduler into Event_queue and Event_scheduler.
Added new Event_scheduler_ng which is the new scheduler and is used
system-wide. Will be moved to the event_scheduler.cc in the future.
Using Event_timed in Event_queue as well as cloned during execution.
Next step is to have Event_worker_data which will be used during execution
and will take ::compile()/::execute() out of Event_timed.
2006-07-04 18:44:35 +02:00
monty@mysql.com
be269e56d2 SHOW STATUS does not anymore change local status variables (except com_show_status). Global status variables are still updated.
SHOW STATUS are not anymore put in slow query log because of no index usage.

Implemntation done by removing orig_sql_command and moving logic of SHOW STATUS to mysql_excute_command()
This simplifies code and allows us to remove some if statements all over the code.

Upgraded uc_update_queries[] to sql_command_flags and added more bitmaps to better categorize commands.
This allowed some overall simplifaction when testing sql_command.

Fixes bugs:
Bug#10210: running SHOW STATUS increments counters it shouldn't
Bug#19764: SHOW commands end up in the slow log as table scans
2006-06-20 13:20:32 +03:00
andrey@lmy004.
f234eef13b update result
drop users at the end of events_stress
2006-05-23 12:10:07 +02:00
kroki@mysql.com
4a81c0dfb9 In test for bug#15933 we have to wait for all disconnects to finish to avoid
a race between updating and checking Max_used_connections.  This is done in
a loop until either disconnect finished or timeout expired.  In a latter case
the test will fail.
2006-04-12 17:37:57 +04:00
kroki@mysql.com
6222ca41a5 Bug#15933: max_used_connections is wrong after FLUSH STATUS if connections are cached
After FLUSH STATUS max_used_connections was reset to 0, and haven't
been updated while cached threads were reused, until the moment a new
thread was created.

The first suggested fix from original bug report was implemented:

  a) On flushing the status, set max_used_connections to
  threads_connected, not to 0.

  b) Check if it is necessary to increment max_used_connections when
  taking a thread from the cache as well as when creating new threads
2006-04-07 15:30:40 +04:00
ramil@mysql.com
68acf8fdea fix (bug #10303: Misleading Last_query_cost value). 2005-09-06 15:00:35 +05:00
pem@mysql.comhem.se
a8f0a8be21 WL#1447: Remove the UDF/function lookup in lex.
Moved the UDF and stored procedure lookup from sql_lex.cc to sql_yacc.yy.
This will improve performance (since we don't have to check for stored
functions in the lexer all the time), and make it possible to implement
db qualified SPs.
2004-01-27 17:57:19 +01:00
pem@mysql.com
975061bb5a Merge 4.1 to 5.0. 2003-12-16 16:12:28 +01:00
antony@ltantony.rdg.cyberkinetica.homeunix.net
fcf96dbb18 WorkLog#1323
Deprecate the use of TYPE=... Preferred syntax is ENGINE=
2003-12-10 04:31:42 +00:00
pem@mysql.com
b6ab762dc1 Closing tables during SP execution the proper way. 2003-02-28 15:07:14 +01:00
sasha@mysql.sashanet.com
bb66c80aeb 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
2001-09-27 23:05:54 -06:00
sasha@mysql.sashanet.com
70f619856b fixed up lock counting code - Monty's suggestions
updated manual about table lock counter
fixed coredump in DROP DATABASE with long bogus name by non-root user
fixed bug in handling STOP immediately after ROTATE
added test case for buffer overrun on DROP DATABASE by non-root user
added test case for the STOP bug in replication
2001-01-27 15:33:31 -07:00
sasha@mysql.sashanet.com
5f6561ec88 Table_locks_waited
Table_locks_immediate
2001-01-26 20:00:42 -07:00