The problem was in the way table references are pre-filtered when
resolving a qualified field. When resolving qualified table references
we search recursively in the operands of the join. If there is
natural/using join with a merge view, the first call to find_field_in_table_ref
makes a recursive call to itself with the view as the new table reference
to search for the column. However the view has both nested_join and
join_columns != NULL so it skipped the test whether the view name matches
the field qualifier. As a result the field was found in the view since the
view already has a field with the same name. Thus the field was incorrectly
resolved as the view field.
mysql-test/r/select.result:
Test for BUG#13127.
mysql-test/t/select.test:
Test for BUG#13127.
sql/sql_base.cc:
The patch contains two independent changes:
- When searching for qualified fields, include merge views and information schema tables
used with SHOW (both using TABLE_LIST::field_translation to represent result fields) in
the test that compares the qualifying table with the name of the table reference being
searched. This change fixes the bug.
- Do not search the materialized list of columns of a NATURAL/USING join if 'table_list'
is a stored table or merge view. Instead search directly in the table or view as if it
is not under a natural join. This is a performance improvement since if 'table_list'
is a stored table, then the search can utilize the name hash for table names.
into perch.ndb.mysql.com:/home/jonas/src/mysql-5.0
ndb/include/ndbapi/NdbBlob.hpp:
Auto merged
ndb/include/ndbapi/NdbOperation.hpp:
Auto merged
ndb/include/ndbapi/NdbRecAttr.hpp:
Auto merged
ndb/src/ndbapi/NdbApiSignal.cpp:
Auto merged
ndb/src/ndbapi/NdbApiSignal.hpp:
Auto merged
ndb/src/ndbapi/NdbBlob.cpp:
Auto merged
ndb/src/ndbapi/NdbRecAttr.cpp:
Auto merged
ndb/src/ndbapi/Ndbif.cpp:
Auto merged
ndb/src/ndbapi/Ndbinit.cpp:
Auto merged
ndb/test/include/NDBT_Test.hpp:
Auto merged
ndb/test/ndbapi/bank/BankLoad.cpp:
Auto merged
ndb/test/ndbapi/testOIBasic.cpp:
Auto merged
ndb/test/src/NdbBackup.cpp:
Auto merged
ndb/test/src/NdbRestarts.cpp:
Auto merged
ndb/tools/restore/Restore.cpp:
Auto merged
sql/ha_ndbcluster.h:
Auto merged
sql/sql_yacc.yy:
Auto merged
ndb/include/ndbapi/Ndb.hpp:
merge
ndb/include/ndbapi/NdbIndexOperation.hpp:
merge
ndb/include/ndbapi/NdbIndexScanOperation.hpp:
merge
ndb/include/ndbapi/NdbTransaction.hpp:
merge
ndb/src/ndbapi/NdbImpl.hpp:
merge
ndb/src/ndbapi/Ndblist.cpp:
merge
ndb/test/src/HugoCalculator.cpp:
merge
ndb/test/src/NDBT_Test.cpp:
merge
sql/ha_ndbcluster.cc:
merge
sql/mysqld.cc:
merge
sql/sql_lex.h:
merge
sql/sql_parse.cc:
merge
mysql-test/r/ps_1general.result:
Redoing test output with straightened up output for storage engine names.
mysql-test/r/variables.result:
Fixed test case.
sql/handler.cc:
Couple of format cleanups and a change in a comment.
sql/examples/ha_archive.cc:
Now declared externally.
sql/examples/ha_example.cc:
Now declared externally
sql/examples/ha_tina.cc:
Now declared externally
sql/ha_berkeley.cc:
Now declared externally
sql/ha_blackhole.cc:
Now declared externally
sql/ha_federated.cc:
Now declared externally.
sql/ha_heap.cc:
Now declared externally.
sql/ha_innodb.cc:
Now declared externally.
sql/ha_myisam.cc:
Now declared externally
sql/ha_myisammrg.cc:
Now declared externally.
sql/ha_ndbcluster.cc:
Now declared externally.
sql/handler.cc:
Changes for eventual loadable engines. This will allow us to gain faster access to the handlerton (eventually this will just be a handlteron array).
sql/handler.h:
New alias structure and change to show_table_st to place handlerton in the structure.
that dump free list allocation per connection
sql/ha_ndbcluster.cc:
imlp. show engine ndb status;
that dump free list allocation per connection
sql/ha_ndbcluster.h:
imlp. show engine ndb status;
that dump free list allocation per connection
sql/mysqld.cc:
imlp. show engine ndb status;
that dump free list allocation per connection
sql/sql_lex.h:
imlp. show engine ndb status;
that dump free list allocation per connection
sql/sql_parse.cc:
imlp. show engine ndb status;
that dump free list allocation per connection
sql/sql_yacc.yy:
imlp. show engine ndb status;
that dump free list allocation per connection
big delete from causing NdbObjectIdMap::expand at same time
as receiver thread perform getObjectId
ndb/src/ndbapi/Ndbinit.cpp:
Protect NdbObjectIdMap::expand from getObjectId
ndb/src/ndbapi/ObjectMap.hpp:
Protect NdbObjectIdMap::expand from getObjectId
into lmy002.wdf.sap.corp:/home/georg/work/mysql/bugs/mysql-5.0-master
mysql-test/r/view.result:
Auto merged
mysql-test/t/view.test:
Auto merged
sql/sql_view.cc:
Auto merged
sql/parse_file.cc:
Fix after discussion/review with Sanja: removed rename_view from sql_view to general function rename_in_schema_file
(so it can be used for other .frm types like triggers too)
sql/parse_file.h:
added prototype for rename_in_schema_file
sql/sql_rename.cc:
simplified code (thanks to Sanja)
sql/sql_view.cc:
moved rename_view_files to rename_in_schema_file (parse_file.cc)
corrected MYF parameter from MY_WME to 0.
mysql-test/r/view.result:
test results for rename table view1 to view2
mysql-test/t/view.test:
tests for rename table view1 to view2
sql/share/errmsg.txt:
added new errormessage (schema change not allowed in rename table view)
sql/sql_rename.cc:
added support for renaming views
sql/sql_view.cc:
added new function mysql_rename_view
sql/sql_view.h:
added prototype mysql_rename_view
remove extra ";" from test programs
ndb/test/include/NDBT_Test.hpp:
Remove extra ";"
ndb/test/ndbapi/bank/BankLoad.cpp:
Remove extra ";"
ndb/test/ndbapi/testOIBasic.cpp:
Remove extra ";"
ndb/test/src/HugoCalculator.cpp:
Remove extra ";"
ndb/test/src/NDBT_Test.cpp:
Remove extra ";"
ndb/test/src/NdbBackup.cpp:
Remove extra ";"
ndb/test/src/NdbRestarts.cpp:
Remove extra ";"
impl support for querying resource usage in ndb api
to help track down mem leaks
ndb/include/ndbapi/Ndb.hpp:
Impl. reporting of free list usage
Put free list into handler class
ndb/include/ndbapi/NdbBlob.hpp:
Impl. reporting of free list usage
Put free list into handler class
ndb/include/ndbapi/NdbConnection.hpp:
Impl. reporting of free list usage
Put free list into handler class
ndb/include/ndbapi/NdbIndexOperation.hpp:
Impl. reporting of free list usage
Put free list into handler class
ndb/include/ndbapi/NdbIndexScanOperation.hpp:
Impl. reporting of free list usage
Put free list into handler class
ndb/include/ndbapi/NdbOperation.hpp:
Impl. reporting of free list usage
Put free list into handler class
ndb/include/ndbapi/NdbRecAttr.hpp:
Impl. reporting of free list usage
Put free list into handler class
ndb/src/ndbapi/NdbApiSignal.cpp:
Impl. reporting of free list usage
Put free list into handler class
ndb/src/ndbapi/NdbApiSignal.hpp:
Impl. reporting of free list usage
Put free list into handler class
ndb/src/ndbapi/NdbBlob.cpp:
Impl. reporting of free list usage
Put free list into handler class
ndb/src/ndbapi/NdbImpl.hpp:
Impl. reporting of free list usage
Put free list into handler class
ndb/src/ndbapi/NdbRecAttr.cpp:
Impl. reporting of free list usage
Put free list into handler class
ndb/src/ndbapi/NdbUtil.cpp:
Impl. reporting of free list usage
Put free list into handler class
ndb/src/ndbapi/NdbUtil.hpp:
Impl. reporting of free list usage
Put free list into handler class
ndb/src/ndbapi/Ndbif.cpp:
Impl. reporting of free list usage
Put free list into handler class
ndb/src/ndbapi/Ndbinit.cpp:
Impl. reporting of free list usage
Put free list into handler class
ndb/src/ndbapi/Ndblist.cpp:
Impl. reporting of free list usage
Put free list into handler class
ndb/tools/restore/Restore.cpp:
Impl. reporting of free list usage
Put free list into handler class