1. 10 Nov, 2007 7 commits
    • unknown's avatar
      Merge gshchepa@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 7e71e24c
      unknown authored
      into  gleb.loc:/home/uchum/work/bk/5.0-opt
      
      
      7e71e24c
    • unknown's avatar
      Merge gleb.loc:/home/uchum/work/bk/5.0-opt-28076 · 747cb198
      unknown authored
      into  gleb.loc:/home/uchum/work/bk/5.0-opt
      
      
      sql/item_cmpfunc.cc:
        Auto merged
      747cb198
    • unknown's avatar
      Merge polly.(none):/home/kaa/src/opt/bug32202/my50-bug26215 · 04468cba
      unknown authored
      into  polly.(none):/home/kaa/src/opt/mysql-5.0-opt
      
      
      sql/sql_select.cc:
        Auto merged
      04468cba
    • unknown's avatar
      Fixed bug #28076: inconsistent binary/varbinary comparison. · e7c6a81f
      unknown authored
      After adding an index the <VARBINARY> IN (SELECT <BINARY> ...)
      clause returned a wrong result: the VARBINARY value was illegally padded
      with zero bytes to the length of the BINARY column for the index search.
      (<VARBINARY>, ...) IN (SELECT <BINARY>, ... ) clauses are affected too.
      
      
      sql/item.cc:
        Fixed bug #28076.
        The Item_cache_str::save_in_field method has been overloaded
        to check cached values for an illegal padding before the saving
        into a field.
      sql/item.h:
        Fixed bug #28076.
        The Item_cache_str::is_varbinary flag has been added and the
        Item_cache_str::save_in_field method has been overloaded to prevent
        cached values from an illegal padding when saving in fields.
        The signature of the Item_cache::get_cache method has been
        changed to accept pointers to Item instead of Item_result
        values.
      sql/item_cmpfunc.cc:
        Fixed bug #28076.
        The Item_in_optimizer::fix_left method has been modified to
        to call Item_cache::get_cache in a new manner.
      sql/item_subselect.cc:
        Fixed bug #28076.
        The subselect_indexsubquery_engine::exec method has been
        modified to take into account field conversion errors
        (copy&paste from subselect_uniquesubquery_engine::exec).
      sql/sp_rcontext.cc:
        Fixed bug #28076.
        The sp_rcontext::create_case_expr_holder method has been
        modified to call Item_cache::get_cache in a new manner.
      sql/sp_rcontext.h:
        Fixed bug #28076.
        The sp_rcontext::create_case_expr_holder method signature
        has been modified to pass Item pointers to the
        Item_cache::get_cache method.
      sql/sql_class.cc:
        Fixed bug #28076.
        The select_max_min_finder_subselect::send_data method has been
        modified to call Item_cache::get_cache in a new manner.
      mysql-test/t/subselect.test:
        Added test case for bug #28076.
      mysql-test/r/subselect.result:
        Added test case for bug #28076.
      e7c6a81f
    • unknown's avatar
      Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 6b00e6eb
      unknown authored
      into  mysql.com:/scratch/tnurnberg/31800/50-31800
      
      
      mysql-test/r/select.result:
        Auto merged
      mysql-test/t/select.test:
        Auto merged
      6b00e6eb
    • unknown's avatar
      Bug#31800: Date comparison fails with timezone and slashes for greater than comparison · ac3ef6c7
      unknown authored
      BETWEEN was more lenient with regard to what it accepted as a DATE/DATETIME
      in comparisons than greater-than and less-than were. ChangeSet makes < >
      comparisons similarly robust with regard to trailing garbage (" GMT-1")
      and "missing" leading zeros. Now all three comparators behave similarly
      in that they throw a warning for "junk" at the end of the data, but then
      proceed anyway if possible. Before < > fell back on a string- (rather than
      date-) comparison when a warning-condition was raised in the string-to-date
      conversion. Now the fallback only happens on actual errors, while warning-
      conditions still result in a warning being to delivered to the client.
      
      
      mysql-test/r/select.result:
        Show that we compare DATE/DATETIME-like strings as date(time)s
        now, rather than as bin-strings.
        Adjust older result as "2005-09-3a" is now correctly seen as
        "2005-09-3" + trailing garbage, rather than as "2005-09-30".
      mysql-test/t/select.test:
        Show that we compare DATE/DATETIME-like strings as date(time)s
        now, rather than as bin-strings.
      sql-common/my_time.c:
        correct/clarify date-related comments, particulary for check_date().
        doxygenize comment while at it.
      sql/item_cmpfunc.cc:
        get_date_from_str() no longer signals an error when all we had
        was a warning-condition -- and one we already gave the user a
        warning for at that. Preamble doxygenized.
      ac3ef6c7
    • unknown's avatar
      Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · e9a78d8c
      unknown authored
      into  mysql.com:/misc/mysql/31990/50-31990
      
      
      e9a78d8c
  2. 09 Nov, 2007 3 commits
    • 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
    • unknown's avatar
      Merge polly.(none):/home/kaa/src/opt/bug32020/my50-bug31445 · e68540a6
      unknown authored
      into  polly.(none):/home/kaa/src/opt/mysql-5.0-opt
      
      
      sql/sql_udf.cc:
        Auto merged
      e68540a6
    • unknown's avatar
      Fix for bug #32020: loading udfs while --skip-grant-tables is enabled · 737cdfea
      unknown authored
      causes out of memory errors
      
      The code in mysql_create_function() and mysql_drop_function() assumed
      that the only reason for UDFs being uninitialized at that point is an
      out-of-memory error during initialization. However, another possible 
      reason for that is the --skip-grant-tables option in which case UDF 
      initialization is skipped and UDFs are unavailable.
      
      The solution is to check whether mysqld is running with
      --skip-grant-tables and issue a proper error in such a case.
      
      
      mysql-test/r/skip_grants.result:
        Added a test case for bug #32020.
      mysql-test/t/skip_grants.test:
        Added a test case for bug #32020.
      sql/sql_udf.cc:
        Issue a proper error when a user tries to CREATE/DROP a UDF 
        on a server running with the --skip-grant-tables option.
      737cdfea
  3. 08 Nov, 2007 5 commits
    • unknown's avatar
      Merge polly.(none):/home/kaa/src/opt/mysql-4.1-opt · a5d7fa74
      unknown authored
      into  polly.(none):/home/kaa/src/opt/mysql-5.0-opt
      
      
      a5d7fa74
    • unknown's avatar
      Merge polly.(none):/home/kaa/src/opt/bug32103/my50-bug26215 · 0075aa49
      unknown authored
      into  polly.(none):/home/kaa/src/opt/mysql-5.0-opt
      
      
      mysql-test/r/select.result:
        Auto merged
      mysql-test/t/select.test:
        Auto merged
      0075aa49
    • unknown's avatar
      Merge polly.(none):/home/kaa/src/opt/bug32103/my41-bug26215 · 6c5a2e50
      unknown authored
      into  polly.(none):/home/kaa/src/opt/mysql-4.1-opt
      
      
      6c5a2e50
    • unknown's avatar
      Merge polly.(none):/home/kaa/src/opt/bug32103/my41-bug26215 · 4713575c
      unknown authored
      into  polly.(none):/home/kaa/src/opt/bug32103/my50-bug26215
      
      
      mysql-test/t/select.test:
        Auto merged
      mysql-test/r/select.result:
        Manual merge.
      sql/item.h:
        Manual merge.
      4713575c
    • unknown's avatar
      Bug#31990: MINUTE() and SECOND() return bogus results when used on a DATE · b1fc4b9e
      unknown authored
      HOUR(), MINUTE(), ... returned spurious results when used on a DATE-cast.
      This happened because DATE-cast object did not overload get_time() method
      in superclass Item. The default method was inappropriate here and
      misinterpreted the data.
      
      Patch adds missing method; get_time() on DATE-casts now returns SQL-NULL
      on NULL input, 0 otherwise. This coincides with the way DATE-columns
      behave.
      
      
      mysql-test/r/cast.result:
        Show that HOUR(), MINUTE(), ... return sensible values when used
        on DATE-cast objects, namely NULL for NULL-dates and 0 otherwise.
        Show that this coincides with how DATE-columns behave.
      mysql-test/t/cast.test:
        Show that HOUR(), MINUTE(), ... return sensible values when used
        on DATE-cast objects, namely NULL for NULL-dates and 0 otherwise.
        Show that this coincides with how DATE-columns behave.
      sql/item_timefunc.cc:
        Add get_time() method to DATE-cast object to overload
        the method in Item superclass that would return spurious
        results. Return zero-result; flag NULL if input was NULL.
      sql/item_timefunc.h:
        Add get_time() declaration to DATE-cast object.
      b1fc4b9e
  4. 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
  5. 05 Nov, 2007 5 commits
  6. 02 Nov, 2007 2 commits
    • unknown's avatar
      Merge polly.(none):/home/kaa/src/opt/bug26215/my50-bug26215 · e397a7b0
      unknown authored
      into  polly.(none):/home/kaa/src/opt/mysql-5.0-opt
      
      
      client/mysql.cc:
        Auto merged
      e397a7b0
    • 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
  7. 01 Nov, 2007 1 commit
    • unknown's avatar
      Bug #31794: no syntax error on SELECT id FROM t HAVING count(*)>2 · 660eb5bb
      unknown authored
      The HAVING clause is subject to the same rules as the SELECT list
      about using aggregated and non-aggregated columns.
      But this was not enforced when processing implicit grouping from
      using aggregate functions.
      Fixed by performing the same checks for HAVING as for SELECT.
      
      
      mysql-test/r/func_group.result:
        Bug #31794: test case
      mysql-test/t/func_group.test:
        Bug #31794: test case
      sql/sql_select.cc:
        Bug #31794: Check HAVING in addition to SELECT list
      660eb5bb
  8. 30 Oct, 2007 3 commits
    • unknown's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 95acd426
      unknown authored
      into  magare.gmz:/home/kgeorge/mysql/autopush/B31884-5.0-opt
      
      
      95acd426
    • unknown's avatar
      Bug #31884: Assertion + crash in subquery in the SELECT clause. · 6bbdacae
      unknown authored
      Item_in_subselect's only externally callable method is val_bool().
      However the nullability in the wrapper class (Item_in_optimizer) is 
      established by calling the "forbidden" method val_int().
      
      Fixed to use the correct method (val_bool() ) to establish nullability 
      of Item_in_subselect in Item_in_optimizer.
      
      
      mysql-test/r/subselect.result:
        Bug #31884: test case
      mysql-test/t/subselect.test:
        Bug #31884: test case
      sql/item_subselect.h:
        Bug #31884: Use the correct method to establish nullability
      6bbdacae
    • unknown's avatar
      Bug #31758 inet_ntoa, oct crashes server with null+filesort · e722393f
      unknown authored
      Item_func_inet_ntoa and Item_func_conv inherit 'maybe_null' flag from an
      argument, which is wrong.
      Both can be NULL with notnull arguments, so that's fixed.
      
      
      mysql-test/r/func_str.result:
        Bug #31758 inet_ntoa, oct crashes server with null+filesort
        
        test case
      mysql-test/t/func_str.test:
        Bug #31758 inet_ntoa, oct crashes server with null+filesort
        
        test result
      sql/item_strfunc.h:
        Bug #31758 inet_ntoa, oct crashes server with null+filesort
        
        missing maybe_null flags set for Item_func_inet_ntoa and Item_func_conv
      e722393f
  9. 29 Oct, 2007 5 commits
    • unknown's avatar
      Bug#30889: filesort and order by with float/numeric crashes server · 9e6bb07d
      unknown authored
      There are two problems with ROUND(X, D) on an exact numeric 
      (DECIMAL, NUMERIC type) field of a table:
      1) The implementation of the ROUND function would change the number of decimal
      places regardless of the value decided upon in fix_length_and_dec. When the
      number of decimal places is not constant, this would cause an inconsistent
      state where the number of digits was less than the number of decimal places,
      which crashes filesort.
      
      Fixed by not allowing the ROUND operation to add any more decimal places than
      was decided in fix_length_and_dec.
      
      2) fix_length_and_dec would allow the number of decimals to be greater than
      the maximium configured value for constant values of D. This led to the same 
      crash as in (1).
      
      Fixed by not allowing the above in fix_length_and_dec.
      
      
      mysql-test/r/type_decimal.result:
        Bug#30889: Test result
      mysql-test/t/type_decimal.test:
        Bug#30889: Test case
      sql/item_func.cc:
        Bug#30889: 
        - Avoid setting number of digits after decimal point (scale) higher than its 
          maximum value.
        - Avoid increasing the number of decimal places in ::decimal_op
      sql/item_func.h:
        Bug#30889: Added comments to the declarations of Item_func_numhybrid::<type>_op
        family of methods.
      9e6bb07d
    • unknown's avatar
      Bug#30897 GROUP_CONCAT returns extra comma on empty fields · d5b1d620
      unknown authored
      The fix is a copy of Martin Friebe's suggestion.
      added testing for no_appended which will be false if anything,
      including the empty string is in result
      
      
      mysql-test/r/func_gconcat.result:
        test result
      mysql-test/t/func_gconcat.test:
        test case
      sql/item_sum.cc:
        added testing for no_appended which will be False if anything,
        including the empty string is in result
      d5b1d620
    • unknown's avatar
      backported test case from 5.1 · 95e66de2
      unknown authored
      95e66de2
    • unknown's avatar
      25939026
    • unknown's avatar
      Merge polly.(none):/home/kaa/src/opt/bug29131/my50-bug29131 · b52ab3bd
      unknown authored
      into  polly.(none):/home/kaa/src/opt/mysql-5.0-opt
      
      
      mysql-test/r/variables.result:
        Auto merged
      mysql-test/t/variables.test:
        Auto merged
      sql/mysql_priv.h:
        Auto merged
      sql/mysqld.cc:
        Auto merged
      sql/set_var.cc:
        Auto merged
      b52ab3bd
  10. 27 Oct, 2007 2 commits
  11. 26 Oct, 2007 3 commits
    • unknown's avatar
      Merge gleb.loc:/home/uchum/work/bk/PA/5.0-opt-31663 · 46b03c59
      unknown authored
      into  gleb.loc:/home/uchum/work/bk/5.0-opt
      
      
      sql/sql_class.cc:
        Auto merged
      46b03c59
    • unknown's avatar
      Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · ca126a99
      unknown authored
      into  mysql.com:/misc/mysql/31662/50-31662
      
      
      sql/sql_base.cc:
        Auto merged
      ca126a99
    • unknown's avatar
      Bug#31662: 'null' is shown as type of fields for view with bad definer, breaks mysqldump · 0e700e1e
      unknown authored
      SHOW FIELDS FROM a view with no valid definer was possible (since fix
      for Bug#26817), but gave NULL as a field-type. This led to mysqldump-ing
      of such views being successful, but loading such a dump with the client
      failing. Patch allows SHOW FIELDS to give data-type of field in underlying
      table.
      
      
      mysql-test/r/information_schema_db.result:
        Fix test results: SHOW FIELDS FROM a view with no valid DEFINER
        gives us the field-type of the underlying table now rather than NULL.
      sql/sql_base.cc:
        In the case of SHOW FIELDS FROM <view>, do not require a valid
        DEFINER for determining underlying data-type like we usually do.
        This is needed for mysqldump.
      0e700e1e
  12. 25 Oct, 2007 2 commits
    • unknown's avatar
      Fix for bug #29131: SHOW VARIABLES reports variable 'log' but SET · 6eced1b8
      unknown authored
      doesn't recognize it
      
      This is a 5.0 version of the patch, it will be null-merged to 5.1
      
      Problem:
      
      'log' and 'log_slow_queries' were "fixed" variables, i.e. they showed up
      in SHOW VARIABLES, but could not be used in expressions like 
      "select @@log". Also, using them in the SET statement produced an 
      incorrect "unknown system variable" error.
      
      Solution:
      
      Make 'log' and 'log_slow_queries' read-only dynamic variables to make 
      them available for use in expressions, and produce a correct error 
      about the variable being read-only when used in the SET statement.
      
      
      mysql-test/r/variables.result:
        Added a test case for bug #29131.
      mysql-test/t/variables.test:
        Added a test case for bug #29131.
      sql/mysql_priv.h:
        Changed the type of opt_log and opt_slow_log to my_bool to 
        align with the interfaces in set_var.cc
      sql/mysqld.cc:
        Changed the type of opt_log and opt_slow_log to my_bool to 
        align with the interfaces in set_var.cc
      sql/set_var.cc:
        Made 'log' and 'log_slow_queries' to be read-only dynamic system 
        variable, i.e. available for use in expressions with the @@var syntax.
      sql/set_var.h:
        Added a new system variable class representing a read-only boolean
        variable.
      6eced1b8
    • unknown's avatar
      Fixed bug #27695: View should not be allowed to have empty or · 04ff9d4d
      unknown authored
      all space column names.
      
      The parser has been modified to check VIEW column names
      with the check_column_name function and to report an error
      on empty and all space column names (same as for TABLE
      column names).
      
      
      sql/sql_yacc.yy:
        Fixed bug #27695.
        The parser has been modified to check VIEW column aliases
        with the check_column_name function and to report an error
        on empty columns and all space columns (same as for TABLE
        column names).
      mysql-test/t/select.test:
        Updated test case for bug #27695.
      mysql-test/r/select.result:
        Updated test case for bug #27695.
      04ff9d4d
  13. 24 Oct, 2007 1 commit