diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2022-10-25 14:25:42 +0300 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2022-10-25 14:25:42 +0300 |
commit | aeccbbd926e759a5c3b9818d9948a35918404478 (patch) | |
tree | e3ee68a92d2c77f986979e1638169280ede35a96 /sql/item_cmpfunc.cc | |
parent | 75f7c5681c2592b50c26feff2371bd7ee973e535 (diff) | |
parent | 4b4c2b8cc0da949895292121ed5ef3e0c2dbaae1 (diff) | |
download | mariadb-git-aeccbbd926e759a5c3b9818d9948a35918404478.tar.gz |
Merge 10.5 into 10.6
To prevent ASAN heap-use-after-poison in the MDEV-16549 part of
./mtr --repeat=6 main.derived
the initialization of Name_resolution_context was cleaned up.
Diffstat (limited to 'sql/item_cmpfunc.cc')
-rw-r--r-- | sql/item_cmpfunc.cc | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/sql/item_cmpfunc.cc b/sql/item_cmpfunc.cc index 426496dca67..fa016d439be 100644 --- a/sql/item_cmpfunc.cc +++ b/sql/item_cmpfunc.cc @@ -417,9 +417,18 @@ bool Item_func::setup_args_and_comparator(THD *thd, Arg_comparator *cmp) if (args[0]->cmp_type() == STRING_RESULT && args[1]->cmp_type() == STRING_RESULT) { + Query_arena *arena, backup; + arena= thd->activate_stmt_arena_if_needed(&backup); + DTCollation tmp; - if (agg_arg_charsets_for_comparison(tmp, args, 2)) - return true; + bool ret= agg_arg_charsets_for_comparison(tmp, args, 2); + + if (arena) + thd->restore_active_arena(arena, &backup); + + if (ret) + return ret; + cmp->m_compare_collation= tmp.collation; } // Convert constants when compared to int/year field |