• unknown's avatar
    Bug#19844: time_format in Union truncates values · 95617d18
    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.)
    95617d18
func_time.test 19.7 KB