1. 09 Nov, 2007 1 commit
    • unknown's avatar
      Fix for bug #32202: ORDER BY not working with GROUP BY · 55499d2b
      unknown authored
      The bug is a regression introduced by the fix for bug30596. The problem
      was that in cases when groups in GROUP BY correspond to only one row,
      and there is ORDER BY, the GROUP BY was removed and the ORDER BY
      rewritten to ORDER BY <group_by_columns> without checking if the
      columns in GROUP BY and ORDER BY are compatible. This led to
      incorrect ordering of the result set as it was sorted using the
      GROUP BY columns. Additionaly, the code discarded ASC/DESC modifiers
      from ORDER BY even if its columns were compatible with the GROUP BY
      ones.
      
      This patch fixes the regression by checking if ORDER BY columns form a
      prefix of the GROUP BY ones, and rewriting ORDER BY only in that case,
      preserving the ASC/DESC modifiers. That check is sufficient, since the
      GROUP BY columns contain a unique index.
      
      
      mysql-test/r/group_by.result:
        Added a test case for bug #32202.
      mysql-test/t/group_by.test:
        Added a test case for bug #32202.
      sql/sql_select.cc:
        In cases when groups in GROUP BY correspond to only one row and there
        is ORDER BY, rewrite the query to ORDER BY <group_by_columns> only if
        the columns in ORDER BY and GROUP BY are compatible, i.e. either one
        forms a prefix for another.
      55499d2b
  2. 08 Nov, 2007 1 commit
  3. 07 Nov, 2007 1 commit
    • unknown's avatar
      Fix for bug #32103: optimizer crash when join on int and mediumint with · 0a7a55d1
      unknown authored
      variable in where clause.
      
      Problem: the new_item() method of Item_uint used an incorrect
      constructor. "new Item_uint(name, max_length)" calls
      Item_uint::Item_uint(const char *str_arg, uint length) which assumes the
      first argument to be the string representation of the value, not the
      item's name. This could result in either a server crash or incorrect
      results depending on usage scenarios.
      
      Fixed by using the correct constructor in new_item():
      Item_uint::Item_uint(const char *str_arg, longlong i, uint length).
      
      
      mysql-test/r/select.result:
        Added a test case for bug #32103.
      mysql-test/t/select.test:
        Added a test case for bug #32103.
      sql/item.h:
        Use the correct constructor for Item_uint in Item_uint::new_item().
      0a7a55d1
  4. 05 Nov, 2007 1 commit
  5. 02 Nov, 2007 1 commit
    • unknown's avatar
      Fix for: · 1daa54d6
      unknown authored
        bug #26215: mysql command line client should not strip comments
                    from SQL statements
      and
        bug #11230: Keeping comments when storing stored procedures
      
      With the introduction of multiline comments support in the command line
      client (mysql) in MySQL 4.1, it became impossible to preserve
      client-side comments within single SQL statements or stored routines.
      This feature was useful for monitoring tools and maintenance.
      
      The patch adds a new option to the command line client
      ('--enable-comments', '-c') which allows to preserve SQL comments and
      send them to the server for single SQL statements, and to keep comments
      in the code for stored procedures / functions / triggers.
      
      The patch is a modification of the contributed patch from bug #11230
      with the following changes:
      - code style changes to conform to the coding guidelines
      - changed is_prefix() to my_strnncoll() to detect the DELIMITER
      command, since the first one is case-sensitive and not charset-aware
      - renamed t/comments-51.* to t/mysql_comments.*
      - removed tests for comments in triggers since 5.0 does not have SHOW
      CREATE TRIGGER (those tests will be added back in 5.1).
      
      The test cases are only for bug #11230. No automated test case for bug
      #26215 is possible due to the test suite deficiencies (though the cases
      from the bug report were tested manually).
      
      
      client/mysql.cc:
        Applied the contributed patch from bug11230 with the following changes:
        - code style changes to conform to the coding guidelines
        - changed is_prefix() to my_strnncoll() to detect the DELIMITER
        command, since the first one is case-sensitive and not charset-aware
        
        The patch adds a new option to the command line client which allows to
        preserve SQL comments and send them to the server to ensure better
        error reporting and to, keep comments in the code for stored procedures
        / functions / triggers.
      mysql-test/r/mysql_comments.result:
        Added test cases for bug11230.
      mysql-test/t/mysql_comments.sql:
        Added test cases for bug11230.
      mysql-test/t/mysql_comments.test:
        Added test cases for bug11230.
      1daa54d6
  6. 21 Oct, 2007 1 commit
    • unknown's avatar
      Bug #28550 "Potential bugs related to the return type of the CHAR function". · 04311fab
      unknown authored
        
      Since, as of MySQL 5.0.15, CHAR() arguments larger than 255 are converted into multiple result bytes, a single CHAR() argument can now take up to 4 bytes. This patch fixes Item_func_char::fix_length_and_dec() to take this into account.
        
      This patch also fixes a regression introduced by the patch for bug21513. As now we do not always have the 'name' member of Item set for Item_hex_string and Item_bin_string, an own print() method has been added to Item_hex_string so that it could correctly be printed by Item_func::print_args().
      
      
      mysql-test/r/func_str.result:
        Import patch bug288550.patch
      mysql-test/t/func_str.test:
        Import patch bug288550.patch
      sql/item.cc:
        Import patch bug288550.patch
      sql/item.h:
        Import patch bug288550.patch
      sql/item_strfunc.h:
        Import patch bug288550.patch
      04311fab
  7. 17 Oct, 2007 1 commit
  8. 16 Oct, 2007 1 commit
  9. 15 Oct, 2007 2 commits
  10. 14 Oct, 2007 1 commit
    • unknown's avatar
      item_sum.cc: · 97a98ff5
      unknown authored
        Fixed dbug macros usage errors
      
      
      sql/item_sum.cc:
        Fixed dbug macros usage errors
      97a98ff5
  11. 13 Oct, 2007 2 commits
  12. 12 Oct, 2007 3 commits
  13. 11 Oct, 2007 3 commits
    • unknown's avatar
      Merge gleb.loc:/home/uchum/work/bk/PA/5.0-opt-31471 · 1fc06a1f
      unknown authored
      into  gleb.loc:/home/uchum/work/bk/5.0-opt
      
      
      1fc06a1f
    • unknown's avatar
      Bug#30981 CHAR(0x41 USING ucs2) doesn't add leading zero · f30eacb2
      unknown authored
      Bug#30982 CHAR(..USING..) can return a not-well-formed string
      Bug#30986 Character set introducer followed by a HEX string can return bad result
      check_well_formed_result moved to Item from Item_str_func
      fixed Item_func_char::val_str for proper ucs symbols converting
      added check for well formed strings for correct conversion of constants with underscore
      charset
      
      
      mysql-test/r/ctype_ucs.result:
        test result
      mysql-test/r/ctype_utf8.result:
        test result
      mysql-test/t/ctype_ucs.test:
        test case
      mysql-test/t/ctype_utf8.test:
        test case
      sql/item.cc:
        check_well_formed_result() moved from Item_str_func
      sql/item.h:
        check_well_formed_result() moved from Item_str_func
      sql/item_strfunc.cc:
        check_well_formed_result moved to Item
        fixed Item_func_char::val_str for proper ucs symbols converting
      sql/item_strfunc.h:
        check_well_formed_result moved to Item
      sql/sql_yacc.yy:
        added check for well formed string
      f30eacb2
    • unknown's avatar
      Bug #31440: 'select 1 regex null' asserts debug server · 76af5717
      unknown authored
      The special case with NULL as a regular expression
      was handled at prepare time. But in this special case
      the item was not marked as fixed. This caused an assertion
      at execution time.
      Fixed my marking the item as fixed even when known to 
      return NULL at prepare time.
      
      
      mysql-test/r/func_regexp.result:
        Bug #31440: test case
      mysql-test/t/func_regexp.test:
        Bug #31440: test case
      sql/item_cmpfunc.cc:
        Bug #31440: mark the item as fixed even when 
        known to return NULL.
      76af5717
  14. 10 Oct, 2007 4 commits
    • unknown's avatar
      Fixed bug #31471: decimal_bin_size: Assertion `scale >= 0 && · c866f801
      unknown authored
                        precision > 0 && scale <= precision'.
      
      A sign of a resulting item of the IFNULL function was not
      updated and the maximal length of this result was calculated
      improperly. Correct algorithm was copy&pasted from the IF
      function implementation.
      
      
      sql/item_cmpfunc.cc:
        Fixed bug #31471.
        The Item_func_ifnull::fix_length_and_dec method has been
        modified to update the Item_func_ifnull::unsigned_flag field
        and to take this field into account when calculating the
        Item_func_ifnull::max_length value.
        (See Item_func_if::fix_length_and_dec for reference).
      mysql-test/t/null.test:
        Added test case for bug #31471.
      mysql-test/r/null.result:
        Added test case for bug #31471.
      mysql-test/r/create.result:
        Update test case after the bugfix of bug #31471.
      c866f801
    • unknown's avatar
      Merge mysql.com:/home/gluh/MySQL/Merge/5.0 · 6146c0c7
      unknown authored
      into  mysql.com:/home/gluh/MySQL/Merge/5.0-opt
      
      
      libmysql/libmysql.c:
        Auto merged
      6146c0c7
    • unknown's avatar
      Bug#28893 --relay-log variable is not exposed with SHOW VARIABLES · 62f72d36
      unknown authored
      added variables relay_log, relay_log_index, relay_log_info_file to init_vars[]
      to make them visible within SHOW VARIABLES
      
      
      mysql-test/r/rpl_flush_log_loop.result:
        test result
      mysql-test/t/rpl_flush_log_loop.test:
        test case
      sql/set_var.cc:
        added variables relay_log, relay_log_index, relay_log_info_file to init_vars[]
        to make them visible within SHOW VARIABLES
      62f72d36
    • unknown's avatar
      Bug#25359 Test 'view' is dependent on current year to be 2006 · 15453e3a
      unknown authored
      removed now() call to make the test to be year independent
      
      
      mysql-test/r/view.result:
        result fix
      mysql-test/t/view.test:
        removed now() call to make the test to be year independent
      15453e3a
  15. 09 Oct, 2007 5 commits
  16. 08 Oct, 2007 1 commit
    • unknown's avatar
      Bug #31156: mysqld: item_sum.cc:918: virtual bool · 6736d404
      unknown authored
        Item_sum_distinct::setup(THD*): Assertion
      
      There was an assertion to detect a bug in ROLLUP
      implementation. However the assertion is not true
      when used in a subquery context with non-cacheable
      statements.
      Fixed by turning the assertion to accepted case
      (just like it's done for the other aggregate functions). 
      
      
      mysql-test/r/func_group.result:
        Bug #31156: test case
      mysql-test/t/func_group.test:
        Bug #31156: test case
      sql/item_sum.cc:
        Bug #31156: make it OK to call setup() several times:
         done for (e.g.) scalar subquery
      6736d404
  17. 07 Oct, 2007 1 commit
    • unknown's avatar
      Fixed bug #31019: the MOD() function and the % operator crash the server · 60761a7c
      unknown authored
      when a divisor is less than 1 and its fractional part is very long.
      For example:
      1 % .123456789123456789123456789123456789123456789123456789123456789123456789123456789;
      
      Stack buffer overflow has been fixed in the do_div_mod function.
      
      
      strings/decimal.c:
        Fixed bug #31019.
        Stack buffer overflow has been fixed in the do_div_mod function:
        a value of the upper bound of the buffer was increased where
        a decrement is required.
      mysql-test/t/type_decimal.test:
        Added test case for bug #31019.
      mysql-test/r/type_decimal.result:
        Added test case for bug #31019.
      60761a7c
  18. 05 Oct, 2007 10 commits
    • unknown's avatar
      Merge abotchkov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · d9be8ed9
      unknown authored
      into  mysql.com:/home/hf/work/30286/my50-30286
      
      
      d9be8ed9
    • unknown's avatar
      Merge mhansson@bk-internal:/home/bk/mysql-5.0-opt · a2d88511
      unknown authored
      into  dl145s.mysql.com:/data0/mhansson/bug30942/my50-bug30942
      
      
      a2d88511
    • unknown's avatar
      Merge mysql.com:/home/hf/work/30286/my41-30286 · 071e55af
      unknown authored
      into  mysql.com:/home/hf/work/30286/my50-30286
      
      
      mysql-test/t/gis.test:
        Auto merged
      sql/gstream.cc:
        Auto merged
      mysql-test/r/gis.result:
        SCCS merged
      071e55af
    • unknown's avatar
      Merge mysql.com:/home/hf/work/30955/my41-30955 · 77d786b5
      unknown authored
      into  mysql.com:/home/hf/work/30286/my41-30286
      
      
      77d786b5
    • unknown's avatar
      Merge mysql.com:/home/hf/work/30286/my41-30286 · c7aff982
      unknown authored
      into  mysql.com:/home/hf/work/30286/my50-30286
      
      
      c7aff982
    • unknown's avatar
      Merge bk@192.168.21.1:mysql-4.1-opt · c14e8c80
      unknown authored
      into  mysql.com:/home/hf/work/30286/my41-30286
      
      
      c14e8c80
    • unknown's avatar
      Merge bk@192.168.21.1:mysql-5.0-opt · 794ed298
      unknown authored
      into  mysql.com:/home/hf/work/30286/my50-30286
      
      
      794ed298
    • unknown's avatar
      Merge mysql.com:/home/hf/work/30286/my41-30286 · 8e374815
      unknown authored
      into  mysql.com:/home/hf/work/30286/my50-30286
      
      
      myisam/rt_index.c:
        Auto merged
      myisam/rt_mbr.c:
        Auto merged
      mysql-test/t/gis-rtree.test:
        Auto merged
      mysql-test/r/gis-rtree.result:
        merging
      8e374815
    • unknown's avatar
      Bug #30286 spatial index cause corruption and server crash! · 6d54b577
      unknown authored
      As the result of DOUBLE claculations can be bigger
      than DBL_MAX constant we use in code, we shouldn't use this constatn
      as a biggest possible value.
      Particularly the rtree_pick_key function set 'min_area= DBL_MAX' relying
      that any rtree_area_increase result will be less so we return valid
      key. Though in rtree_area_increase function we calculate the area
      of the rectangle, so the result can be 'inf' if the rectangle is
      huge enough, which is bigger than DBL_MAX.
      
      Code of the rtree_pick_key modified so we always return a valid key.
      
      
      myisam/rt_index.c:
        Bug #30286 spatial index cause corruption and server crash!
        
        always set the best_key with the first key we get, so we always return
        somthing valid.
      myisam/rt_mbr.c:
        Bug #30286 spatial index cause corruption and server crash!
        
        function comment extended
      mysql-test/r/gis-rtree.result:
        Bug #30286 spatial index cause corruption and server crash!
        test result
      mysql-test/t/gis-rtree.test:
        Bug #30286 spatial index cause corruption and server crash!
        test case
      6d54b577
    • unknown's avatar
      test fix(to satisfy WIN) · 554d405d
      unknown authored
      
      mysql-test/r/information_schema.result:
        result fix
      554d405d