951
951
if (args[0]->type() == Item::FIELD_ITEM)
953
if (args[0]->field_type() == MYSQL_TYPE_NEWDATE)
953
if (args[0]->field_type() == DRIZZLE_TYPE_NEWDATE)
954
954
return MONOTONIC_STRICT_INCREASING;
955
if (args[0]->field_type() == MYSQL_TYPE_DATETIME)
955
if (args[0]->field_type() == DRIZZLE_TYPE_DATETIME)
956
956
return MONOTONIC_INCREASING;
958
958
return NON_MONOTONIC;
972
972
res=(int64_t) calc_daynr(ltime.year,ltime.month,ltime.day);
974
if (args[0]->field_type() == MYSQL_TYPE_NEWDATE)
974
if (args[0]->field_type() == DRIZZLE_TYPE_NEWDATE)
976
976
// TO_DAYS() is strictly monotonic for dates, leave incl_endp intact
1206
1206
enum_monotonicity_info Item_func_year::get_monotonicity_info() const
1208
1208
if (args[0]->type() == Item::FIELD_ITEM &&
1209
(args[0]->field_type() == MYSQL_TYPE_NEWDATE ||
1210
args[0]->field_type() == MYSQL_TYPE_DATETIME))
1209
(args[0]->field_type() == DRIZZLE_TYPE_NEWDATE ||
1210
args[0]->field_type() == DRIZZLE_TYPE_DATETIME))
1211
1211
return MONOTONIC_INCREASING;
1212
1212
return NON_MONOTONIC;
1254
1254
if (args[0]->type() == FIELD_ITEM)
1255
1255
{ // Optimize timestamp field
1256
1256
Field *field=((Item_field*) args[0])->field;
1257
if (field->type() == MYSQL_TYPE_TIMESTAMP)
1257
if (field->type() == DRIZZLE_TYPE_TIMESTAMP)
1258
1258
return ((Field_timestamp*) field)->get_timestamp(&null_value);
2016
2016
The field type for the result of an Item_date function is defined as
2019
- If first arg is a MYSQL_TYPE_DATETIME result is MYSQL_TYPE_DATETIME
2020
- If first arg is a MYSQL_TYPE_NEWDATE and the interval type uses hours,
2021
minutes or seconds then type is MYSQL_TYPE_DATETIME.
2022
- Otherwise the result is MYSQL_TYPE_STRING
2019
- If first arg is a DRIZZLE_TYPE_DATETIME result is DRIZZLE_TYPE_DATETIME
2020
- If first arg is a DRIZZLE_TYPE_NEWDATE and the interval type uses hours,
2021
minutes or seconds then type is DRIZZLE_TYPE_DATETIME.
2022
- Otherwise the result is DRIZZLE_TYPE_STRING
2023
2023
(This is because you can't know if the string contains a DATE, MYSQL_TIME or
2024
2024
DATETIME argument)
2026
cached_field_type= MYSQL_TYPE_STRING;
2026
cached_field_type= DRIZZLE_TYPE_STRING;
2027
2027
arg0_field_type= args[0]->field_type();
2028
if (arg0_field_type == MYSQL_TYPE_DATETIME ||
2029
arg0_field_type == MYSQL_TYPE_TIMESTAMP)
2030
cached_field_type= MYSQL_TYPE_DATETIME;
2031
else if (arg0_field_type == MYSQL_TYPE_NEWDATE)
2028
if (arg0_field_type == DRIZZLE_TYPE_DATETIME ||
2029
arg0_field_type == DRIZZLE_TYPE_TIMESTAMP)
2030
cached_field_type= DRIZZLE_TYPE_DATETIME;
2031
else if (arg0_field_type == DRIZZLE_TYPE_NEWDATE)
2033
2033
if (int_type <= INTERVAL_DAY || int_type == INTERVAL_YEAR_MONTH)
2034
2034
cached_field_type= arg0_field_type;
2036
cached_field_type= MYSQL_TYPE_DATETIME;
2036
cached_field_type= DRIZZLE_TYPE_DATETIME;
2626
2626
The field type for the result of an Item_func_add_time function is defined
2629
- If first arg is a MYSQL_TYPE_DATETIME or MYSQL_TYPE_TIMESTAMP
2630
result is MYSQL_TYPE_DATETIME
2631
- If first arg is a MYSQL_TYPE_TIME result is MYSQL_TYPE_TIME
2632
- Otherwise the result is MYSQL_TYPE_STRING
2629
- If first arg is a DRIZZLE_TYPE_DATETIME or DRIZZLE_TYPE_TIMESTAMP
2630
result is DRIZZLE_TYPE_DATETIME
2631
- If first arg is a DRIZZLE_TYPE_TIME result is DRIZZLE_TYPE_TIME
2632
- Otherwise the result is DRIZZLE_TYPE_STRING
2635
cached_field_type= MYSQL_TYPE_STRING;
2635
cached_field_type= DRIZZLE_TYPE_STRING;
2636
2636
arg0_field_type= args[0]->field_type();
2637
if (arg0_field_type == MYSQL_TYPE_NEWDATE ||
2638
arg0_field_type == MYSQL_TYPE_DATETIME ||
2639
arg0_field_type == MYSQL_TYPE_TIMESTAMP)
2640
cached_field_type= MYSQL_TYPE_DATETIME;
2641
else if (arg0_field_type == MYSQL_TYPE_TIME)
2642
cached_field_type= MYSQL_TYPE_TIME;
2637
if (arg0_field_type == DRIZZLE_TYPE_NEWDATE ||
2638
arg0_field_type == DRIZZLE_TYPE_DATETIME ||
2639
arg0_field_type == DRIZZLE_TYPE_TIMESTAMP)
2640
cached_field_type= DRIZZLE_TYPE_DATETIME;
2641
else if (arg0_field_type == DRIZZLE_TYPE_TIME)
2642
cached_field_type= DRIZZLE_TYPE_TIME;
3163
cached_field_type= MYSQL_TYPE_DATETIME;
3163
cached_field_type= DRIZZLE_TYPE_DATETIME;
3164
3164
max_length= MAX_DATETIME_FULL_WIDTH*MY_CHARSET_BIN_MB_MAXLEN;
3165
3165
cached_timestamp_type= MYSQL_TIMESTAMP_NONE;
3166
3166
if ((const_item= args[1]->const_item()))
3175
3175
switch (cached_format_type) {
3176
3176
case DATE_ONLY:
3177
3177
cached_timestamp_type= MYSQL_TIMESTAMP_DATE;
3178
cached_field_type= MYSQL_TYPE_NEWDATE;
3178
cached_field_type= DRIZZLE_TYPE_NEWDATE;
3179
3179
max_length= MAX_DATE_WIDTH * MY_CHARSET_BIN_MB_MAXLEN;
3181
3181
case TIME_ONLY:
3182
3182
case TIME_MICROSECOND:
3183
3183
cached_timestamp_type= MYSQL_TIMESTAMP_TIME;
3184
cached_field_type= MYSQL_TYPE_TIME;
3184
cached_field_type= DRIZZLE_TYPE_TIME;
3185
3185
max_length= MAX_TIME_WIDTH * MY_CHARSET_BIN_MB_MAXLEN;
3188
3188
cached_timestamp_type= MYSQL_TIMESTAMP_DATETIME;
3189
cached_field_type= MYSQL_TYPE_DATETIME;
3189
cached_field_type= DRIZZLE_TYPE_DATETIME;