- 15 Oct, 2013 3 commits
-
-
Sergey Petrunya authored
-
Sergey Petrunya authored
- Fix a problem with EXPLAIN multi_table UPDATE: = Do use multi_update object, because multi_update::prepare() does various setup, e.g. it disables index-only for the tables to be updated. = Protect multi_update::prepare() from being invoked multiple times. If the query has subqueries, they may try to invoke it, for some reason.
-
Sergey Petrunya authored
- eliminate join_save_qpf() function.
-
- 14 Oct, 2013 3 commits
-
-
Sergey Petrunya authored
-
Sergey Petrunya authored
Update the SHOW EXPLAIN code to work with the new architecture (part#1): Before, SHOW EXPLAIN operated on real query plan structures, which meant it had to check when SELECTs are created/deleted. SELECTs would call apc_target->enable() when they got a query plan and disable() when their query plan was deleted. Now, Explain data structure becomes available at once (and we call apc_target->enable()) and then it stays until it is deleted (when that happens, we call apc_target->disable()).
-
Sergey Petrunya authored
- Fix EXPLAIN INSERT DELAYED ... : do call end_delayed_insert().
-
- 11 Oct, 2013 2 commits
-
-
Sergey Petrunya authored
- When INSERT catches an error, it should not attempt to send parts of EXPLAIN output.
-
Sergey Petrunya authored
-
- 10 Oct, 2013 1 commit
-
-
Sergey Petrunya authored
- Don't save UNION's EXPLAIN data if optimization failed with an error. We could end up saving incomplete plan, which will cause a crash when we attempt to print it.
-
- 09 Oct, 2013 4 commits
-
-
Sergey Petrunya authored
Backport mysql-test/t/myisam_explain_non_select_all.test from mysql-5.6 - the .result file was modified because MariaDB choses different query plans in a number cases. Also, we don't have some of the "incorrect EXPLAIN output" bugs that they still have. The .test file and includes were taken verbatim with one exception: two tests were disabled with --disable parsing: 1. @@sql_safe_updates is not enforced EXPLAINs of multitable updates. In MariaDB, the execution itself will produce ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE, but EXPLAIN won't. 2. Their case #71 hits some old bug in MyISAM (See their comments in explain_non_select.inc for details).
-
Sergey Petrunya authored
- Produce correct `key_len` when type=index.
-
Sergey Petrunya authored
- Produce correct #rows for ORDER BY ... LIMIT N queries that take advantage of ordered index read to read only N rows.
-
Sergey Petrunya authored
- Generate correct contents of `Extra` column for UPDATEs/DELETEs that use quick selects - UPDATEs with used_key_is_modified=true will show "Using buffer"
-
- 08 Oct, 2013 2 commits
-
-
Sergey Petrunya authored
- Update test results after last few csets - Generate correct value for `possible_keys` column for single table UPDATE/DELETE.
-
Sergey Petrunya authored
- if EXPLAIN DELETE prints "Deleting all rows", it should show the expected number of rows in the rows column.
-
- 07 Oct, 2013 3 commits
-
-
Sergey Petrunya authored
- Add support for EXPLAIN INSERT.
-
Sergey Petrunya authored
- Better EXPLAIN-saving methods for quick selects
-
Sergey Petrunya authored
- Run probes like MYSQL_INSERT_SELECT_START or MYSQL_MULTI_DELETE_START for EXPLAIN, too. We should run them, because 1. EXPLAIN SELECT does it, and 2. MySQL also does it.
-
- 05 Oct, 2013 5 commits
-
-
Sergey Petrunya authored
-
Sergey Petrunya authored
- Handle the case when EXPLAIN UPDATE/DELETE has pruned away all partitions.
-
Sergey Petrunya authored
- Address review feedback: more renames
-
Sergey Petrunya authored
- Address review feedback: rename files
-
Sergey Petrunya authored
- Address review feedback: rename nearly any name used by the new EXPLAIN code.
-
- 04 Oct, 2013 2 commits
-
-
Sergey Petrunya authored
- Added a testcase
-
Sergey Petrunya authored
- Make EXPLAIN {PARTITIONS,EXTENDED} {UPDATE,DELETE} work.
-
- 01 Oct, 2013 1 commit
-
-
Sergey Petrunya authored
- Make EXPLAIN UPDATE/DELETE work inside SPs - Return correct error code from mysql_delete() - EXPLAIN <multi-DELETE> will create a multi_delete object (as it affects the optimization). select_result will be only used for producing EXPLAIN output.
-
- 26 Sep, 2013 2 commits
-
-
Sergey Petrunya authored
-
Sergey Petrunya authored
- Query plan footprint (in new terms, "EXPLAIN structure") should always keep a copy of key_name. This is because the table might be a temporary table which may be already freed by the time we use query plan footprint.
-
- 25 Sep, 2013 5 commits
-
-
Sergey Petrunya authored
- If we're running explain with flags, use the same set of flags to make EXPLAIN columns and contents.
-
Sergey Petrunya authored
- Add EXPLAIN output print out for INSERT/REPLACE ... SELECT
-
Sergey Petrunya authored
-
Sergey Petrunya authored
-
Sergey Petrunya authored
- update mysqld--help.result
-
- 23 Sep, 2013 1 commit
-
-
Sergey Petrunya authored
- Don't forget to delete the query plan footprint when the query wasn't printed into slow query log for some reason - ALso removed some garbage code.
-
- 20 Sep, 2013 1 commit
-
-
Sergey Petrunya authored
- Don't print a plan when the statement didn't produce it - Also, add first testcase. We can't check the EXPLAIN from the slow log itself, though.
-
- 19 Sep, 2013 1 commit
-
-
Sergey Petrunya authored
- Initial implementation.
-
- 17 Sep, 2013 2 commits
-
-
Sergey Petrunya authored
-
Sergey Petrunya authored
- Make QPF structures store data members, not strings. This is not fully possible, because table names (and hence key names, etc) can be deleted, and we have to store strings.
-
- 04 Sep, 2013 1 commit
-
-
Sergey Petrunya authored
-
- 26 Aug, 2013 1 commit
-
-
Sergey Petrunya authored
- Post-merge fixes (conflict with DELETE .. RETURNING) - Add a testcase with EXPLAIN ... DELETE ... RETURNING
-