1. 28 Jun, 2006 1 commit
    • unknown's avatar
      4.1->5.0 merge for bug #16458 · 8f42d836
      unknown authored
      
      mysql-test/r/distinct.result:
        4.1->5.0 merge for bug #16458
         * 5.0 is better in detecting duplicate columns
      sql/sql_select.cc:
        4.1->5.0 merge for bug #16458
         * Should not do the optimization if using index for group by
         * chnaged structures in 5.0
      8f42d836
  2. 27 Jun, 2006 2 commits
    • unknown's avatar
      Merge mysql.com:/home/kgeorge/mysql/4.1/B16458 · 6a4ec2e9
      unknown authored
      into  mysql.com:/home/kgeorge/mysql/5.0/B16458
      
      
      sql/sql_select.cc:
        Auto merged
      mysql-test/r/distinct.result:
        merge 4.1->5.0
      mysql-test/t/distinct.test:
        merge 4.1->5.0
      6a4ec2e9
    • unknown's avatar
      Bug #16458: Simple SELECT FOR UPDATE causes "Result Set not updatable" error · 4b36c1d8
      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.
      4b36c1d8
  3. 23 Jun, 2006 2 commits
    • unknown's avatar
      Merge rurik.mysql.com:/home/igor/mysql-4.1-opt · d0412ab8
      unknown authored
      into  rurik.mysql.com:/home/igor/mysql-5.0-opt
      
      
      mysql-test/t/ctype_utf8.test:
        Auto merged
      mysql-test/r/ctype_utf8.result:
        SCCS merged
      d0412ab8
    • unknown's avatar
      Added a test case for bug #18359. · d62551af
      unknown 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. 
      
      
      mysql-test/r/ctype_utf8.result:
        Added a test case for bug #18359.
      mysql-test/t/ctype_utf8.test:
        Added a test case for bug #18359.
      d62551af
  4. 22 Jun, 2006 6 commits
    • unknown's avatar
      Merge rurik.mysql.com:/home/igor/mysql-4.1-opt · 596102c9
      unknown authored
      into  rurik.mysql.com:/home/igor/mysql-5.0-opt
      
      
      sql/item_sum.cc:
        Auto merged
      mysql-test/r/ctype_ucs.result:
        Manual merge
      mysql-test/t/ctype_ucs.test:
        Manual merge
      596102c9
    • unknown's avatar
      Fixed bug #20076. · e8adb499
      unknown 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.
      
      
      mysql-test/r/ctype_ucs.result:
        Added a test case for bug #20076.
      mysql-test/t/ctype_ucs.test:
        Added a test case for bug #20076.
      e8adb499
    • unknown's avatar
      Post-merge fix. · 2cec841b
      unknown authored
      2cec841b
    • unknown's avatar
      Merge rurik.mysql.com:/home/igor/mysql-4.1-opt · b6473f7d
      unknown authored
      into  rurik.mysql.com:/home/igor/mysql-5.0-opt
      
      
      mysql-test/r/ctype_utf8.result:
        Auto merged
      mysql-test/t/ctype_utf8.test:
        Auto merged
      b6473f7d
    • unknown's avatar
      Modified the test case for bug 16674 to have the same · af3c7663
      unknown authored
      execution plans in 4.1 and 5.0.
      
      
      af3c7663
    • unknown's avatar
      Merge rurik.mysql.com:/home/igor/mysql-4.1-opt · aec09252
      unknown authored
      into  rurik.mysql.com:/home/igor/mysql-5.0-opt
      
      
      mysql-test/t/ctype_utf8.test:
        Auto merged
      strings/ctype-mb.c:
        Auto merged
      mysql-test/r/ctype_utf8.result:
        SCCS merged
      aec09252
  5. 21 Jun, 2006 28 commits
    • unknown's avatar
      Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-4.1-opt · 6a631065
      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
      6a631065
    • unknown's avatar
      Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 5cb66b11
      unknown authored
      into moonbone.local:/work/tmp_merge-5.0-opt-mysql
      
      
      5cb66b11
    • unknown's avatar
      Manual merge · 0041c317
      unknown authored
      
      mysql-test/r/ctype_utf8.result:
        Auto merged
      mysql-test/t/ctype_utf8.test:
        Auto merged
      0041c317
    • unknown's avatar
      Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0 · ab6059c8
      unknown authored
      into moonbone.local:/work/tmp_merge-5.0-opt-mysql
      
      
      ab6059c8
    • unknown's avatar
      Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-4.1 · d5797063
      unknown authored
      into moonbone.local:/work/tmp_merge-4.1-opt-mysql
      
      
      d5797063
    • unknown's avatar
      Fixed bug #14896. · 822e8866
      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.
      822e8866
    • unknown's avatar
      Merge mkindahl@bk-internal.mysql.com:/home/bk/mysql-5.0 · 37511b3b
      unknown authored
      into  mysql.com:/home/bk/fix-mysql-5.0
      
      
      37511b3b
    • unknown's avatar
      Merge may.pils.ru:/home/svoj/devel/mysql/BUG20357/mysql-4.1 · 5b9d44fd
      unknown authored
      into  may.pils.ru:/home/svoj/devel/mysql/BUG20357/mysql-5.0
      
      
      mysql-test/r/myisam.result:
        Auto merged
      mysql-test/t/myisam.test:
        Auto merged
      sql/opt_sum.cc:
        Auto merged
      mysql-test/mysql-test-run.sh:
        Auto merged
      5b9d44fd
    • unknown's avatar
      Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-4.1 · 630a1ee4
      unknown authored
      into  may.pils.ru:/home/svoj/devel/mysql/BUG20357/mysql-4.1
      
      
      630a1ee4
    • unknown's avatar
      added missing MYSQLTEST_VARDIR declaration · fa83f8ba
      unknown authored
      fa83f8ba
    • unknown's avatar
      Merge april:devel/BitKeeper/mysql-4.1 · bf76f070
      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
      bf76f070
    • unknown's avatar
      BUG#20357 - Got error 124 from storage engine using MIN and MAX · 5c0cdea6
      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.
      5c0cdea6
    • unknown's avatar
      Merge knielsen@10.100.52.19:/usr/local/mysql/mysql-5.0 · a1ea1025
      unknown authored
      into  mysql.com:/data0/knielsen/mysql-5.0
      
      
      a1ea1025
    • unknown's avatar
      BUG#20578 · dce98ec4
      unknown authored
      Backport Valgrind suppression from mysql-5.1:
      
      D 1.4 05/11/23 22:44:54+02:00 monty@mysql.com 5 4 12/0/154
      P mysql-test/valgrind.supp
      C Remove warning that may happens becasue threads dies in different order
      
      
      mysql-test/valgrind.supp:
        Add suppression for Valgrind warning.
      dce98ec4
    • unknown's avatar
    • unknown's avatar
      Merge mysql.com:/home/kgeorge/mysql/5.0/teamclean · 6d399b0c
      unknown authored
      into  mysql.com:/home/kgeorge/mysql/5.0/B18080
      
      
      sql/sql_parse.cc:
        Auto merged
      6d399b0c
    • unknown's avatar
      Merge mskold@bk-internal.mysql.com:/home/bk/mysql-5.0 · c0ff64f8
      unknown authored
      into  mysql.com:/home/marty/MySQL/mysql-5.0
      
      
      c0ff64f8
    • unknown's avatar
      Merge tulin@bk-internal.mysql.com:/home/bk/mysql-5.0 · 26f9132c
      unknown authored
      into  poseidon.ndb.mysql.com:/home/tomas/mysql-5.0-main
      
      
      26f9132c
    • unknown's avatar
      merge of the changes for bug #18080 · b92ad63f
      unknown authored
      
      mysql-test/t/insert_select.test:
        Auto merged
      mysql-test/r/insert_select.result:
        manual merge
      b92ad63f
    • unknown's avatar
      manual merge · ea3392fb
      unknown authored
      
      mysql-test/r/view_grant.result:
        merged
      mysql-test/t/view_grant.test:
        merged
      ea3392fb
    • unknown's avatar
      Merge mysql.com:/home/kgeorge/mysql/5.0/teamclean · 5a3d0287
      unknown authored
      into  mysql.com:/home/kgeorge/mysql/5.0/B20482
      
      
      sql/sql_base.cc:
        Auto merged
      sql/sql_parse.cc:
        Auto merged
      5a3d0287
    • unknown's avatar
      Bug #20482: failure on Create join view with sources views/tables in different · 6c787151
      unknown authored
                  schemas
      The function check_one_table_access() called to check access to tables in 
      SELECT/INSERT/UPDATE was doing additional checks/modifications that don't hold
      in the context of setup_tables_and_check_access().
      That's why the check_one_table() was split into two : the functionality needed by
      setup_tables_and_check_access() into check_single_table_access() and the rest of 
      the functionality stays in check_one_table_access() that is made to call the new
      check_single_table_access() function.
      
      
      mysql-test/r/view_grant.result:
        Bug #20482: failure on Create join view with sources views/tables in different 
                    schemas
        - test suite for the bug
      mysql-test/t/view_grant.test:
        Bug #20482: failure on Create join view with sources views/tables in different 
                    schemas
        - test suite for the bug
      sql/mysql_priv.h:
        Bug #20482: failure on Create join view with sources views/tables in different 
                    schemas
        - check_one_table_access split into 2
      sql/sql_base.cc:
        Bug #20482: failure on Create join view with sources views/tables in different 
                    schemas
        - the new sub-function called
      sql/sql_parse.cc:
        Bug #20482: failure on Create join view with sources views/tables in different 
                    schemas
        - check_one_table_access() split into two : check_single_table_access() to 
          actually check access to the table(ro) and check_one_table_access() that calls
          check_single_table_access() and checks also the tables belonging to sub selects
          or implicitly opened tables.
      6c787151
    • unknown's avatar
      Merge mysql.com:/home/marty/MySQL/mysql-5.0-backed · 2b43555b
      unknown authored
      into  mysql.com:/home/marty/MySQL/mysql-5.0
      
      
      sql/ha_ndbcluster.cc:
        Auto merged
      2b43555b
    • unknown's avatar
    • unknown's avatar
      Merge tulin@bk-internal.mysql.com:/home/bk/mysql-5.0 · e8b0b313
      unknown authored
      into  poseidon.ndb.mysql.com:/home/tomas/mysql-5.0-main
      
      
      e8b0b313
    • unknown's avatar
      Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-4.1-opt · 8516546c
      unknown authored
      into  rurik.mysql.com:/home/igor/mysql-4.1-opt
      
      
      8516546c
    • unknown's avatar
      Merge mysql.com:/usr/home/ram/work/mysql-4.1 · c6b67f0d
      unknown authored
      into  mysql.com:/usr/home/ram/work/mysql-5.0
      
      
      mysql-test/r/func_str.result:
        Auto merged
      mysql-test/t/func_str.test:
        Auto merged
      mysql-test/t/func_time.test:
        Auto merged
      sql/item_strfunc.cc:
        Auto merged
      sql/item_strfunc.h:
        Auto merged
      mysql-test/r/func_time.result:
        SCCS merged
      c6b67f0d
    • unknown's avatar
      Fixed bug #16674. · 69977fa5
      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.
      69977fa5
  6. 20 Jun, 2006 1 commit