1. 15 Aug, 2006 1 commit
    • unknown's avatar
      BUG#21077: Possible crash caused by invalid sequence of handler::* calls: ... · fa3f0bc1
      unknown authored
      BUG#21077: Possible crash caused by invalid sequence of handler::* calls:                                                
      The crash was caused by invalid sequence of handler::** calls:                                                           
        ha_smth->index_init();                                                                                                 
        ha_smth->index_next_same(); (2)                                                                                        
      (2) is an invalid call as it was not preceeded by any 'scan setup' call
      like index_first() or index_read(). The cause was that QUICK_SELECT::reset()
      didn't "fully reset" the quick select- current QUICK_RANGE wasn't forgotten,
      and quick select might attempt to continue reading the range, which would
      result in the above mentioned invalid sequence of handler calls.
      
      5.x versions are not affected by the bug - they already have the missing
      "range=NULL" clause.                                                    
                                                             
      
      
      mysql-test/r/innodb_mysql.result:
        Testcase for BUG#21077
      mysql-test/t/innodb_mysql.test:
        Testcase for BUG#21077
      sql/opt_range.h:
        BUG#21077: Possible crash caused by invalid sequence of handler::* calls:                                              
         - Make QUICK_SELECT::reset() really reset the quick select
      fa3f0bc1
  2. 02 Aug, 2006 1 commit
    • unknown's avatar
      Merge moonbone.local:/work/tmp_merge-4.1 · 02c4142f
      unknown authored
      into  moonbone.local:/work/tmp_merge-4.1-opt-mysql
      
      
      sql/item_strfunc.cc:
        Auto merged
      sql/mysql_priv.h:
        Auto merged
      sql/sql_parse.cc:
        Auto merged
      sql/sql_select.cc:
        Auto merged
      02c4142f
  3. 29 Jul, 2006 2 commits
  4. 28 Jul, 2006 4 commits
    • unknown's avatar
      Merge mysql.com:/Users/kent/mysql/bk/mysql-4.0 · 608d7e92
      unknown authored
      into  mysql.com:/Users/kent/mysql/bk/mysql-4.1
      
      
      configure.in:
        Auto merged
      scripts/make_binary_distribution.sh:
        Auto merged
      support-files/mysql.spec.sh:
        SCCS merged
      608d7e92
    • unknown's avatar
      Makefile.am, configure.in: · 4f0c394c
      unknown authored
        Man page for mysqld command move to section 8 (bug#21220)
      
      
      configure.in:
        Man page for mysqld command move to section 8 (bug#21220)
      man/Makefile.am:
        Man page for mysqld command move to section 8 (bug#21220)
      4f0c394c
    • unknown's avatar
      make_binary_distribution.sh: · 3423142a
      unknown authored
        Man page for "mysqld" command move to section 8 (bug#21220)
      
      
      scripts/make_binary_distribution.sh:
        Man page for "mysqld" command move to section 8 (bug#21220)
      3423142a
    • unknown's avatar
      mysql.spec.sh: · 00c97fe0
      unknown authored
        Man page for "mysqld" command move to section 8 (bug#21220)
      
      
      support-files/mysql.spec.sh:
        Man page for "mysqld" command move to section 8 (bug#21220)
      00c97fe0
  5. 27 Jul, 2006 1 commit
  6. 26 Jul, 2006 5 commits
    • unknown's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-4.1-opt · 18723dc9
      unknown authored
      into  rakia.(none):/home/kgeorge/mysql/autopush/B20792-4.1-opt
      
      
      sql/sql_select.cc:
        Auto merged
      18723dc9
    • unknown's avatar
      * Bug #20792: Incorrect results from aggregate subquery · 1f318e3c
      unknown authored
      When processing aggregate functions all tables values are reset
      to NULLs at the end of each group. 
      When doing that if there are no rows found for a group
      the const tables must not be reset as they are not recalculated 
      by do_select()/sub_select() for each group.
      
      
      mysql-test/r/subselect2.result:
        * Bug #20792: Incorrect results from aggregate subquery
         - test suite for the bug. This is dependent on InnoDB despite
           the fact that the bug and the fix are not InnoDB specific.
           This is because of the table flag HA_NOT_EXACT_COUNT.
           When this flag is off (as in MyISAM) both t2 and t3 become of
           join type 'system' as they are estimated to have 1 record and
           and this statistics can be trusted (according to the absence of
           HA_NOT_EXACT_COUNT).
      mysql-test/t/subselect2.test:
        * Bug #20792: Incorrect results from aggregate subquery
         - test suite for the bug
      sql/sql_select.cc:
        * Bug #20792: Incorrect results from aggregate subquery
         - when clearing results if there are not rows found for group
           the const tables must not be reset as they are not recalculated
           for each group.
      1f318e3c
    • unknown's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-4.1-opt · 7a12b237
      unknown authored
      into  rakia.(none):/home/kgeorge/mysql/autopush/B21019-4.1-opt
      
      
      sql/sql_select.cc:
        Auto merged
      mysql-test/r/select.result:
        SCCS merged
      mysql-test/t/select.test:
        SCCS merged
      7a12b237
    • unknown's avatar
      BUG#21206: memory corruption when too many cursors are opened at once · 3fcef0c7
      unknown authored
      Too many cursors (more than 1024) could lead to memory corruption.
      This affects both, stored routines and C API cursors, and the
      threshold is per-server, not per-connection.  Similarly, the
      corruption could happen when the server was under heavy load
      (executing more than 1024 simultaneous complex queries), and this is
      the reason why this bug is fixed in 4.1, which doesn't support
      cursors.
      
      The corruption was caused by a bug in the temporary tables code, when
      an attempt to create a table could lead to a write beyond allocated
      space.  Note, that only internal tables were affected (the tables
      created internally by the server to resolve the query), not tables
      created with CREATE TEMPORARY TABLE.  Another pre-condition for the
      bug is TRUE value of --temp-pool startup option, which, however, is a
      default.
      
      The cause of a bug was that random memory was overwritten in
      bitmap_set_next() due to out-of-bound memory access.
      
      
      mysys/my_bitmap.c:
        Local 'bitmap_size' is measured in bytes, no need to multiply it by 8.
      sql/sql_select.cc:
        Clear the temp_pool_slot bit only if we have set it previously.
      3fcef0c7
    • unknown's avatar
      Bug #21019: First result of SELECT COUNT(*) different than consecutive runs · 035ddb82
      unknown authored
       When optimizing conditions like 'a = <some_val> OR a IS NULL' so that they're
       united into a single condition on the key and checked together the server must 
       check which value is the NULL value in a correct way : not only using ->is_null 
       but also check if the expression doesn't depend on any tables referenced in the 
       current statement. 
       This additional check must be performed because that optimization takes place 
       before the actual execution of the statement, so if the field was initialized 
       to NULL from a previous statement the optimization would be applied incorrectly.
      
      
      mysql-test/r/select.result:
        Bug #21019: First result of SELECT COUNT(*) different than consecutive runs
         - test case
      mysql-test/t/select.test:
        Bug #21019: First result of SELECT COUNT(*) different than consecutive runs
         - test case. 
           Note that ALTER TABLE is important here : it happens to
           leave the Field instance for t1.b set to NULL, witch is vital for
           demonstrating the problem fixed by this changeset.
      sql/sql_select.cc:
        Bug #21019: First result of SELECT COUNT(*) different than consecutive runs
         - check whether a value is null taking into account its table dependency.
      035ddb82
  7. 25 Jul, 2006 2 commits
    • unknown's avatar
      Merge tkatchaounov@bk-internal.mysql.com:/home/bk/mysql-4.1-opt · eef7e4d0
      unknown authored
      into  lamia.home:/home/tkatchaounov/autopush/4.1-bug-20954
      
      
      mysql-test/r/subselect.result:
        Auto merged
      eef7e4d0
    • unknown's avatar
      Fix for BUG#20954: avg(keyval) retuns 0.38 but max(keyval) returns an empty set · 996cdfd3
      unknown authored
      The problem was in that opt_sum_query() replaced MIN/MAX functions
      with the corresponding constant found in a key, but due to imprecise
      representation of float numbers, when evaluating the where clause,
      this comparison failed.
      
      When MIN/MAX optimization detects that all tables can be removed,
      also remove all conjuncts in a where clause that refer to these
      tables. As a result of this fix, these conditions are not evaluated
      twice, and in the case of float number comparisons we do not discard
      result rows due to imprecise float representation.
      
      As a side-effect this fix also corrects an unnoticed problem in
      bug 12882.
      
      
      mysql-test/r/func_group.result:
        BUG#20954 - test result adjustment.
        Adjusted the test result of bug 12882 which was not preperly fixed.
        The current patch corrects the problem that was fully corrected by the
        patch for 12882.
        
        The problem was that opt_sum_query() indicated that the optimizer may
        remove all tables because all MIN/MAX/COUNT functions are constants,
        but this lead to an empty result instead of NULL because the WHERE
        clause was still evaluated.
        
        The current fix removes all conjuncts in the where clause that
        reference the removed tables, and thus corrects the problem.
      mysql-test/r/select.result:
        BUG#20954 - added test
      mysql-test/r/subselect.result:
        BUG#20954 - test result adjustment.
        
        The fix removes those conditions in a where clause that refer to
        tables optimized away by MIN/MAX optimization (opt_sum_query()).
      mysql-test/t/select.test:
        BUG#20954 - added test
      sql/sql_select.cc:
        Fix for BUG#20954: avg(keyval) retuns 0.38 but max(keyval) returns an empty set
        
        When MIN/MAX optimization detects that all tables can be removed,
        also remove all conjuncts in a where clause that refer to these
        tables. As a result of this fix, these conditions are not evaluated
        twice, and in the case of float number comparisons we do not discard
        result rows due to imprecise float representation.
        
        As a side-effect this fix also corrects an unnoticed problem in
        bug 12882.
      996cdfd3
  8. 24 Jul, 2006 5 commits
  9. 23 Jul, 2006 1 commit
  10. 21 Jul, 2006 1 commit
  11. 20 Jul, 2006 2 commits
    • unknown's avatar
      BUG#20975: Incorrect query result for NOT (subquery): · 1b03ac4c
      unknown authored
        Add implementations of Item_func_{nop,not}_all::neg_transformer
      
      
      mysql-test/r/subselect.result:
        BUG#20975: testcase
      mysql-test/t/subselect.test:
        BUG#20975: testcase
      sql/mysql_priv.h:
        Make chooser_compare_func_creator visible in item.h
      1b03ac4c
    • unknown's avatar
      Merge bk@192.168.21.1:mysql-4.1 · 6bbbf46f
      unknown authored
      into  mysql.com:/home/hf/work/mysql-4.1.19983
      
      
      libmysqld/lib_sql.cc:
        Auto merged
      tests/mysql_client_test.c:
        Auto merged
      6bbbf46f
  12. 19 Jul, 2006 3 commits
    • unknown's avatar
      Fixed bug #17526: incorrect print method · fbf07364
      unknown authored
      for class Item_func_trim. 
      For 4.1 it caused wrong output for EXPLAIN EXTENDED commands
      if expressions with the TRIM function of two arguments were used.
      For 5.0 it caused an error message when trying to select
      from a view with the TRIM function of two arguments.
      This unexpected error message was due to the fact that the
      print method for the class Item_func_trim was inherited from
      the class Item_func. Yet the TRIM function does not take a list
      of its arguments. Rather it takes the arguments in the form:
        [{BOTH | LEADING | TRAILING} [remstr] FROM] str) |
        [remstr FROM] str
      
      
      mysql-test/r/func_str.result:
        Added a test case for bug #17526: uncorrect print method
        for class Item_func_trim.
      mysql-test/t/func_str.test:
        Added a test case for bug #17526: incorrect print method
        for class Item_func_trim.
      sql/item_strfunc.cc:
        Fixed bug #17526: incorrect print method
        for class Item_func_trim.
            
        Added an implementation for the virtual function print
        in the class Item_func_trim.
        The implementation takes into account the fact the TRIM
        function takes the arguments in the following forms:
          [{BOTH | LEADING | TRAILING} [remstr] FROM] str) |
          [remstr FROM] str
      sql/item_strfunc.h:
        Fixed bug #17526: incorrect print method
        for class Item_func_trim.
            
        Added an implementation for the virtual function print
        in the class Item_func_trim.
        Declared a virtual method to return the mode of the TRIM 
        function: LEADING, TRAILING or BOTH.
        Added implementations of this method for Item_func_trim and
        its descendants Item_func_ltrim and Item_func_rtrim.
      fbf07364
    • unknown's avatar
      Bug #21135 Crash in test "func_time" · 0794dc71
      unknown authored
       - backport patch from 5.0
       - "table" can be NULL in temporary fields used for type conversion
      
      
      sql/field.cc:
        table can be NULL in temporary fields used for type conversion.
        Store value in field as if db_low_byte_first was set.
      sql/field.h:
        table can be NULL in temporary fields used for type conversion.
        Store value in field as if db_low_byte_first was set.
      0794dc71
    • unknown's avatar
      mysql.spec.sh: · eff4efa8
      unknown authored
        Added new "mysql_explain_log" man page
        Added missing install of "myisam_ftdump" man page
        Added missing install of "mysqlman" man page
      
      
      support-files/mysql.spec.sh:
        Added new "mysql_explain_log" man page
        Added missing install of "myisam_ftdump" man page
        Added missing install of "mysqlman" man page
      eff4efa8
  13. 18 Jul, 2006 3 commits
    • unknown's avatar
      Merge moonbone.local:/home/evgen/bk-trees/mysql-4.1 · 1149cf99
      unknown authored
      into  moonbone.local:/work/tmp_merge-4.1-opt-mysql
      
      
      mysql-test/r/date_formats.result:
        Auto merged
      mysql-test/t/date_formats.test:
        Auto merged
      sql/item_strfunc.cc:
        Auto merged
      sql/sql_class.cc:
        Auto merged
      1149cf99
    • unknown's avatar
      Merge moonbone.local:/work/mysql-4.1 · 5ac65c9b
      unknown authored
      into  moonbone.local:/work/tmp_merge-4.1-opt-mysql
      
      
      mysql-test/r/date_formats.result:
        Auto merged
      mysql-test/t/date_formats.test:
        Auto merged
      5ac65c9b
    • unknown's avatar
      Backporting Kostja's changes made for 5.0 into 4.1. · 46be2df4
      unknown authored
      Please use "ul" when merging this changeset to 5.0.
      
      
      sql/item_timefunc.cc:
        Fix a valgrind warning in type_date test.
      sql/sql_locale.cc:
        Fix a Windows build failure:  "false" -> FALSE
      46be2df4
  14. 17 Jul, 2006 2 commits
    • unknown's avatar
      Changes to make "sql/sql_locale.cc" compile + link on Windows: · 1c410132
      unknown authored
      1) When initializing a boolean variable, do not use string representations '"false"' and '"true"' 
          but rather the boolean values 'false' and 'true'.
      2) Add the module to the various Windows description files.
      
      
      VC++Files/libmysqld/libmysqld.dsp:
        Add "sql/sql_locale.cpp" with similar settings as the other files.
      VC++Files/libmysqld/libmysqld.vcproj:
        Add "sql/sql_locale.cpp" with similar settings as the other files.
      VC++Files/libmysqld/libmysqld_ia64.dsp:
        Add "sql/sql_locale.cpp" with similar settings as the other files.
      VC++Files/mysqldemb/mysqldemb.dsp:
        Add "sql/sql_locale.cpp" with similar settings as the other files.
      VC++Files/mysqldemb/mysqldemb.vcproj:
        Add "sql/sql_locale.cpp" with similar settings as the other files.
      VC++Files/mysqldemb/mysqldemb_ia64.dsp:
        Add "sql/sql_locale.cpp" with similar settings as the other files.
      VC++Files/sql/mysqld.dsp:
        Add "sql/sql_locale.cpp" with similar settings as the other files.
      VC++Files/sql/mysqld.vcproj:
        Add "sql/sql_locale.cpp" with similar settings as the other files.
      VC++Files/sql/mysqld_ia64.dsp:
        Add "sql/sql_locale.cpp" with similar settings as the other files.
      VC++Files/sql/mysqldmax.dsp:
        Add "sql/sql_locale.cpp" with similar settings as the other files.
      VC++Files/sql/mysqldmax_ia64.dsp:
        Add "sql/sql_locale.cpp" with similar settings as the other files.
      sql/sql_locale.cc:
        When initializing a boolean variable, do not use stringrepresentations '"false"' and '"true"' 
        but rather the boolean values 'false' and 'true'.
      1c410132
    • unknown's avatar
      strings/strtod.c : Ensure the definition of "EOVERFLOW" is available. · a9fb36e2
      unknown authored
      In 5.0, this is already solved, so that is a null-merge ("ul").
      
      
      strings/strtod.c:
        This file needs the definition of "EOVERFLOW",
        which is on some platforms (Windows, OpenBSD) provided only by "my_base.h".
        As this in turn includes "my_global.h", the include file name can be changed.
      a9fb36e2
  15. 15 Jul, 2006 1 commit
  16. 14 Jul, 2006 5 commits
  17. 13 Jul, 2006 1 commit