1. 18 Jul, 2008 2 commits
  2. 17 Jul, 2008 1 commit
  3. 16 Jul, 2008 2 commits
  4. 15 Jul, 2008 3 commits
    • Sergey Petrunia's avatar
      Merge · 7315a700
      Sergey Petrunia authored
      7315a700
    • Kristofer Pettersson's avatar
      auto merge · f81c2f07
      Kristofer Pettersson authored
      f81c2f07
    • Sergey Petrunia's avatar
      BUG#35478: sort_union() returns bad data when sort_buffer_size is hit · 62513bb1
      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).
      
      sql/filesort.cc:
        BUG#35478: sort_union() returns bad data when sort_buffer_size is hit
        - make find_all_keys() use quick->get_next() instead of init_read_record(r)/r.read_record() calls
        - added dbug printout
      sql/mysql_priv.h:
        BUG#35478: sort_union() returns bad data when sort_buffer_size is hit
        - Added parameter to init_read_record
      sql/opt_range.cc:
        BUG#35478: sort_union() returns bad data when sort_buffer_size is hit
        - 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().
      sql/records.cc:
        BUG#35478: sort_union() returns bad data when sort_buffer_size is hit
        - Added disable_rr_cache parameter to init_read_record
        - Added comment
      sql/sql_acl.cc:
        BUG#35478: sort_union() returns bad data when sort_buffer_size is hit
        - Added parameter to init_read_record
      sql/sql_delete.cc:
        BUG#35478: sort_union() returns bad data when sort_buffer_size is hit
        - Added parameter to init_read_record
      sql/sql_help.cc:
        BUG#35478: sort_union() returns bad data when sort_buffer_size is hit
        - Added parameter to init_read_record
      sql/sql_select.cc:
        BUG#35478: sort_union() returns bad data when sort_buffer_size is hit
        - Added parameter to init_read_record
      sql/sql_table.cc:
        BUG#35478: sort_union() returns bad data when sort_buffer_size is hit
        - Added parameter to init_read_record
      sql/sql_udf.cc:
        BUG#35478: sort_union() returns bad data when sort_buffer_size is hit
        - Added parameter to init_read_record
      sql/sql_update.cc:
        BUG#35478: sort_union() returns bad data when sort_buffer_size is hit
        - Added parameter to init_read_record
      62513bb1
  5. 14 Jul, 2008 2 commits
    • Marc Alff's avatar
      Merge · 5f9f35e2
      Marc Alff authored
      5f9f35e2
    • Marc Alff's avatar
      Bug#35577 (CREATE PROCEDURE causes either crash or syntax error depending on · e73e7bb9
      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.
      
      
      mysql-test/r/parser_stack.result:
        Bug#35577 (CREATE PROCEDURE causes either crash or syntax error depending on
        build)
      mysql-test/t/parser_stack.test:
        Bug#35577 (CREATE PROCEDURE causes either crash or syntax error depending on
        build)
      sql/sp.cc:
        Bug#35577 (CREATE PROCEDURE causes either crash or syntax error depending on
        build)
      sql/sp_head.cc:
        Bug#35577 (CREATE PROCEDURE causes either crash or syntax error depending on
        build)
      sql/sql_class.cc:
        Bug#35577 (CREATE PROCEDURE causes either crash or syntax error depending on
        build)
      sql/sql_class.h:
        Bug#35577 (CREATE PROCEDURE causes either crash or syntax error depending on
        build)
      sql/sql_lex.cc:
        Bug#35577 (CREATE PROCEDURE causes either crash or syntax error depending on
        build)
      sql/sql_lex.h:
        Bug#35577 (CREATE PROCEDURE causes either crash or syntax error depending on
        build)
      sql/sql_parse.cc:
        Bug#35577 (CREATE PROCEDURE causes either crash or syntax error depending on
        build)
      sql/sql_prepare.cc:
        Bug#35577 (CREATE PROCEDURE causes either crash or syntax error depending on
        build)
      sql/sql_trigger.cc:
        Bug#35577 (CREATE PROCEDURE causes either crash or syntax error depending on
        build)
      sql/sql_view.cc:
        Bug#35577 (CREATE PROCEDURE causes either crash or syntax error depending on
        build)
      sql/sql_yacc.yy:
        Bug#35577 (CREATE PROCEDURE causes either crash or syntax error depending on
        build)
      e73e7bb9
  6. 10 Jul, 2008 4 commits
    • Gleb Shchepa's avatar
      warning elimination · d5077086
      Gleb Shchepa authored
      d5077086
    • Gleb Shchepa's avatar
      warning elimination · 547ca139
      Gleb Shchepa authored
      547ca139
    • Tatiana A. Nurnberg's avatar
      auto-merge · 0617cf0f
      Tatiana A. Nurnberg authored
      0617cf0f
    • Tatiana A. Nurnberg's avatar
      Bug#35848: UUID() returns UUIDs with the wrong time · 0833d668
      Tatiana A. Nurnberg authored
      offset for time part in UUIDs was 1/1000 of what it
      should be. In other words, offset was off.
      
      Also handle the case where we count into the future
      when several UUIDs are generated in one "tick", and
      then the next call is late enough for us to unwind
      some but not all of those borrowed ticks.
      
      Lastly, handle the case where we keep borrowing and
      borrowing until the tick-counter overflows by also
      changing into a new "numberspace" by creating a new
      random suffix.
      
      
      mysql-test/r/func_misc.result:
        Show that time-part of UUIDs is correct now.
      mysql-test/t/func_misc.test:
        Show that time-part of UUIDs is correct now
        by replicating the C-code's resultin SQL.
        Results also decode to expect date-data on
        command-line (external validation).
        
        No test for unwinding of borrowed ticks as
        this a) is a race and b) depends on what timer
        we get.
      sql/item_strfunc.cc:
        correct offset for date/time-part of UUID.
        also make sure that when we counted into
        the future earlier (several UUIDs generated
        in same tick), we only give back as many
        "borrowed" ticks as we can without duplicating
        past timestamps. If our tick-counter overflows
        before we can give back, or if the system-clock
        is set back (by user or Daylight Saving Time),
        we create a new random suffix to avoid
        collisions and clear the tick-counter.
      0833d668
  7. 09 Jul, 2008 3 commits
  8. 08 Jul, 2008 2 commits
  9. 07 Jul, 2008 3 commits
    • Marc Alff's avatar
      Merge · a8a986bd
      Marc Alff authored
      a8a986bd
    • Marc Alff's avatar
      Bug#26030 (Parsing fails for stored routine w/multi-statement execution · c7724872
      Marc Alff authored
      enabled)
      
      Before this fix, the lexer and parser would treat the ';' character as a
      different token (either ';' or END_OF_INPUT), based on convoluted logic,
      which failed in simple cases where a stored procedure is implemented as a
      single statement, and used in a multi query.
      
      With this fix:
      - the character ';' is always parsed as a ';' token in the lexer,
      - parsing multi queries is implemented in the parser, in the 'query:' rules,
      - the value of thd->client_capabilities, which is the capabilities
        negotiated between the client and the server during bootstrap,
        is immutable and not arbitrarily modified during parsing (which was the
        root cause of the bug)
      
      c7724872
    • Mats Kindahl's avatar
      Bug #37150 Risk for crash in User_var_log_event::exec_event() · 914cae3a
      Mats Kindahl authored
      On certain kinds of errors (e.g., out of stack), a call to Item_func_
      set_user_var::fix_fields() might fail.  Since the return value of this
      call was not checked inside User_var_log_event::exec_event(), continuing
      execution after this will cause a crash inside Item_func_set_user_var::
      update_hash().
      
      The bug is fixed by aborting execution of the event with an error if
      fix_fields() fails, since it is not possible to continue execution anyway.
      
      
      sql/log_event.cc:
        Aborting execution of event if fix_fields() fails since execution
        of update_hash() might cause a crash.
      914cae3a
  10. 04 Jul, 2008 2 commits
  11. 02 Jul, 2008 1 commit
  12. 01 Jul, 2008 1 commit
    • Patrick Crews's avatar
      Bug#37380 - Test funcs_1.is_columns_myisam_embedded fails on OS X · 9393ae3d
      Patrick Crews authored
      Test was failing due to the addition of a '\x05' character in result sets
      Latest builds of the server have shown this problem to have disappeared.
      Removing code within the test that disables the test on Mac OS X.
      
      Recommit due to tree error on earlier, approved patch.
      9393ae3d
  13. 30 Jun, 2008 1 commit
    • Matthias Leich's avatar
      Fix for · 52fee16e
      Matthias Leich authored
         Bug#36787 Test funcs_1.charset_collation_1 failing
      Details:
      1. Skip charset_collation_1 if charset "ucs2_bin" is
         missing (property which distincts "vanilla" builds
         from the others)
      2. Let builds with version_comment LIKE "%Advanced%"
         (found them for 5.1) execute charset_collation_3.
      3. Update comments charset_collation.inc so that they
         reflect the current experiences.
      52fee16e
  14. 27 Jun, 2008 2 commits
    • Timothy Smith's avatar
      Merge from upstream (my:5.0-bugteam) · fe87c0db
      Timothy Smith authored
      fe87c0db
    • Gleb Shchepa's avatar
      backport from 6.0 · b83b4697
      Gleb Shchepa authored
            
      Bug#35658 (An empty binary value leads to mysqld crash)
              
      Before this fix, the following token
        b''
      caused the parser to crash when reading the binary value from the empty string.
      The crash was caused by:
        ptr+= max_length - 1;
      because max_length is unsigned and was 0, causing an overflow.
              
      With this fix, an empty binary literal b'' is parsed as a binary value 0,
      in Item_bin_string.
      
      mysql-test/r/varbinary.result:
        Bug#35658 (An empty binary value leads to mysqld crash)
      mysql-test/t/varbinary.test:
        Bug#35658 (An empty binary value leads to mysqld crash)
      sql/item.cc:
        Bug#35658 (An empty binary value leads to mysqld crash)
      b83b4697
  15. 25 Jun, 2008 2 commits
    • Matthias Leich's avatar
      Fix for · 49417ad7
      Matthias Leich authored
      Bug#37492 timing bug in subselect.test
      + similar weaknesses found during testing
      + replace error numbers by error names
      49417ad7
    • Timothy Smith's avatar
      Bug #20748: Configuration files should not be read more than once · d5977e4c
      Timothy Smith authored
      Normalize directory names before adding them to default_directories.
      
      
      mysys/default.c:
        Normalize directory names with unpack_dirname() before adding them
        to default_directories.  This way, /etc/ and /etc will not count as
        duplicates.
        
        Because this entails allocating memory to store the normalized names,
        add error handling and ensure that it doesn't leak memory in case
        both my_print_defaults() and load_defaults() are called.
        
        Clean up the Windows code that finds the exe's parent directory, and
        pull it out into a separate function.
        
        Reorganize the code into a single init_default_directories() function,
        with internal #ifdefs, instead of init_default_directories_<system>()
        functions which were accessed via a function pointer.  This is more in
        line with normal MySQL coding style, and easier to read for some.
      d5977e4c
  16. 24 Jun, 2008 3 commits
  17. 19 Jun, 2008 1 commit
    • Kristofer Pettersson's avatar
      Bug#30087 Set query_cache_size, if the value is too small, get a unclear warning · 681236e1
      Kristofer Pettersson authored
        
      This bugs clarifies a warning message issued when the query cache data
      size becomes smaller than the minium allowed size.
      
      
      
      mysql-test/r/query_cache.result:
        New warning message when a too small value has been set for query cache
        size.
      sql/set_var.cc:
        To avoid poluting the QC API the warning messages are moved into the 
        QC module.
      sql/share/errmsg.txt:
        Changed error message so that minimal cache size always is hinted.
      sql/sql_cache.cc:
        Modified the warning message so that the minimal cache size always is
        hinted.
            
        Added interface method Query_cache::get_minimal_size_limit().
      sql/sql_cache.h:
        Modified the warning message so that the minimal cache size always is
        hinted.
            
        Added interface method Query_cache::get_minimal_size_limit().
      681236e1
  18. 18 Jun, 2008 1 commit
    • Matthias Leich mleich@mysql.com's avatar
      Fix for · 2356d4f5
      Matthias Leich mleich@mysql.com authored
           Bug#37167 funcs_1: Many tests fail if the embedded server is used.
           Bug#37164 funcs_1: Some tests fail if an optional character set is missing.
      + some cleanup within the testsuite related to the fixes above
      + some adjustments to open bugs on Mac OS X
      2356d4f5
  19. 17 Jun, 2008 3 commits
    • Georgi Kodinov's avatar
      auto merge · 07350a6c
      Georgi Kodinov authored
      07350a6c
    • Tatiana A. Nurnberg's avatar
      merge · 8342336f
      Tatiana A. Nurnberg authored
      configure.in:
        Raise version number after cloning 5.0.64
      mysql-test/r/federated_disabled.result:
        Bug#37069 (5.0): implement --skip-federated
      mysql-test/t/federated_disabled-master.opt:
        Bug#37069 (5.0): implement --skip-federated
      mysql-test/t/federated_disabled.test:
        Bug#37069 (5.0): implement --skip-federated
      mysys/errors.c:
        Fix for Bug#16902.
      sql/mysqld.cc:
        Bug#37069 (5.0): implement --skip-federated
      8342336f
    • Tatiana A. Nurnberg's avatar
      Bug#36492: make dist and make install fails · b1132821
      Tatiana A. Nurnberg authored
      Ignore BitKeeper SCCS folders in make-dist
      
      mysql-test/Makefile.am:
        Ignore BitKeeper SCCS folders in make-dist
        (copy only .txt files).
      b1132821
  20. 16 Jun, 2008 1 commit
    • Matthias Leich mleich@mysql.com's avatar
      Fix for · 28f97047
      Matthias Leich mleich@mysql.com authored
         Bug#37167 funcs_1: Many tests fail if the embedded server is used.
         Bug#37164 funcs_1: Some tests fail if an optional character set is missing.
      + some cleanup within the testsuite related to the fixes above
      + some adjustments to open bugs on Mac OS X
      
      Details:
      - Remove the initial loading of data from tests if these data
        are not somewhere retrieved
      - Remove any use of columns with attribute unicode
        (-> UCS2 is no more needed) from tests where unicode
        properties are not checked or somehow required
      - Create a separate branch of the Character maximum length test
        (CML). If UCS2 is available than this test gets applied to
        every available type of string column with attribute unicode
        This prevents any loss of coverage by the points above.
      - Disable the execution of is_tables_ndb which gives wrong
        results because of a bug. Correct the exepected results of
        this test.
      - In case of tests failing when applied to the embedded server
          1) Create a variant of this test for the embedded server
        or
          2) Skip the test in case of embedded server
        depending on purpose and complexity of test.
      - Skip the tests which could suffer from
        Bug 28309 First insert violates unique constraint - was "memory" table empty ?
        Bug 37380 Test funcs_1.is_columns_myisam_embedded fails on OS X
        (both bugs Mac OS X, embedded server, MySQL 5.0 only)
      - Minor improvements like remove typos
      28f97047