• 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
item_timefunc.h 25.7 KB