1
0
mirror of https://github.com/MariaDB/server.git synced 2025-05-28 13:01:41 +03:00

34003 Commits

Author SHA1 Message Date
Sergei Golubchik
d103e359f8 followup changes to timeout commit
* fix debian patch
* update the copyright
* rename include guards to follow conventions
* restore incorectly deleted test file, add clarification in a comment
* capitalize the first letter of the status variable
2014-10-10 22:27:36 +02:00
Monty
cc8aed3eb7 MDEV 4427: query timeouts
Added MAX_STATEMENT_TIME user variable to automaticly kill queries after a given time limit has expired.

- Added timer functions based on pthread_cond_timedwait
- Added kill_handlerton() to signal storage engines about kill/timeout
- Added support for GRANT ... MAX_STATEMENT_TIME=#
- Copy max_statement_time to current user, if stored in mysql.user
- Added status variable max_statement_time_exceeded
- Added KILL_TIMEOUT
- Removed digest hash from performance schema tests as they change all the time.
- Updated test results that changed because of the new user variables or new fields in mysql.user

This functionallity is inspired by work done by Davi Arnaut at twitter.
Test case is copied from Davi's work.

Documentation can be found at
https://kb.askmonty.org/en/how-to-limittimeout-queries/

mysql-test/r/mysqld--help.result:
  Updated for new help message
mysql-test/suite/perfschema/r/all_instances.result:
  Added new mutex
mysql-test/suite/sys_vars/r/max_statement_time_basic.result:
  Added testing of max_statement_time
mysql-test/suite/sys_vars/t/max_statement_time_basic.test:
  Added testing of max_statement_time
mysql-test/t/max_statement_time.test:
  Added testing of max_statement_time
mysys/CMakeLists.txt:
  Added thr_timer
mysys/my_init.c:
mysys/mysys_priv.h:
  Added new mutex and condition variables
  Added new mutex and condition variables
mysys/thr_timer.c:
  Added timer functions based on pthread_cond_timedwait()
  This can be compiled with HAVE_TIMER_CREATE to benchmark agains timer_create()/timer_settime()
sql/lex.h:
  Added MAX_STATEMENT_TIME
sql/log_event.cc:
  Safety fix (timeout should be threated as an interrupted query)
sql/mysqld.cc:
  Added support for timers
  Added status variable max_statement_time_exceeded
sql/share/errmsg-utf8.txt:
  Added ER_QUERY_TIMEOUT
sql/signal_handler.cc:
  Added support for KILL_TIMEOUT
sql/sql_acl.cc:
  Added support for GRANT ... MAX_STATEMENT_TIME=#
  Copy max_statement_time to current user
sql/sql_class.cc:
  Added timer functionality to THD.
  Added thd_kill_timeout()
sql/sql_class.h:
  Added timer functionality to THD.
  Added KILL_TIMEOUT
  Added max_statement_time variable in similar manner as long_query_time was done.
sql/sql_connect.cc:
  Added handling of max_statement_time_exceeded
sql/sql_parse.cc:
  Added starting and stopping timers for queries.
sql/sql_show.cc:
  Added max_statement_time_exceeded for user/connects status in MariaDB 10.0
sql/sql_yacc.yy:
  Added support for GRANT ... MAX_STATEMENT_TIME=# syntax, to be enabled in 10.0
sql/structs.h:
  Added max_statement_time user resource
sql/sys_vars.cc:
  Added max_statement_time variables
mysql-test/suite/roles/create_and_drop_role_invalid_user_table.test
  Removed test as we require all fields in mysql.user table.
scripts/mysql_system_tables.sql
scripts/mysql_system_tables_data.sql
scripts/mysql_system_tables_fix.sql
  Updated mysql.user with new max_statement_time field
2014-10-07 11:37:36 +03:00
Sergei Petrunia
1a7d17311c Merge ../10.1-orderby-fixes into 10.1 2014-10-06 12:21:53 +04:00
Nirbhay Choubey
c768af75b7 Minor modifications
- Simplified test cases in wsrep.variables
- Fixed a condition in wsrep_check_opts.cc
- Fixed an "unbound variable" in wsrep_sst_rsync
2014-10-04 13:53:33 -04:00
Sergei Golubchik
7aabc2ded2 fixing embedded: WaaS. Wsrep as a Service. 2014-10-01 23:48:34 +02:00
Sergei Golubchik
93b50e64a0 cleanup: remove galera/wsrep magic from mtr 2014-10-01 23:38:27 +02:00
Sergei Golubchik
3620910eea cleanup: galera merge, simple changes 2014-10-01 23:38:27 +02:00
Sergei Petrunia
605b48d3e3 MDEV-6814: Server crashes in calculate_key_len on query with ORDER BY
- if test_if_skip_sort_order() decides to switch to using an index, or
  switch from using ref to using quick select, it should set all
  members accordingly.
2014-09-30 19:22:27 +04:00
Sergei Petrunia
0b15557c8f MDEV-6796: Unable to skip filesort when using implicit extended key
Re-work test_if_order_by_key() to work correctly for extended indexes.
2014-09-26 15:54:35 +04:00
Jan Lindström
bef30f2e30 Fix test failures seen on
-- innodb-wl5522-debug-zip (path differences win/unix)
-- innodb_defragment_fill_factor (stabilise)
-- innodb_force_pk (case difference win/unix)
2014-09-26 12:16:05 +03:00
Monty
3f2d9a902e Fixed failing test temp_table_frm
The problem was that the internal temporary table created
for information_schema overflow to MyISAM because it has
a row width of > 3000 characters, which filled the in memory
temporary tables.
Fix was to increase size for the heap table.
2014-09-24 23:52:17 +03:00
Sergei Petrunia
15ad0d0bb7 Merge ../10.1-mdev6657 into bb-10.1-orderby-fixes 2014-09-24 12:17:15 +04:00
Sergei Petrunia
8aa88db3c2 MDEV-6402: Optimizer doesn't choose best execution plan when composite...
Fix test_if_skip_sort_order() logic:
WHEN
we use index X, which doesn't produce needed ordering, but there is
an index Y which does and has the same prefix as used prefix of X
THEN
don't just switch to using ref access on Y. If range(Y) would use more
key parts, use range(Y).
2014-09-12 02:19:49 +04:00
Jan Lindström
d0a5f33ccd Remove incorrect test file. 2014-09-11 07:10:37 +03:00
Jan Lindström
b67e1d3c98 Adjusted defrag test that fails randomly (timing problem) and fix
result of innodb_sys_index test.
2014-09-10 09:44:57 +03:00
Jan Lindström
6748976d14 Fix test failure on rpl_statements test by not listing wsrep variable. 2014-09-09 13:39:16 +03:00
Sergei Petrunia
8707f172e1 Merge 10.1 into bb-10.1-mdev6657 2014-09-09 13:46:33 +04:00
Sergei Petrunia
bf30585eaf MDEV-465: Optimizer : wrong index choice: Add a testcase. 2014-09-09 13:26:23 +04:00
Sergei Petrunia
8bd4716272 Merge ../10.1-orderby-fixes into 10.1 2014-09-09 13:05:28 +04:00
Nirbhay Choubey
26e048ffd3 Merged sys_vars.wsrep_* tests from maria-10.0-galera tree. 2014-09-08 13:19:20 -04:00
Jan Lindström
7c58dd80e5 Fix another set of test failures caused by galera merge. 2014-09-08 15:12:18 +03:00
Jan Lindström
d3ceb934f1 MDEV-6701: InnoDB tests fail in 10.1
Fixed test failures seen on defragment tests, innodb.innodb-wl5522-debug-zip
and innodb.innodb_bug12902967.
2014-09-08 09:34:03 +03:00
Sergei Petrunia
c945233a19 MDEV-6657: Poor plan choice for ORDER BY key DESC optimization...
The problem was caused by the following scenario:
- range optimizer picks an index IDX1 which doesn't match the ORDER BY ...
  LIMIT clause.
- test_if_skip_sort_order() decides to switch to index IDX2 which matches
  the ORDER BY ... LIMIT.
- it runs SQL_SELECT::test_quick_select() for the second time to produce
  an quick select for IDX2.
- However, test_quick_select() would figure that full index scan on IDX1
  is still cheaper (its calculations ignore the LIMIT n).

Fixed this by
- passing force_quick_range=true to test_quick_select()
- in test_quick_select, don't consider full index scans if the mentioned
  parameter is true.

Numerous changes in .result files are caused by test_quick_select() being
run after "early/late NULLs filtering" feature has injected NOT NULL
condition.
2014-09-02 18:54:29 +04:00
Jan Lindström
e44751b65f Merge revision 3882 from lp:maria/maria-10.0-galera
MDEV-6656: Test wsrep.variables hangs

  Analysis: wsrep_applier_thread shutdown signaling does not always work
  correctly causing a timing problem where main thread is waiting in a
  condition variable a signal that all worker threads to end.
2014-08-29 10:11:08 +03:00
Jan Lindström
8cd08717f6 Move galera_sst_mode test to correct location. This test tests mysqldump
option.
2014-08-27 19:53:19 +03:00
Sergei Petrunia
f1a1683309 MDEV-6384: It seems like OPTIMIZER take into account the order of indexes in the table
When ORDER BY ... LIMIT check whether it should switch from index IDX1
to index IDX2, it should not ignore the fact that IDX2 may have a
potential range or ref(const) access.
Istead, it should calculate their costs: there is now a saved range
optimizer cost and code to re-calculate what best_access_path()
calculated for ref(const).

/* in current cost model these two can be very different
numbers unfortunately */
2014-08-27 20:08:32 +04:00
Sergei Petrunia
be00e279c6 MDEV-6480: Remove conditions for which range optimizer returned SEL_ARG::IMPOSSIBLE
Let range optimizer remove parts of OR-clauses for which range analysis
produced SEL_TREE(IMPOSSIBLE).
There is no need to remove parts of AND-clauses: either they are inside
of OR (and the whole AND-clause will be removed), or the AND-clause is
at the top level, in which case the whole WHERE (or ON) is always FALSE
and this is a degenerate case which receives special treatment.

The removal process takes care not to produce 1-way ORs (in that case
we substitute the OR for its remaining member).
2014-08-27 18:47:33 +04:00
Jan Lindström
ab150128ce MDEV-6247: Merge 10.0-galera to 10.1.
Merged lp:maria/maria-10.0-galera up to revision 3880.

    Added a new functions to handler API to forcefully abort_transaction,
    producing fake_trx_id, get_checkpoint and set_checkpoint for XA. These
    were added for future possiblity to add more storage engines that
    could use galera replication.
2014-08-27 13:15:37 +03:00
Jan Lindström
df4dd593f2 MDEV-6247: Merge 10.0-galera to 10.1.
Merged lp:maria/maria-10.0-galera up to revision 3879.

Added a new functions to handler API to forcefully abort_transaction,
producing fake_trx_id, get_checkpoint and set_checkpoint for XA. These
were added for future possiblity to add more storage engines that
could use galera replication.
2014-08-26 15:43:46 +03:00
Sergei Petrunia
9534fd83ce MDEV-6634: Wrong estimates for ref(const): Update test result 2014-08-26 16:24:40 +04:00
Sergei Petrunia
378878e1e9 MDEV-6634: Wrong estimates for ref(const) and key IS NULL predicate
IS [NOT] NULL predicate is sargable within an outer join. Range
analysis only uses predicates from ON expressions, which have
regular semantics (without null-complemented rows, etc).
There is no reason not use IS [NOT] NULL predicates.
2014-08-24 12:36:51 +04:00
Sergey Vojtovich
f1c1c04a34 MDEV-4262 - P_S discovery
Discover P_S tables automatically.

Most of this patch is code clean-up:
- removed tests and code responsible for P_S tables correctness verification
- always return error from ha_perfschema::create()
- install/upgrade scripts won't create P_S tables anymore
2014-08-19 15:18:18 +04:00
Oleksandr Byelkin
6b47e896c0 Basic test of slave_run_triggers_for_rbr variable added. 2014-08-13 15:32:04 +03:00
Monty
e2b2bde358 Made sql_log_slow a session variable
mysqldump:
- Added --log-queries to allow one to disable logging for the dump

sql/log_event.cc:
- Removed setting of enable_slow_log as it's not required anymore.

sql/sql_parse.cc:
- Set enable_slow_log to value of thd->variables.sql_log_slow as this will speed up tests if slow log is disabled.
- opt_log_slow_admin_statements can now only disable slow log, not enable it.

sql/sql_explain.cc:
- Minor cleanup

Other things:
- Added sql_log_slow to system variables.
- Changed opt_slow_log to global_system_variables.sql_log_slow in all files
- Updated tests to reflect changes
2014-08-09 13:22:01 +03:00
Jan Lindström
6dad23f04a MDEV-5834: Merge Kakao Defragmentation implementation to MariaDB 10.1
Merge https://github.com/kakao/mariadb-10.0 that contains Facebook's
    implementation for defragmentation

    facebook/mysql-5.6@a2d3a74
    facebook/mysql-5.6@def96c8
    facebook/mysql-5.6@9c67c5d
    facebook/mysql-5.6@921a81b
    facebook/mysql-5.6@aa519bd
    facebook/mysql-5.6@fea7d13
    facebook/mysql-5.6@09b29d3
    facebook/mysql-5.6@9284abb
    facebook/mysql-5.6@dbd623d
    facebook/mysql-5.6@aed55dc
    facebook/mysql-5.6@aad5c82

    This version does not add new SQL-syntax and new handler API function.
    Instead optimize table is mapped to defragment table if
    innodb_defragment=ON, by default the feature is off.

    Contains changes authored by Sunguck Lee (Kakao).
2014-08-06 15:28:58 +03:00
Sergei Golubchik
911c4811de cleanup and updated test results 2014-07-23 14:48:13 +02:00
Vicentiu Ciorbaru
bb66e66daa Changed set_default_role_for test to clean up correctly 2014-07-23 14:48:13 +02:00
Vicentiu Ciorbaru
a3550feb49 Extended create_and_drop_role_invalid_user_table
Added extra check for default_role column.
2014-07-23 14:48:13 +02:00
Vicentiu Ciorbaru
64b27c734e Added default role implementation 2014-07-23 14:48:12 +02:00
Jan Lindström
dbc79ce055 MDEV-6354: Implement a way to read MySQL 5.7.4-labs-tplc page
compression format (Fusion-IO).

Addeed LZMA and BZIP2 compression methods.
2014-07-22 06:56:50 +03:00
Oleksandr Byelkin
01046e7f92 RBR triggers enabling in 10.1 2014-07-02 16:18:28 +03:00
Sergei Petrunia
9394f2f9b0 Merge branch '10.1' of github.com:MariaDB/server into 10.1 2014-06-26 22:04:04 +04:00
Sergei Petrunia
3d7eeb6307 MDEV-6394: ANALYZE DELETE .. RETURNING fails with ERROR 2027 Malformed packet
- Add support for DELETE .. RETURNING statement in ANALYZE code.
2014-06-26 22:03:13 +04:00
Jan Lindström
c6d29cd30d Merge branch '10.1' of github.com:MariaDB/server into 10.1 2014-06-26 20:47:08 +03:00
Jan Lindström
3e5994868d MDEV-6392: Change innodb_have_lzo and innodb_have_lz4 as a static
variables and reduce the number of ifdef's
2014-06-26 20:45:27 +03:00
Sergei Petrunia
be885ebe8c Code cleanup, more tests. 2014-06-26 20:12:18 +04:00
Sergei Petrunia
c6be74458f MDEV-6398: ANALYZE UPDATE does not populate r_rows
- In print_explain_row(), do not forget to print r_rows.
- Switch Explain_update from using its own counters to re-using
  Table_access_tracker.
- Make ANALYZE UPDATE code structure uniform with ANALYZE DELETE.
2014-06-26 19:09:23 +04:00
Sergei Petrunia
a787edd7e6 MDEV-6395: Make ANALYZE UPDATE/DELETE handle the degenerate query plans. 2014-06-26 18:32:18 +04:00
Sergei Petrunia
12d6f89b07 MDEV-6393: ANALYZE SELECT crashes ... Don't try printing EXPLAIN if we had an error. 2014-06-26 15:55:25 +04:00
Sergei Petrunia
648b957f42 Merge branch 'bb-10.1-explain-analyze' into 10.1 2014-06-26 10:48:08 +04:00