mirror of
https://github.com/MariaDB/server.git
synced 2026-05-14 19:07:15 +02:00
MDEV-3873 & MDEV-3876 & MDEV-3912 : Wrong result (extra rows) with ALL subquery
from a MERGE view. The problem was in the lost ability to be null for the table of a left join if it is a view/derived table. It hapenned because setup_table_map(), was called earlier then we merged the view or derived. Fixed by propagating new maybe_null flag during Item::update_used_tables(). Change in join_outer.test and join_outer_jcl6.test appeared because IS NULL reported no used tables (i.e. constant) for argument which could not be NULL and new maybe_null flag was propagated for IS NULL argument (Item_field) because table the Item_field belonged to changed its maybe_null status.
This commit is contained in:
parent
e99aa91e90
commit
6f26aac940
20 changed files with 331 additions and 128 deletions
|
|
@ -2579,6 +2579,7 @@ void Item_xml_str_func::fix_length_and_dec()
|
|||
int rc;
|
||||
|
||||
nodeset_func= 0;
|
||||
set_persist_maybe_null(1);
|
||||
|
||||
if (agg_arg_charsets(collation, args, arg_count, MY_COLL_CMP_CONV, 1))
|
||||
return;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue