- 27 Jun, 2013 6 commits
-
-
Sergey Petrunya authored
- Merge with 10.0-base
-
Sergey Petrunya authored
- Let Query Plan Footprint store join buffer type in binary form, not string. - Same for LooseScan type.
-
Sergey Petrunya authored
-
Sergey Petrunya authored
-
Sergey Petrunya authored
- If a subquery is correlated wrt a const table, it will change from being a "DEPENDENT SUBQUERY" into "SUBQUERY", at the end of its parent's JOIN::optimize() call. Handle this, update the subquery's QPF. - Make show_explain.test to work = "Query plan already deleted" does not happen anymore. = Handle special case of queries that don't have top-level selects, like SET x = (SELECT ...)
-
Sergey Petrunya authored
- Make query plan be re-saved after the first join execution (saving it after JOIN::cleanup is too late because EXPLAIN output is currently produced before that) - Handle QPF allocation/deallocation for edge cases, like unsuccessful BINLOG command. - Work around the problem with UNION's direct subselects not being visible. - Update test results ("Using temporary; Using filesort" are now always printed last in the Extra column) - This cset gets rid of memory leaks/crashes. Some result mismatches still remain.
-
- 26 Jun, 2013 1 commit
-
-
Sergey Petrunya authored
- Update view.result (old EXPLAIN didn't match the execution) - Put in a stub code to work around the SELECT ... UNION SELECT ... ORDER BY (subuqery) problem
-
- 24 Jun, 2013 3 commits
-
-
Sergei Golubchik authored
-
Sergei Golubchik authored
Based on James Briggs contribution.
-
Sergei Golubchik authored
INFORMATION_SCHEMA.LOCALES plugin. Contribution by Roberto Spadim
-
- 25 Jun, 2013 1 commit
-
-
Elena Stepanova authored
-
- 24 Jun, 2013 1 commit
-
-
unknown authored
The test did RESET MASTER and then tried to use --sync_with_master to wait for GTID-based replication to catch up. This though has a race, there is a small window where the _old_ pre-RESET MASTER position on the slave is higher than the new pos-RESET MASTER position, causing the --sync_with_master to be a no-op. Fix by using include/wait_condition.inc instead.
-
- 21 Jun, 2013 5 commits
-
-
unknown authored
When we load the slave state from the mysql.gtid_slave_pos at server start, we need to load all the rows into the in-memory hash, not just the most recent one in each replication domain. Otherwise we accumulate cruft in the form of old rows each time the server restarts.
-
Sergey Petrunya authored
- Support "using index for group-by (scanning) " queries
-
Sergey Petrunya authored
- Handle another specific case where there the JOIN never had a query plan, but had multiple join->cleanup(full=true) calls - The idea that there can only be MAX_TABLES subuqeries/unions was wrong. Switch QPF_query to using a Dynamic_array. = make Dynamic_array template support size growth. its underlying DYNAMIC_ARRAY supports it. (this part will need more polishing)
-
unknown authored
In record_gtid(), too many rows were deleted from the slave position hash - we need to always keep on to the most recent committed row, so we have a valid slave position at all times.
-
Sergey Petrunya authored
- Handle statements inside SPs: = regular statements = SET command, which does not have its own statement. - Handle execution of subquery from range optimizer: allocate subquery QPFs on the same MEM_ROOT as the whole query plan was allocated.
-
- 20 Jun, 2013 4 commits
-
-
Sergey Petrunya authored
This requires that subselect's footprints are saved before it is deleted. Attempt to save select's QPF exposes one to a variety of edge cases: - the select may be a UNION's "fake select" which has no valid id - optimization may fail in the middle (but subsequent JOIN::optimize() calls will succeed, despite the fact that there never was a query plan)
-
Sergey Petrunya authored
Single table UPDATE/DELETE - Correctly print type=SIMPLE vs type=PRIMARY - Handle UPDATE/DELETE of mergeable VIEWs: we get the VIEW's select as the first subquery. (MySQL 5.6 doesn't print it because it finds that the subquery is not attached to any select)
-
Sergey Petrunya authored
- Introduce back QueryPlan/QueryPlanFootprint separation for single-table UPDATEs/DELETEs - Create an empty QueryPlanFootprint for all kinds of queries
-
unknown authored
Fix wrong type for sub_id, which would cause overflow grief on long-running server. Also some related renames for consistency.
-
- 19 Jun, 2013 1 commit
-
-
Sergey Petrunya authored
-
- 18 Jun, 2013 5 commits
-
-
Sergey Petrunya authored
- Make EXPLAIN UPDATE/DELETE use "Query Plan Footprints", too.
-
Sergey Petrunya authored
Part 2 of: - Pass more tests - select with subselects is now shown with type=PRIMARY where it used to be (incorrectly) 'SIMPLE'
-
Sergey Vojtovich authored
-
Sergey Petrunya authored
- Pass more tests - select with subselects is now shown with type=PRIMARY where it used to be (incorrectly) 'SIMPLE'
-
Sergey Petrunya authored
- Fix more problems to pass the testsuite (not finished yet)
-
- 17 Jun, 2013 2 commits
-
-
Sergey Petrunya authored
- Add further details, the goal is to pass the testsuite - SJM-nests are not printed correctly yet.
-
Sergey Petrunya authored
- Introduce "Query Plan Footprints" (abbrev. QPFs) QPF is a part of query plan that is 1. sufficient to produce EXPLAIN output, 2. can be used to produce EXPLAIN output even after its subquery/union was executed and deleted 3. is cheap to save so that we can always save query plans - This patch doesn't fully address #2, we make/save strings for a number of EXPLAIN's columns. This will be fixed.
-
- 16 Jun, 2013 4 commits
-
-
Sergei Golubchik authored
Implement discovery of table non-existence, and related changes: 1. Split GTS_FORCE_DISCOVERY (that was meaning two different things in two different functions) into GTS_FORCE_DISCOVERY and GTS_USE_DISCOVERY. 2. Move GTS_FORCE_DISCOVERY implementation into open_table_def(). 3. In recover_from_failed_open() clear old errors *before* discovery, not after successful discovery. The final error should come from the discovery. 4. On forced discovery delete table .frm first. Discovery will write a new one, if desired. 5. If the frm file exists, but not the table in the engine, force rediscovery if the engine supports it.
-
Sergei Golubchik authored
-
Sergei Golubchik authored
mark the SEQUENCE engine as both SBR and RBR capable :)
-
Sergei Golubchik authored
implement a non-dummy discover_table_existence() method
-
- 15 Jun, 2013 6 commits
-
-
Sergei Golubchik authored
-
Sergei Golubchik authored
1. default db type for partitions was stored as 1-byte DB_TYPE code, which doesn't work for dynamically generated codes. 2. storage engine plugin for default db type wasn't locked at all, which could trivially crash for dynamic plugins. Now the storage engine name is stored in the extra2 section, and the plugin is correctly locked.
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Sergei Golubchik authored
Remove few ifdef's
-
Sergei Golubchik authored
1. DROP DATABASE should use ha_discover_table_names(), not look at .frm files. 2. filename_to_tablename() also encodes temp file names #sql- -> #mysql50##sql 3. no special treatment for #sql- files, no TABLE_LIST::internal_tmp_table 4. discover also table file names, that start from #
-
- 14 Jun, 2013 1 commit
-
-
Sergey Vojtovich authored
Minor modification to trigger buildbot.
-