diff options
author | Ole John Aske <ole.john.aske@oracle.com> | 2011-01-13 11:42:48 +0100 |
---|---|---|
committer | Ole John Aske <ole.john.aske@oracle.com> | 2011-01-13 11:42:48 +0100 |
commit | f8697642d20415ea2e6e85c4090d7ef0dff40241 (patch) | |
tree | 04aa93fbce94e18bce64607f774873b2e0da1536 /sql/sql_table.h | |
parent | 24eba429dd20b858a593d640b31b87529548cf51 (diff) | |
download | mariadb-git-f8697642d20415ea2e6e85c4090d7ef0dff40241.tar.gz |
Fix for #58422: Incorrect result when OUTER JOIN'ing with an empty table.
Fixed incorrect checks in join_read_const_table() for when to
accept a non-existing, or empty const-row as a part of the const'ified
set of tables.
Intention of this test is to only accept NULL-rows if this table is outer joined
into the resultset. (In case of an inner-join we can conclude at this point that
resultset will be empty, end we want to return 'error' to signal this.)
Initially 'maybe_null' is set to the same value as 'outer_join' in
setup_table_map(), mysql_priv.h ~line 2424. Later simplify_joins() will
attemp to replace outer joins by inner join whenever possible. This
will cause 'outer_join' to be updated. However, 'maybe_null' is *not* updated
to reflect this rewrite as this field is used to currectly set the 'nullability'
property for the columns in the resultset.
We should therefore change join_read_const_table() to check the 'outer_join'
property instead of 'maybe_null', as this correctly reflect the nullability of
the *execution plan* (not *resultset*).
Diffstat (limited to 'sql/sql_table.h')
0 files changed, 0 insertions, 0 deletions