1. 30 Aug, 2009 1 commit
    • Alexey Kopytov's avatar
      Bug #46607: Assertion failed: (cond_type == Item::FUNC_ITEM) · 62b95b90
      Alexey Kopytov authored
                  results in server crash 
       
      check_group_min_max_predicates() assumed the input condition 
      item to be one of COND_ITEM, SUBSELECT_ITEM, or FUNC_ITEM. 
      Since a condition of the form "field" is also a valid condition 
      equivalent to "field <> 0", using such a condition in a query 
      where the loose index scan was chosen resulted in a debug 
      assertion failure. 
       
      Fixed by handling conditions of the FIELD_ITEM type in 
      check_group_min_max_predicates(). 
      62b95b90
  2. 11 Aug, 2009 1 commit
  3. 10 Aug, 2009 2 commits
  4. 08 Aug, 2009 1 commit
    • Davi Arnaut's avatar
      Bug#45010: invalid memory reads during parsing some strange statements · 69fbbdc1
      Davi Arnaut authored
      The problem is that the lexer could inadvertently skip over the
      end of a query being parsed if it encountered a malformed multibyte
      character. A specially crated query string could cause the lexer
      to jump up to six bytes past the end of the query buffer. Another
      problem was that the laxer could use unfiltered user input as
      a signed array index for the parser maps (having upper and lower
      bounds 0 and 256 respectively).
      
      The solution is to ensure that the lexer only skips over well-formed
      multibyte characters and that the index value of the parser maps
      is always a unsigned value.
      69fbbdc1
  5. 07 Aug, 2009 1 commit
    • Martin Hansson's avatar
      Bug#46454: MySQL wrong index optimisation leads to incorrect result & crashes · 5421a8e8
      Martin Hansson authored
      Problem 1:
      When the 'Using index' optimization is used, the optimizer may still - after
      cost-based optimization - decide to use another index in order to avoid using
      a temporary table. But when this happens, the flag to the storage engine to 
      read index only (not table) was still set. Fixed by resetting the flag in the 
      storage engine and TABLE structure in the above scenario, unless the new index
      allows for the same optimization.
      Problem 2:
      When a 'ref' access method was employed by cost-based optimizer, (when the column
      is non-NULLable), it was assumed that it needed no initialization if 'quick' access
      methods (since they are based on range scan). When ORDER BY optimization overrides 
      the decision, however, it expects to have this initialized and hence crashes. 
      Fixed in 5.1 (was fixed in 6.0 already) by initializing 'quick' even when there's 
      'ref' access. 
      5421a8e8
  6. 06 Aug, 2009 4 commits
    • Ignacio Galarza's avatar
      Auto-merge · bcbbef6f
      Ignacio Galarza authored
      bcbbef6f
    • Ignacio Galarza's avatar
      1c07007f
    • Satya B's avatar
      Fix for BUG#45816 - assertion failure with index containing double · ad951044
      Satya B authored
                          column on partitioned table
            
            
      An assertion 'ASSERT_COULUMN_MARKED_FOR_READ' is failed if the query 
      is executed with index containing double column on partitioned table.
      The problem is that assertion expects all the fields which are read,
      to be in the read_set.
            
      In this query only the field 'a' is in the readset as the tables in
      the query are joined by the field 'a' and so the assertion fails 
      expecting other field 'b'.
            
      Since the function cmp() is just comparison of two parameters passed, 
      the assertion is not required.
            
      Fixed by removing the assertion in the double fields comparision
      function and also fixed the index initialization to do ordered
      index scan with RW LOCK which ensures all the fields from a key are in
      the read_set.
       
      
      Note: this bug is not reproducible with other datatypes because the
            assertion doesn't exist in comparision function for other 
            datatypes.
      ad951044
    • 's avatar
      Bug #45630 rpl_trigger.test causes valgrind failures within nptl_pthread_exit_hack_handler · 440ddc54
      authored
      The server shutdown and start code triggered the valgrind failures 
      within nptl_pthread_exit_hack_handler on Ubuntu 9.04, x86 (but not amd64) 
      in rpl_trigger.test file.
      
      For fixing the bug, suppress valgrind failures within nptl_pthread_exit_hack_handler 
      on Ubuntu 9.04, x86 (but not amd64). Because the server shutdown and start
      code has been heavily used in mysql test set.
      440ddc54
  7. 05 Aug, 2009 1 commit
  8. 04 Aug, 2009 2 commits
  9. 03 Aug, 2009 2 commits
  10. 02 Aug, 2009 1 commit
    • Alfranio Correia's avatar
      BUG#43264 Test rpl_trigger is failing randomly w/ use of copy_file in 5.0 · 407520b6
      Alfranio Correia authored
      The test case fails sporadically on Windows while trying to overwrite an unused
      binary log. The problem stems from the fact that MySQL on Windows does not
      immediately unlock/release a file while the process that opened and closed it is
      still running. In BUG 38603, this issue was circumvented by stopping the MySQL
      process, copying the file and then restarting the MySQL process. 
      
      Unfortunately, such facilities are not available in the 5.0.  Other approaches
      such as stopping the slave and issuing change master do not work because the relay
      log file and index are not closed when a slave is stopped. So to fix the problem,
      we simply don't run on windows the part of the test that was failing.
      407520b6
  11. 01 Aug, 2009 2 commits
  12. 31 Jul, 2009 12 commits
    • Jim Winstead's avatar
      Merge fix to test results · 87784fd0
      Jim Winstead authored
      87784fd0
    • Jim Winstead's avatar
      f5c55bc0
    • Davi Arnaut's avatar
      Test case clean up: Move test cases that depend on the CSV storage · 7049106d
      Davi Arnaut authored
      engine to the partition_csv test. Also remove test case that was
      duplicated. Fix connection procedure with the embedded server.
      7049106d
    • Ignacio Galarza's avatar
      Auto-merge · aa63a16e
      Ignacio Galarza authored
      aa63a16e
    • Tatiana A. Nurnberg's avatar
      auto-merge · b925e40f
      Tatiana A. Nurnberg authored
      b925e40f
    • Ignacio Galarza's avatar
      Auto-merge · 8ef28b49
      Ignacio Galarza authored
      8ef28b49
    • Ignacio Galarza's avatar
      Bug#17270 - mysql client tool could not find ../share/charsets folder and fails. · 6df2af22
      Ignacio Galarza authored
      - Define and pass compile time path variables as pre-processor definitions to 
        mimic the makefile build.
      - Set new CMake version and policy requirements explicitly.
      - Changed DATADIR to MYSQL_DATADIR to avoid conflicting definition in 
        Platform SDK header ObjIdl.h which also defines DATADIR.
      6df2af22
    • Gleb Shchepa's avatar
      Bug# 30946: mysqldump silently ignores --default-character-set · e642140b
      Gleb Shchepa authored
                  when used with --tab
      
      1) New syntax: added CHARACTER SET clause to the
        SELECT ... INTO OUTFILE (to complement the same clause in
        LOAD DATA INFILE).
        mysqldump is updated to use this in --tab mode.
      
      2) ESCAPED BY/ENCLOSED BY field parameters are documented as
         accepting CHAR argument, however SELECT .. INTO OUTFILE
         silently ignored rests of multisymbol arguments.
         For the symmetrical behavior with LOAD DATA INFILE the
         server has been modified to fail with the same error:
      
           ERROR 42000: Field separator argument is not what is
                        expected; check the manual
      
      3) Current LOAD DATA INFILE recognizes field/line separators
         "as is" without converting from client charset to data
         file charset. So, it is supposed, that input file of
         LOAD DATA INFILE consists of data in one charset and
         separators in other charset. For the compatibility with
         that [buggy] behaviour SELECT INTO OUTFILE implementation
         has been saved "as is" too, but the new warning message
         has been added:
      
           Non-ASCII separator arguments are not fully supported
      
         This message warns on field/line separators that contain
         non-ASCII symbols.
      e642140b
    • Davi Arnaut's avatar
      Bug#46265: Can not disable warning about unsafe statements for binary logging · e1c43705
      Davi Arnaut authored
      If using statement based replication (SBR), repeatedly calling
      statements which are unsafe for SBR will cause a warning message
      to be written to the error for each statement. This might lead
      to filling up the error log and there is no way to disable this
      behavior.
      
      The solution is to only log these message (about statements unsafe
      for statement based replication) if the log_warnings option is set.
      
      For example:
      
      SET GLOBAL LOG_WARNINGS = 0;
      INSERT INTO t1 VALUES(UUID());
      SET GLOBAL LOG_WARNINGS = 1;
      INSERT INTO t1 VALUES(UUID());
      
      In this case the message will be printed only once:
      
      [Warning] Statement may not be safe to log in statement format.
                Statement: INSERT INTO t1 VALUES(UUID())
      e1c43705
    • Tatiana A. Nurnberg's avatar
      Bug#40281, partitioning the general log table crashes the server · f6b8b9d2
      Tatiana A. Nurnberg authored
      We disallow the partitioning of a log table. You could however
      partition a table first, and then point logging to it. This is
      not only against the docs, it also crashes the server.
      
      We catch this case now.
      f6b8b9d2
    • Jim Winstead's avatar
      Merge bug fix. · 207584e4
      Jim Winstead authored
      207584e4
    • Davi Arnaut's avatar
      Bug#45017: Failure to connect if hostname maps to multiple addresses · 35e5b9b8
      Davi Arnaut authored
      The problem is that the C API function mysql_real_connect
      only attempts to connect to the first IP address returned
      for a hostname. This can be a problem if a hostname maps
      to multiple IP address and the server is not bound to the
      first one that is returned.
      
      The solution is to augment mysql_real_connect so that it
      attempts to connect to all IPv4 addresses that a domain
      name maps to. The function goes over the list of address
      until a successful connection is established.
      
      No test case is provided as its not possible to test this
      automatically with the current testing infrastructure.
      35e5b9b8
  13. 04 Aug, 2009 1 commit
  14. 03 Aug, 2009 7 commits
  15. 30 Jul, 2009 1 commit
    • Davi Arnaut's avatar
      Bug#43435: LOCK_open does not use MY_MUTEX_INIT_FAST · 8f7a48ff
      Davi Arnaut authored
      Initialize LOCK_open as a adapative mutex on platforms where the
      PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP macro is available. The flag
      indicates that a thread should spin (busy wait) for some time on a
      locked adaptive mutex before blocking (sleeping). It's intended to
      to alleviate performance problems due to LOCK_open being a highly
      contended mutex.
      8f7a48ff
  16. 31 Jul, 2009 1 commit