diff options
author | Sergey Glukhov <Sergey.Glukhov@sun.com> | 2008-12-24 19:24:11 +0400 |
---|---|---|
committer | Sergey Glukhov <Sergey.Glukhov@sun.com> | 2008-12-24 19:24:11 +0400 |
commit | a31795b82d9b2f40cb2b489c99d6d03e036f039f (patch) | |
tree | fdc0f2ea6cae40151c879a4a9e0fc6abfded9632 /sql/sql_select.cc | |
parent | 026e9c36766ba81d728e189555b8a15f0d4c52ba (diff) | |
download | mariadb-git-a31795b82d9b2f40cb2b489c99d6d03e036f039f.tar.gz |
Bug#40953 SELECT query throws "ERROR 1062 (23000): Duplicate entry..." error
Table could be marked dependent because it is
either 1) an inner table of an outer join, or 2) it is a part of
STRAIGHT_JOIN. In case of STRAIGHT_JOIN table->maybe_null should not
be assigned. The fix is to set st_table::maybe_null to 'true' only
for those tables which are used in outer join.
Diffstat (limited to 'sql/sql_select.cc')
-rw-r--r-- | sql/sql_select.cc | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sql/sql_select.cc b/sql/sql_select.cc index d2c469f99da..230b9bb36cf 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -2489,7 +2489,7 @@ make_join_statistics(JOIN *join, TABLE_LIST *tables, COND *conds, if (s->dependent & table->map) s->dependent |= table->reginfo.join_tab->dependent; } - if (s->dependent) + if (outer_join & s->table->map) s->table->maybe_null= 1; } /* Catch illegal cross references for outer joins */ |