1. 06 Feb, 2009 1 commit
  2. 05 Feb, 2009 4 commits
    • Alexey Kopytov's avatar
      Merge to team tree. · 1eb14730
      Alexey Kopytov authored
      1eb14730
    • Alexey Kopytov's avatar
      Merge from team tree. · a0566e5e
      Alexey Kopytov authored
      a0566e5e
    • Gleb Shchepa's avatar
      Bug #42037: Queries containing a subquery with DISTINCT and · 31f74831
      Gleb Shchepa authored
                  ORDER BY could cause a server crash
      
      Dependent subqueries like
      
        SELECT COUNT(*) FROM t1, t2 WHERE t2.b
         IN (SELECT DISTINCT t2.b FROM t2 WHERE t2.b = t1.a)
      
      caused a memory leak proportional to the
      number of outer rows.
      
      
      The make_simple_join() function has been modified to
      JOIN class method to store join_tab_reexec and
      table_reexec values in the parent join only
      (make_simple_join of tmp_join may access these values
      via 'this' pointer of the parent JOIN).
      
      NOTE: this patch doesn't include standard test case (this is
      "out of memory" bug). See bug #42037 page for test cases.
      
      
      sql/sql_select.cc:
        Bug #42037: Queries containing a subquery with DISTINCT and
                    ORDER BY could cause a server crash
        
        The make_simple_join() function has been modified to
        JOIN class method to store join_tab_reexec and
        table_reexec values in the parent join only.
      sql/sql_select.h:
        Bug #42037: Queries containing a subquery with DISTINCT and
                    ORDER BY could cause a server crash
        
        1. The make_simple_join() function has been modified to
           JOIN class method.
        
        2. Type of JOIN::table_reexec field has been changed from
           TABLE** to TABLE *table_reexec[1]: this field always was
           NULL or a pointer to one-element array of pointers, so
           a pointer to a pointer has been replaced with one pointer
           and unnecessary memory allocation has been eliminated.
      31f74831
    • Ramil Kalimullin's avatar
      Fix for bug#42014: Crash, name_const with collate · 91d23568
      Ramil Kalimullin authored
      Problem: some queries using NAME_CONST(.. COLLATE ...)
      lead to server crash due to failed type cast.
      
      Fix: return the underlying item's type in case of
      NAME_CONST(.. COLLATE ...) to avoid wrong casting.
      
      
      mysql-test/r/func_misc.result:
        Fix for bug#42014: Crash, name_const with coll
          - test result.
      mysql-test/t/func_misc.test:
        Fix for bug#42014: Crash, name_const with coll
          - test case.
      sql/item.cc:
        Fix for bug#42014: Crash, name_const with coll
          - in case of NAME_CONST('name', 'value' COLLATE collation)
        Item_name_const::type() returns type of 'value' argument 
        to awoid wrong type casting of the Item_name_const items.
      91d23568
  3. 04 Feb, 2009 3 commits
    • Chad MILLER's avatar
      Merge from bug tree. · 9b93c268
      Chad MILLER authored
      9b93c268
    • Matthias Leich's avatar
      f8412b84
    • Sergey Vojtovich's avatar
      BUG#32047 - 'Spurious' errors while opening MERGE tables · 8819e71c
      Sergey Vojtovich authored
      Accessing well defined MERGE table may return an error
      stating that the merge table is incorrectly defined. This
      happens if MERGE child tables were accessed before and we
      failed to open another incorrectly defined MERGE table in
      this connection.
      
      myrg_open() internally used my_errno as a variable for determining
      failure, and thus could be tricked into a wrong decision by other
      uses of my_errno.
      
      With this fix we use function local boolean flag instead of my_errno
      to determine failure.
      
      myisammrg/myrg_open.c:
        There are two requirement for accessing/setting my_errno variable,
        which were not followed by myrg_open():
        - it must be checked immediately after a function returned an error. There
          must be no calls to other functions that may change it's value between.
        - my_errno value must be set right before a function is going to return an
          error. There must be no calls to other functions that may change it's
          value between (that's why we have these tricks with save_errno at the
          bottom of myrg_open()).
        
        myrg_open() internally used my_errno as a variable for determining
        failure, and thus could be tricked into a wrong decision by other
        uses of my_errno.
      mysql-test/r/merge.result:
        A test case for BUG#32047.
      mysql-test/t/merge.test:
        A test case for BUG#32047.
      8819e71c
  4. 03 Feb, 2009 1 commit
    • Alexey Kopytov's avatar
      Fix for bug #41868: crash or memory overrun with concat + upper, date_format · d70c448e
      Alexey Kopytov authored
                          functions
            
      String::realloc() did not check whether the existing string data fits in the newly
      allocated buffer for cases when reallocating a String object with external buffer
      (i.e.alloced == FALSE).  This could lead to memory overruns in some cases.
      
      
      mysql-test/r/func_str.result:
        Added a test case for bug #41868.
      mysql-test/t/func_str.test:
        Added a test case for bug #41868.
      sql/sql_class.cc:
        After each call to Item::send() in select_send::send_data() reset buffer to its
        original state to reduce unnecessary malloc() calls. See comments for bug #41868
        for detailed analysis.
      sql/sql_string.cc:
        Fixed String::realloc() to check whether the existing string data fits in the newly allocated buffer for cases when reallocating a String object with external buffer.
      d70c448e
  5. 02 Feb, 2009 2 commits
    • Patrick Crews's avatar
      Bug#39369: execution of "variables.test" with "check-testcases" show differences. · 039f51a0
      Patrick Crews authored
      The original symptoms of this bug have been fixed as a consequence of other bug fixes.
      Taking this time to correct some formatting, such as replacing error numbers with names.
      Beginning this with 5.0
      039f51a0
    • Matthias Leich's avatar
      1. Slice of fix for Bug#42003 tests missing the disconnect of connections <> default · 400900bd
      Matthias Leich authored
         - If missing: add "disconnect <session>"
         - If physical disconnect of non "default" sessions is not finished
           at test end: add routine which waits till this happened
      + additional improvements like
        - remove superfluous files created by the test
        - replace error numbers by error names
        - remove trailing spaces, replace tabs by spaces
        - unify writing of bugs within comments
        - correct comments
        - minor changes of formatting
      Modifications according to the code review are included.
      Fixed tests:
      grant2
      grant3
      lock_tables_lost_commit
      mysqldump
      openssl_1
      outfile
      400900bd
  6. 31 Jan, 2009 1 commit
  7. 30 Jan, 2009 2 commits
    • Tatiana A. Nurnberg's avatar
      Bug#41370: TIMESTAMP field does not accepts NULL from FROM_UNIXTIME() · 5fa806ca
      Tatiana A. Nurnberg authored
      When storing a NULL to a TIMESTAMP NOT NULL DEFAULT ...,
      NULL returned from some functions threw a 'cannot be NULL error.'
      
      NULL-returns now correctly result in the timestamp-field being
      assigned its default value.
      
      mysql-test/r/type_timestamp.result:
        Show that for TIMESTAMP NOT NULL DEFAULT, NULL function returns
        set default now.
      mysql-test/t/type_timestamp.test:
        Show that for TIMESTAMP NOT NULL DEFAULT, NULL function returns
        set default now.
      sql/item.cc:
        When storing a returned NULL (from a time- or date-related
        function), make sure to apply NULL-means-DEFAULT magic where
        applicable.
      5fa806ca
    • Georgi Kodinov's avatar
      merged 5.0-main -> 5.0-bugteam · 3955cc76
      Georgi Kodinov authored
      3955cc76
  8. 29 Jan, 2009 3 commits
  9. 28 Jan, 2009 5 commits
    • Gleb Shchepa's avatar
      Bug #39069: <row constructor> IN <table-subquery> seriously · 39f8dd37
      Gleb Shchepa authored
                  messed up
      
      "ROW(...) IN (SELECT ... FROM DUAL)" always returned TRUE.
      
      Item_in_subselect::row_value_transformer rewrites "ROW(...)
      IN SELECT" conditions into the "EXISTS (SELECT ... HAVING ...)"
      form.
      For a subquery from the DUAL pseudotable resulting HAVING
      condition is an expression on constant values, so further
      transformation with optimize_cond() eliminates this HAVING
      condition and resets JOIN::having to NULL.
      Then JOIN::exec treated that NULL as an always-true-HAVING
      and that caused a bug.
      
      To distinguish an optimized out "HAVING TRUE" clause from
      "HAVING FALSE" we already have the JOIN::having_value flag.
      However, JOIN::exec() ignored JOIN::having_value as described
      above as if it always set to COND_TRUE.
      
      The JOIN::exec method has been modified to take into account
      the value of the JOIN::having_value field.
      
      
      mysql-test/r/subselect3.result:
        Added test case for bug #39069.
      mysql-test/t/subselect3.test:
        Added test case for bug #39069.
      sql/sql_select.cc:
        Bug #39069: <row constructor> IN <table-subquery> seriously
                    messed up
        
        The JOIN::exec method has been modified to take into account
        the value of the JOIN::having_value field.
      39f8dd37
    • Davi Arnaut's avatar
      Remove test case for bug 40264. · 10470974
      Davi Arnaut authored
      Dirty close tricky does not work on Windows.
      
      mysql-test/r/query_cache_notembedded.result:
        Remove test case result.
      mysql-test/t/query_cache_notembedded.test:
        Remove test case.
      10470974
    • Georgi Kodinov's avatar
      Bug #42366: server-cert.pem expired: "Not After : Jan 27 08:54:13 2009 GMT" · 5c1975fa
      Georgi Kodinov authored
            
      Re-generated the PKI files needed.
      Removed the ones that are not needed.
      Updated the tests to reference the correct SSL subject.
      
      mysql-test/r/openssl_1.result:
        Bug #42366: Updated the tests to reference the correct SSL subject
      mysql-test/std_data/cacert.pem:
        Bug #42366: Re-generated the PKI files needed.
      mysql-test/std_data/client-cert.pem:
        Bug #42366: Re-generated the PKI files needed.
      mysql-test/std_data/client-key.pem:
        Bug #42366: Re-generated the PKI files needed.
      mysql-test/std_data/server-cert-des.pem:
        Bug #42366: Removed the ones that are not needed.
      mysql-test/std_data/server-cert.pem:
        Bug #42366: Re-generated the PKI files needed.
      mysql-test/std_data/server-key-des.pem:
        Bug #42366: Removed the ones that are not needed.
      mysql-test/std_data/server-key.pem:
        Bug #42366: Re-generated the PKI files needed.
      mysql-test/std_data/server8k-cert.pem:
        Bug #42366: Re-generated the PKI files needed.
      mysql-test/std_data/server8k-key.pem:
        Bug #42366: Re-generated the PKI files needed.
      mysql-test/t/openssl_1.test:
        Bug #42366: Updated the tests to reference the correct SSL subject
      5c1975fa
    • Bjorn Munch's avatar
      merge · b991f784
      Bjorn Munch authored
      b991f784
    • Bjorn Munch's avatar
      Bug #42216 mysqltest: Use of diff belonging to current OS, with wrong option for Solaris · 2b2a5fb7
      Bjorn Munch authored
      Check for existence of diff fails on Solaris due to unsupported "-v"
      Fix is to do this check only on Windows where it was needed
      2b2a5fb7
  10. 26 Jan, 2009 1 commit
  11. 23 Jan, 2009 1 commit
  12. 22 Jan, 2009 1 commit
    • Davi Arnaut's avatar
      Bug#40264: Aborted cached query causes query to hang indefinitely on next cache hit · ae4d8dc6
      Davi Arnaut authored
      The problem is that the query cache was storing partial results
      if the statement failed when sending the results to the client.
      This could cause clients to hang when trying to read the results
      from the cache as they would, for example, wait indefinitely for
      a eof packet that wasn't saved.
      
      The solution is to always discard the caching of a query that
      failed to send its results to the associated client.
      
      mysql-test/r/query_cache_notembedded.result:
        Add test case result for Bug#40264
      mysql-test/t/query_cache_notembedded.test:
        Add test case for Bug#40264
      sql/sql_cache.cc:
        Abort if a unreported error was raised.
      ae4d8dc6
  13. 16 Jan, 2009 2 commits
  14. 15 Jan, 2009 7 commits
  15. 14 Jan, 2009 5 commits
  16. 13 Jan, 2009 1 commit
    • Davi Arnaut's avatar
      Bug#36326: nested transaction and select · a9aaa09b
      Davi Arnaut authored
      The problem is that the query cache stores packets containing
      the server status of the time when the cached statement was run.
      This might lead to a wrong transaction status in the client side
      if a statement is cached during a transaction and is later served
      outside a transaction context (and vice-versa).
      
      The solution is to take into account the transaction status when
      storing in and serving from the query cache.
      
      mysql-test/r/innodb_cache.result:
        Update test case result.
      mysql-test/r/query_cache.result:
        Add test case result for Bug#36326
      mysql-test/t/query_cache.test:
        Add test case for Bug#36326
      sql/mysql_priv.h:
        Add new flags.
      sql/sql_cache.cc:
        Remember the transaction and autocommit status stored in the packet.
      tests/mysql_client_test.c:
        Add test case for Bug#36326
      a9aaa09b