summaryrefslogtreecommitdiff
path: root/sql/item_func.cc
diff options
context:
space:
mode:
authorAlexander Barkov <bar@mariadb.com>2019-12-12 17:06:42 +0400
committerAlexander Barkov <bar@mariadb.com>2019-12-13 12:45:16 +0400
commitbbd2fa5c653bf0336f6ec0131ef41b8928c5ab86 (patch)
tree2e1a6b45dd83a1b39da50e7aa49b240f449f1ba9 /sql/item_func.cc
parentce41a9075ad63e5388045943b80f69b7af0048d2 (diff)
downloadmariadb-git-bbd2fa5c653bf0336f6ec0131ef41b8928c5ab86.tar.gz
MDEV-21278 Assertion `is_unsigned() == attr.unsigned_flag' or Assertion `field.is_sane()' failed
The type handler and unsigned_flag erroneously went out of sync in Item_func_minus::fix_length_and_dec.
Diffstat (limited to 'sql/item_func.cc')
-rw-r--r--sql/item_func.cc5
1 files changed, 2 insertions, 3 deletions
diff --git a/sql/item_func.cc b/sql/item_func.cc
index 573372c7c46..70fbb3f8bf6 100644
--- a/sql/item_func.cc
+++ b/sql/item_func.cc
@@ -1235,9 +1235,8 @@ bool Item_func_minus::fix_length_and_dec()
if (Item_func_minus::type_handler()->Item_func_minus_fix_length_and_dec(this))
DBUG_RETURN(TRUE);
DBUG_PRINT("info", ("Type: %s", type_handler()->name().ptr()));
- if ((m_depends_on_sql_mode_no_unsigned_subtraction= unsigned_flag) &&
- (current_thd->variables.sql_mode & MODE_NO_UNSIGNED_SUBTRACTION))
- unsigned_flag= false;
+ m_depends_on_sql_mode_no_unsigned_subtraction= unsigned_flag;
+ fix_unsigned_flag();
DBUG_RETURN(FALSE);
}