summaryrefslogtreecommitdiff
path: root/sql/sql_select.cc
diff options
context:
space:
mode:
authorSergey Glukhov <Sergey.Glukhov@sun.com>2008-12-24 19:24:11 +0400
committerSergey Glukhov <Sergey.Glukhov@sun.com>2008-12-24 19:24:11 +0400
commita31795b82d9b2f40cb2b489c99d6d03e036f039f (patch)
treefdc0f2ea6cae40151c879a4a9e0fc6abfded9632 /sql/sql_select.cc
parent026e9c36766ba81d728e189555b8a15f0d4c52ba (diff)
downloadmariadb-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.cc2
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 */