1. 11 Jan, 2007 1 commit
    • 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
  2. 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
  3. 11 Dec, 2006 1 commit
  4. 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
  5. 05 Dec, 2006 6 commits
  6. 04 Dec, 2006 4 commits
  7. 01 Dec, 2006 2 commits
  8. 30 Nov, 2006 4 commits
  9. 29 Nov, 2006 9 commits
  10. 28 Nov, 2006 10 commits