summaryrefslogtreecommitdiff
path: root/sql/item_sum.cc
diff options
context:
space:
mode:
authorAlexander Barkov <bar@mariadb.com>2019-07-05 09:15:40 +0400
committerAlexander Barkov <bar@mariadb.com>2019-07-05 09:15:40 +0400
commit11f13bff21f8f1a0285f4d3f0db4b4252a9c7c7b (patch)
tree3fc3cd41a6572b793295e74483e79dd98c011b4a /sql/item_sum.cc
parentbee24fe18188c81f52ae3bfa4ff42a2137480a6b (diff)
downloadmariadb-git-11f13bff21f8f1a0285f4d3f0db4b4252a9c7c7b.tar.gz
MDEV-17857 Assertion `tmp != ((long long) 0x8000000000000000LL)' failed in TIME_from_longlong_datetime_packed upon SELECT with GROUP BY
Diffstat (limited to 'sql/item_sum.cc')
-rw-r--r--sql/item_sum.cc11
1 files changed, 7 insertions, 4 deletions
diff --git a/sql/item_sum.cc b/sql/item_sum.cc
index 960d79b39ac..f5bcd082824 100644
--- a/sql/item_sum.cc
+++ b/sql/item_sum.cc
@@ -2549,11 +2549,14 @@ Item_sum_hybrid::min_max_update_str_field()
if (!args[0]->null_value)
{
- result_field->val_str(&cmp->value2);
-
- if (result_field->is_null() ||
- (cmp_sign * sortcmp(res_str,&cmp->value2,collation.collation)) < 0)
+ if (result_field->is_null())
result_field->store(res_str->ptr(),res_str->length(),res_str->charset());
+ else
+ {
+ result_field->val_str(&cmp->value2);
+ if ((cmp_sign * sortcmp(res_str,&cmp->value2,collation.collation)) < 0)
+ result_field->store(res_str->ptr(),res_str->length(),res_str->charset());
+ }
result_field->set_notnull();
}
}