1. 11 Jul, 2006 2 commits
    • evgen@moonbone.local's avatar
      Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-4.1-opt · 5d4881b8
      evgen@moonbone.local authored
      into  moonbone.local:/work/18503-bug-4.1-mysql
      5d4881b8
    • evgen@moonbone.local's avatar
      Fixed bug#18503: Queries with a quantified subquery returning empty set · 8ffda481
      evgen@moonbone.local authored
      may return a wrong result.
      
      An Item_sum_hybrid object has the was_values flag which indicates whether any
      values were added to the sum function. By default it is set to true and reset
      to false on any no_rows_in_result() call. This method is called only in
      return_zero_rows() function. An ALL/ANY subquery can be optimized by MIN/MAX
      optimization. The was_values flag is used to indicate whether the subquery
      has returned at least one row. This bug occurs because return_zero_rows() is
      called only when we know that the select will return zero rows before
      starting any scans but often such information is not known.
      In the reported case the return_zero_rows() function is not called and
      the was_values flag is not reset to false and yet the subquery return no rows
      Item_func_not_all and Item_func_nop_all functions return a wrong
      comparison result.
      
      The end_send_group() function now calls no_rows_in_result() for each item
      in the fields_list if there is no rows were found for the (sub)query.
      8ffda481
  2. 10 Jul, 2006 2 commits
    • gkodinov/kgeorge@macbook.gmz's avatar
      Merge rakia:mysql/4.1/B14553 · 893e9276
      gkodinov/kgeorge@macbook.gmz authored
      into  macbook.gmz:/Users/kgeorge/mysql/work/B14553-4.1-opt
      893e9276
    • gkodinov/kgeorge@mysql.com/rakia.(none)'s avatar
      BUG#14553: NULL in WHERE resets LAST_INSERT_ID · 2c9f5cc7
      To make MySQL compatible with some ODBC applications, you can find
      the AUTO_INCREMENT value for the last inserted row with the following query:
       SELECT * FROM tbl_name WHERE auto_col IS NULL.
      This is done with a special code that replaces 'auto_col IS NULL' with
      'auto_col = LAST_INSERT_ID'.
      However this also resets the LAST_INSERT_ID to 0 as it uses it for a flag
      so as to ensure that only the first SELECT ... WHERE auto_col IS NULL
      after an INSERT has this special behaviour.
      In order to avoid resetting the LAST_INSERT_ID a special flag is introduced
      in the THD class. This flag is used to restrict the second and subsequent
      SELECTs instead of LAST_INSERT_ID.
      2c9f5cc7
  3. 06 Jul, 2006 2 commits
  4. 04 Jul, 2006 1 commit
  5. 29 Jun, 2006 5 commits
  6. 28 Jun, 2006 3 commits
  7. 27 Jun, 2006 5 commits
    • svoj@may.pils.ru's avatar
      BUG#1662 - ALTER TABLE LIKE ignores DATA/INDEX DIRECTPORY · ffd8ed17
      svoj@may.pils.ru authored
      Produce a warning if DATA/INDEX DIRECTORY is specified in
      ALTER TABLE statement.
      
      Ignoring of these options is documented in the symbolic links
      section of the manual.
      ffd8ed17
    • gkodinov@mysql.com's avatar
      Merge mysql.com:/home/kgeorge/mysql/4.1/teamclean · be3c4a15
      gkodinov@mysql.com authored
      into  mysql.com:/home/kgeorge/mysql/4.1/B16458
      be3c4a15
    • kroki@mysql.com's avatar
      Dec. 31st, 9999 is still a valid date, only starting with Jan 1st 10000 things... · 49cc2904
      kroki@mysql.com authored
      Dec. 31st, 9999 is still a valid date, only starting with Jan 1st 10000 things become invalid (Bug #12356)
      49cc2904
    • gkodinov@mysql.com's avatar
      Bug #16458: Simple SELECT FOR UPDATE causes "Result Set not updatable" error · 9ec681ef
      gkodinov@mysql.com authored
      'SELECT DISTINCT a,b FROM t1' should not use temp table if there is unique 
      index (or primary key) on a.
      There are a number of other similar cases that can be calculated without the
      use of a temp table : multi-part unique indexes, primary keys or using GROUP BY 
      instead of DISTINCT.
      When a GROUP BY/DISTINCT clause contains all key parts of a unique
      index, then it is guaranteed that the fields of the clause will be
      unique, therefore we can optimize away GROUP BY/DISTINCT altogether.
      This optimization has two effects:
      * there is no need to create a temporary table to compute the
         GROUP/DISTINCT operation (or the temporary table will be smaller if only GROUP 
         is removed and DISTINCT stays or if DISTINCT is removed and GROUP BY stays)
      * this causes the statement in effect to become updatable in Connector/Java
      because the result set columns will be direct reference to the primary key of 
      the table (instead to the temporary table that it currently references). 
      
      Implemented a check that will optimize away GROUP BY/DISTINCT for queries like 
      the above.
      Currently it will work only for single non-constant table in the FROM clause.
      9ec681ef
    • holyfoot@mysql.com's avatar
      Merge abotchkov@bk-internal.mysql.com:/home/bk/mysql-4.1 · 366339f4
      holyfoot@mysql.com authored
      into mysql.com:/home/hf/work/mysql-4.1.clean
      366339f4
  8. 26 Jun, 2006 4 commits
  9. 23 Jun, 2006 2 commits
    • bar@mysql.com's avatar
      Bug#11228: DESC shows arbitrary column as "PRI" · cfb08851
      bar@mysql.com authored
        An UNIQUE KEY consisting of NOT NULL columns
        was displayed as PRIMARY KEY in "DESC t1".
        According to the code, that was intentional
        behaviour for some reasons unknown to me.
        This code was written before bitkeeper time,
        so I cannot check who and why made this.
        After discussing on dev-public, a decision
        was made to remove this code
      cfb08851
    • igor@rurik.mysql.com's avatar
      Added a test case for bug #18359. · faa48bf1
      igor@rurik.mysql.com authored
      This was another manifestation of the problems fixed in the
      patch for bug 16674.
      Wrong calculation of length of the search prefix in the pattern
      string led here to a wrong result set for a query in 4.1. 
      The bug could be demonstrated for any multi-byte character set. 
      faa48bf1
  10. 22 Jun, 2006 4 commits
    • igor@rurik.mysql.com's avatar
      Fixed bug #20076. · 89402314
      igor@rurik.mysql.com authored
      Server crashed in some cases when a query required a MIN/MAX
      agrregation for a 'ucs2' field. 
      In these cases  the aggregation caused calls of the function
      update_tmptable_sum_func that indirectly invoked 
      the method Item_sum_hybrid::min_max_update_str_field() 
      containing a call to strip_sp for a ucs2 character set.
      The latter led directly to the crash as it used my_isspace
      undefined for the ucs2 character set.
      Actually the call of strip_sp is not needed at all in this
      situation and has been removed by the fix.
      89402314
    • kent@mysql.com's avatar
      mysql.spec.sh: · ef2860e8
      kent@mysql.com authored
        Disable the simplistic auto dependency scan for test/bench (bug#20078)
      ef2860e8
    • holyfoot@deer.(none)'s avatar
      bug #10166 (Signed byte values cause data to be padded) · 36cea7d4
      holyfoot@deer.(none) authored
      The AsBinary function returns VARCHAR data type with binary collation.
      It can cause problem for clients that treat that kind of data as
      different from BLOB type.
      So now AsBinary returns BLOB.
      36cea7d4
    • igor@rurik.mysql.com's avatar
      Modified the test case for bug 16674 to have the same · e307b5b2
      igor@rurik.mysql.com authored
      execution plans in 4.1 and 5.0.
      e307b5b2
  11. 21 Jun, 2006 9 commits
  12. 20 Jun, 2006 1 commit