1. 27 Jun, 2006 1 commit
    • unknown's avatar
      Bug #16458: Simple SELECT FOR UPDATE causes "Result Set not updatable" error · 340df8c8
      unknown 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.
      
      
      mysql-test/r/distinct.result:
        Bug #16458: Simple SELECT FOR UPDATE causes "Result Set not updatable" error
          - test case
      mysql-test/t/distinct.test:
        Bug #16458: Simple SELECT FOR UPDATE causes "Result Set not updatable" error
          - test case
      sql/sql_select.cc:
        Bug #16458: Simple SELECT FOR UPDATE causes "Result Set not updatable" error
          - disable GROUP BY if contains the fields of a unique index.
      340df8c8
  2. 22 Jun, 2006 1 commit
  3. 21 Jun, 2006 9 commits
    • unknown's avatar
      Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-4.1-opt · 0b9fd6e7
      unknown authored
      into  rurik.mysql.com:/home/igor/mysql-4.1-opt
      
      
      mysql-test/r/ctype_utf8.result:
        SCCS merged
      mysql-test/t/ctype_utf8.test:
        SCCS merged
      0b9fd6e7
    • unknown's avatar
      Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-4.1 · 0777deef
      unknown authored
      into moonbone.local:/work/tmp_merge-4.1-opt-mysql
      
      0777deef
    • unknown's avatar
      Fixed bug #14896. · a15f5736
      unknown authored
      This bug in Field_string::cmp resulted in a wrong comparison 
      with keys in partial indexes over multi-byte character fields.
      Given field a is declared as a varchar(16) collate utf8_unicode_ci
      INDEX(a(4)) gives us an example of such an index.
        
      Wrong key comparisons could lead to wrong result sets if 
      the selected query execution plan used a range scan by 
      a partial index over a utf8 character field.
      This also caused wrong results in many other cases.
      
      
      mysql-test/t/ctype_utf8.test:
        Added test cases for bug #14896.
      mysql-test/r/ctype_utf8.result:
        Added test cases for bug #14896.
      sql/field.cc:
        Fixed bug #14896.
        This bug in Field_string::cmp resulted in a wrong comparison 
        with keys in partial indexes over multi-byte character fields.
        Given field a is declared as a varchar(16) collate utf8_unicode_ci
        INDEX(a(4)) gives us an example of such an index.
             
        Wrong key comparisons could lead to wrong result sets if 
        the selected query execution plan used a range scan by 
        a partial index over a utf8 character field.
        This also caused wrong results in many other cases.
      a15f5736
    • unknown's avatar
      Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-4.1 · b1faeb2e
      unknown authored
      into  may.pils.ru:/home/svoj/devel/mysql/BUG20357/mysql-4.1
      
      b1faeb2e
    • unknown's avatar
      added missing MYSQLTEST_VARDIR declaration · 228f12ea
      unknown authored
      228f12ea
    • unknown's avatar
      Merge april:devel/BitKeeper/mysql-4.1 · 61fa835d
      unknown authored
      into  may.pils.ru:/home/svoj/devel/mysql/BUG20357/mysql-4.1
      
      
      sql/opt_sum.cc:
        Auto merged
      mysql-test/r/myisam.result:
        SCCS merged
      mysql-test/t/myisam.test:
        SCCS merged
      61fa835d
    • unknown's avatar
      BUG#20357 - Got error 124 from storage engine using MIN and MAX · afc129c0
      unknown authored
                  functions in queries
      
      Using MAX()/MIN() on table with disabled indexes (by ALTER TABLE)
      results in error 124 (wrong index) from storage engine.
      
      The problem was that optimizer use disabled index to optimize
      MAX()/MIN(). Normally it must skip disabled index and perform
      table scan.
      
      This patch skips disabled indexes for min/max optimization.
      
      
      mysql-test/r/myisam.result:
        Test case for BUG#20357.
      mysql-test/t/myisam.test:
        Test case for BUG#20357.
      sql/opt_sum.cc:
        Skip disabled/ignored indexes for min/max optimization.
      afc129c0
    • unknown's avatar
      Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-4.1-opt · 08005d2d
      unknown authored
      into  rurik.mysql.com:/home/igor/mysql-4.1-opt
      
      08005d2d
    • unknown's avatar
      Fixed bug #16674. · dcb5b45e
      unknown authored
      The length of the prefix of the pattern string in the LIKE predicate that 
      determined the index range to be scanned was calculated incorrectly for
      multi-byte character sets. 
      As a result of this in 4. 1 the the scanned range was wider then necessary
      if the prefix contained not only one-byte characters.  
      In 5.0 additionally it caused missing some rows from the result set.
      
      
      mysql-test/r/ctype_utf8.result:
        Added test cases for bug #16674.
      mysql-test/t/ctype_utf8.test:
        Added test cases for bug #16674.
      strings/ctype-mb.c:
        Fixed bug #16674.
        The length of the prefix of the pattern string in the LIKE predicate that 
        determined the index range to be scanned was calculated incorrectly for
        multi-byte character sets. 
        As a result of this in 4. 1 the the scanned range was wider then necessary
        if the prefix contained not only one-byte characters.  
        In 5.0 additionally it caused missing some rows from the result set.
            
        The function my_like_range_mb was fixed to calculate the length of
        the prefix in a pattern string correctly in all cases.
      dcb5b45e
  4. 20 Jun, 2006 5 commits
    • unknown's avatar
      Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-4.1 · 3db65ca8
      unknown authored
      into moonbone.local:/work/tmp_merge-4.1-opt-mysql
      
      3db65ca8
    • unknown's avatar
      select.result: · 503d2023
      unknown authored
        Added test case for bug#18759 Incorrect string to numeric conversion.  
      select.test:
        Added test case for bug#18759 Incorrect string to numeric conversion.
      item_cmpfunc.cc:
        Cleanup after fix for bug#18360 removal
      
      
      sql/item_cmpfunc.cc:
        Cleanup after fix for bug#18360 removal
      mysql-test/t/select.test:
        Added test case for bug#18759 Incorrect string to numeric conversion.
      mysql-test/r/select.result:
        Added test case for bug#18759 Incorrect string to numeric conversion.
      503d2023
    • unknown's avatar
      Merge mysql.com:/usr/home/ram/work/mysql-4.0 · b5cbe5ce
      unknown authored
      into  mysql.com:/usr/home/ram/work/mysql-4.1
      
      
      mysql-test/r/func_str.result:
        merge (ul)
      mysql-test/t/func_str.test:
        merge (ul)
      sql/item_strfunc.cc:
        merge (ul)
      sql/item_strfunc.h:
        merge (ul)
      b5cbe5ce
    • unknown's avatar
      Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-4.1 · c1e03607
      unknown authored
      into  mysql.com:/usr/home/ram/work/mysql-4.1
      
      c1e03607
    • unknown's avatar
      Merge mysql.com:/users/lthalmann/bkroot/mysql-4.1 · bfcb4600
      unknown authored
      into  mysql.com:/users/lthalmann/bk/MERGE/mysql-4.1-merge
      
      bfcb4600
  5. 19 Jun, 2006 9 commits
    • unknown's avatar
      Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-4.1-opt · c9b93f98
      unknown authored
      into moonbone.local:/work/tmp_merge-4.1-opt-mysql
      
      c9b93f98
    • unknown's avatar
      Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-4.1 · 2cc6bdee
      unknown authored
      into moonbone.local:/work/tmp_merge-4.1-opt-mysql
      
      2cc6bdee
    • unknown's avatar
      item_cmpfunc.cc, func_in.result, func_in.test: · 4d4a181a
      unknown authored
        Reverted fix for bug#18360
      
      
      mysql-test/t/func_in.test:
        Reverted fix for bug#18360
      mysql-test/r/func_in.result:
        Reverted fix for bug#18360
      sql/item_cmpfunc.cc:
        Reverted fix for bug#18360
      4d4a181a
    • unknown's avatar
      Merge mysql.com:/home/kgeorge/mysql/4.1/teamclean · 521fdc7a
      unknown authored
      into  mysql.com:/home/kgeorge/mysql/4.1/B9676
      
      521fdc7a
    • unknown's avatar
      * Bug #9676: INSERT INTO x SELECT .. FROM x LIMIT 1; slows down with big · 4be0169e
      unknown authored
                    tables
      Currently in INSERT ... SELECT ... LIMIT ... the compiler uses a 
      temporary table to store the results of SELECT ... LIMIT .. and then
      uses that table as a source for INSERT. The problem is that in some cases
      it actually skips the LIMIT clause in doing that and materializes the 
      whole SELECT result set regardless of the LIMIT.
      This fix is limiting the process of filling up the temp table with only 
      that much rows that will be actually used by propagating the LIMIT value.
      
      
      mysql-test/r/insert_select.result:
        * Bug #9676: INSERT INTO x SELECT .. FROM x LIMIT 1; slows down with big
                      tables
        - a test demonstrating the code path
      mysql-test/t/insert_select.test:
        * Bug #9676: INSERT INTO x SELECT .. FROM x LIMIT 1; slows down with big
                      tables
        - a test demonstrating the code path
      sql/sql_select.cc:
        * Bug #9676: INSERT INTO x SELECT .. FROM x LIMIT 1; slows down with big
                      tables
        - pass through the real LIMIT number if the temp table is created for
          buffering results.
        - set the counter for all the cases when the temp table is not used for
          grouping
      4be0169e
    • unknown's avatar
      Merge mysql.com:/users/lthalmann/bkroot/mysql-4.1-rpl · 8ade25f1
      unknown authored
      into  mysql.com:/users/lthalmann/bk/MERGE/mysql-4.1-merge
      
      8ade25f1
    • unknown's avatar
      Merge april:devel/BitKeeper/mysql-4.1 · 71cb9b68
      unknown authored
      into  may.pils.ru:/home/svoj/devel/mysql/BUG18036/mysql-4.1
      
      71cb9b68
    • unknown's avatar
      BUG#18036 - update of table joined to self reports table as crashed · b424c584
      unknown authored
      Certain updates of table joined to self results in unexpected
      behavior.
      
      The problem was that record cache was mistakenly enabled for
      self-joined table updates. Normally record cache must be disabled
      for such updates.
      
      Fixed wrong condition in code that determines whether to use
      record cache for self-joined table updates.
      
      Only MyISAM tables were affected.
      
      
      mysql-test/r/myisam.result:
        Test case for BUG#18036.
      mysql-test/t/myisam.test:
        Test case for BUG#18036.
      sql/sql_update.cc:
        Fixed wrong condition in code that determines whether to use
        record cache for self-joined table updates.
      b424c584
    • unknown's avatar
      Fix for bug #20496: func_time.test failure · c1dc3249
      unknown authored
      
      mysql-test/r/func_time.result:
        Fix for bug #20496: func_time.test failure                                      
          - floating point calculations removed.
      mysql-test/t/func_time.test:
        Fix for bug #20496: func_time.test failure                                      
          - floating point calculations removed.
      c1dc3249
  6. 18 Jun, 2006 1 commit
  7. 17 Jun, 2006 3 commits
    • unknown's avatar
      Makefile.am: · fbc6b181
      unknown authored
        Avoid error message trying 'windoze-dsp' in obsolete directory
      compile-dist:
        Avoid error message for target 'distclean' and no Makefile
      
      
      BUILD/compile-dist:
        Avoid error message for target 'distclean' and no Makefile
      ndb/Makefile.am:
        Avoid error message trying 'windoze-dsp' in obsolete directory
      fbc6b181
    • unknown's avatar
      make_win_src_distribution.sh: · b8bed644
      unknown authored
        Make output less verbose
        Make temporary directory name unique
        Remove temporary directory on interrupt
      
      
      scripts/make_win_src_distribution.sh:
        Make output less verbose
        Make temporary directory name unique
        Remove temporary directory on interrupt
      b8bed644
    • unknown's avatar
      make_win_src_distribution.sh: · 0f1824af
      unknown authored
        Include "sql_yacc.yy" for completeness (bug#20387)
      
      
      scripts/make_win_src_distribution.sh:
        Include "sql_yacc.yy" for completeness (bug#20387)
        Improved error handling
        Don't list all files packed with tar/zip unless debugging
      0f1824af
  8. 16 Jun, 2006 3 commits
    • unknown's avatar
      Manually merged · 6b8b4816
      unknown authored
      
      sql/item_timefunc.cc:
        Auto merged
      sql/item_timefunc.h:
        Auto merged
      6b8b4816
    • unknown's avatar
      .del-mysql_install.def~8da659e7c0f7e571: · 9e4d8e99
      unknown authored
        Delete: netware/mysql_install.def
      Makefile.am:
        Removed obsolete "mysql_install.def"
      
      
      netware/Makefile.am:
        Removed obsolete "mysql_install.def"
      BitKeeper/deleted/.del-mysql_install.def~8da659e7c0f7e571:
        Delete: netware/mysql_install.def
      9e4d8e99
    • unknown's avatar
      item_strfunc.cc: · 6ca6756b
      unknown authored
        Fix for bug#16716 for --ps-protocol mode.
      item_cmpfunc.cc:
        Fix for a memory allocation/freeing problem in agg_cmp_type() after fix
      for bug#16377. Few language corrections.
      
      
      sql/item_cmpfunc.cc:
        Fix for a memory allocation/freeing problem in agg_cmp_type(). Few language corrections.
      sql/item_strfunc.cc:
        Fix for bug#16716 for --ps-protocol mode.
      6ca6756b
  9. 15 Jun, 2006 5 commits
  10. 14 Jun, 2006 3 commits