1. 20 May, 2009 2 commits
  2. 12 May, 2009 1 commit
    • Georgi Kodinov's avatar
      Bug #44399: crash with statement using TEXT columns, aggregates, GROUP BY, · e16c3d86
      Georgi Kodinov authored
        and 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 matrix
      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.
      Extended the CASE fix for cover the IN case.
      An alternative way of fixing this problem is by caching the result type of 
      the arguments at compile time and using the cached information at run time
      instead of re-calculating the result types.
      Preferred the CASE approach for uniformity and fix localization.
      e16c3d86
  3. 19 May, 2009 7 commits
    • Satya B's avatar
      merge to 5.1-bugteam tree · 06c5c300
      Satya B authored
      06c5c300
    • Satya B's avatar
      Applying InnoDB snashot 5.1-ss5024,part 3. Fixes BUG#42101 · 3ea0fd9d
      Satya B authored
      BUG#42101 - Race condition in innodb_commit_concurrency
      
      Detailed revision comments:
      
      r4994 | marko | 2009-05-14 15:04:55 +0300 (Thu, 14 May 2009) | 18 lines
      branches/5.1: Prevent a race condition in innobase_commit() by ensuring
      that innodb_commit_concurrency>0 remains constant at run time. (Bug #42101)
      
      srv_commit_concurrency: Make this a static variable in ha_innodb.cc.
      
      innobase_commit_concurrency_validate(): Check that innodb_commit_concurrency
      is not changed from or to 0 at run time.  This is needed, because
      innobase_commit() assumes that innodb_commit_concurrency>0 remains constant.
      Without this limitation, the checks for innodb_commit_concurrency>0
      in innobase_commit() should be removed and that function would have to
      acquire and release commit_cond_m at least twice per invocation.
      Normally, innodb_commit_concurrency=0, and introducing the mutex operations
      would mean significant overhead.
      
      innodb_bug42101.test, innodb_bug42101-nonzero.test: Test cases.
      
      rb://123 approved by Heikki Tuuri
      3ea0fd9d
    • Satya B's avatar
      Applying InnoDB snashot 5.1-ss5024, part 2. Fix for BUG#44320 · be526687
      Satya B authored
      BUG#44320 - InnoDB: missing DB_ROLL_PTR in Table Monitor COLUMNS output
      
      Detailed revision comments:
      
      r4976 | marko | 2009-05-13 15:44:54 +0300 (Wed, 13 May 2009) | 6 lines
      branches/5.1: Display DB_ROLL_PTR in the COLUMNS section of the
      innodb_table_monitor output.  It was accidentally omitted due to an
      off-by-one loop condition.  (Bug #44320)
      
      rb://116 approved by Heikki Tuuri
      be526687
    • Satya B's avatar
      Applying InnoDB snashot 5.1-ss5024 part 1, Follow up Fix for BUG#43660 · 5db3bfbe
      Satya B authored
      Detailed revision comments:
      
      r4705 | vasil | 2009-04-14 14:30:13 +0300 (Tue, 14 Apr 2009) | 7 lines
      branches/5.1:
      
      When using the random function, first take the modulus by the number of pages
      and then typecast to ulint.
      
      This is a followup to r4699 - the fix of Bug#43660.
      5db3bfbe
    • Sergey Glukhov's avatar
      5.0-bugteam->5.1-bugteam merge · 2b373758
      Sergey Glukhov authored
      2b373758
    • Sergey Glukhov's avatar
      Bug#39793 Foreign keys not constructed when column has a '#' in a comment or default value · 551e74c5
      Sergey Glukhov authored
      Internal InnoDN FK parser does not recognize '\'' as quotation symbol.
      Suggested fix is to add '\'' symbol check for quotation condition
      (dict_strip_comments() function).
      551e74c5
    • Ramil Kalimullin's avatar
      Fix for bug#44860: ALTER TABLE on view crashes server · a3b26f1a
      Ramil Kalimullin authored
      Problem: executing queries like "ALTER TABLE view1;" we don't
      check new view's name (which is not specified),
      that leads to server crash.
      
      Fix: do nothing (to be consistent with the behaviour for tables) 
      in such cases.
      a3b26f1a
  4. 18 May, 2009 7 commits
    • Gleb Shchepa's avatar
      7bd64afe
    • 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
    • Patrick Crews's avatar
      Bug#44920 - MTR2 is not processing master.opt input properly on Windows · 189f8ebd
      Patrick Crews authored
      Disabling these two tests as they are affected by this bug / causing PB2 failures
      on Windows platforms.  Can always disable via include/not_windows.inc if
      the bug fix looks like it will take some time.
      189f8ebd
    • Kristofer Pettersson's avatar
      Bug#19027 MySQL 5.0 starts even with Fatal InnoDB errors · c26f77fb
      Kristofer Pettersson authored
      Fixed start up options for test case "rpl_ndb_2other-slave" to match
      the changed behavior for plugin options.
      c26f77fb
    • Kristofer Pettersson's avatar
      Automerge · f385c603
      Kristofer Pettersson authored
      f385c603
    • Kristofer Pettersson's avatar
      Bug#19027 MySQL 5.0 starts even with Fatal InnoDB errors · 9c4eb291
      Kristofer Pettersson authored
      convert_dash_to_underscore was supplied with a character length containing
      my byte too many which caused valgrind errors of invalid read.
      9c4eb291
    • 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
  5. 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
  6. 15 May, 2009 20 commits