diff options
author | unknown <Kristofer.Pettersson@naruto.> | 2006-10-11 10:17:39 +0200 |
---|---|---|
committer | unknown <Kristofer.Pettersson@naruto.> | 2006-10-11 10:17:39 +0200 |
commit | c247bf9dc3c370c70dc763dcf361c85ee20035fd (patch) | |
tree | c3c6295c052cfb8644b61ca97122dcd1ffdd43d0 /sql/time.cc | |
parent | 910fe3921e8ba8a4562d5e9d318769e16babb110 (diff) | |
download | mariadb-git-c247bf9dc3c370c70dc763dcf361c85ee20035fd.tar.gz |
BUG#21811 Odd casting with date + INTERVAL arithmetic
- Type casting was not consequent, thus when adding a DATE type with
a WEEK interval the result tpe was DATETIME and not DATE as is the
norm.
- By changing the order of the date type enumerations the type casting
bug is resolved. To comply with the new order the array
interval_type_to_name needed to change accordingly.
include/my_time.h:
Changed enumeration order to make week interval appear in a more
logical order. This affects type casting when a date is added to an
interval.
sql/time.cc:
Moved string WEEK to match enumeration in interval_type
Diffstat (limited to 'sql/time.cc')
-rw-r--r-- | sql/time.cc | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/sql/time.cc b/sql/time.cc index 0461f7723c6..467dbc684a5 100644 --- a/sql/time.cc +++ b/sql/time.cc @@ -25,14 +25,25 @@ #ifndef TESTTIME +/* + Name description of interval names used in statements. + + 'interval_type_to_name' is ordered and sorted on interval size and + interval complexity. + Order of elements in 'interval_type_to_name' should correspond to + the order of elements in 'interval_type' enum + + See also interval_type, interval_names +*/ + LEX_STRING interval_type_to_name[INTERVAL_LAST] = { { C_STRING_WITH_LEN("YEAR")}, { C_STRING_WITH_LEN("QUARTER")}, { C_STRING_WITH_LEN("MONTH")}, + { C_STRING_WITH_LEN("WEEK")}, { C_STRING_WITH_LEN("DAY")}, { C_STRING_WITH_LEN("HOUR")}, { C_STRING_WITH_LEN("MINUTE")}, - { C_STRING_WITH_LEN("WEEK")}, { C_STRING_WITH_LEN("SECOND")}, { C_STRING_WITH_LEN("MICROSECOND")}, { C_STRING_WITH_LEN("YEAR_MONTH")}, |