summaryrefslogtreecommitdiff
path: root/mysql-test/main/order_by.test
diff options
context:
space:
mode:
authorSergei Golubchik <serg@mariadb.org>2020-08-07 13:37:41 +0200
committerSergei Golubchik <serg@mariadb.org>2020-08-07 13:39:04 +0200
commitcd2924bacbb06596d30f4397b0e200fc9c73e40b (patch)
treeb970692ffd0f2c6ef5e524ae49610d41d0fab23b /mysql-test/main/order_by.test
parente08141504011e9a751d3ad1d3d571c725fdc3744 (diff)
downloadmariadb-git-cd2924bacbb06596d30f4397b0e200fc9c73e40b.tar.gz
MDEV-23330 Server crash or ASAN negative-size-param in my_strnncollsp_binary / SORT_FIELD_ATTR::compare_packed_varstrings
and MDEV-23414 Assertion `res->charset() == item->collation.collation' failed in Type_handler_string_result::make_packed_sort_key_part pack_sort_string() *must* take a collation from the Item, not from the String value. Because when casting a string to _binary the original String is not copied for performance reasons, it's reused but its collation does not match Item's collation anymore. Note, that String's collation cannot be simply changed to _binary, because for an Item_string literal the original String must stay unchanged for the duration of the query. this partially reverts 61c15ebe323
Diffstat (limited to 'mysql-test/main/order_by.test')
-rw-r--r--mysql-test/main/order_by.test8
1 files changed, 8 insertions, 0 deletions
diff --git a/mysql-test/main/order_by.test b/mysql-test/main/order_by.test
index e27822006b5..038bf82b0fb 100644
--- a/mysql-test/main/order_by.test
+++ b/mysql-test/main/order_by.test
@@ -2533,4 +2533,12 @@ SELECT * FROM t1 ORDER BY a DESC;
DROP TABLE t1;
+--echo #
+--echo # MDEV-23414 Assertion `res->charset() == item->collation.collation' failed in Type_handler_string_result::make_packed_sort_key_part
+--echo #
+CREATE TABLE t1 (a CHAR(3), b BINARY(255));
+INSERT t1 VALUES ('foo','bar'),('baz','qux');
+SELECT COALESCE(a, b) AS f FROM t1 ORDER BY f;
+DROP TABLE t1;
+
--echo # End of 10.5 tests