1. 25 Mar, 2010 1 commit
    • Sergey Vojtovich's avatar
      BUG#47598 - MyISAM may write uninitialized data to disk · 64bf131a
      Sergey Vojtovich authored
      When MyISAM writes newly created index page it may be
      initialized partially. In other words some bytes of
      sensible data and uninitialized tail of the page may
      go into index file.
      
      Under certain rare circumstances these hunks of memory
      may contain data that would be otherwise inaccessible
      to user, like passwords or data from other tables.
      
      Fixed by initializing memory for temporary MyISAM key
      buffer to '\0'.
      
      No test case for this fix as it is heavily covered by
      existing tests.
      
      storage/myisam/mi_open.c:
        When creating new MI_INFO object, initialize MI_INFO::buff.
        This is done to ensure that we never write uninitialized
        memory hunks to index file.
      storage/myisam/mi_page.c:
        No need to silence memory error detector anymore,
        page buffer is always initialized.
      storage/myisam/mi_write.c:
        Fixed invalid memory read of 2 bytes. new_right_length
        is length of data on a page, including first 2 bytes
        that store this length itself. pos + k_length is pure
        data excluding these 2 bytes containing length.
      storage/myisam/rt_index.c:
        To avoid uninitialized data write, create new page
        on info->buff, instead of locally allocated buffer.
        
        Note: second key block on info->buff is used here,
        because first block is used by called functions.
      storage/myisam/rt_split.c:
        To avoid uninitialized data write, create new page
        on info->buff, instead of locally allocated buffer.
      64bf131a
  2. 16 Mar, 2010 1 commit
    • Martin Hansson's avatar
      Bug#50918: Date columns treated differently in Views than in · 131086a5
      Martin Hansson authored
      Base Tables
      
      The type inferrence of a view column caused the result to be
      interpreted as the wrong type: DATE colums were interpreted
      as TIME and TIME as DATETIME. This happened because view
      columns are represented by Item_ref objects as opposed to
      Item_field's. Item_ref had no method for retrieving a TIME
      value and thus was forced to depend on the default
      implementation for any expression, which caused the
      expression to be evaluated as a string and then parsed into
      a TIME/DATETIME value.
      
      Fixed by letting Item_ref classes forward the request for a
      TIME value to the referred Item - which is a field in this
      case - this reads the TIME value directly without
      conversion.
      131086a5
  3. 15 Mar, 2010 1 commit
  4. 14 Mar, 2010 2 commits
    • Staale Smedseng's avatar
      Bug #49829 Many "hides virtual function" warnings with · 0c07d7c4
      Staale Smedseng authored
      SunStudio
            
      SunStudio compilers of late warn about methods that might hide
      methods in base classes due to the use of overloading combined
      with overriding. SunStudio also warns about variables defined
      in local socpe or method arguments that have the same name as
      a member attribute of the class.
            
      This patch renames methods that might hide base class methods,
      to make it easier both for humans and compilers to see what is
      actually called. It also renames variables in local scope.
      
      
      sql/field.cc:
        Local scope variable or method argument same as class 
        attribute.
      sql/item_cmpfunc.cc:
        Local scope variable or method argument same as class 
        attribute.
      sql/item_create.cc:
        Renaming base class create() to create_func().
      sql/item_create.h:
        Renaming base class create() to create_func().
      sql/protocol.cc:
        Local scope variable or method argument same as class 
        attribute.
      sql/sql_profile.cc:
        Local scope variable or method argument same as class 
        attribute.
      sql/sql_select.cc:
        Local scope variable or method argument same as class 
        attribute.
      sql/sql_yacc.yy:
        Renaming base class create() to create_func().
      storage/federated/ha_federated.cc:
        Local scope variable or method argument same as class 
        attribute.
      storage/myisammrg/ha_myisammrg.cc:
        Local scope variable or method argument same as class 
        attribute.
      0c07d7c4
    • Davi Arnaut's avatar
      6c5d8911
  5. 13 Mar, 2010 1 commit
  6. 09 Mar, 2010 1 commit
    • Davi Arnaut's avatar
      Bug#51770: UNINSTALL PLUGIN requires no privileges · 6de31427
      Davi Arnaut authored
      The problem was that UNINSTALL PLUGIN wasn't performing privilege
      checks before removing a plugin. Any user (including users without 
      any kind of privileges) could uninstall any plugin.
      
      The solution is to verify if the user has the DELETE privilege for
      the mysql.plugin table before uninstalling a plugin.
      
      mysql-test/r/plugin_not_embedded.result:
        Add test case result for Bug#51770.
      mysql-test/t/plugin_not_embedded-master.opt:
        Add example plugin path.
      mysql-test/t/plugin_not_embedded.test:
        Add test case for Bug#51770.
        Skip embedded as test relies on privileges checks.
      6de31427
  7. 12 Mar, 2010 1 commit
    • Sergey Glukhov's avatar
      Bug#41788 mysql_fetch_field returns org_table == table by a view · 8c3e381b
      Sergey Glukhov authored
      The problem is that Item_direct_view_ref which is inherited
      from Item_ident updates orig_table_name and table_name with
      the same values. The fix is introduction of new constructor
      into Item_ident and up which updates orig_table_name and
      table_name separately.
      
      
      mysql-test/r/metadata.result:
        test case
      mysql-test/t/metadata.test:
        test case
      sql/item.cc:
        new constructor which updates
        orig_table_name and table_name
        separately.
      sql/item.h:
        new constructor which updates
        orig_table_name and table_name
        separately.
      sql/table.cc:
        used new constructor
      8c3e381b
  8. 11 Mar, 2010 3 commits
  9. 10 Mar, 2010 10 commits
  10. 09 Mar, 2010 1 commit
    • Georgi Kodinov's avatar
      Bug #35250: readline check breaks when doing vpath build · 7668ca4d
      Georgi Kodinov authored
      MySQL uses two source layouts when building : the bzr 
      layout and the source package layout.
      The previous fix for bug 35250 contained 1 change that is
      valid for both modes and a number of changes that are valid
      only for the bzr source layout.
      The important thing was to fix the source package layout.
      And for this the change in configure.in was sufficient.
      It's not trivial (and not requested by this bug) to support 
      VPATH builds from the bzr trees.
      This is why the other changes are reverted and the change to
      fix the VPATH build for source distributions is left intact.
      7668ca4d
  11. 10 Mar, 2010 1 commit
  12. 09 Mar, 2010 5 commits
  13. 08 Mar, 2010 3 commits
  14. 09 Mar, 2010 3 commits
    • Davi Arnaut's avatar
      Bug#40277: SHOW CREATE VIEW returns invalid SQL · c383679b
      Davi Arnaut authored
      The problem is that not all column names retrieved from a SELECT
      statement can be used as view column names due to length and format
      restrictions. The server failed to properly check the conformity
      of those automatically generated column names before storing the
      final view definition on disk.
      
      Since columns retrieved from a SELECT statement can be anything
      ranging from functions to constants values of any format and length,
      the solution is to rewrite to a pre-defined format any names that
      are not acceptable as a view column name.
      
      The name is rewritten to "Name_exp_%u" where %u translates to the
      position of the column. To avoid this conversion scheme, define
      explict names for the view columns via the column_list clause.
      Also, aliases are now only generated for top level statements.
      
      mysql-test/include/view_alias.inc:
        Add test case for Bug#40277
      mysql-test/r/compare.result:
        Bug#40277: SHOW CREATE VIEW returns invalid SQL
      mysql-test/r/group_by.result:
        Bug#40277: SHOW CREATE VIEW returns invalid SQL
      mysql-test/r/ps.result:
        Bug#40277: SHOW CREATE VIEW returns invalid SQL
      mysql-test/r/subselect.result:
        Bug#40277: SHOW CREATE VIEW returns invalid SQL
      mysql-test/r/subselect3.result:
        Bug#40277: SHOW CREATE VIEW returns invalid SQL
      mysql-test/r/type_datetime.result:
        Bug#40277: SHOW CREATE VIEW returns invalid SQL
      mysql-test/r/union.result:
        Bug#40277: SHOW CREATE VIEW returns invalid SQL
      mysql-test/r/view.result:
        Add test case result for Bug#40277
      mysql-test/r/view_alias.result:
        Add test case result for Bug#40277
      mysql-test/t/view_alias.test:
        Add test case for Bug#40277
      sql/sql_view.cc:
        Check if auto generated column names are conforming. Also, the
        make_unique_view_field_name function is not used as it uses the
        original name to construct a new one, which does not work if the
        name is invalid.
      c383679b
    • Davi Arnaut's avatar
      Bug#51650: crash with user variables and triggers · 930069ef
      Davi Arnaut authored
      The problem was that bits of the destructive equality propagation
      optimization weren't being undone after the execution of a stored
      program. Modifications to the parse tree that are based on transient
      properties must be undone to enable the re-execution of stored
      programs.
      
      The solution is to cleanup any references to predicates generated
      by the equality propagation during the execution of a stored program.
      
      mysql-test/r/trigger.result:
        Add test case result for Bug#51650.
      mysql-test/t/trigger.test:
        Add test case for Bug#51650.
      sql/item.cc:
        Remove reference to a equality predicate.
      930069ef
    • Georgi Kodinov's avatar
  15. 08 Mar, 2010 2 commits
    • Georgi Kodinov's avatar
      null merge · 330c6721
      Georgi Kodinov authored
      330c6721
    • Georgi Kodinov's avatar
      Backport of the fix for bug #51357 to 5.0-bugteam.: · 8b955234
      Georgi Kodinov authored
      Spatial indexes were not checking for out-of-record condition in
      the handler next command when the previous command didn't found
      rows.
      
      Fixed by making the rtree index to check for end of rows condition
      before re-using the key from the previous search.
      
      Fixed another crash if the tree has changed since the last search.
      Added a test case for the other error.
      8b955234
  16. 04 Mar, 2010 1 commit
    • Georgi Kodinov's avatar
      Bug #51357: crash when using handler commands on spatial indexes · 823c3b06
      Georgi Kodinov authored
      Spatial indexes were not checking for out-of-record condition in
      the handler next command when the previous command didn't found
      rows.
      
      Fixed by making the rtree index to check for end of rows condition
      before re-using the key from the previous search.
      
      Fixed another crash if the tree has changed since the last search.
      Added a test case for the other error.
      823c3b06
  17. 05 Mar, 2010 3 commits
    • Gleb Shchepa's avatar
      Bug #39653: find_shortest_key in sql_select.cc does not · c69bad9f
      Gleb Shchepa authored
                  consider clustered primary keys
      
      Choosing a shortest index for the covering index scan,
      the optimizer ignored the fact, that the clustered primary
      key read involves whole table data.
      
      The find_shortest_key function has been modified to
      take into account that fact that a clustered PK has a
      longest key of possible covering indices.
      
      
      mysql-test/r/innodb_mysql.result:
        Test case for bug #39653.
      mysql-test/t/innodb_mysql.test:
        Test case for bug #39653.
      sql/sql_select.cc:
        Bug #39653: find_shortest_key in sql_select.cc does not
                    consider clustered primary keys
        
        The find_shortest_key function has been modified to
        take into account that fact that a clustered PK has a
        longest key of possible covering indices.
      c69bad9f
    • Tatiana A. Nurnberg's avatar
      auto-merge · d2728df4
      Tatiana A. Nurnberg authored
      d2728df4
    • Tatiana A. Nurnberg's avatar
      manual merge · eca67092
      Tatiana A. Nurnberg authored
      eca67092