1. 29 Sep, 2010 1 commit
  2. 23 Sep, 2010 1 commit
    • Sergey Glukhov's avatar
      Bug#54494 crash with explain extended and prepared statements · b76277fc
      Sergey Glukhov authored
      In case of outer join and emtpy WHERE conditon
      'always true' condition is created for WHERE clasue.
      Later in mysql_select() original SELECT_LEX WHERE
      condition is overwritten with created cond.
      However SELECT_LEX condition is also used as inital
      condition in mysql_select()->JOIN::prepare().
      On second execution of PS modified SELECT_LEX condition
      is taken and it leads to crash.
      The fix is to restore original SELECT_LEX condition
      (set to NULL if original cond is NULL) in
       reinit_stmt_before_use().
      HAVING clause is fixed too for safety reason
      (no test case as I did not manage to think out
       appropriate example).
      
      
      mysql-test/r/ps.result:
        test case
      mysql-test/t/ps.test:
        test case
      sql/sql_prepare.cc:
        restore original SELECT_LEX condition
        (set to NULL if original cond is NULL) in
         reinit_stmt_before_use()
      b76277fc
  3. 13 Sep, 2010 1 commit
  4. 10 Sep, 2010 2 commits
  5. 09 Sep, 2010 2 commits
    • Ramil Kalimullin's avatar
      Automerge. · 71d9ba9c
      Ramil Kalimullin authored
      71d9ba9c
    • Ramil Kalimullin's avatar
      Fix for bug#56679: gis.test: valgrind error · 762c7ca4
      Ramil Kalimullin authored
      Item_func_spatial_collection::fix_length_and_dec()
      changed to use argument's print() method to print
      the ER_ILLEGAL_VALUE_FOR_TYPE error.
      
      
      mysql-test/r/gis.result:
        Fix for bug#56679: gis.test: valgrind error
          - test result adjusted.
      sql/item_geofunc.h:
        Fix for bug#56679: gis.test: valgrind error
          - use argument's print() method instead of improper val_str()
        call in the Item_func_spatial_collection::fix_length_and_dec(), as
        it's applicable only for constant items.
      762c7ca4
  6. 08 Sep, 2010 1 commit
  7. 07 Sep, 2010 4 commits
  8. 06 Sep, 2010 1 commit
  9. 02 Sep, 2010 2 commits
  10. 01 Sep, 2010 2 commits
  11. 31 Aug, 2010 2 commits
  12. 30 Aug, 2010 8 commits
  13. 28 Aug, 2010 1 commit
  14. 27 Aug, 2010 6 commits
    • Marc Alff's avatar
      local merge · a5aad2e7
      Marc Alff authored
      a5aad2e7
    • Sergey Vojtovich's avatar
      Merge 5.1-bugteam to 5.5-merge. · 0d21bbe3
      Sergey Vojtovich authored
      0d21bbe3
    • Alexey Kopytov's avatar
      Bug #54465: assert: field_types == 0 || field_types[field_pos] · d7d0f639
      Alexey Kopytov authored
                  == MYSQL_TYPE_LONGLONG
      
      A MIN/MAX() function with a subquery as its argument could lead
      to a debug assertion on debug builds or wrong data on release
      ones.
      
      The problem was a combination of the following factors:
      
      - Item_sum_hybrid::fix_fields() might use the argument
      (args[0]) to calculate 'hybrid_field_type' which was later used
      to decide how the data should be sent to the client.
      
      - Item_sum::make_field() might use the argument again to
      calculate the field's type when sending result set metadata to
      the client.
      
      - The argument could be changed in between these two calls via
        Item::set_arg() leading to inconsistent metadata being
        reported.
      
      Here is what was happening for the bug's test case:
      
      1. Item_sum_hybrid::fix_fields() calculates hybrid_field_type
      as MYSQL_TYPE_LONGLONG based on args[0] which is an
      Item::SUBSELECT_ITEM at that time.
      
      2. A temporary table is created to execute the
      query. create_tmp_field_from_item() creates a Field_long object
      according to the subselect's max_length.
      
      3. The subselect item in Item_sum_hybrid is replaced by the
      Item_field object referencing the newly created Field_long.
      
      4. Item_sum::make_field() rightfully returns the
      MYSQL_TYPE_LONG type when calculating the result set metadata.
      
      5. When sending the actual data, Item::send() relies on the
      virtual field_type() function which in our case returns
      previously calculated hybrid_field_type == MYSQL_TYPE_LONGLONG.
      
      It looks like the only solution is to never refer to the
      argument's metadata after the result metadata has been
      calculated in fix_fields(), since the argument itself may be
      different by then. In this sense, Item_sum::make_field() should
      never be used, because it may rely on the argument's metadata
      and is only called after fix_fields(). The "default"
      implementation in Item::make_field() should be used instead as
      it relies only on field_type(), but not on the argument's type.
      
      Fixed by removing Item_sum::make_field() so that the superclass
      implementation Item::make_field() is always used.
      
      mysql-test/r/func_group.result:
        Added a test case for bug #54465.
      mysql-test/t/func_group.test:
        Added a test case for bug #54465.
      sql/item_sum.cc:
        Removed Item_sum::make_field() so that the superclass
        implementation Item::make_field() is always used.
      sql/item_sum.h:
        Removed Item_sum::make_field() so that the superclass
        implementation Item::make_field() is always used.
      d7d0f639
    • Ramil Kalimullin's avatar
      Fix for bug #54253: memory leak when using I_S plugins w/o deinit method · 7ebd2cd7
      Ramil Kalimullin authored
      Free memory allocated by the server for all plugins,
      with or without deinit() method.
      
      
      7ebd2cd7
    • Sergey Vojtovich's avatar
      7e4625d1
    • Sergey Vojtovich's avatar
      BUG#52821 - plugin_ftparser.h and plugin_audit.h are · 8c05b085
      Sergey Vojtovich authored
                  not tested by ABI check
      
      plugin_audit.h and plugin_ftparser.h are now subject
      for ABI check. plugin.h is now tested implicitly.
      
      Also fixed broken ABI check cmake rules.
      
      Makefile.am:
        plugin_audit.h and plugin_ftparser.h are now subject
        for ABI check. plugin.h is now tested implicitly.
      cmake/abi_check.cmake:
        plugin_audit.h and plugin_ftparser.h are now subject
        for ABI check. plugin.h is now tested implicitly.
        
        Also fixed broken ABI check rules: -DMYSQL_ABI_CHECK is
        compiler (not cmake) definition, incorrect definitions
        were passed to do_abi_check.cmake for abi_check_all rule.
      cmake/do_abi_check.cmake:
        Inform sources that we do ABI check.
      include/mysql/plugin.h.pp:
        plugin.h is now tested implicitly.
      include/mysql/plugin_audit.h.pp:
        plugin_audit.h is now subject for ABI check.
      include/mysql/plugin_ftparser.h.pp:
        plugin_ftparser.h is now subject for ABI check.
      8c05b085
  15. 26 Aug, 2010 6 commits