An error occurred fetching the project authors.
  1. 02 Oct, 2006 1 commit
    • unknown's avatar
      Bug#21811 Odd casting with date + INTERVAL arithmetic · 5e71afcb
      unknown authored
      - Type casting was not consequent, thus when adding a DATE type with
        a WEEK interval the result type was DATETIME and not DATE as is the
        norm.
      - By changing the order of the date internal enumerations the deviant
        type casting is resolved (Item_date_add_interval::fix_length_and_dec()
        which determines result type for this operation assumes that addition
        of any interval with value <= INTERVAL_DAY to date value will result
        in date). There are two independant places to change:
        interval_names[] and interval_type.
      
      
      mysql-test/r/func_date_add.result:
        Updated result file for type casting test
      mysql-test/r/func_time.result:
        Updated result file for type casting test
      mysql-test/t/func_date_add.test:
        Added test for type casting when adding intervals to date.
      sql/item_timefunc.cc:
        Changed order of "week" key word to match the date interval enumeration.
      sql/item_timefunc.h:
        Changed the order of the enumeration to better follow interval sizes.
      5e71afcb
  2. 10 Aug, 2006 1 commit
    • unknown's avatar
      Bug#19844: time_format in Union truncates values · fa1641e1
      unknown authored
      time_format() claimed %H and %k would return at most two digits
      (hours 0-23), but this coincided neither with actual behaviour
      nor with docs.  this is not visible in simple queries; forcing
      a temp-table is probably the easiest way to see this.  adjusted
      the return-length appropriately; the alternative would be to
      adjust the docs to say that behaviour for > 99 hours is undefined.
      ---
      Bug#19844: time_format in Union truncates values
      
      time_format() claimed %H and %k would return at most two digits
      (hours 0-23), but this coincided neither with actual behaviour
      nor with docs.  this is not visible in simple queries; forcing
      a temp-table is probably the easiest way to see this.  adjusted
      the return-length appropriately; the alternative would be to
      adjust the docs to say that behaviour for > 99 hours is undefined.
      
      
      mysql-test/r/func_time.result:
        Bug#19844: time_format in Union truncates values
        
        show time_format() handles %H and %k correctly four > 99 hours
      mysql-test/t/func_time.test:
        Bug#19844: time_format in Union truncates values
        
        show time_format() handles %H and %k correctly four > 99 hours
      sql/item_timefunc.cc:
        Bug#19844: time_format in Union truncates values
        
        unbreak promises we make about field-length of %H and %k in
        time_format() so they coincide with the actual range rather
        than just 0..23. the docs say we must operate outside that
        range, so we'd better do it right.
        ---
        Bug#19844: time_format in Union truncates values
        
        unbreak promises we make about field-length of %H and %k in
        time_format() so they coincide with the actual range rather
        than just 0..23. the docs say we must operate outside that
        range, so we'd better do it right.
        One digit values are padded to two digits with %H, "longer"
        values are handled correctly up to seven digits including
        any sign.
        (clarified comments as per jimw's suggestion.)
      fa1641e1
  3. 07 Aug, 2006 1 commit
    • unknown's avatar
      Bug #20987: str_to_date doesn't accept user variable for specification · a7088b3c
      unknown authored
      str_to_date() would sometimes render NULL if %D was used as rule other than last.
      since this was due to two pointers getting mixed up in the server, this behaviour
      seemed somewhat non-deterministic at SQL level.
      
      
      mysql-test/r/func_time.result:
        Bug #20987: str_to_date doesn't accept user variable for specification
        
        show we can do the usual str_to_date() conversions without triggering the bug.
      mysql-test/t/func_time.test:
        Bug #20987: str_to_date doesn't accept user variable for specification
        
        show we can do the usual str_to_date() conversions without triggering the bug.
      sql/item_timefunc.cc:
        Bug #20987: str_to_date doesn't accept user variable for specification
        
        str_to_date() used a wrong pointer in %D conversions which could lead to the
        input being cut off after the token matching %D; if the rule required further
        tokens, the conversion would fail and render NULL.
      a7088b3c
  4. 29 Jul, 2006 1 commit
    • unknown's avatar
      Fix for bug #16226 (timestamp_diff truncation issue when requesting · 32fbc6da
      unknown authored
      difference between timestamp in values of months and quarters.)
      
      Problem:  when requesting timestamp diff in months or quarters, it
      would only examine the date (and not the time) for the comparison.
      
      Solution:  increased precision of comparison.
      
      
      mysql-test/r/func_time.result:
        Additional test results
      mysql-test/t/func_time.test:
        Additional tests
      sql/item_timefunc.cc:
        Fix for timestamp diff issue.  Added microsecond precision when
        comparing months or quarters; previously only examined date for
        these comparisons.
      32fbc6da
  5. 18 Jul, 2006 1 commit
  6. 12 Jul, 2006 1 commit
  7. 04 Jul, 2006 1 commit
    • unknown's avatar
      WL#2928 Date Translation NRE · 184ff212
      unknown authored
      (implemented by by Josh Chamas)
      
      
      libmysqld/Makefile.am:
        Adding new source file
      mysql-test/r/date_formats.result:
        Adding test case
      mysql-test/t/date_formats.test:
        Adding test case
      sql/Makefile.am:
        Adding new source file
      BitKeeper/etc/ignore:
        Added libmysqld/sql_locale.cc to the ignore list
      sql/item_timefunc.cc:
        Using current locale data, instead of hard coded English names.
      sql/mysql_priv.h:
        Adding new type MY_LOCALE, and declaring new global variables.
      sql/set_var.cc:
        Adding "lc_time_names" system variable.
      sql/set_var.h:
        Adding "lc_time_names" system variable.
      sql/sql_cache.cc:
        Adding lc_time_names as a query cache flag.
      sql/sql_class.cc:
        Setting default locale to en_US
      sql/sql_class.h:
        Adding locale variable into system_variables.
      sql/sql_locale.cc:
        Adding new file with locale data for various languages
      184ff212
  8. 27 Jun, 2006 1 commit
    • unknown's avatar
      Dec. 31st, 9999 is still a valid date, only starting with Jan 1st 10000 things... · 82d127b5
      unknown authored
      Dec. 31st, 9999 is still a valid date, only starting with Jan 1st 10000 things become invalid (Bug #12356)
      
      
      mysql-test/r/func_sapdb.result:
        test cases for date range edge cases added
      mysql-test/r/func_time.result:
        test cases for date range edge cases added
      mysql-test/t/func_sapdb.test:
        test cases for date range edge cases added
      mysql-test/t/func_time.test:
        test cases for date range edge cases added
      82d127b5
  9. 13 Jun, 2006 1 commit
    • unknown's avatar
      Fixed bug#16377: result of DATE/TIME functions were compared as strings which · 47311e8e
      unknown authored
      can lead to a wrong result.
      
      All date/time functions has the STRING result type thus their results are
      compared as strings. The string date representation allows a user to skip 
      some of leading zeros. This can lead to wrong comparison result if a date/time 
      function result is compared to such a string constant.
      
      The idea behind this bug fix is to compare results of date/time functions
      and data/time constants as ints, because that date/time representation is 
      more exact. To achieve this the agg_cmp_type() is changed to take in the
      account that a date/time field or an date/time item should be compared 
      as ints.
      
      This bug fix is partially back ported from 5.0.
      
      The agg_cmp_type() function now accepts THD as one of parameters. 
      In addition, it now checks if a date/time field/function is present in the
      list. If so, it tries to coerce all constants to INT to make date/time
      comparison return correct result. The field for the constant coercion is
      taken from the Item_field or constructed from the Item_func. In latter case
      the constructed field will be freed after conversion of all constant items.
      Otherwise the result is same as before - aggregated with help of the
      item_cmp_type() function.
      
      From the Item_func_between::fix_length_and_dec() function removed the part
      which was converting date/time constants to int if possible. Now this is 
      done by the agg_cmp_type() function.
      
      The new function result_as_longlong() is added to the Item class. 
      It indicates that the item is a date/time item and result of it can be
      compared as int. Such items are date/time fields/functions.
      
      Correct val_int() methods are implemented for classes Item_date_typecast, 
      Item_func_makedate, Item_time_typecast, Item_datetime_typecast. All these
      classes are derived from Item_str_func and Item_str_func::val_int() converts
      its string value to int without regard to the date/time type of these items.
      
      Arg_comparator::set_compare_func() and Arg_comparator::set_cmp_func()
      functions are changed to substitute result type of an item with the INT_RESULT
      if the item is a date/time item and another item is a constant. This is done
      to get a correct result of comparisons like date_time_function() = string_constant.
      
      
      mysql-test/r/cast.result:
        Fixed wrong test case result after bug fix#16377.
      sql/item_timefunc.h:
        Fixed bug#16377: result of DATE/TIME functions were compared as strings which
        can lead to a wrong result.
        The result_as_longlong() function is set to return TRUE for these classes:
        Item_date, Item_date_func, Item_func_curtime, Item_func_sec_to_time,
        Item_date_typecast, Item_time_typecast, Item_datetime_typecast,
        Item_func_makedate.
      sql/item_timefunc.cc:
        Fixed bug#16377: result of DATE/TIME functions were compared as strings which
        can lead to a wrong result.Correct val_int() methods are implemented for classes Item_date_typecast, 
        Item_func_makedate, Item_time_typecast, Item_datetime_typecast.
      sql/item_cmpfunc.h:
        Fixed bug#16377: result of DATE/TIME functions were compared as strings which
        can lead to a wrong result.
        Arg_comparator::set_compare_func() and Arg_comparator::set_cmp_func()
        functions are changed to substitute result type of an item with the INT_RESULT
        if the item is a date/time item and another item is a constant.
      sql/field.cc:
        Fixed bug#16377: result of DATE/TIME functions were compared as strings which
        can lead to a wrong result.
        Field::set_warning(), Field::set_datetime_warning() now use current_thd to get thd if table isn't set.
      sql/item_cmpfunc.cc:
        Fixed bug#16377: result of DATE/TIME functions were compared as strings which
        can lead to a wrong result.
        The agg_cmp_type() function now accepts THD as one of parameters. 
        In addition, it now checks if a date/time field/function is present in the
        list. If so, it tries to coerce all constants to INT to make date/time
        comparison return correct result. The field for the constant coercion is
        taken from the Item_field or constructed from the Item_func. In latter case
        the constructed field will be freed after conversion of all constant items.
        Otherwise the result is same as before - aggregated with help of the
        item_cmp_type() function.
      sql/item.h:
        The new function result_as_longlong() is added to the Item class. 
        It indicates that the item is a date/time item and result of it can be
        compared as int. Such items are date/time fields/functions.
      mysql-test/t/func_time.test:
        Added test case fot bug#16377: result of DATE/TIME functions were compared as strings which
        can lead to a wrong result.
      mysql-test/r/func_time.result:
        Added test case fot bug#16377: result of DATE/TIME functions were compared as strings which
        can lead to a wrong result.
      47311e8e
  10. 24 May, 2006 1 commit
    • unknown's avatar
      Remove dflt_field from field structure as this was only needed when createing... · 12a0f4ff
      unknown authored
      Remove dflt_field from field structure as this was only needed when createing temporary table and I found another soultion that doesn't increase the size of the field structure for all table instances. (Better fix for bug #19089)
      Fixed compiler warnings
      Fixed valgrind warning in Item_date_add_intervall::eq. (Recoding of bugfix #19490)
      
      
      sql/field.cc:
        remove dflt_field from field structure (not needed)
        Simple cleanup of code that been copied elsewhere
      sql/field.h:
        remove dflt_field from field structure (not needed)
      sql/item.h:
        Removed compiler warnings
      sql/item_timefunc.cc:
        Fixed Item_date_add_intervall::eq
        The problem was that when we call 'eq' 'this' is not fixed, which means we can't call const_item() or a value function.
        I fixed this so that we check eq for all arguments and that the sign and type are identical.
        (The original code gave a 'accessing uninitialized data' in valgrind.
      sql/mysql_priv.h:
        Added default fields to create_tmp_field
      sql/sql_insert.cc:
        New default_field parameter to create_tmp_field()
      sql/sql_select.cc:
        New default_field parameter to create_tmp_field()
        Use this in create_tmp_table() to set right default value for a field
      12a0f4ff
  11. 13 May, 2006 1 commit
    • unknown's avatar
      Fixed bug #19490. The bug that caused server crash manifested · 7bb4f778
      unknown authored
      itself when executing queries referring to a view with GROUP BY
      an expression containing non-constant interval.
      It happened because Item_date_add_interval::eq neglected the
      fact that the method can be applied to an expression of the form
          date(col) + interval time_to_sec(col) second
      at the time when col could not be evaluated yet.
      An attempt to evaluate time_to_sec(col) in this method resulted
      in a crash.
      
      
      mysql-test/r/view.result:
        Added a test case for bug #19490.
      mysql-test/t/view.test:
        Added a test case for bug #19490.
      sql/item_timefunc.cc:
        Fixed bug #19490. The bug that caused server crash manifested
        itself when executing queries referring to a view with GROUP BY
        an expression containing non-constant interval.
        It happened because Item_date_add_interval::eq neglected the
        fact that the method can be applied to an expression of the form
            date(col) + interval time_to_sec(col) second
        at the time when col could not be evaluated yet.
        An attempt to evaluate time_to_sec(col) in this method resulted
        in a crash.
        The code of Item_date_add_interval::eq was corrected.
      7bb4f778
  12. 04 May, 2006 2 commits
    • unknown's avatar
      Fixed Bug#11324: · 02dcc76e
      unknown authored
      TIME_FORMAT using "%l:%i" returns 36:00 with 24:00:00 in TIME column
      
      
      mysql-test/r/date_formats.result:
        Added test case for Bug#11324,
        "TIME_FORMAT using "%l:%i" returns 36:00 with 24:00:00 in TIME column"
      mysql-test/t/date_formats.test:
        Added test case for Bug#11324,
        "TIME_FORMAT using "%l:%i" returns 36:00 with 24:00:00 in TIME column"
      02dcc76e
    • unknown's avatar
      Fix for Bug#11326. · bcb61e68
      unknown authored
      mysql-test/r/date_formats.result:
        Added test cases for Bug#11326
      mysql-test/t/date_formats.test:
        Added test cases for Bug#11326
      bcb61e68
  13. 02 May, 2006 1 commit
    • unknown's avatar
      Fix for bug #16546: DATETIME+0 not always coerced the same way · 409fb489
      unknown authored
      mysql-test/r/func_time.result:
        Fix for bug #16546: DATETIME+0 not always coerced the same way
          - test case
      mysql-test/t/func_time.test:
        Fix for bug #16546: DATETIME+0 not always coerced the same way
          - test case
      sql/item_timefunc.cc:
        Fix for bug #16546: DATETIME+0 not always coerced the same way
          - set decimals to DATETIME_DEC
      sql/item_timefunc.h:
        Fix for bug #16546: DATETIME+0 not always coerced the same way
          - set decimals to DATETIME_DEC
      409fb489
  14. 25 Apr, 2006 1 commit
    • unknown's avatar
      Fix for bug #18501: Server crashes with monthname(). · 3ca1852c
      unknown authored
      mysql-test/r/func_time.result:
        Fix for bug #18501: Server crashes with monthname().
          - test case
      mysql-test/t/func_time.test:
        Fix for bug #18501: Server crashes with monthname().
          - test case
      sql/item_timefunc.cc:
        Fix for bug #18501: Server crashes with monthname().
          - check null_value as well.
      3ca1852c
  15. 17 Apr, 2006 1 commit
    • unknown's avatar
      item_timefunc.cc: · 591cfbff
      unknown authored
        5.0 additional fix for b#18691
        Handle DECIMAL the same with INT and REAL.
      
      
      sql/item_timefunc.cc:
        5.0 additional fix for b#18691
        Handle DECIMAL the same with INT and REAL.
      591cfbff
  16. 13 Apr, 2006 1 commit
    • unknown's avatar
      Bug#18691: Converting number to UNICODE string returns invalid result. · 5c0c1dcc
      unknown authored
      Conversion from int and real numbers to UCS2 didn't work fine: 
      CONVERT(100, CHAR(50) UNICODE)
      CONVERT(103.9, CHAR(50) UNICODE)
      
      The problem appeared because numbers have binary charset, so,
      simple charset recast binary->ucs2 was performed
      instead of real conversion.
      
      Fixed to make numbers pretend to be non-binary.
      
      
      mysql-test/r/ctype_ucs.result:
        Adding test case
      mysql-test/t/ctype_ucs.test:
        Adding test case
      sql/item_timefunc.cc:
        Adding new member from_cs, to replace my_charset_bin
        to a non-binary charset when converting from numbers to UCS2
      sql/item_timefunc.h:
        Adding new member from_cs, to replace my_charset_bin
        to a non-binary charset when converting from numbers to UCS2
      5c0c1dcc
  17. 11 Apr, 2006 1 commit
    • unknown's avatar
      Fix for bug #14360: Date Between Interval Broken. · 1ef73963
      unknown authored
                                         
      
      
      mysql-test/r/innodb.result:
        Fix for bug #14360: Date Between Interval Broken.                               
          - test case.
      mysql-test/t/innodb.test:
        Fix for bug #14360: Date Between Interval Broken.                               
          - test case.
      sql/item_timefunc.cc:
        Fix for bug #14360: Date Between Interval Broken.                               
          - Item_date_add_interval::eq() introduced.
      sql/item_timefunc.h:
        Fix for bug #14360: Date Between Interval Broken.                               
          - Item_date_add_interval::eq() introduced.
      1ef73963
  18. 07 Apr, 2006 1 commit
    • unknown's avatar
      fix for wrong QUARTER calculation in EXTRACT() (Bug #18100) · f7b039cc
      unknown authored
      
      mysql-test/r/func_time.result:
        expected test results for bug #18100 added
      mysql-test/t/func_time.test:
        test case for bug #18100 added
      sql/item_timefunc.cc:
        wrong formula for EXTRACT QUARTER, now uses the same calculus as the QUARTER()
        function
      f7b039cc
  19. 02 Mar, 2006 1 commit
    • unknown's avatar
      Fixed BUG#17476: Stored procedure not returning data when it is called first · 7865ce61
      unknown authored
                       time per connection
        Removed const_string() method from Item_string (it was only used in one
        place, in a bad way). Defer possible SP variable, and access data directly
        instead, in date_format item.
      
      
      mysql-test/r/sp.result:
        Updated results for new test (BUG#17476).
      mysql-test/t/sp.test:
        New test case (BUG#17476)
      sql/item.h:
        Removed const_string() from Item_string.
        It was only used in one place, and we can just use str_value in Item directly.
      sql/item_timefunc.cc:
        Must defer a (possible) local SP variable to use max_length and str_value
        in Item_func_date_format::fix_length_and_dec(), and refer to str_value
        directly without the const_string() method (now removed); the cast didn't
        work in all cases anyway.
      7865ce61
  20. 02 Feb, 2006 1 commit
    • unknown's avatar
      item_timefunc.cc: · 86f9bdf8
      unknown authored
        manual adding the fix for bug#15828 which did not automerge
      
      
      sql/item_timefunc.cc:
        manual adding the fix for bug#15828 which did not automerge
      86f9bdf8
  21. 16 Jan, 2006 1 commit
    • unknown's avatar
      date_formats.test: · e5f077f7
      unknown authored
        fix for bug #15828 after review
        doing val_str now before testing of null value secures the function for null values returned by dynamic functions - the fix before was incomplete andy covered constant null values
      
      
      mysql-test/t/date_formats.test:
        fix for bug #15828 after review
        doing val_str now before testing of null value secures the function for null values returned by dynamic functions - the fix before was incomplete andy covered constant null values
      e5f077f7
  22. 14 Jan, 2006 2 commits
    • unknown's avatar
      item_timefunc.cc: · 37b104b8
      unknown authored
        fix for bug #15828 after review
      
      
      sql/item_timefunc.cc:
        fix for bug #15828 after review
      37b104b8
    • unknown's avatar
      item_timefunc.cc: · f36a0fee
      unknown authored
        fix for bug#15828 after review
      
      
      sql/item_timefunc.cc:
        fix for bug#15828 after review
      f36a0fee
  23. 13 Jan, 2006 1 commit
    • unknown's avatar
      fix for bug#15828 · 25e32d83
      unknown authored
      problem was not checking 2nd parameter of str_to_date against NULL
      
      
      mysql-test/r/date_formats.result:
        bk commit
      25e32d83
  24. 21 Nov, 2005 1 commit
    • unknown's avatar
      cast.result: · 8b497b04
      unknown authored
        Fixing test results accordingly.
      item_timefunc.cc:
        Displaying BINARY or CHAR in error messages,
        depending on the character set.
      
      
      sql/item_timefunc.cc:
        Displaying BINARY or CHAR in error messages,
        depending on the character set.
      mysql-test/r/cast.result:
        Fixing test results accordingly.
      8b497b04
  25. 20 Nov, 2005 1 commit
    • unknown's avatar
      Inefficient usage of String::append() fixed. · fe63e095
      unknown authored
      Bad examples of usage of a string with its length fixed.
      The incorrect length in the trigger file configuration descriptor
        fixed (BUG#14090).
      A hook for unknown keys added to the parser to support old .TRG files.
      
      
      sql/field.cc:
        Inefficient usage of String::append() fixed.
        Bad examples of usage of a string with its length fixed.
      sql/ha_berkeley.cc:
        A bad example of usage of a string with its length fixed.
      sql/ha_federated.cc:
        Inefficient usage of String::append() fixed.
      sql/ha_myisammrg.cc:
        Bad examples of usage of a string with its length fixed.
      sql/handler.cc:
        Inefficient usage of String::append() fixed.
      sql/item.cc:
        Bad examples of usage of a string with its length fixed.
      sql/item.h:
        A bad example of usage of a string with its length fixed.
      sql/item_cmpfunc.cc:
        Bad examples of usage of a string with its length fixed.
      sql/item_func.cc:
        Bad examples of usage of a string with its length fixed.
      sql/item_strfunc.cc:
        Bad examples of usage of a string with its length fixed.
      sql/item_subselect.cc:
        Bad examples of usage of a string with its length fixed.
      sql/item_sum.cc:
        Bad examples of usage of a string with its length fixed.
        Inefficient usage of String::append() fixed.
      sql/item_timefunc.cc:
        Inefficient using of String::append() fixed.
        Bad examples of usage of a string with its length fixed.
      sql/item_uniq.h:
        Bad examples of usage of a string with its length fixed.
      sql/key.cc:
        Bad examples of usage of a string with its length fixed.
      sql/log.cc:
        Bad examples of usage of a string with its length fixed.
      sql/log_event.cc:
        Bad examples of usage of a string with its length fixed.
      sql/mysqld.cc:
        The dummy parser hook allocated.
      sql/opt_range.cc:
        Inefficient usage of String::append() fixed.
      sql/parse_file.cc:
        Bad examples of usage of a string with its length fixed.
        A hook for unknown keys added to the parser.
      sql/parse_file.h:
        A hook for unknown keys added to the parser.
      sql/protocol.cc:
        A bad example of usage of a string with its length fixed.
      sql/repl_failsafe.cc:
        Bad examples of usage of a string with its length fixed.
      sql/share/errmsg.txt:
        A warning for old format config file.
      sql/slave.cc:
        Bad examples of usage of a string with its length fixed.
      sql/sp.cc:
        Bad examples of usage of a string with its length fixed.
      sql/sp_head.cc:
        Bad examples of usage of a string with its length fixed.
      sql/spatial.cc:
        A bad example of usage of a string with its length fixed.
      sql/sql_acl.cc:
        Bad examples of usage of a string with its length fixed.
      sql/sql_analyse.cc:
        Bad examples of usage of a string with its length fixed.
        Inefficient usage of String::append() fixed.
      sql/sql_lex.cc:
        Bad examples of usage of a string with its length fixed.
      sql/sql_load.cc:
        A bad example of usage of a string with its length fixed.
      sql/sql_parse.cc:
        Bad examples of usage of a string with its length fixed.
      sql/sql_prepare.cc:
        A bad example of usage of a string with its length fixed.
      sql/sql_select.cc:
        Bad examples of usage of a string with its length fixed.
      sql/sql_show.cc:
        Bad examples of usage of a string with its length fixed.
      sql/sql_string.cc:
        Bad examples of usage of a string with its length fixed.
      sql/sql_string.h:
        The macro definition moved to sql_string.h to
          be accessible in all parts of server.
      sql/sql_table.cc:
        Bad examples of usage of a string with its length fixed.
      sql/sql_trigger.cc:
        Bad examples of usage of a string with its length fixed.
        The incorrect length in the trigger file configuration descriptor
          fixed (BUG#14090).
        The hook for processing incorrect sql_mode record added.
      sql/sql_view.cc:
        A dummy  hook used for parsing views.
      sql/structs.h:
        The macro definition moved to sql_string.h to be
          accessible in all parts of server.
      sql/table.cc:
        A bad example of usage of a string with its length fixed.
      sql/tztime.cc:
        A bad example of usage of a string with its length fixed.
      fe63e095
  26. 01 Nov, 2005 1 commit
    • unknown's avatar
      Review of new pushed code · fffe7417
      unknown authored
      Removed wrong fix for bug #14009 (use of abs() on null value causes problems with filesort)
      Mark that add_time(), time_diff() and str_to_date() can return null values
      
      
      myisam/mi_check.c:
        keyoffset is not a position (no %lx here)
      mysql-test/r/func_sapdb.result:
        Fixed test after marking that timediff() can return NULL
      sql/item_func.cc:
        Removed wrong fix for bug #14009 (use of abs() on null value causes problems with filesort)
      sql/item_timefunc.cc:
        Mark that add_time and str_to_date() can return null values
      sql/item_timefunc.h:
        Mark that time_diff can return 0
      sql/spatial.cc:
        Simple cleanups during review of new code
      fffe7417
  27. 27 Oct, 2005 1 commit
    • unknown's avatar
      Merge 4.1 - 5.0 · 1b574f5b
      unknown authored
      mysql-test/r/insert_select.result:
        Merge from 4.1 to 5.0.
      mysql-test/r/select.result:
        Merge from 4.1 to 5.0.
      mysql-test/t/insert_select.test:
        Merge from 4.1 to 5.0.
      mysys/my_handler.c:
        Merge from 4.1 to 5.0.
      sql/item.cc:
        Merge from 4.1 to 5.0.
      sql/item_timefunc.cc:
        Imported bug fix from 4.1 to 5.0. (Bug#14016)
      sql/item_timefunc.h:
        Imported bug fix from 4.1 to 5.0. (Bug#14016)
      1b574f5b
  28. 25 Oct, 2005 2 commits
    • unknown's avatar
      Fix bug #14016 date_format() 2nd parameter was compared using case insensitive · b96dbef6
      unknown authored
      collation
      
      By default constant strings in second parameter of date_time() have case
      insensitive collation. Because of this expressions date_format(f,'%m') and 
      date_format(f,'%M') wrongly becomes equal, which results in choosing wrong 
      column to sort by.
      
      Now if second parameter of date_format() is constant then it's collation is 
      changed to case sensitive.
      
      
      sql/item_timefunc.cc:
        Fix bug #14016 date_format() 2nd parameter was compared using case insensitive collation.
        If second parameter of date_format() is constant then it's collation is changed to case sensitive.
      mysql-test/r/date_formats.result:
        Test case for bug#14016 2nd parameter was compared using case insensitive collation
      mysql-test/t/date_formats.test:
        Test case for bug#14016 2nd parameter was compared using case insensitive collation
      b96dbef6
    • unknown's avatar
      Bug#14255 CAST(x AS BINARY(N)) does not pad · 4b5c33a7
      unknown authored
      type_binary.result, type_binary.test:
        Adding test case.
      item_timefunc.cc:
        Padding code was added.
      
      
      sql/item_timefunc.cc:
        Bug#14255 CAST(x AS BINARY(N)) does not pad
        Padding code was added.
      mysql-test/t/type_binary.test:
        Adding test case.
      mysql-test/r/type_binary.result:
        Adding test case.
      4b5c33a7
  29. 13 Oct, 2005 1 commit
  30. 14 Sep, 2005 1 commit
    • unknown's avatar
      Fixed BUG#12963, BUG#13000: wrong VIEW creation with DAYNAME(), · b214671e
      unknown authored
       DAYOFWEEK(), and WEEKDAY().
      
      
      mysql-test/r/func_time.result:
        Fixed new results for testcases containing EXPLAIN EXTENDED SELECT ...
         WEEKDAY ... DAYNAME. The new results are correct and correspond to
         the changes in create_func_weekday() and create_func_dayname().
      mysql-test/r/view.result:
        Fixed some testcases results (bugs #12963, #13000).
      mysql-test/t/view.test:
        Added testcases for for bugs #12963, #13000.
      sql/item_create.cc:
        Fixed bugs #12963, #13000: wrong VIEW creation with DAYNAME(),
         DAYOFWEEK(), and WEEKDAY().
         Modified create_func_dayname(), create_func_dayofweek(), and
         create_func_weekday(). They don´t insert Item_func_to_days
         object now.
      sql/item_timefunc.cc:
        Fixed bugs #12963, #13000: wrong VIEW creation with DAYNAME(),
         DAYOFWEEK(), and WEEKDAY().
         Modified Item_func_weekday::val_int(). The argument of weekday should
         not be considered now to be Item_func_to_days object.
      sql/item_timefunc.h:
        Fixed bugs #12963, 13000: wrong VIEW creation with DAYNAME(),
         DAYOFWEEK(), and WEEKDAY.
         Modified Item_func_weekday::func_name(). It returns now different
         names depending on the odbc_type attribute value.
      b214671e
  31. 24 Aug, 2005 1 commit
    • unknown's avatar
      Make SYSDATE() behave as in Oracle: always the current datetime, not the · da13a76a
      unknown authored
      datetime of when the current statement began. This also makes SYSDATE()
      not safe in replication. (Bug #12562)
      
      
      mysql-test/r/func_time.result:
        Add new results
      mysql-test/t/func_time.test:
        Add tests for new SYSDATE() behavior
      sql/item_timefunc.cc:
        Add Item_func_sysdate_local implementation
      sql/item_timefunc.h:
        Add Item_func_sysdate_local, so SYSDATE() can behave differently
        than NOW().
      sql/lex.h:
        SYSDATE() is no longer an alias for NOW().
      sql/sql_yacc.yy:
        Handle SYSDATE()
      da13a76a
  32. 02 Aug, 2005 1 commit
    • unknown's avatar
      Generate a warning/error when DATE_SUB/ADD() functions calculate a date · 455ee425
      unknown authored
      that is outside the acceptable date range. (Bug #10627)
      
      
      mysql-test/r/func_date_add.result:
        Add new results
      mysql-test/t/func_date_add.test:
        Add new regression test
      sql/item_timefunc.cc:
        Add warning for error conditions in Item_date_add_interval::get_date()
      sql/share/errmsg.txt:
        Add new error message
      455ee425
  33. 31 Jul, 2005 1 commit
    • unknown's avatar
      Fixes during review of new pushed code · 6b3478ec
      unknown authored
      Change bool in C code to my_bool
      Added to mysqltest --enable_parsning and --disable_parsing to avoid to have to comment parts of tests
      Added comparison of LEX_STRING's and use this to compare file types for view and trigger files.
      
      
      client/client_priv.h:
        Added OPT_TRIGGERS (to get rid of compiler warning)
      client/mysql.cc:
        Added cast to get rid of compiler warning
      client/mysqldump.c:
        Added OPT_TRIGGERS (to get rid of compiler warning)
        Abort if we can't write to outfile (even if --ignore-errors is given)
      client/mysqltest.c:
        Added --enable_parsning and --disable_parsing to avoid to have to comment parts of tests
      include/my_sys.h:
        Make my_progname const
      include/my_time.h:
        Avoid using 'bool' in C programs
      mysql-test/lib/init_db.sql:
        Align with mysql_create_system_tables
        (Ideally this file should be auto-generated from the above script)
      mysql-test/r/mysqltest.result:
        Test for --enable_parsing
      mysql-test/r/variables.result:
        Update results after fix for overflow checking of max_heap_table_size
      mysql-test/t/information_schema.test:
        USe --enable/disable parsing instead of comments
      mysql-test/t/mysqltest.test:
        Test for --enable_parsing
      mysql-test/t/sp.test:
        USe --enable/disable parsing instead of comments
      mysql-test/t/variables.test:
        Portability fix for 64 bit systems
      mysql-test/t/view.test:
        USe --enable/disable parsing instead of comments
      mysys/my_init.c:
        May my_progname const
      mysys/my_static.c:
        May my_progname const
      mysys/thr_lock.c:
        Remove not needed casts
      sql-common/my_time.c:
        Change bool -> my_bool as bool is not portable in C programs
      sql/field.cc:
        Test number_to_datetime() for -1 instead of < 0 (Safety fix)
        New prototype for TIME_to_timestamp()
      sql/item.h:
        Don't have prototypes for both uint32 and ulong as these 'may' be the same thing
      sql/item_timefunc.cc:
        New prototype for TIME_to_timestamp()
      sql/log.cc:
        Remove compiler warnings
      sql/mysql_priv.h:
        New prototype for TIME_to_timestamp()
        Added function for comparing LEX_STRING
      sql/set_var.cc:
        Added overflow checking when setting ulong variable
      sql/sql_base.cc:
        Added function is_equal()
        Changed strncmp -> is_equal() as strncmp() to not match "V" (instead of "VIEW")
      sql/sql_class.cc:
        Added comment
      sql/sql_select.cc:
        Portability fixes
        After review fixes
      sql/sql_trigger.cc:
        Use 'tables_alias_charset' for comparing database name
        Use 'is_equal()' to compare file type. (Old code didn't do the comparison correctly)
      sql/sql_view.cc:
        Use 'is_equal()' to compare file type. (Old code didn't do the comparison correctly)
      sql/time.cc:
        New prototype for TIME_to_timestamp() to allow easyer mapping to C function
      sql/tztime.cc:
        bool -> my_bool (to allow calling C code from C++ code)
      sql/tztime.h:
        bool -> my_bool (to allow calling C code from C++ code)
      6b3478ec
  34. 20 Jul, 2005 1 commit
    • unknown's avatar
      Fix bug #11760 Typo in Item_func_add_time::print() results in NULLs returned · c816f297
      unknown authored
      by subtime() in view
      
      Item_func_add_time::print() were printing arg[0] instead of arg[1] which
      results in wrongly created view. Functions addtime() and subtime were
      affected by this bug.
      
      
      sql/item_timefunc.cc:
        Fix bug #11760 Typo in Item_func_add_time::print() results in wrongly created view
      mysql-test/t/view.test:
        Test case for bug #11760  Typo in Item_func_add_time::print() results in wrongly created view
      mysql-test/r/view.result:
        Test case for bug #11760  Typo in Item_func_add_time::print() results in wrongly created view
      mysql-test/r/date_formats.result:
        Fixed wrong test result. Affected by bug#11760
      c816f297
  35. 19 Jul, 2005 1 commit
    • unknown's avatar
      Simple fixes during review of new code · 3a31f7b9
      unknown authored
      include/my_global.h:
        Added floatget() to read unaligned flaot
      mysql-test/r/select.result:
        Added test for found_rows()
      mysql-test/t/select.test:
        Added test for found_rows()
      sql/des_key_file.cc:
        Moved initalization of LOCK_des_key_file to mysqld to make simpler code and avoid theoretical race condition
      sql/field_conv.cc:
        Added optimizzed varsion of do_cut_string (for simple character sets)
      sql/item_func.cc:
        Simplify code (and ensure DBUG_ENTER is excuted before main code)
      sql/item_strfunc.cc:
        Safe calculation of max_length
        This was needed as max_length can now be 1<<32-1 (after konstantins recent patch to fix BLOB_LENGTH)
        Remove init_des_key_file() as this is not initialized in mysqld.cc
      sql/item_timefunc.cc:
        Safe calculation of max_length
        This was needed as max_length can now be 1<<32-1 (after konstantins recent patch to fix BLOB_LENGTH)
      sql/log_event.cc:
        Simplify code
      sql/mysql_priv.h:
        Moved initalization of LOCK_des_key_file to mysqld to make simpler code and avoid theoretical race condition
      sql/mysqld.cc:
        Moved initalization of LOCK_des_key_file to mysqld to make simpler code and avoid theoretical race condition
        Revert wrong patch of calling close_connection() in first close_connections() loop. (Bug #7403)
        Instead we now print a warning for closed connections only if mysqld is sarted with --warnings
        Added comments to make the close_connections() logic clearer
      sql/sql_prepare.cc:
        Use floatget() and doubleget() to protect against unaligned data
      sql/sql_select.cc:
        Fixed some cases unlikely cases where found_rows() would return wrong for queries that would return 0 or 1 rows
      3a31f7b9
  36. 01 Jul, 2005 1 commit
    • unknown's avatar
      Name resolution context added (BUG#6443) · b4f595b9
      unknown authored
      include/my_bitmap.h:
        new bitmap operation
      mysql-test/r/view.result:
        added warnings
        Correct inserting data check (absence of default value) for view underlying tables (BUG#6443)
      mysql-test/t/view.test:
        Correct inserting data check (absence of default value) for view underlying tables (BUG#6443)
      mysys/my_bitmap.c:
        new bitmap operation
      sql/field.h:
        index of field in table added
      sql/item.cc:
        Name resolution context added
        table list removed from fix_fields() arguments
      sql/item.h:
        Name resolution context added
        table list removed from fix_fields() arguments
      sql/item_cmpfunc.cc:
        table list removed from fix_fields() arguments
      sql/item_cmpfunc.h:
        table list removed from fix_fields() arguments
      sql/item_func.cc:
        table list removed from fix_fields() arguments
      sql/item_func.h:
        table list removed from fix_fields() arguments
      sql/item_row.cc:
        table list removed from fix_fields() arguments
      sql/item_row.h:
        table list removed from fix_fields() arguments
      sql/item_strfunc.cc:
        fixed server crash on NULL argument
      sql/item_strfunc.h:
        table list removed from fix_fields() arguments
      sql/item_subselect.cc:
        table list removed from fix_fields() arguments
      sql/item_subselect.h:
        table list removed from fix_fields() arguments
      sql/item_sum.cc:
        table list removed from fix_fields() arguments
      sql/item_sum.h:
        table list removed from fix_fields() arguments
      sql/item_timefunc.cc:
        table list removed from fix_fields() arguments
      sql/item_timefunc.h:
        table list removed from fix_fields() arguments
      sql/item_uniq.h:
        table list removed from fix_fields() arguments
      sql/log_event.cc:
        Name resolution context added
      sql/log_event.h:
        Name resolution context added
      sql/mysql_priv.h:
        Name resolution context added
      sql/set_var.cc:
        table list removed from fix_fields() arguments
      sql/share/errmsg.txt:
        new error message
      sql/sp.cc:
        Name resolution context added
      sql/sp_head.cc:
        table list removed from fix_fields() arguments
      sql/sp_head.h:
        Name resolution context added
      sql/sql_base.cc:
        table list removed from fix_fields() arguments
        Name resolution context added
      sql/sql_class.cc:
        renamed variable
      sql/sql_delete.cc:
        Name resolution context added
      sql/sql_derived.cc:
        Name resolution context added
      sql/sql_do.cc:
        table list removed from fix_fields() arguments
      sql/sql_handler.cc:
        Name resolution context added
      sql/sql_help.cc:
        Name resolution context added
      sql/sql_insert.cc:
        Name resolution context added
        table list removed from fix_fields() arguments
      sql/sql_lex.cc:
        Name resolution context added
      sql/sql_lex.h:
        removed resolve mode (information stored into name resolution context)
      sql/sql_load.cc:
        table list removed from fix_fields() arguments
      sql/sql_olap.cc:
        Name resolution context added
      sql/sql_parse.cc:
        Name resolution context added
      sql/sql_prepare.cc:
        table list removed from fix_fields() arguments
      sql/sql_select.cc:
        table list removed from fix_fields() arguments
      sql/sql_show.cc:
        Name resolution context added
      sql/sql_trigger.cc:
        table list removed from fix_fields() arguments
      sql/sql_udf.h:
        table list removed from fix_fields() arguments
      sql/sql_union.cc:
        Name resolution context added
      sql/sql_update.cc:
        Name resolution context added
      sql/sql_view.cc:
        Name resolution context added
      sql/sql_view.h:
        table list removed from fix_fields() arguments
      sql/sql_yacc.yy:
        Name resolution context added
      sql/table.cc:
        Name resolution context added
        merged view processing moved
      sql/table.h:
        merged view processing moved
      b4f595b9
  37. 24 Jun, 2005 1 commit