1. 25 May, 2009 2 commits
    • Davi Arnaut's avatar
      Bug#42158: leak: SSL_get_peer_certificate() doesn't have matching X509_free() · 981ff94d
      Davi Arnaut authored
      The problem is that the server failed to follow the rule that
      every X509 object retrieved using SSL_get_peer_certificate()
      must be explicitly freed by X509_free(). This caused a memory
      leak for builds linked against OpenSSL where the X509 object
      is reference counted -- improper counting will prevent the
      object from being destroyed once the session containing the
      peer certificate is freed.
      
      The solution is to explicitly free every X509 object used.
      981ff94d
    • Georgi Kodinov's avatar
      Bug #44399 : crash with statement using TEXT columns, aggregates, GROUP BY, and · 8fb82e3f
      Georgi Kodinov authored
      HAVING
                  
      When calculating GROUP BY the server caches some expressions. It does
      that by allocating a string slot (Item_copy_string) and assigning the 
      value of the expression to it. This effectively means that the result
      type of the expression can be changed from whatever it was to a string.
      As this substitution takes place after the compile-time result type 
      calculation for IN but before the run-time type calculations, 
      it causes the type calculations in the IN function done at run time 
      to get unexpected results different from what was prepared at compile time.
                        
      In the CASE ... WHEN ... THEN ... statement there was a similar problem
      and it was solved by artificially adding a STRING argument to the set of 
      types of the IN/CASE arguments at compile time, so if any of the 
      arguments of the CASE function changes its type to a string it will 
      still be covered by the information prepared at compile time.
      8fb82e3f
  2. 23 May, 2009 1 commit
  3. 22 May, 2009 6 commits
    • Luis Soares's avatar
      BUG#41725: upmerge: 5.0-bt --> 5.1-bt · e2aad850
      Luis Soares authored
      e2aad850
    • Luis Soares's avatar
      BUG#41725: slave crashes when inserting into temporary table after · 2b4fcc1d
      Luis Soares authored
      stop/start slave
            
      When stopping and restarting the slave while it is replicating
      temporary tables, the server would crash or raise an assertion
      failure. This was due to the fact that although temporary tables are
      saved between slave threads restart, the reference to the thread in
      use (table->in_use) was not being properly updated when the restart
      happened (it would still reference the old/invalid thread instead of
      the new one).
            
      This patch addresses this issue by resetting the reference to the new
      slave thread on slave thread restart.
      2b4fcc1d
    • Patrick Crews's avatar
      merge · 321189c7
      Patrick Crews authored
      321189c7
    • Patrick Crews's avatar
      merge 5.0-> 5.1 · 53c09b3a
      Patrick Crews authored
      53c09b3a
    • Patrick Crews's avatar
      Bug#40465 - mysqldump.test does no checking of dump or restore · 6c31d59b
      Patrick Crews authored
      Created new .test file - mysqldump_restore that does test restore from mysqldump
      output for a limited number of basic cases.
      Create new .inc file - mysqldump.inc - renames original table and uses mysqldump
      output to recreate the table, then uses diff_tables.inc to compare the two tables.
      Backported include/diff_tables.inc to facilitate this testing.
      New patch incorporating review feedback prior to push.
      
      mysqldump.test - removed redundant call to include/have_log_bin.inc (was used twice in the test!)
      6c31d59b
    • Gleb Shchepa's avatar
      Bug #42778: delete order by null global variable causes · f5c93081
      Gleb Shchepa authored
                  assertion .\filesort.cc, line 797
      
      Minor fix to test case (embedded server failure).
      f5c93081
  4. 21 May, 2009 15 commits
  5. 20 May, 2009 9 commits
  6. 19 May, 2009 1 commit
  7. 18 May, 2009 2 commits
    • Gleb Shchepa's avatar
      Bug#40825: Error 1356 while selecting from a view · 8a39147a
      Gleb Shchepa authored
                 with a "HAVING" clause though query works
      
      SELECT from views defined like:
      
        CREATE VIEW v1 (view_column)
          AS SELECT c AS alias FROM t1 HAVING alias
      
      fails with an error 1356:
        View '...' references invalid table(s) or column(s)
        or function(s) or definer/invoker of view lack rights
        to use them
      
      
      CREATE VIEW form with a (column list) substitutes
      SELECT column names/aliases with names from a
      view column list.
      However, alias references in HAVING clause was
      not substituted.
      
      
      The Item_ref::print function has been modified
      to write correct aliased names of underlying
      items into VIEW definition generation/.frm file.
      8a39147a
    • Gleb Shchepa's avatar
      Bug #44768: SIGFPE crash when selecting rand from a view containing null · 9cc4cb0e
      Gleb Shchepa authored
      The RAND(N) function where the N is a field of "constant" table
      (table of single row) failed with a SIGFPE.
      
      Evaluation of RAND(N) rely on constant status of its argument.
      Current server "seeded" random value for each constant argument
      only once, in the Item_func_rand::fix_fields method.
      Then the server skipped a call to seed_random() in the
      Item_func_rand::val_real method for such constant arguments.
      
      However, non-constant state of an argument may be changed
      after the call to fix_fields, if an argument is a field of
      "constant" table. Thus, pre-initialization of random value
      in the fix_fields method is too early.
      
      
      Initialization of random value by seed_random() has been
      removed from Item_func_rand::fix_fields method.
      The Item_func_rand::val_real method has been modified to
      call seed_random() on the first evaluation of this method
      if an argument is a function.
      9cc4cb0e
  8. 17 May, 2009 3 commits
    • Kristofer Pettersson's avatar
      Bug#19027 MySQL 5.0 starts even with Fatal InnoDB errors · 0b608e98
      Kristofer Pettersson authored
      Fix bug in mtr_cases.pm script visible only when InnoDB isn't configured.
      0b608e98
    • Narayanan V's avatar
      Bug#44856 IBMDB2I gives misleading 2504 error · 162fa005
      Narayanan V authored
      Occasionally, if both the partition_pruning
      and partition_range tests are run sequentially
      against the IBMDB2I engine, the partition_range
      test will fail.
      
      Compiler padding on a 64-bit build allowed
      garbage data in the hash key used for
      caching open iconv descriptors. As a
      result, cached descriptors were not found,
      and multiple duplicate iconv descriptors
      were opened for a single character set.
      Eventually, the maximum number of open
      iconv descriptors was reached, and further
      iconv_open() calls would fail, leading the
      storage engine to report incorrectly that
      the character set was not supported.
      
      This patch widens the 16-bit members of the
      hash key to 32 bits to eliminate compiler
      padding. The entire length of the hash key
      is now initialized correctly on both 32-bit
      and 64-bit builds.
      162fa005
    • Narayanan V's avatar
      Bug#44610 RCDFMT clause requested when creating DB2 table · ca3dbc91
      Narayanan V authored
      In order to better support the usage of
      IBMDB2I tables from within RPG programs,
      the storage engine should ensure that the
      RCDFMT name is consistent and predictable
      for DB2 tables.
      
      This patch appends a "RCDFMT <name>"
      clause to the CREATE TABLE statement
      that is passed to DB2.  <name> is
      generated from the original name of
      the table itself. This ensures a
      consistent and deterministic mapping
      from the original table.
      
      For the sake of simplicity only
      the alpha-numeric characters are
      preserved when generating the new
      name, and these are upper-cased;
      other characters are replaced with
      an underscore (_). Following DB2
      system identifier rules, the name
      always begins with an alpha-character
      and has a maximum of ten characters.
      If no usable characters are found in
      the table name, the name X is used.
      ca3dbc91
  9. 15 May, 2009 1 commit