1. 03 Apr, 2012 4 commits
  2. 02 Apr, 2012 4 commits
  3. 30 Mar, 2012 8 commits
  4. 29 Mar, 2012 5 commits
  5. 28 Mar, 2012 3 commits
    • Michael Widenius's avatar
      Automatic merge · bb6cc525
      Michael Widenius authored
      bb6cc525
    • Michael Widenius's avatar
      Merge with 5.1 · 3bc932ec
      Michael Widenius authored
      3bc932ec
    • Michael Widenius's avatar
      Fixed lp:944422 "mysql_upgrade destroys Maria tables?" · 74b06493
      Michael Widenius authored
      The issue was that check/optimize/anaylze did not zerofill the table before they started to work on it.
      Added one more element to not often used function handler::auto_repair() to allow handler to decide when to auto repair.
      
      
      mysql-test/suite/maria/r/maria-autozerofill.result:
        Test case for lp:944422
      mysql-test/suite/maria/t/maria-autozerofill.test:
        Test case for lp:944422
      sql/ha_partition.cc:
        Added argument to auto_repair()
      sql/ha_partition.h:
        Added argument to auto_repair()
      sql/handler.h:
        Added argument to auto_repair()
      sql/table.cc:
        Let auto_repair() decide which errors to trigger auto-repair
      storage/archive/ha_archive.h:
        Added argument to auto_repair()
      storage/csv/ha_tina.h:
        Added argument to auto_repair()
      storage/maria/ha_maria.cc:
        Give better error & warning messages for auto-repaired tables.
      storage/maria/ha_maria.h:
        Added argument to auto_repair()
        Always auto-repair in case of moved table.
      storage/maria/ma_open.c:
        Remove special handling of HA_ERR_OLD_FILE (this is now handled in auto_repair())
      storage/myisam/ha_myisam.h:
        Added argument to auto_repair()
      74b06493
  6. 27 Mar, 2012 2 commits
  7. 26 Mar, 2012 8 commits
  8. 25 Mar, 2012 1 commit
    • Sergey Petrunya's avatar
      BUG#962667: Assertion `0' failed in QUICK_INDEX_SORT_SELECT::need_sorted_output() · d0547098
      Sergey Petrunya authored
      - The problem was that
        = we've picked a LooseScan that used full index scan (tab->type==JT_ALL) on certain index.
        = there was also a quick select (tab->quick!=NULL), that used other indexes.
        = some old code assumes that (tab->type==JT_ALL && tab->quick) -> means that the
          quick select should be used, which is not true.
      Fixed by discarding the quick select as soon as we know we're using LooseScan
      without using the quick select.
      d0547098
  9. 24 Mar, 2012 1 commit
  10. 23 Mar, 2012 4 commits
    • Michael Widenius's avatar
      Speedup: · c36bdf1c
      Michael Widenius authored
      - Don't call update_virtual_fields() if table->vfield is not set
      - Don't prealloc memory for in open_tables() as this is very seldom used.
      
      
      sql/records.cc:
        Don't call update_virtual_fields() if table->vfield is not set
      sql/sql_base.cc:
        Don't prealloc memory for in open_tables() as this is very seldom used.
        Don't call update_virtual_fields() if table->vfield is not set
      sql/sql_delete.cc:
        Don't call update_virtual_fields() if table->vfield is not set
      sql/sql_handler.cc:
        Don't call update_virtual_fields() if table->vfield is not set
      sql/sql_join_cache.cc:
        Don't call update_virtual_fields() if table->vfield is not set
        Move some frequent values to local variables
      sql/sql_table.cc:
        Don't call update_virtual_fields() if table->vfield is not set
      sql/sql_update.cc:
        Don't call update_virtual_fields() if table->vfield is not set
      sql/table.cc:
        Assert if update_virtual_fields is called with wrong parameters
      c36bdf1c
    • Michael Widenius's avatar
      Fixes lp:941889 "JOIN constructors takes a long time in 5.3" · 8e825a22
      Michael Widenius authored
      - Remove all references of MAX_TABLES from JOIN struct and make these dynamic
      - Updated Join_plan_state to allocate just as many elements as it's needed
      
      
      sql/opt_subselect.cc:
        Optimized version of Join_plan_state
      sql/sql_select.cc:
        Set join->positions and join->best_positions dynamicly
        Don't call update_virtual_fields() if table->vfield is not set.
      sql/sql_select.h:
        Remove all references of MAX_TABLES from JOIN struct and Join_plan_state and make these dynamic
      8e825a22
    • Michael Widenius's avatar
      Speedups: · de1765fb
      Michael Widenius authored
      - Optimize away calls to hp_rec_hashnr() by cashing hash
      - Try to get more rows / block (to minimize overhead of HP_PTRS) in HEAP tables.
      
      
      storage/heap/_check.c:
        Optimize away calls to hp_rec_hashnr() by cashing hash.
        Print cleanups
      storage/heap/heapdef.h:
        Added place to hold calculated hash value for row
      storage/heap/hp_create.c:
        Try to get more rows / block (to minimize overhead of HP_PTRS)
      storage/heap/hp_delete.c:
        Optimize away calls to hp_rec_hashnr() by cashing hash.
      storage/heap/hp_hash.c:
        Optimize away calls to hp_rec_hashnr() by cashing hash.
        Remove some not needed DBUG_PRINT
      storage/heap/hp_test2.c:
        Increased max table size as now heap tables takes a bit more space (a few %)
      storage/heap/hp_write.c:
        Optimize away calls to hp_rec_hashnr() by cashing hash.
        Remove duplicated code
        More DBUG_PRINT
      storage/maria/ma_create.c:
        More DBUG_PRINT
      de1765fb
    • Igor Babaev's avatar
      Fixed LP bug #954900. · da9aabbb
      Igor Babaev authored
      If the first component of a ref key happened to be a constant appeared
      after constant row substitution then no store_key element should be
      created for such a component. Yet create_ref_for_key() erroneously could
      create such an element that caused construction of invalid ref keys and
      wrong results for some joins.
      da9aabbb