1. 27 Jun, 2013 6 commits
    • Sergey Petrunya's avatar
      [SHOW] EXPLAIN UPDATE/DELETE, code re-structuring · ef47cc1f
      Sergey Petrunya authored
      - Merge with 10.0-base
      ef47cc1f
    • Sergey Petrunya's avatar
      [SHOW] EXPLAIN UPDATE/DELETE, code re-structuring · befacafd
      Sergey Petrunya authored
      - Let Query Plan Footprint store join buffer type 
        in binary form, not string.
      - Same for LooseScan type.
      befacafd
    • Sergey Petrunya's avatar
      More of code cleanup · 5422098b
      Sergey Petrunya authored
      5422098b
    • Sergey Petrunya's avatar
      Code cleanup · c0f7efb1
      Sergey Petrunya authored
      c0f7efb1
    • Sergey Petrunya's avatar
      [SHOW] EXPLAIN UPDATE/DELETE, code re-structuring · d634638c
      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 ...)
      
      d634638c
    • Sergey Petrunya's avatar
      [SHOW] EXPLAIN UPDATE/DELETE, code re-structuring · 8b7bbcf4
      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.
      8b7bbcf4
  2. 26 Jun, 2013 1 commit
  3. 24 Jun, 2013 3 commits
  4. 25 Jun, 2013 1 commit
  5. 24 Jun, 2013 1 commit
    • unknown's avatar
      Fix sporadic failure of test rpl.rpl_gtid_startpos · 748e8a35
      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.
      748e8a35
  6. 21 Jun, 2013 5 commits
    • unknown's avatar
      MDEV-4692: mysql.gtid_slave_pos accumulates values for a domain · df66ee7f
      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.
      df66ee7f
    • Sergey Petrunya's avatar
      [SHOW] EXPLAIN UPDATE/DELETE, code re-structuring · 79392b93
      Sergey Petrunya authored
      - Support "using index for group-by (scanning) " queries
      79392b93
    • Sergey Petrunya's avatar
      [SHOW] EXPLAIN UPDATE/DELETE, code re-structuring · cebdf3de
      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)
      cebdf3de
    • unknown's avatar
      MDEV-4688: empty @@gtid_slave_pos during slave commit. · 6e7d7f9b
      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.
      6e7d7f9b
    • Sergey Petrunya's avatar
      [SHOW] EXPLAIN UPDATE/DELETE, code re-structuring · af5e128e
      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.
      af5e128e
  7. 20 Jun, 2013 4 commits
  8. 19 Jun, 2013 1 commit
  9. 18 Jun, 2013 5 commits
  10. 17 Jun, 2013 2 commits
    • Sergey Petrunya's avatar
      [SHOW] EXPLAIN UPDATE/DELETE, code reordering · d97ca5f5
      Sergey Petrunya authored
      - Add further details, the goal is to pass the testsuite
      - SJM-nests are not printed correctly yet.
      d97ca5f5
    • Sergey Petrunya's avatar
      SHOW EXPLAIN UPDATE/DELETE · 03691a77
      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.
      
      03691a77
  11. 16 Jun, 2013 4 commits
  12. 15 Jun, 2013 6 commits
  13. 14 Jun, 2013 1 commit