126
126
int Field_date::store_time(type::Time *ltime,
127
enum enum_drizzle_timestamp_type time_type)
127
type::timestamp_t time_type)
131
if (time_type == DRIZZLE_TIMESTAMP_DATE ||
132
time_type == DRIZZLE_TIMESTAMP_DATETIME)
131
if (time_type == type::DRIZZLE_TIMESTAMP_DATE || time_type == type::DRIZZLE_TIMESTAMP_DATETIME)
134
133
tmp= ltime->year*10000 + ltime->month*100 + ltime->day;
135
if (check_date(ltime, tmp != 0,
137
(current_session->variables.sql_mode &
138
(MODE_NO_ZERO_DATE | MODE_INVALID_DATES))), &error))
135
if (ltime->check(tmp != 0,
137
(current_session->variables.sql_mode &
138
(MODE_NO_ZERO_DATE | MODE_INVALID_DATES))), &error))
140
char buff[MAX_DATE_STRING_REP_LENGTH];
140
char buff[type::Time::MAX_STRING_LENGTH];
141
141
String str(buff, sizeof(buff), &my_charset_utf8_general_ci);
142
make_date(ltime, &str);
142
ltime->convert(str, type::DRIZZLE_TIMESTAMP_DATE);
143
143
set_datetime_warning(DRIZZLE_ERROR::WARN_LEVEL_WARN, ER_WARN_DATA_TRUNCATED,
144
str.ptr(), str.length(), DRIZZLE_TIMESTAMP_DATE, 1);
144
str.ptr(), str.length(), type::DRIZZLE_TIMESTAMP_DATE, 1);
146
if (!error && ltime->time_type != DRIZZLE_TIMESTAMP_DATE &&
147
if (not error && ltime->time_type != type::DRIZZLE_TIMESTAMP_DATE &&
147
148
(ltime->hour || ltime->minute || ltime->second || ltime->second_part))
149
char buff[MAX_DATE_STRING_REP_LENGTH];
150
char buff[type::Time::MAX_STRING_LENGTH];
150
151
String str(buff, sizeof(buff), &my_charset_utf8_general_ci);
151
make_datetime(ltime, &str);
152
153
set_datetime_warning(DRIZZLE_ERROR::WARN_LEVEL_NOTE,
153
154
ER_WARN_DATA_TRUNCATED,
154
str.ptr(), str.length(), DRIZZLE_TIMESTAMP_DATE, 1);
155
str.ptr(), str.length(), type::DRIZZLE_TIMESTAMP_DATE, 1);
215
218
ltime->day= (int) (tmp%100);
216
219
ltime->month= (int) (tmp/100%100);
217
220
ltime->year= (int) (tmp/10000);
218
ltime->time_type= DRIZZLE_TIMESTAMP_DATE;
221
ltime->time_type= type::DRIZZLE_TIMESTAMP_DATE;
219
222
ltime->hour= ltime->minute= ltime->second= ltime->second_part= ltime->neg= 0;
220
223
return ((!(fuzzydate & TIME_FUZZY_DATE) && (!ltime->month || !ltime->day)) ?