1. 06 Oct, 2008 1 commit
  2. 02 Oct, 2008 1 commit
    • Chad MILLER's avatar
      Bug#11122: Server won't always start when cold-booting after a crash · 5317b7de
      Chad MILLER authored
      The grep expression that finds a running "mysqld" program fails if the
      "mysqld_safe" is running with the same PID.
      
      Now, excise "ps" output that has the word " grep" or "mysqld_safe" in 
      it, to be a little more certain that the matched process is not a false 
      positive hit.  This will fail when the path to mysqld contains either
      of those two names, which should be acceptable.
      
      Additionally, some text to search could be truncated if very long.  
      Expand the number of lines "ps" emits.
      5317b7de
  3. 04 Aug, 2008 1 commit
  4. 31 Jul, 2008 1 commit
  5. 30 Jul, 2008 1 commit
    • Georgi Kodinov's avatar
      Bug#37662 nested if() inside sum() is parsed in exponential time · 425abb49
      Georgi Kodinov authored
            
      min() and max() functions are implemented in MySQL as macros.
      This means that max(a,b) is expanded to: ((a) > (b) ? (a) : (b))
      Note how 'a' is quoted two times.
      Now imagine 'a' is a recursive function call that's several 10s of levels deep.
      And the recursive function does max() with a function arg as well to dive into
      recursion.
      This means that simple function call can take most of the clock time.
      Identified and fixed several such calls to max()/min() : including the IF() 
      sql function implementation.
      425abb49
  6. 29 Jul, 2008 3 commits
  7. 28 Jul, 2008 1 commit
  8. 26 Jul, 2008 1 commit
    • Igor Babaev's avatar
      Fixed bug #38191. · da156dde
      Igor Babaev authored
      Calling List<Cached_item>::delete_elements for the same list twice
      caused a crash of the server in the function JOIN::cleaunup.
      Ensured that delete_elements() in JOIN::cleanup would be called only once.
      da156dde
  9. 24 Jul, 2008 1 commit
  10. 23 Jul, 2008 1 commit
    • Georgi Kodinov's avatar
      Bug#37830 : ORDER BY ASC/DESC - no difference · 436f1dc4
      Georgi Kodinov authored
                        
      Range scan in descending order for c <= <col> <= c type of
      ranges was ignoring the DESC flag.
      However some engines like InnoDB have the primary key parts 
      as a suffix for every secondary key.
      When such primary key suffix is used for ordering ignoring 
      the DESC is not valid.
      But we generally would like to do this because it's faster.
                  
      Fixed by performing only reverse scan if the primary key is used.
      Removed some dead code in the process.
      436f1dc4
  11. 22 Jul, 2008 1 commit
  12. 21 Jul, 2008 1 commit
  13. 24 Jul, 2008 1 commit
  14. 21 Jul, 2008 1 commit
  15. 19 Jul, 2008 2 commits
  16. 18 Jul, 2008 2 commits
  17. 17 Jul, 2008 2 commits
  18. 16 Jul, 2008 5 commits
  19. 15 Jul, 2008 3 commits
    • Sergey Petrunia's avatar
      Merge · 63bfaa46
      Sergey Petrunia authored
      63bfaa46
    • Kristofer Pettersson's avatar
      auto merge · 44b44795
      Kristofer Pettersson authored
      44b44795
    • Sergey Petrunia's avatar
      BUG#35478: sort_union() returns bad data when sort_buffer_size is hit · 2951f00b
      Sergey Petrunia authored
      - In QUICK_INDEX_MERGE_SELECT::read_keys_and_merge: when we got table->sort from Unique,
        tell init_read_record() not to use rr_from_cache() because a) rowids are already sorted
        and b) it might be that the the data is used by filesort(), which will need record rowids
        (which rr_from_cache() cannot provide).
      - Fully de-initialize the table->sort read in QUICK_INDEX_MERGE_SELECT::get_next(). This fixes BUG#35477.
      (bk trigger: file as fix for BUG#35478).
      2951f00b
  20. 14 Jul, 2008 3 commits
    • Marc Alff's avatar
      Merge · 504f7e2d
      Marc Alff authored
      504f7e2d
    • Marc Alff's avatar
      Bug#35577 (CREATE PROCEDURE causes either crash or syntax error depending on · 0816ee6d
      Marc Alff authored
      build)
      
      The crash was caused by freeing the internal parser stack during the parser
      execution.
      This occured only for complex stored procedures, after reallocating the parser
      stack using my_yyoverflow(), with the following C call stack:
      - MYSQLparse()
      - any rule calling sp_head::restore_lex()
      - lex_end()
      - x_free(lex->yacc_yyss), xfree(lex->yacc_yyvs)
      
      The root cause is the implementation of stored procedures, which breaks the
      assumption from 4.1 that there is only one LEX structure per parser call.
      
      The solution is to separate the LEX structure into:
      - attributes that represent a statement (the current LEX structure),
      - attributes that relate to the syntax parser itself (Yacc_state),
      so that parsing multiple statements in stored programs can create multiple
      LEX structures while not changing the unique Yacc_state.
      
      Now, Yacc_state and the existing Lex_input_stream are aggregated into
      Parser_state, a structure that represent the complete state of the (Lexical +
      Syntax) parser.
      0816ee6d
    • Joerg Bruehe's avatar
      Merge main 5.0 into 5.0-build · 9a95278a
      Joerg Bruehe authored
      9a95278a
  21. 10 Jul, 2008 4 commits
  22. 09 Jul, 2008 3 commits