1. 22 Jul, 2008 2 commits
  2. 21 Jul, 2008 4 commits
  3. 24 Jul, 2008 1 commit
  4. 21 Jul, 2008 2 commits
  5. 24 Jul, 2008 1 commit
  6. 18 Jul, 2008 6 commits
  7. 17 Jul, 2008 10 commits
  8. 16 Jul, 2008 4 commits
  9. 15 Jul, 2008 8 commits
  10. 14 Jul, 2008 2 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