diff options
author | Igor Babaev <igor@askmonty.org> | 2021-03-01 09:40:33 -0800 |
---|---|---|
committer | Igor Babaev <igor@askmonty.org> | 2021-03-01 12:51:19 -0800 |
commit | 0f81ca6a0bb21fbba4bca93a7555f7c8e6357b47 (patch) | |
tree | 5d04b1fe658ac25871d6f6403ceb87606599f1ff /sql/sql_signal.h | |
parent | c25e6f91da2eb04fe222aac1c79c6a5c1f94c760 (diff) | |
download | mariadb-git-0f81ca6a0bb21fbba4bca93a7555f7c8e6357b47.tar.gz |
MDEV-24919 Crash with subselect formed by table value constructor and
used in set function
If a subselect is formed by a table value constructor (TVC) then the
following transformation is applied at the prepare stage:
VALUES (v1), ... (vn) => SELECT * FROM (VALUES (v1), ... (vn)) tvc_x.
The transformation is performed by the function wrap_tvc() that resets
THD::LEX::current select to the top level select of the result of the
transformation. After the call of wrap_tvc() in the function
Item_subselect::wrap_tvc_into_select() the field THD::LEX::current must be
reset to the same select as before the call. It was not done. As a result
if the subselect formed by a TVC was an argument of a set function then
an assertion was hit in the function Item_sum::check_sum_func().
Approved by Oleksandr Byelkin <sanja@mariadb.com>
Diffstat (limited to 'sql/sql_signal.h')
0 files changed, 0 insertions, 0 deletions