it happens because of the LEFT JOINT optimization in add_key_part()
This optimization does exactly the same in JOIN and in WHERE conditions
Not right.
I moved that optimization one level upper.
mysql-test/r/join_outer.result:
appropriate test result
mysql-test/t/join_outer.test:
test case
sql/sql_select.cc:
optimizing of the left_join now only for WHERE conditions
and for first table in list
mysql-test/r/insert_select.result:
Fixed results
mysql-test/r/join_outer.result:
New test case for inner join table dependency
mysql-test/t/insert_select.test:
Remove not used drop tables.
Fixed table names
mysql-test/t/join_outer.test:
New test case for inner join table dependency
sql/slave.cc:
Simple optimizations
mysql-test/r/alter_table.result:
Auto merged
mysql-test/r/join_outer.result:
Auto merged
mysql-test/r/multi_update.result:
Auto merged
mysql-test/t/alter_table.test:
Auto merged
mysql-test/t/join_outer.test:
Auto merged
mysql-test/t/multi_update.test:
Auto merged
sql/ha_innodb.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/share/czech/errmsg.txt:
Auto merged
sql/share/danish/errmsg.txt:
Auto merged
sql/share/dutch/errmsg.txt:
Auto merged
sql/share/estonian/errmsg.txt:
Auto merged
sql/share/french/errmsg.txt:
Auto merged
sql/share/german/errmsg.txt:
Auto merged
sql/share/greek/errmsg.txt:
Auto merged
sql/share/hungarian/errmsg.txt:
Auto merged
sql/share/italian/errmsg.txt:
Auto merged
sql/share/korean/errmsg.txt:
Auto merged
sql/share/norwegian-ny/errmsg.txt:
Auto merged
sql/share/norwegian/errmsg.txt:
Auto merged
sql/share/portuguese/errmsg.txt:
Auto merged
sql/share/romanian/errmsg.txt:
Auto merged
sql/share/russian/errmsg.txt:
Auto merged
sql/share/slovak/errmsg.txt:
Auto merged
sql/share/spanish/errmsg.txt:
Auto merged
sql/share/ukrainian/errmsg.txt:
Auto merged
sql/sql_table.cc:
Auto merged
Added optimzation for clustered index
Fixed bug in UPDATE ... ORDER BY
Fixed handling of UPDATE ... LIMIT
BitKeeper/deleted/.del-.cvsignore~7e29af89a3559f4c:
Delete: Images/.cvsignore
BitKeeper/deleted/.del-README~d5a4e7ca3a2e87a9:
Delete: repl-tests/README
BitKeeper/deleted/.del-run-all-tests~4deb6479a13e4568:
Delete: repl-tests/run-all-tests
BitKeeper/deleted/.del-run.test~3dc5b9bd1e9feea5:
Delete: repl-tests/test-repl-alter/run.test
BitKeeper/deleted/.del-run.test~4020771cff278f14:
Delete: repl-tests/test-bad-query/run.test
BitKeeper/deleted/.del-run.test~452f2b66537404a8:
Delete: repl-tests/test-dump/run.test
BitKeeper/deleted/.del-run.test~b1f0c1f96554df8:
Delete: repl-tests/test-auto-inc/run.test
BitKeeper/deleted/.del-table-dump-check.master~e13afeb8c79264b5:
Delete: repl-tests/test-dump/table-dump-check.master
BitKeeper/deleted/.del-table-dump-select.master~744acb955e33f3db:
Delete: repl-tests/test-dump/table-dump-select.master
BitKeeper/deleted/.del-x.master~29a93ed7956c8693:
Delete: repl-tests/test-auto-inc/x.master
BitKeeper/deleted/.del-x.master~3b248cbac9abda2b:
Delete: repl-tests/test-bad-query/x.master
BitKeeper/deleted/.del-foo-dump-master.master~b49ae6bec1e918ee:
Delete: repl-tests/test-repl/foo-dump-master.master
BitKeeper/deleted/.del-foo-dump-slave.master~f16ed20457d59be9:
Delete: repl-tests/test-repl/foo-dump-slave.master
BitKeeper/deleted/.del-repl-timestamp.master.reject~3492d2b74b413771:
Delete: repl-tests/test-repl-ts/repl-timestamp.master.reject
BitKeeper/deleted/.del-repl-timestamp.master~4b7782da5cc13161:
Delete: repl-tests/test-repl-ts/repl-timestamp.master
BitKeeper/deleted/.del-run.test~a1e32ea1e4253af4:
Delete: repl-tests/test-repl/run.test
BitKeeper/deleted/.del-run.test~ce5e626c91b760ec:
Delete: repl-tests/test-repl-ts/run.test
BitKeeper/deleted/.del-sum-wlen-master.master~1a5ea625c79e978:
Delete: repl-tests/test-repl/sum-wlen-master.master
BitKeeper/deleted/.del-sum-wlen-slave.master~f016d98833433084:
Delete: repl-tests/test-repl/sum-wlen-slave.master
BitKeeper/deleted/.del-test.master~5829e7b3770179db:
Delete: repl-tests/test-repl-alter/test.master
BitKeeper/deleted/.del-master-slave.inc~6775f6ae10137c39:
Delete: repl-tests/include/master-slave.inc
include/my_global.h:
Fix for purify/valgrind
myisam/mi_info.c:
Updated comment
mysql-test/r/group_by.result:
New test results
mysql-test/r/innodb.result:
New test results
mysql-test/r/join_outer.result:
New test results
mysql-test/r/multi_update.result:
New test results
mysql-test/r/null_key.result:
New test results
mysql-test/r/update.result:
New test results
mysql-test/t/group_by.test:
Added extra explain to 'suspicious' test.
mysql-test/t/innodb.test:
Added test for UPDATE ... ORDER BY
mysql-test/t/join_outer.test:
Changed test to be repeatable
mysql-test/t/multi_update.test:
Slight change of test to catch more bugs
mysql-test/t/update.test:
Better test for UPDATE ... ORDER BY
sql/field.cc:
Simple optimization
sql/ha_heap.h:
Added optimzation for clustered index
sql/ha_innodb.cc:
Added optimzation for clustered index
sql/ha_innodb.h:
Added optimzation for clustered index
sql/handler.h:
Added optimzation for clustered index
sql/item_sum.cc:
Removed some usage of current_thd
sql/mysqld.cc:
Fix bug when compiling for purify/valgrind
sql/opt_range.cc:
Added optimzation for clustered index
sql/records.cc:
Fixed comment
sql/sql_list.h:
Fixed comment
sql/sql_select.cc:
Removed some usage of current_thd
sql/sql_select.h:
Removed some usage of current_thd
sql/sql_union.cc:
Removed some usage of current_thd
sql/sql_update.cc:
Fixed bug in UPDATE ... ORDER BY
Fixed handling of UPDATE ... LIMIT
support-files/my-huge.cnf.sh:
Added default size for query cache
support-files/my-large.cnf.sh:
Added default size for query cache
Docs/manual.texi:
ChangeLog
myisam/mi_locking.c:
Remove wrong optimistic locking. (Doesn't affect MySQL)
mysys/my_init.c:
Release character sets at end
scripts/mysqlhotcopy.sh:
RAID tables are now copied
Added missing InnoDB variables to SHOW VARIABLES.
Fixed bug when doing WHERE 'column_name=NULL' on an indexed column that had NULL values.
Fixed bug when doing 'LEFT JOIN ... ON (column_name = constant) WHERE column_name = constant'
Docs/manual.texi:
Changelog
libmysql/libmysql.c:
Don't use signal() on windows.
mysql-test/r/join_outer.result:
Test for bugfix
mysql-test/r/null.result:
Test for bugfix
mysql-test/t/join_outer.test:
Test for bugfix
mysql-test/t/null.test:
Test for bugfix
sql/mysqld.cc:
Add missing InnoDB variables to SHOW VARIABLES.
sql/sql_select.cc:
Fixed bug when doing WHERE 'column_name=NULL' on an indexed column that had NULL values.
Fixed bug when doing 'LEFT JOIN ... ON (column_name = constant) WHERE column_name = constant'
Fixed bug in LEFT JOIN
Added bdb_log_buffer_size
Docs/manual.texi:
Added documentation for mysqlhotcopy
client/mysql.cc:
Fixed core dump when column names couldn't be read
configure.in:
Fixed possible error
mit-pthreads/Changes-mysql:
Patches for NetBSD/macppc
mit-pthreads/config/config.guess:
Patches for NetBSD/macppc
mit-pthreads/config/configure.in:
Patches for NetBSD/macppc
mit-pthreads/config/configure:
Patches for NetBSD/macppc
mysql-test/r/join_outer.result:
New join test
mysql-test/t/join_outer.test:
New join test
scripts/mysqlhotcopy.sh:
Patches from ASK
sql/ha_berkeley.cc:
Adeed log buffer cache
sql/ha_berkeley.h:
Adeed log buffer cache
sql/log.cc:
Fixed possible overrun bug
sql/mysqld.cc:
Fix for Mac OS X public beta
Added bdb_log_buffer_size
sql/sql_select.cc:
Fixed bug in LEFT JOIN
tests/mail_to_db.pl:
Removed unsubscribe tails
tests/pmail.pl:
Sort mails according to date