diff options
author | Sergei Golubchik <sergii@pisem.net> | 2011-03-18 19:45:00 +0100 |
---|---|---|
committer | Sergei Golubchik <sergii@pisem.net> | 2011-03-18 19:45:00 +0100 |
commit | e79a72a410ef74e5105616da8eceb2798f485c57 (patch) | |
tree | ff44f5b580a5383e042e8c28780f290b87cf7070 /sql/field.cc | |
parent | c629477981cc491a12c3664b81f9fb33db00e481 (diff) | |
download | mariadb-git-e79a72a410ef74e5105616da8eceb2798f485c57.tar.gz |
lp:737496 Assertion `(was_cut & 1) == 0' failed in Field_temporal::store_TIME_with_warning() in 5.1-micro
fix incorrect assert
Diffstat (limited to 'sql/field.cc')
-rw-r--r-- | sql/field.cc | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/sql/field.cc b/sql/field.cc index 4ff9f83f5cc..f7675b82a99 100644 --- a/sql/field.cc +++ b/sql/field.cc @@ -5189,15 +5189,16 @@ int Field_temporal::store_TIME_with_warning(MYSQL_TIME *ltime, was_cut= MYSQL_TIME_WARN_TRUNCATED; ret= 1; } - else if (temporal_type() == MYSQL_TIMESTAMP_DATE && + else if (!(was_cut & MYSQL_TIME_WARN_TRUNCATED) && + temporal_type() == MYSQL_TIMESTAMP_DATE && (ltime->hour || ltime->minute || ltime->second || ltime->second_part)) { - DBUG_ASSERT((was_cut & MYSQL_TIME_WARN_TRUNCATED) == 0); trunc_level= MYSQL_ERROR::WARN_LEVEL_NOTE; was_cut|= MYSQL_TIME_WARN_TRUNCATED; ret= 3; } - else if (temporal_type() == MYSQL_TIMESTAMP_TIME && + else if (!(was_cut & MYSQL_TIME_WARN_TRUNCATED) && + temporal_type() == MYSQL_TIMESTAMP_TIME && (ltime->year || ltime->month)) { ltime->year= ltime->month= ltime->day= 0; |