1. 26 Jan, 2007 1 commit
    • unknown's avatar
      Fixed bug #24653. · da561a80
      unknown authored
      The bug report has demonstrated the following two problems.
      1. If an ORDER/GROUP BY list includes a constant expression being 
      optimized away and, at the same time, containing single-row
      subselects that return more that one row, no error is reported.
      Strictly speaking the standard allows to ignore error in this case.
      Yet, now a corresponding fatal error is reported in this case.
      2. If a query requires sorting by expressions containing single-row
      subselects that, however, return more than one row, then the execution
      of the query may cause a server crash. 
      To fix this some code has been added that blocks execution of a subselect
      item in case of a fatal error in the method Item_subselect::exec.
      
      
      mysql-test/r/subselect.result:
        Added a test cases for bug #24653.
      mysql-test/t/subselect.test:
        Added a test cases for bug #24653.
      sql/filesort.cc:
        Fixed bug #24653.
        Added a check for fatal error after reading the next row from the table
        in the function find_all_keys.
      sql/item.cc:
        Fixed bug #24653.
        Down-ported calculation of the attribute with_subselect of for Item objects.
      sql/item.h:
        Fixed bug #24653.
        Down-ported calculation of the attribute with_subselect of for Item objects.
      sql/item_cmpfunc.cc:
        Fixed bug #24653.
        Down-ported calculation of the attribute with_subselect of for Item objects.
      sql/item_cmpfunc.h:
        Fixed bug #24653.
        Down-ported calculation of the attribute with_subselect of for Item objects.
      sql/item_func.cc:
        Fixed bug #24653.
        Down-ported calculation of the attribute with_subselect of for Item objects.
      sql/item_subselect.cc:
        Fixed bug #24653.
        Added a check for fatal error in the method Item_subselect::exec
        to block evaluation of subselects in erroneous situations.
        Down-ported calculation of the attribute with_subselect of for Item objects.
      sql/sql_select.cc:
        Fixed bug #24653.
        Added a check to verify that any constant expression used
        in ORDER BY and/or GROUP BY lists which is optimized away
        does not contain subselects returning more than one row.
        If it does a fatal error is reported.
      da561a80
  2. 22 Jan, 2007 1 commit
    • unknown's avatar
      Fixed bug #25637: LEFT JOIN with BOOLEAN FULLTEXT loses left table matches. · 6d04643a
      unknown authored
      The bug is actually a duplicate of the bug 14708.
      Down-ported the fix for 14708 from 5.0.  
      Merged the test case for bug 14708 from 5.0.
      
      
      mysql-test/r/fulltext_left_join.result:
        Added a test case for bug #25637 (duplicate .of bug 14708).
        Merged the test case for bug 14708 from 5.0.
      mysql-test/t/fulltext_left_join.test:
        Added a test case for bug #25637 (duplicate of bug 14708).
        Merged the test case for bug 14708 from 5.0.
      sql/item_func.cc:
        Fixed bug #25637: LEFT JOIN with BOOLEAN FULLTEXT loses left table matches.
        The bug is actually a duplicate of the bug 14708.
        Down-ported the fix for 14708 from 5.0.
      6d04643a
  3. 13 Jan, 2007 1 commit
    • unknown's avatar
      Fixed bug #24776: an assertion abort in handler::ha_index_init · b9dc0243
      unknown authored
      for queries using 'range checked for each record'.
      The problem was fixed in 5.0 by the patch for bug 12291.
      This patch down-ported the corresponding code from 5.0 into 
      QUICK_SELECT::init() and added a new test case. 
      
      
      mysql-test/r/range.result:
        Added a test case for bug #24776.
      mysql-test/t/range.test:
        Added a test case for bug #24776.
      sql/opt_range.h:
        Fixed bug #24776: an assertion abort in handler::ha_index_init
        for queries using 'range checked for each record'.
        The problem was fixed in 5.0 by the patch for bug 12291.
        The patch for 4.1 down-ported the corresponding code from 5.0 into 
        QUICK_SELECT::init().
      b9dc0243
  4. 11 Jan, 2007 3 commits
    • unknown's avatar
      Bug#23409: Arguments of the ENCODE() and the DECODE() functions were not printed · 52c100ae
      unknown authored
      correctly.
      
      The Item_func::print method was used to print the Item_func_encode and the
      Item_func_decode objects. The last argument to ENCODE and DECODE functions
      is a plain C string and thus Item_func::print wasn't able to print it.
      
      The print() method is added to the Item_func_encode class. It correctly
      prints the Item_func_encode and the Item_func_decode objects.
      
      
      mysql-test/t/func_str.test:
        Added a test case for bug#23409: Arguments of the ENCODE() and the
        > DECODE() functionswere not printed correctly.
      mysql-test/r/func_str.result:
        Added a test case for bug#23409: Arguments of the ENCODE() and the DECODE() functions were not printed correctly.
      sql/item_strfunc.h:
        Bug#23409: Arguments of the ENCODE() and the DECODE() functions were not printed correctly.
        The print() method is added to the Item_func_encode class.
      sql/item_strfunc.cc:
        Bug#23409: Arguments of the ENCODE() and the DECODE() functions were not printed correctly.
        The print() method is added to the Item_func_encode class. It correctly
        prints the Item_func_encode and the Item_func_decode objects.
      52c100ae
    • unknown's avatar
      Merge fix for bug#17711 · 0fdd3dce
      unknown authored
      0fdd3dce
    • unknown's avatar
      Bug#17711: DELETE doesn't use index when ORDER BY, LIMIT and non-restricting · 66179638
      unknown authored
      WHERE is present.
      
      If a DELETE statement with ORDER BY and LIMIT contains a WHERE clause
      with conditions that for sure cannot be used for index access (like in
      WHERE @var:= field) the execution always follows the filesort path.    
      It happens currently even when for the above case there is an index that
      can be used to speedup sorting by the order by list.
      
      Now if a DELETE statement with ORDER BY and LIMIT contains such WHERE
      clause conditions that cannot be used to build any quick select then
      the mysql_delete() tries to use an index like there is no WHERE clause at all.
      
      
      mysql-test/t/delete.test:
        Added a test case for bug#17711: DELETE doesn't use index when ORDER BY, LIMIT and non-restricting
        WHERE is present.
      mysql-test/r/delete.result:
        Added a test case for bug#17711: DELETE doesn't use index when ORDER BY, LIMIT and non-restricting WHERE is present.
      sql/sql_delete.cc:
        Bug#17711: DELETE doesn't use index when ORDER BY, LIMIT and non-restricting WHERE is present.
        Now if a DELETE statement with ORDER BY and LIMIT contains such WHERE
        clause conditions that cannot be used to build any quick select then
        the mysql_delete() tries to use an index like there is no WHERE clause at all.
      66179638
  5. 10 Jan, 2007 3 commits
    • unknown's avatar
      Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-4.1-opt · 10698df6
      unknown authored
      into  olga.mysql.com:/home/igor/mysql-4.1-opt
      
      
      10698df6
    • unknown's avatar
      Fix for bug#20867 InnoDB Bug - create temporary table+crash => mysqld needs to clean up · ac71a8fa
      unknown authored
      2nd version
      During tmp tables cleanup we get the handler for temporary table
      and delete table using handler method.
      
      
      sql/mysql_priv.h:
        added function prototype
      sql/mysqld.cc:
        added call of mysql_rm_tmp_tables() function
      sql/sql_base.cc:
        mysql_rm_tmp_tables()
        -removed from table_cache_init
        -During tmp tables cleanup we get the handler for temporary table
         and delete table using handler method. 
         it allows to remove orphan records from data dictionary(InnoDB)
      ac71a8fa
    • unknown's avatar
      Fixed bug #25427. · 6fc17dab
      unknown authored
      In the method Item_field::fix_fields we try to resolve the name of
      the field against the names of the aliases that occur in the select
      list. This is done by a call of the function find_item_in_list.
      When this function finds several occurrences of the field name
      it sends an error message to the error queue and returns 0.
      Yet the code did not take into account that find_item_in_list
      could return 0 and tried to dereference the returned value.
      
      
      mysql-test/r/order_by.result:
        Added a test case for bug #25427.
      mysql-test/t/order_by.test:
        Added a test case for bug #25427.
      sql/item.cc:
        Fixed bug #25427.
        In the method Item_field::fix_fields we try to resolve the name of
        the field against the names of the aliases that occur in the select
        list. This is done by a call of the function find_item_in_list.
        When this function finds several occurrences of the field name 
        it sends an error message to the error queue and returns 0.
        Yet the code did not take into account that find_item_in_list
        could return 0 and tried to dereference the returned value.
      6fc17dab
  6. 03 Jan, 2007 1 commit
  7. 02 Jan, 2007 4 commits
  8. 31 Dec, 2006 1 commit
  9. 25 Dec, 2006 1 commit
  10. 20 Dec, 2006 2 commits
    • unknown's avatar
      Bug#25213 - Compiler warnings in MyISAM code · fc9642b4
      unknown authored
      Compiler warnings due to non-matching conversion
      specifications in format strings in DBUG_PRINT calls,
      due to non-used parameters (in non-debug mode), and
      due to seemingly uninitialized variables.
      
      Initialized variables, declared parameters unused, and
      casted DBUG_PRINT arguments to get rid of warnings.
      
      
      myisam/mi_range.c:
        Bug#25213 - Compiler warnings in MyISAM code
        Initialized a variable to get rid of a compiler warning.
      myisam/mi_test1.c:
        Bug#25213 - Compiler warnings in MyISAM code
        Declared an parameter unused to get rid of warnings.
      myisam/mi_write.c:
        Bug#25213 - Compiler warnings in MyISAM code
        Initialized a variable to get rid of a compiler warning.
        Casted arguments to DBUG_PRINT to match them with their
        format string conversion specification.
      myisam/rt_split.c:
        Bug#25213 - Compiler warnings in MyISAM code
        Initialized variables to get rid of compiler warnings.
      fc9642b4
    • unknown's avatar
      Bug#25208 - Warnings in mi_packrec.c · 40b23b3b
      unknown authored
      Compiler warnings due to non-matching conversion
      specifications in format strings in DBUG_PRINT calls.
      
      Fixed DBUG_PRINT format specifiactions.
      
      
      myisam/mi_packrec.c:
        Bug#25208 - Warnings in mi_packrec.c
        Fixed DBUG_PRINT format specifiactions.
      40b23b3b
  11. 19 Dec, 2006 1 commit
  12. 14 Dec, 2006 3 commits
  13. 13 Dec, 2006 1 commit
  14. 12 Dec, 2006 1 commit
    • unknown's avatar
      Fixed bug #24670: optimizations that are legal only for subqueries without tables · 33446269
      unknown authored
      and no WHERE condition were applied for any subquery without tables.
      
      
      
      mysql-test/r/subselect.result:
        Added a test case for bug #24670.
      mysql-test/t/subselect.test:
        Added a test case for bug #24670.
      sql/item_subselect.cc:
        Fixed bug #24670: optimizations that are legal only for subqueries without tables
        and no WHERE condition were applied for any subquery without tables.
        
        Removed an assertion that caused an abort for subqueries without tables and no 
        WHERE condition. 
        Blocked substitution of a single-row subquery without tables for the constant 
        row from its select list when the subquery contained a WHERE condition.
        This optimization is valid only for subquries without tables with no conditions.
        Any subquery without tables with WHERE clause returns NULL if the WHERE condition
        is FALSE. Erroneously it was always considered as non-nullable that could trigger 
        another optimization concerning IS NULL predicates which is applicable only for 
        non-nullable expressions and ultimately led to a wrong result returned by the outer
        query.
        Added a proper implementation of the virtual method may_be_null for class 
        subselect_single_select_engine.
      sql/item_subselect.h:
        Fixed bug #24670: optimizations that are legal only for subqueries without tables
        and no WHERE condition were applied for any subquery without tables.
        Made method may_by_null for class subselect_engine vvirtual.
      33446269
  15. 11 Dec, 2006 2 commits
  16. 08 Dec, 2006 2 commits
  17. 07 Dec, 2006 3 commits
    • unknown's avatar
      do not autorelease build ids when a child of mysql-test-run.pl dies · 60b3a86a
      unknown authored
      
      mysql-test/lib/mtr_unique.pl:
        do not autorelease build ids when a child dies
      60b3a86a
    • unknown's avatar
      BUG#23404 - ROW_FORMAT=FIXED option is lost is an index is added to the · 1cb8e4e9
      unknown authored
                  table
      
      ROW_FORMAT option is lost during CREATE/DROP INDEX.
      
      This fix forces CREATE/DROP INDEX to retain ROW_FORMAT by instructing
      mysql_alter_table() that ROW_FORMAT is not used during creating/dropping
      indexes.
      
      
      mysql-test/r/alter_table.result:
        A test case for bug#23404.
      mysql-test/t/alter_table.test:
        A test case for bug#23404.
      sql/sql_parse.cc:
        CREATE/DROP INDEX must not change ROW_FORMAT. Setting create_info.row_type
        to ROW_TYPE_NOT_USED informs mysql_alter_table that ROW_FORMAT was not
        used during alteration, and thus must be retained.
      1cb8e4e9
    • unknown's avatar
      BUG#24780 use --sysconfdir in scripts · c29d22c9
      unknown authored
      
      scripts/Makefile.am:
        pass --sysconfdir to scripts
      scripts/mysqlaccess.sh:
        use --sysconfdir instead of hardcoded /etc
      scripts/mysqld_multi.sh:
        use --sysconfdir instead of hardcoded /etc
      c29d22c9
  18. 06 Dec, 2006 2 commits
    • unknown's avatar
      bug #22372 · 63fce3a2
      unknown authored
      datafile added to be used in gis.test
      
      
      mysql-test/std_data/bad_gis_data.dat:
        New BitKeeper file ``mysql-test/std_data/bad_gis_data.dat''
      63fce3a2
    • unknown's avatar
      bug #22372 (LOAD DATA crashes the table with the geometry field) · fa115a0f
      unknown authored
      The problem is that the GEOMETRY NOT NULL can't automatically set
      any value as a default one. We always tried to complete LOAD DATA
      command even if there's not enough data in file. That doesn't work
      for GEOMETRY NOT NULL. Now Field_*::reset() returns an error sign
      and it's checked in mysql_load()
      
      
      mysql-test/r/gis.result:
        test result
      mysql-test/t/gis.test:
        testcase
      sql/field.cc:
        reset() now returns error sign
      sql/field.h:
        Field_*::reset() now returns error sign if the field can't be reset
      sql/sql_load.cc:
        check if field can't be reset and return error if it's so
      fa115a0f
  19. 05 Dec, 2006 6 commits
  20. 04 Dec, 2006 1 commit