1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-08 11:22:35 +03:00

MDEV-8283 crash in get_mm_leaf with xor on binary col

This commit is contained in:
Alexander Barkov
2015-06-09 12:08:46 +04:00
parent 93fc04ff1d
commit f744b2a15f
3 changed files with 29 additions and 2 deletions

View File

@@ -2628,3 +2628,16 @@ alter table t1 drop partition if exists p5;
Warnings:
Note 1507 Error in list of partitions to DROP
DROP TABLE t1;
#
# Start of 10.1 tests
#
#
# MDEV-8283 crash in get_mm_leaf with xor on binary col
#
CREATE TABLE t1(a BINARY(80)) PARTITION BY KEY(a) PARTITIONS 3;
SELECT 1 FROM t1 WHERE a XOR 'a';
1
DROP TABLE t1;
#
# End of 10.1 tests
#

View File

@@ -2884,3 +2884,17 @@ alter table t1 drop partition if exists p5;
DROP TABLE t1;
--echo #
--echo # Start of 10.1 tests
--echo #
--echo #
--echo # MDEV-8283 crash in get_mm_leaf with xor on binary col
--echo #
CREATE TABLE t1(a BINARY(80)) PARTITION BY KEY(a) PARTITIONS 3;
SELECT 1 FROM t1 WHERE a XOR 'a';
DROP TABLE t1;
--echo #
--echo # End of 10.1 tests
--echo #

View File

@@ -8370,8 +8370,8 @@ get_mm_leaf(RANGE_OPT_PARAM *param, COND *conf_func, Field *field,
value->result_type() == STRING_RESULT &&
key_part->image_type == Field::itRAW &&
field->charset() != conf_func->compare_collation() &&
!(conf_func->compare_collation()->state & MY_CS_BINSORT &&
(type == Item_func::EQUAL_FUNC || type == Item_func::EQ_FUNC)))
!((type == Item_func::EQUAL_FUNC || type == Item_func::EQ_FUNC) &&
conf_func->compare_collation()->state & MY_CS_BINSORT))
goto end;
if (value->cmp_type() == TIME_RESULT && field->cmp_type() != TIME_RESULT)
goto end;