1. 28 Jan, 2009 3 commits
    • Gleb Shchepa's avatar
      Bug #39069: <row constructor> IN <table-subquery> seriously · 334e249f
      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.
      334e249f
    • Davi Arnaut's avatar
      Remove test case for bug 40264. · aa0641dc
      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.
      aa0641dc
    • Georgi Kodinov's avatar
      Bug #42366: server-cert.pem expired: "Not After : Jan 27 08:54:13 2009 GMT" · 06e18528
      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
      06e18528
  2. 26 Jan, 2009 1 commit
  3. 22 Jan, 2009 1 commit
    • Davi Arnaut's avatar
      Bug#40264: Aborted cached query causes query to hang indefinitely on next cache hit · ecfdc356
      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.
      ecfdc356
  4. 16 Jan, 2009 2 commits
  5. 15 Jan, 2009 7 commits
  6. 14 Jan, 2009 5 commits
  7. 13 Jan, 2009 3 commits
    • Davi Arnaut's avatar
      Bug#36326: nested transaction and select · 3d6cea32
      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
      3d6cea32
    • Joerg Bruehe's avatar
      Tool fix, needed for "compile-dist" to succeed on Solaris: · 1fc45823
      Joerg Bruehe authored
      The default "awk" there cannot handle some of the scripts
      which are used by BDB for configuration.
      
      The fix:
      1) Introduce a variable "AWK" in some of the BDB shell scripts,
      2) search "gawk" and give it precedence over "awk"
         when assigning a value to the "AWK" variable,
         fail if neither is found,
      3) use that variable when calling an "awk" program with one
         of the critical scripts.
      
      The perfect solution would be to use the "awk" program found
      by "configure", but we cannot follow that approach because
      BDB's configuration is handled as a special case before the
      overall "configure" is run. Because of this,
      1) the "configure" result isn't yet available,
      2) "configure" will not handle these BDB files.
      Searching "gawk" is a (not-so-nice) way out.
      
      Note that all this need not be perfectly portable,
      it is needed only when we create a source distribution tarball
      from a develkopment tree.
      
      bdb/dist/s_all:
        Search "gawk" if available, give it precedence over "awk",
        fail if neither is found.
      bdb/dist/s_include:
        Ensure we use a modern AWK, similar to GNU awk,
        the default awk on Solaris cannot handle BDB's script.
      bdb/dist/s_recover:
        Ensure we use a modern AWK, similar to GNU awk,
        the default awk on Solaris cannot handle BDB's script.
      bdb/dist/s_rpc:
        Ensure we use a modern AWK, similar to GNU awk,
        the default awk on Solaris cannot handle BDB's script.
      1fc45823
    • Georgi Kodinov's avatar
      Bug #38795: Automatic search depth and nested join's results in server crash · ba47e3bc
      Georgi Kodinov authored
            
      The greedy optimizer tracks the current level of nested joins and the position
      inside these by setting and maintaining a state that's global for the whole FROM
      clause.
      This state was correctly maintained inside the selection of the next partial plan
      table (in best_extension_by_limited_search()). 
      greedy_search() also moves the current position by adding the last partial match 
      table when there's not enough tables in the partial plan found by 
      best_extension_by_limited_search().
      This may require update of the global state variables that describe the current
      position in the plan if the last table placed by greedy_search is not a top-level 
      join table.
      Fixed by updating the state after placing the partial plan table in greedy_search()
      in the same way this is done on entering the best_extension_by_limited_search().
      Fixed the signature of the function called to update the state : 
      check_interleaving_with_nj
      
      mysql-test/r/greedy_optimizer.result:
        Bug #38795: test case
      mysql-test/t/greedy_optimizer.test:
        Bug #38795: test case
      sql/sql_select.cc:
        Bug #38795: correctly update current position when placing
        the next partial plan table in greedy_search().
      ba47e3bc
  8. 12 Jan, 2009 6 commits
    • Joerg Bruehe's avatar
      Set the version: 5.0.72sp1 · 4baf2426
      Joerg Bruehe authored
      4baf2426
    • Joerg Bruehe's avatar
      Backport of a 5.0.74 fix into 5.0.72sp1: · 75d276ad
      Joerg Bruehe authored
      Bug #39920: MySQL cannot deal with Leap Second expression in string literal.
      
      Updated MySQL time handling code to react correctly on UTC leap second additions.
      MySQL functions that return the OS current time, like e.g. CURDATE(), NOW() etc
      will return :59:59 instead of :59:60 or 59:61.
      As a result the reader will receive :59:59 for 2 or 3 consecutive seconds
      during the leap second.
      
      Original changesets:
      > revision-id: kgeorge@mysql.com-20081201141835-rg8nnnadujj5wl9f
      > parent: gshchepa@mysql.com-20081114172557-xh0jlzwal8ze3cy6
      > committer: Georgi Kodinov <kgeorge@mysql.com>
      > branch nick: B39920-5.0-bugteam
      > timestamp: Mon 2008-12-01 16:18:35 +0200
      
      > revision-id: kgeorge@mysql.com-20081201154106-c310zzy5or043rqa
      > parent: kgeorge@mysql.com-20081201145656-6kjq91oga5nxbbob
      > committer: Georgi Kodinov <kgeorge@mysql.com>
      > branch nick: B39920-merge-5.0-bugteam
      > timestamp: Mon 2008-12-01 17:41:06 +0200
      75d276ad
    • Joerg Bruehe's avatar
      Backport of a 5.0.74 fix into 5.0.72sp1: · 3055db5c
      Joerg Bruehe authored
      Bug#34760 Character set autodetection appears to fail
      the problem is the same as reported in bug#20835,
      so the fix is backport of bug#20835 patch.
      
      Original changeset:
      > revision-id: sergey.glukhov@sun.com-20081121123959-58ffhp2nitg7f40h
      > parent: ramil@mysql.com-20081120100836-gct60cm67b1rui29
      > committer: Sergey Glukhov <Sergey.Glukhov@sun.com>
      > branch nick: mysql-5.0-bugteam
      > timestamp: Fri 2008-11-21 16:39:59 +0400
      
      3055db5c
    • Joerg Bruehe's avatar
      Backport of a 5.0.74 fix into 5.0.72sp1: · 3b23a99b
      Joerg Bruehe authored
      BUG#38842 - Fix for 25951 seems incorrect
      
      Original changeset:
      > revision-id: svoj@mysql.com-20081111091051-54pr96nf1z2s30gx
      > parent: vvaintroub@mysql.com-20081110201804-bi98gcs9avsf58ff
      > committer: Sergey Vojtovich <svoj@mysql.com>
      > branch nick: mysql-5.0-bugteam-bug38842
      > timestamp: Tue 2008-11-11 13:10:51 +0400
      3b23a99b
    • Joerg Bruehe's avatar
      Backport of a 5.0.74 fix into 5.0.72sp1: · 16f374ef
      Joerg Bruehe authored
      Bug #40021: Renaming view fails, archived .frm for view is
                  missing after downgrade
      
      Original changeset:
      > revision-id: gshchepa@mysql.com-20081114172557-xh0jlzwal8ze3cy6
      > parent: ramil@mysql.com-20081114074229-vj4fvfrpmz8jfub9
      > committer: Gleb Shchepa <gshchepa@mysql.com>
      > branch nick: mysql-5.0-bugteam
      > timestamp: Fri 2008-11-14 21:25:57 +0400
      
      16f374ef
    • Joerg Bruehe's avatar
      Backport of a 5.0.74 fix into 5.0.72sp1: · 0b689ca3
      Joerg Bruehe authored
      Remove bashisms from BUILD/compile-dist and configure.in,
      so Bootstrap works on Solaris box;
      - force GNU make in compile-dist;
      - remove unportable "grep -q" from configure.in
      
      Original changeset:
        revision-id: build@mysql.com-20081203041148-icwscut3bk09ds47
        parent: kgeorge@mysql.com-20081202125040-eiu6s7bk6s96s4xh
        author: timothy.smith@sun.com
        committer: MySQL Build Team <build@mysql.com>
        branch nick: mysql-5.0.74-release
        timestamp: Wed 2008-12-03 05:11:48 +0100
      0b689ca3
  9. 09 Jan, 2009 5 commits
  10. 08 Jan, 2009 1 commit
    • Tatiana A. Nurnberg's avatar
      Bug#41470: DATE_FORMAT() crashes the complete server with a valid date · c42892d6
      Tatiana A. Nurnberg authored
      Passing dubious "year zero" in non-zero date (not "0000-00-00") could
      lead to negative value for year internally, while variable was unsigned.
      This led to Really Bad Things further down the line.
      
      Now doing calculations with signed type for year internally.
      
      mysql-test/r/date_formats.result:
        show that very early dates no longer break DATE_FORMAT(..., '%W')
      mysql-test/t/date_formats.test:
        show that very early dates no longer break DATE_FORMAT(..., '%W')
      sql-common/my_time.c:
        Allow negative years numbers internally while keeping the interface.
        otherwise if somebody passes year zero for whatever reason, we'll
        get an integer wrap-around that can lead to Really Bad Things further
        down the line. Note that amusingly, calcday_nr() already had signed
        output and calc_weekday() already had signed input, anyway.
      c42892d6
  11. 07 Jan, 2009 1 commit
  12. 05 Jan, 2009 3 commits
  13. 30 Dec, 2008 1 commit
  14. 29 Dec, 2008 1 commit
    • Sergey Glukhov's avatar
      Bug#41131 "Questions" fails to increment - ignores statements instead stored procs(5.0 ver) · 3b617acb
      Sergey Glukhov authored
      Added global status variable 'Queries' which represents
      total amount of queries executed by server including
      statements executed by SPs.
      note: It's old behaviour of 'Questions' variable.
      
      
      mysql-test/r/status.result:
        test result
      mysql-test/t/status.test:
        test case
      sql/mysqld.cc:
        Added global status variable 'Queries' which represents
        total amount of queries executed by server including
        statements executed by SPs.
        note: It's old behaviour of 'Questions' variable.
      sql/sql_show.cc:
        Added global status variable 'Queries' which represents
        total amount of queries executed by server including
        statements executed by SPs.
        note: It's old behaviour of 'Questions' variable.
      sql/structs.h:
        Added global status variable 'Queries' which represents
        total amount of queries executed by server including
        statements executed by SPs.
        note: It's old behaviour of 'Questions' variable.
      3b617acb