Fixed bug #13411.
Fixed name resolution for non-qualified reference to a view column
in the HAVING clause.
view.result, view.test:
Added a test case for bug #13411.
mysql-test/t/view.test:
Added a test case for bug #13411.
mysql-test/r/view.result:
Added a test case for bug #13411.
sql/item.cc:
Fixed bug #13411.
Fixed name resolution for non-qualified reference to a view column
in the HAVING clause.
sql/sql_base.cc:
Fixed bug #13411.
Fixed name resolution for non-qualified reference to a view column
in the HAVING clause.
Fixed bug #13411.
Fixed name resolution for non-qualified reference to a view column
in the HAVING clause.
view.result, view.test:
Added a test case for bug #13411.
cmd-line-utils/readline/complete.c:
Added a cast.
dbug/my_main.c:
Added an include to avoid implicit declaration of
my_thread_global_init()
include/my_global.h:
undef cannot be used on this predefined name.
Since it is a custom fix for gcc 2.8.0, let's make it only
effective in that case.
include/my_sys.h:
Added a new type, TYPE_NOT_SET.
myisam/ft_boolean_search.c:
Added casts.
myisam/mi_key.c:
Added cast.
myisam/mi_open.c:
Added cast.
Changed function types.
myisam/mi_test1.c:
Added cast.
myisam/myisamchk.c:
Added cast.
myisam/myisamdef.h:
Changed function type.
myisam/myisampack.c:
Added casts.
myisam/sp_key.c:
Added cast.
mysys/mf_iocache.c:
Fixed invalid use of 0 to info->type. According to comment it
should not have been set, but in earlier code by setting it
to 0 would have been same as setting it to READ_CACHE. This
probably was not desired, potential bug.
server-tools/instance-manager/instance_options.cc:
Fixed a typo.
server-tools/instance-manager/protocol.cc:
Changed enum to int.
Changed char to uchar.
Added casts.
sql/mysql_priv.h:
Bit overflow.
sql/sql_base.cc:
Removed unused label. The code below label was unused too, because
there is a return just before.
sql/sql_parse.cc:
Removed unneccessary extra argument.
into mysql.com:/opt/local/work/mysql-5.0-root
BitKeeper/etc/ignore:
auto-union
include/my_sys.h:
Auto merged
mysql-test/r/information_schema.result:
Auto merged
mysql-test/t/ctype_ujis.test:
Auto merged
sql/ha_federated.cc:
Auto merged
sql/handler.cc:
Auto merged
sql/item_func.h:
Auto merged
sql/log.cc:
Auto merged
sql/sp_head.cc:
Auto merged
sql/sp_head.h:
Auto merged
sql/sql_acl.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_prepare.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_view.cc:
Auto merged
sql/table.cc:
Auto merged
Fixed problems in test suite where some test failed
Fixed access to not initialized memory in federated
Fixed access to not initialized memory when using BIT fields in internal temporary tables
BitKeeper/etc/ignore:
added libmysqld/sql_cursor.h
mysql-test/r/information_schema.result:
Change view names to 'v#' to not cause massive conflict with other tests if test dies in the middlecd
mysql-test/r/information_schema_inno.result:
Remove used tables at start
mysql-test/r/multi_statement.result:
Remove used tables at start
mysql-test/r/temp_table.result:
Change view names to 'v#' to not cause massive conflict with other tests if test dies in the middle
mysql-test/r/type_bit.result:
More tests
mysql-test/t/information_schema.test:
Change view names to 'v#' to not cause massive conflict with other tests if test dies in the middle
mysql-test/t/information_schema_inno.test:
Remove used tables at start
mysql-test/t/multi_statement.test:
Remove used tables at start
mysql-test/t/temp_table.test:
Change view names to 'v#' to not cause massive conflict with other tests if test dies in the middle
mysql-test/t/type_bit.test:
More tests
mysql-test/valgrind.supp:
Removed some valgrind warnings that isn't errors
sql/ha_federated.cc:
Fixed errors discovered by valgrind:
- Socket was not initialized
- share->scheme was deleted while there was still pointer into it from the hash
sql/item_func.h:
Remove access to table object from cleanup() as the table object may have been dropped earlier (In case of temporary tables or of close_thread_tables() is run before cleanup())
This fixed a bug with access to already freed memory
sql/sql_base.cc:
Reset variables used by fulltext
sql/sql_select.cc:
Fixed various problems with bit fields when used in internal temporary tables.
Calculate space needed for bit fields correctly (previously we allocated more space than needed for rows in heap/myisam tables)
Fixed problems in test suite where some test failed
Fixed access to not initialized memory in federated
Fixed access to not initialized memory when using BIT fields in internal temporary tables
into sanja.is.com.ua:/home/bell/mysql/bk/work-owner5-5.0
sql/ha_innodb.cc:
Auto merged
sql/item_strfunc.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_show.cc:
Auto merged
sql/sql_view.cc:
Auto merged
sql/item_func.cc:
merge
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.
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.
sql/ha_federated.cc:
Auto merged
sql/lock.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/sp.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_handler.cc:
Auto merged
sql/sql_insert.cc:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_prepare.cc:
Auto merged
sql/sql_table.cc:
Auto merged
into mysql.com:/home/dlenev/src/mysql-5.0-bg12704-2
sql/mysql_priv.h:
Auto merged
sql/sp.cc:
Auto merged
sql/sp_head.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_prepare.cc:
Auto merged
sql/sql_table.cc:
Auto merged
sql/sql_update.cc:
Auto merged
This bug occurs when some trigger for table used by DML statement is created
or changed while statement was waiting in lock_tables(). In this situation
prelocking set which we have calculated becames invalid which can easily lead
to errors and even in some cases to crashes.
With proposed patch we no longer silently reopen tables in lock_tables(),
instead caller of lock_tables() becomes responsible for reopening tables and
recalculation of prelocking set.
mysql-test/t/trigger.test:
Added tests for bug #12704 "Server crashes during trigger execution".
Unfortunately these tests rely on the order in which tables are locked
by statement so they are non-determenistic and therefore should be disabled.
sql/lock.cc:
mysql_lock_tables():
Now instead of always reopening altered or dropped tables by itself
mysql_lock_tables() can notify upper level and rely on caller doing this.
sql/mysql_priv.h:
Now mysql_lock_tables() can either reopen deleted or altered tables by itself
or notify caller about such situation through 'need_reopen' argument and rely
on it in this.
Also lock_tables() has new 'need_reopen' out parameter through which it
notifies caller that some tables were altered or dropped so he needs to reopen
them (and rebuild prelocking set some triggers may change or simply appear).
sql/sp.cc:
sp_add_used_routine():
To be able to restore LEX::sroutines_list to its state right after parsing
we now adjust LEX::sroutines_list_own_last/sroutines_list_own_elements when
we add directly used routine.
sp_remove_not_own_routines():
Added procedure for restoring LEX::sroutines/sroutines_list to their state
right after parsing (by throwing out non-directly used routines).
sp_cache_routines_and_add_tables_for_view()/sp_update_stmt_used_routines():
We should use LEX::sroutines_list instead of LEX::sroutines as source of
routines used by view, since LEX::sroutines is not availiable for view
on second attempt to open it (see comment in open_tables() about it).
sql/sp.h:
sp_remove_not_own_routines():
Added procedure for restoring LEX::sroutines/sroutines_list to their state
right after parsing (by throwing out non-directly used routines).
sql/sp_head.cc:
Removed assert which is no longer always true.
sql/sql_base.cc:
reopen_table():
When we re-open table and do shallow copy of TABLE object we should adjust
pointers to it in associated Table_triggers_list object. Removed nil
operation.
open_tables():
Now this function is able to rebuild prelocking set for statement if it is
needed. It also correctly handles FLUSH TABLES which may occur during its
execution.
lock_tables():
Instead of allowing mysql_lock_tables() to silently reopen altered or dropped
tables let us notify caller and rely on that it will do reopen itself.
This solves the problem when trigger suddenly appears or changed during
mysq_lock_tables().
close_tables_for_reopen():
Added routine for properly preparing for reopening of tables and recalculation
of set of prelocked tables.
sql/sql_handler.cc:
Here we let mysql_lock_tables() to reopen dropped or altered tables by itself.
sql/sql_insert.cc:
Here we let mysql_lock_tables() to reopen dropped or altered tables by itself.
sql/sql_lex.cc:
LEX:
Added 'sroutines_list_own_last' and 'sroutines_list_own_elements' members
which are used for keeping state in which 'sroutines_list' was right after
statement parsing (and for restoring of this list to this state).
sql/sql_lex.h:
LEX:
Added 'sroutines_list_own_last' and 'sroutines_list_own_elements' members
which are used for keeping state in which 'sroutines_list' was right after
statement parsing (and for restoring of this list to this state).
Added chop_off_not_own_tables() method to simplify throwing away list
of implicitly used (prelocked) tables.
sql/sql_prepare.cc:
Now instead of silently reopening altered or dropped tables in
lock_tables() we notify caller and rely on that the caller will
reopen tables.
sql/sql_table.cc:
Here we let mysql_lock_tables() to reopen dropped or altered tables by itself.
sql/sql_trigger.cc:
Added Table_triggers_list::set_table() method to adjust Table_triggers_list
to new pointer to TABLE instance.
sql/sql_trigger.h:
Added Table_triggers_list::set_table() method to adjust Table_triggers_list
to new pointer to TABLE instance.
sql/sql_update.cc:
Now instead of silently reopening altered or dropped tables in
lock_tables() we notify caller and rely on that the caller will
reopen tables.
This bug occurs when some trigger for table used by DML statement is created
or changed while statement was waiting in lock_tables(). In this situation
prelocking set which we have calculated becames invalid which can easily lead
to errors and even in some cases to crashes.
With proposed patch we no longer silently reopen tables in lock_tables(),
instead caller of lock_tables() becomes responsible for reopening tables and
recalculation of prelocking set.
into neptunus.(none):/home/msvensson/mysql/bug10713_new/my51-bug10713_new
mysql-test/mysql-test-run.sh:
Auto merged
sql/field.h:
Auto merged
sql/ha_federated.cc:
Auto merged
sql/ha_federated.h:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
sql/handler.cc:
Auto merged
sql/handler.h:
Auto merged
sql/item.cc:
Auto merged
sql/sp.cc:
Auto merged
sql/sql_acl.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_help.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_prepare.cc:
Auto merged
sql/sql_show.cc:
Auto merged
sql/sql_table.cc:
Auto merged
sql/sql_udf.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
sql/table.cc:
Auto merged
sql/table.h:
Auto merged
sql/tztime.cc:
Auto merged
sql/unireg.cc:
Auto merged
storage/ndb/src/ndbapi/SignalSender.cpp:
Auto merged
VC++Files/mysql.sln:
Manual merge 5.0 -> 5.1
scripts/make_win_src_distribution.sh:
Manual merge 5.0 -> 5.1
sql/field.cc:
Manual merge 5.0 -> 5.1
Solution for 4.0 and 4.1.
If the caller cannot re-open table(s), it gives a NULL
'refresh' argument to open_table(). We used to ignore
flushes then. Now we ignore drops too.
Solution for 4.0 and 4.1.
If the caller cannot re-open table(s), it gives a NULL
'refresh' argument to open_table(). We used to ignore
flushes then. Now we ignore drops too.
Solution for 5.0.
Changed calls to open_table(). Requested to ignore
flush at places where the command did already lock tables.
This could happen in CREATE ... SELECT and ALTER TABLE.
No test case. The bug can only be triggered by true concurrency.
The stress test suite provides a test case for this.
sql/sql_base.cc:
Bug#12845 - Stress test: Server crashes on CREATE .. SELECT statement
Solution for 5.0.
Changed open_table() so that ignoring flush requests
is dependend on the 'flags' parameter as ignoring drop
request was already. This aims for consistent behaviour.
sql/sql_table.cc:
Bug#12845 - Stress test: Server crashes on CREATE .. SELECT statement
Solution for 5.0.
Changed calls to open_table(). Requested to ignore
flush at places where the command did already lock tables.
This could happen in CREATE ... SELECT and ALTER TABLE.
Solution for 5.0.
Changed calls to open_table(). Requested to ignore
flush at places where the command did already lock tables.
This could happen in CREATE ... SELECT and ALTER TABLE.
No test case. The bug can only be triggered by true concurrency.
The stress test suite provides a test case for this.
mysql-test/mysql-test-run.sh:
Auto merged
mysql-test/r/ps_6bdb.result:
Auto merged
mysql-test/r/ps_7ndb.result:
Auto merged
mysys/default.c:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
storage/heap/hp_hash.c:
Auto merged
storage/ndb/include/util/Parser.hpp:
Auto merged
storage/ndb/src/common/portlib/NdbThread.c:
Auto merged
storage/ndb/src/mgmapi/mgmapi.cpp:
Auto merged
storage/ndb/test/include/NDBT_Test.hpp:
Auto merged
storage/ndb/test/ndbapi/Makefile.am:
Auto merged
storage/ndb/test/ndbapi/bank/Bank.cpp:
Auto merged
storage/ndb/test/ndbapi/bank/Bank.hpp:
Auto merged
storage/ndb/test/src/NDBT_Test.cpp:
Auto merged
storage/ndb/test/src/UtilTransactions.cpp:
Auto merged
mysql-test/mysql-test-run.pl:
SCCS merged
mysql-test/r/select.result:
Test for BUG#13067
mysql-test/t/select.test:
Test for BUG#13067
sql/sql_base.cc:
Correctly compare field names with respect to case sensitivity.
When view column aliased in subselect alias is set on ref which represents
field. When tmp table is created for subselect, it takes name of original field
not ref. Because of this alias on view column in subselect is lost. Which
results in reported error.
Now when alias is set on ref, it's set on ref real item too.
mysql-test/r/view.result:
Test case for bug #12993 View column rename broken in subselect
mysql-test/t/view.test:
Test case for bug #12993 View column rename broken in subselect
sql/sql_base.cc:
Fix bug #12993 View column rename broken in subselect
Now when alias is set on ref, it's set on ref real item too.
When view column aliased in subselect alias is set on ref which represents
field. When tmp table is created for subselect, it takes name of original field
not ref. Because of this alias on view column in subselect is lost. Which
results in reported error.
Now when alias is set on ref, it's set on ref real item too.
into dl145b.mysql.com:/home/ndbdev/tomas/mysql-5.1
configure.in:
Auto merged
include/my_global.h:
Auto merged
sql/handler.cc:
Auto merged
sql/item.cc:
Auto merged
sql/log.cc:
Auto merged
sql/opt_range.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/set_var.h:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/examples/ha_tina.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_select.h:
Auto merged
sql/sql_show.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
storage/ndb/include/kernel/signaldata/BackupImpl.hpp:
Auto merged
storage/ndb/include/kernel/signaldata/BackupSignalData.hpp:
Auto merged
storage/ndb/include/kernel/signaldata/NFCompleteRep.hpp:
Auto merged
storage/ndb/include/kernel/signaldata/NodeFailRep.hpp:
Auto merged
storage/ndb/src/kernel/blocks/backup/Backup.cpp:
Auto merged
storage/ndb/src/kernel/blocks/backup/Backup.hpp:
Auto merged
storage/ndb/src/kernel/main.cpp:
Auto merged
storage/ndb/src/mgmsrv/MgmtSrvr.cpp:
Auto merged
storage/ndb/src/mgmsrv/MgmtSrvr.hpp:
Auto merged
storage/ndb/src/ndbapi/Makefile.am:
Auto merged
storage/ndb/src/ndbapi/NdbTransaction.cpp:
Auto merged
storage/ndb/test/src/NdbBackup.cpp:
Auto merged
are thus dangling later)
mysql-test/r/ps.result:
test for bug #12651
(data allocated on thd's arena but not on permanent arena)
mysql-test/t/ps.test:
test for bug #12651
(data allocated on thd's arena but not on permanent arena)
sql/sql_base.cc:
if there is tree transformation then backup the current arena
and use permanent one (for PS) otherwise the data will be deallocated
after the prepare process is finished.
this bug was introduced with the recent natural join patch
mysql-test/r/select.result:
Test for BUG#12977.
mysql-test/t/select.test:
Test for BUG#12977.
sql/sql_base.cc:
- Compare table qualifier of qualified fields only with tables that
are not natural joins or their operands.
- For qualified fields perform recursive search in all operands of
natural joins that are nested joins.
- Symmetrically detect ambiguous columns for both operands of
NATURAL/USING joins.
Makefile.am:
Auto merged
BitKeeper/etc/config:
Auto merged
scripts/Makefile.am:
Auto merged
sql/ha_federated.h:
Auto merged
sql/ha_innodb.cc:
Auto merged
sql/item.cc:
Auto merged
sql/item_subselect.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/set_var.cc:
Auto merged
sql/sp.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_delete.cc:
Auto merged
sql/sql_insert.cc:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_show.cc:
Auto merged
sql/sql_update.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
sql/table.cc:
Auto merged
sql/table.h:
Auto merged
storage/innobase/include/page0page.ic:
Auto merged
storage/innobase/include/univ.i:
Auto merged
storage/innobase/row/row0mysql.c:
Auto merged
storage/innobase/row/row0sel.c:
Auto merged
storage/myisam/mi_check.c:
Auto merged
storage/myisam/mi_packrec.c:
Auto merged
storage/myisam/mi_static.c:
Auto merged
storage/myisam/myisamdef.h:
Auto merged
storage/myisam/myisampack.c:
Auto merged
storage/ndb/include/kernel/signaldata/SignalData.hpp:
Auto merged
storage/ndb/include/kernel/signaldata/StartFragReq.hpp:
Auto merged
storage/ndb/src/common/debugger/EventLogger.cpp:
Auto merged
storage/ndb/src/common/debugger/signaldata/SignalDataPrint.cpp:
Auto merged
storage/ndb/src/common/debugger/signaldata/StartRec.cpp:
Auto merged
storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp:
Auto merged
storage/ndb/src/kernel/blocks/dblqh/redoLogReader/records.cpp:
Auto merged
storage/ndb/src/kernel/blocks/dblqh/redoLogReader/records.hpp:
Auto merged
storage/ndb/src/kernel/blocks/dblqh/redoLogReader/redoLogFileReader.cpp:
Auto merged
storage/ndb/src/kernel/main.cpp:
Auto merged
storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp:
Auto merged
storage/ndb/src/kernel/vm/Emulator.cpp:
Auto merged
sql/log_event.cc:
SCCS merged
sql/sql_prepare.cc:
SCCS merged
sql/share/errmsg.txt:
merge
into sanja.is.com.ua:/home/bell/mysql/bk/work-bug3-5.0
sql/item.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_view.cc:
Auto merged
sql/table.cc:
Auto merged
- current_arena to stmt_arena: the thread may have more than one
'current' arenas: one for runtime data, and one for the parsed
tree of a statement. Only one of them is active at any moment.
- set_item_arena -> set_query_arena, because Item_arena was renamed to
Query_arena a while ago
- set_n_backup_item_arena -> set_n_backup_active_arena;
the active arena is the arena thd->mem_root and thd->free_list
are currently pointing at.
- restore_backup_item_arena -> restore_active_arena (with the same
rationale)
- change_arena_if_needed -> activate_stmt_arena_if_needed; this
method sets thd->stmt_arena active if it's not done yet.
sql/item.cc:
Rename.
sql/item_cmpfunc.cc:
Rename.
sql/item_func.cc:
Rename.
sql/item_subselect.cc:
Rename.
sql/item_subselect.h:
Remove an unused forward declaration.
sql/item_sum.h:
Remove an unused forward declaration.
sql/mysql_priv.h:
Remove an unused forward declaration.
sql/sp.cc:
Rename.
sql/sp_head.cc:
Rename.
sql/sql_base.cc:
Rename.
sql/sql_class.cc:
Rename.
sql/sql_class.h:
Rename.
sql/sql_lex.cc:
Rename.
sql/sql_parse.cc:
Rename.
sql/sql_prepare.cc:
Rename.
sql/sql_select.cc:
Rename.
sql/sql_show.cc:
Rename.
sql/sql_union.cc:
Rename.
sql/sql_view.cc:
Rename.
sql/table.cc:
Rename.