Commit graph

540 commits

Author SHA1 Message Date
unknown
fc7ef4be71 Merge bk-internal.mysql.com:/home/bk/mysql-5.1
into  vajra.(none):/opt/local/work/mysql-5.1-runtime


mysql-test/include/mix1.inc:
  Auto merged
mysql-test/r/innodb_mysql.result:
  Auto merged
mysql-test/r/ps_1general.result:
  Auto merged
mysql-test/t/disabled.def:
  Auto merged
mysql-test/t/ps_1general.test:
  Auto merged
sql/ha_ndbcluster.cc:
  Auto merged
sql/ha_ndbcluster_binlog.cc:
  Auto merged
sql/item.cc:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_cache.cc:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_lex.cc:
  Auto merged
sql/sql_lex.h:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_partition.cc:
  Auto merged
sql/sql_prepare.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
sql/table.h:
  Auto merged
sql/sql_insert.cc:
  SCCS merged
2007-05-15 17:54:11 +04:00
unknown
2e3baa6844 Merge mysql.com:/home/hf/work/27957/my50-27957
into  mysql.com:/home/hf/work/27957/my51-27957


mysql-test/t/grant.test:
  Auto merged
mysql-test/r/grant.result:
  merging
sql/sql_update.cc:
  Auto merged
sql/sql_prepare.cc:
  Auto merged
2007-05-12 00:22:15 +05:00
unknown
04efdb1526 Bug#27878: Unchecked privileges on a view referring to a table from another
database.

If a user has a right to update anything in the current database then the 
access was granted and further checks of access rights for underlying tables
wasn't done correctly. The check is done before a view is opened and thus no
check of access rights for underlying tables can be carried out.
This allows a user to update through a view a table from another database for
which he hasn't enough rights.

Now the mysql_update() and the mysql_test_update() functions are forces
re-checking of access rights after a view is opened.


mysql-test/t/grant.test:
  Added a test case for the bug#27878: Unchecked privileges on a view referring to a table from another database.
mysql-test/r/grant.result:
  Added a test case for the bug#27878: Unchecked privileges on a view referring to a table from another database.
sql/sql_update.cc:
  Bug#27878: Unchecked privileges on a view referring to a table from another 
  database.
  Now the mysql_update() function forces re-checking of access rights after 
  the view is opened.
sql/sql_prepare.cc:
  Bug#27878: Unchecked privileges on a view referring to a table from another 
  database.
  Now the mysql_test_update() function forces re-checking of access rights after
  the view is opened.
2007-05-11 23:19:11 +04:00
unknown
9afae234fb Merge bk-internal.mysql.com:/home/bk/mysql-5.1-runtime
into  mockturtle.local:/home/dlenev/src/mysql-5.1-cts-3


sql/mysql_priv.h:
  Auto merged
sql/sql_insert.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_prepare.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
2007-05-11 21:52:11 +04:00
unknown
d46c8ce634 Fix for:
Bug #20662 "Infinite loop in CREATE TABLE IF NOT EXISTS ... SELECT
              with locked tables"
  Bug #20903 "Crash when using CREATE TABLE .. SELECT and triggers"
  Bug #24738 "CREATE TABLE ... SELECT is not isolated properly"
  Bug #24508 "Inconsistent results of CREATE TABLE ... SELECT when
              temporary table exists"

Deadlock occured when one tried to execute CREATE TABLE IF NOT
EXISTS ... SELECT statement under LOCK TABLES which held
read lock on target table.
Attempt to execute the same statement for already existing
target table with triggers caused server crashes.
Also concurrent execution of CREATE TABLE ... SELECT statement
and other statements involving target table suffered from
various races (some of which might've led to deadlocks).
Finally, attempt to execute CREATE TABLE ... SELECT in case
when a temporary table with same name was already present
led to the insertion of data into this temporary table and
creation of empty non-temporary table.
 
All above problems stemmed from the old implementation of CREATE
TABLE ... SELECT in which we created, opened and locked target
table without any special protection in a separate step and not
with the rest of tables used by this statement.
This underminded deadlock-avoidance approach used in server
and created window for races. It also excluded target table
from prelocking causing problems with trigger execution.

The patch solves these problems by implementing new approach to
handling of CREATE TABLE ... SELECT for base tables.
We try to open and lock table to be created at the same time as
the rest of tables used by this statement. If such table does not
exist at this moment we create and place in the table cache special
placeholder for it which prevents its creation or any other usage
by other threads.
We still use old approach for creation of temporary tables.

Note that we have separate fix for 5.0 since there we use slightly
different less intrusive approach.


mysql-test/r/create.result:
  Extended test coverage for CREATE TABLE ... SELECT. In particular added
  tests for bug #24508 "Inconsistent results of CREATE TABLE ... SELECT
  when temporary table exists" and bug #20662 "Infinite loop in CREATE
  TABLE IF NOT EXISTS ... SELECT with locked tables".
mysql-test/r/trigger.result:
  Added test case for bug #20903 "Crash when using CREATE TABLE .. SELECT
  and triggers"
mysql-test/t/create.test:
  Extended test coverage for CREATE TABLE ... SELECT. In particular added
  tests for bug #24508 "Inconsistent results of CREATE TABLE ... SELECT
  when temporary table exists" and bug #20662 "Infinite loop in CREATE
  TABLE IF NOT EXISTS ... SELECT with locked tables".
mysql-test/t/trigger.test:
  Added test case for bug #20903 "Crash when using CREATE TABLE .. SELECT
  and triggers"
sql/lock.cc:
  Now for creation of name-lock placeholder lock_table_name() uses
  auxiliary function table_cache_insert_placeholder().
sql/mysql_priv.h:
  Removed declaration of non-existing build_table_path() routine.
  The former mysql_create_table_internal() was renamed to
  mysql_create_table_no_lock() and now exposed to other modules to
  give them opportunity of creation of tables in cases when name-lock
  is already obtained.
  reopen_name_locked_table() now has 3rd argument which controls linking
  in of table being opened into THD::open_tables (this is useful in
  cases when placeholder used for name-locking is already linked into
  this list).
  Added declaration of auxiliary function table_cache_insert_placeholder()
  which is used for creation of table placeholders for name-locking.
  Added declaration of lock_table_name_if_not_cached() which can be
  used to take an exclusive name-lock on table if there are no records
  for it in table cache.
  Changed signature of unlink_open_table() function to simplify its use
  and make it useful for table placeholders and tables that are only open.
  Added auxiliary drop_open_table() routine.
  Moved declaration of refresh_version to table.h header to make it
  accessible from inline methods of TABLE class.
  MYSQL_OPEN_IGNORE_LOCKED_TABLES flag is no longer used. Instead
  MYSQL_OPEN_TEMPORARY_ONLY option was added.
sql/sql_base.cc:
  Added support for the new approach to the handling of CREATE TABLE
  ... SELECT for base tables.
  
  Now we try to open and lock table to be created at the same time as
  the rest of tables used by this statement. If such table does not
  exist at this moment we create and place in the table cache special
  placeholder for it which prevents its creation or any other usage
  by other threads.
  
  Note significant distinctions of this placeholder from the placeholder
  used for normal name-lock: 1) It is treated like open table by other
  name-locks so it does not allow name-lock taking operations like DROP
  TABLE or RENAME TABLE to proceed. 2) it is linked into THD::open_tables
  list and automatically removed during close_thread_tables() call
    
  open_tables():
    Implemented logic described above. To do this added
    auxiliary check_if_table_exists() function.
    Removed support for MYSQL_OPEN_IGNORE_LOCKED_TABLES option
    which is no longer used.
    Added MYSQL_OPEN_TEMPORARY_ONLY which is used to restrict
    search for temporary tables only.
  close_cached_tables()/close_thread_table()/reopen_tables()/
  close_old_data_files()/table_is_used()/remove_table_from_cache():
    Added support for open placeholders (note that we also use them
    when we need to re-open tables during flush).
  unlink_open_table():
    Changed function signature to simplify its use and to make
    useful for open placeholders and tables which are only
    open and not locked.
  Added auxiliary drop_open_table() routine.
  reopen_name_locked_table():
    Now has 3rd argument which controls linking in of table being
    opened into THD::open_tables (this is useful in cases when
    placeholder used for name-locking is already linked into
    this list).
  Added auxiliary table_cache_insert_placeholder() routine which
  simplifies creation of placeholders used for name-locking.
  Added lock_table_name_if_not_cached() which can be used to take
  an exclusive name-lock on table if there are no records for it
  in table cache.
sql/sql_handler.cc:
  Adjusted mysql_ha_mark_tables_for_reopen() routine to properly
  handle placeholders which now can be linked into open tables
  list.
sql/sql_insert.cc:
  Introduced new approach to handling of base tables in CREATE TABLE
  ... SELECT statement.
  
  Now we try to open and lock table to be created at the same time as
  the rest of tables used by this statement. If such table does not
  exist at this moment we create and place in the table cache special
  placeholder for it which prevents its creation or any other usage
  by other threads. By doing this we avoid races which existed with
  previous approach in which we created, opened and locked target in
  separate step without any special protection.
  This also allows properly calculate prelocking set in cases when
  target table already exists and has some on insert triggers.
  
  Note that we don't employ the same approach for temporary tables
  (this is okay as such tables are unaffected by other threads).
  
  Changed create_table_from_items() and methods of select_create
  class to implement this approach.
sql/sql_parse.cc:
  The new approach to handling of CREATE TABLE ... SELECT for
  base tables assumes that all tables (including table to be
  created) are opened and (or) locked at the same time.
  So in cases when we create base table we have to pass to
  open_and_lock_tables() table list which includes target table.
sql/sql_prepare.cc:
  The new approach to handling of CREATE TABLE ... SELECT for
  base tables assumes that all tables (including table to be
  created) are opened and (or) locked at the same time.
  So in cases when we create base table we have to pass to
  open_and_lock_tables() table list which includes target table.
sql/sql_table.cc:
  Changed mysql_create_table(), mysql_create_like_table() and
  mysql_alter_table() (in rename case) to obtain exclusive name-lock
  on the non-temporary table which is going to be created (to which
  we going to rename). This ensures that not only destination table
  doesn't exist on disk but also that there are no placeholder in 
  table cache for it (i.e. there is no CREATE TABLE ... SELECT operation
  in progress for it). Note that to avoid deadlocks while taking these
  name-locks this code assumes that existence of any record for table in
  table cache (even name-lock) means that table exists. Altough such
  check can lead to false positives these should occur only in case of
  highly concurrent DDL operations on the table and should not break
  binary logging.
  
  Renamed mysql_create_table_internal() to mysql_create_table_no_lock()
  and made it accessible from other files to give them ability to create
  table in situation when name-lock is already obtained or not relevant.
  
  Adjusted calls to reopen_name_locked_table(), which now takes
  extra argument, which controls linking of open table into
  THD::open_tables list.
  
  Removed redundant setting of table's 'version' field before calls
  to close_cached_table(). This function will set it to 0 itself
  anyway.
sql/sql_trigger.cc:
  reopen_name_locked_tables() now has one more argument which controls
  linking of opened table into the THD::open_tables list.
sql/sql_yacc.yy:
  The new approach to handling of CREATE TABLE ... SELECT statement
  for base tables assumes that all tables including table to be
  created are open and (or) locked at the same time. Therefore
  we need to set correct lock for target table.
sql/table.h:
  Moved declaration of refresh_version variable from mysql_priv.h
  to make it accessible from inline methods of TABLE class.
  Renamed TABLE::locked_by_flush member to open_placeholder since
  now it is also used for taking exclusive name-lock and not only
  by flush. 
  Introduced TABLE::is_name_opened() helper method which can be used
  to distinguish TABLE instances corresponding to open tables or
  placeholders for them from closed instances (e.g. due to their old
  version). Also introduced TABLE::needs_reopen_or_name_lock() helper
  which allows to check if TABLE instance corresponds to outdated
  version of table or to name-lock placeholder.
  Introduced TABLE_LIST::create member which marks elements of
  table list corresponds to the table to be created.
  Adjusted TABLE_LIST::placeholder() method to take into account 
  name-lock placeholders for tables to be created (this, for example,
  allows to properly handle such placeholders in lock_tables()).
  Finally, moved currently unused TABLE::open_next/open_prev
  members under ifdef NOT_YET.
mysql-test/r/create_select-big.result:
  New BitKeeper file ``mysql-test/r/create_select-big.result''
mysql-test/t/create_select-big.test:
  New BitKeeper file ``mysql-test/t/create_select-big.test''
2007-05-11 21:51:03 +04:00
unknown
e62766aea1 Merge vajra.(none):/opt/local/work/mysql-5.0-runtime
into  vajra.(none):/opt/local/work/mysql-5.1-runtime


mysql-test/r/ps.result:
  Auto merged
mysql-test/r/ps_1general.result:
  Auto merged
mysql-test/t/ps.test:
  Auto merged
mysql-test/t/ps_1general.test:
  Auto merged
sql/sql_lex.cc:
  Auto merged
sql/sql_lex.h:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
sql/sql_prepare.cc:
  Manual merge.
2007-05-11 17:41:07 +04:00
unknown
a0567199b1 Cleanup: now that we have Lex_input_stream, finish the transition
by moving yet another relevant flag to it from struct LEX.


mysql-test/r/ps.result:
  Update result.
mysql-test/r/ps_1general.result:
  Update result.
mysql-test/t/ps.test:
  New error code.
mysql-test/t/ps_1general.test:
  New error code.
sql/sql_lex.cc:
  Move stmt_prepare_mode to Lex_input_stream.
sql/sql_lex.h:
  Move stmt_prepare_mode to class Lex_input_stream
sql/sql_prepare.cc:
  Move stmt_prepare_mode to Lex_input_stream
sql/sql_yacc.yy:
  Remove dead code.
2007-05-11 17:26:12 +04:00
unknown
034c11f3cd manual merge 5.0-runtime -> 5.1->runtime, with 25411 part I 2007-04-25 21:38:12 -06:00
unknown
6f5cacfae8 Merge malff@bk-internal.mysql.com:/home/bk/mysql-5.0-runtime
into  weblab.(none):/home/marcsql/TREE/mysql-5.0-25411_d


sql/item_func.cc:
  Auto merged
sql/log_event.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/slave.cc:
  Auto merged
sql/sp.cc:
  Auto merged
sql/sp_head.cc:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_class.h:
  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_view.cc:
  Auto merged
2007-04-24 09:25:54 -06:00
unknown
3eff7d4dd5 Bug#25411 (trigger code truncated), PART I
The issue found with bug 25411 is due to the function skip_rear_comments()
which damages the source code while implementing a work around.
The root cause of the problem is in the lexical analyser, which does not
process special comments properly.
For special comments like :
[1] aaa /*!50000 bbb */ ccc
since 5.0 is a version older that the current code, the parser is in lining
the content of the special comment, so that the query to process is
[2] aaa bbb ccc
However, the text of the query captured when processing a stored procedure,
stored function or trigger (or event in 5.1), can be after rebuilding it:
[3] aaa bbb */ ccc
which is wrong.

To fix bug 25411 properly, the lexical analyser needs to return [2] when
in lining special comments.
In order to implement this, some preliminary cleanup is required in the code,
which is implemented by this patch.

Before this change, the structure named LEX (or st_lex) contains attributes
that belong to lexical analysis, as well as attributes that represents the
abstract syntax tree (AST) of a statement.
Creating a new LEX structure for each statements (which makes sense for the
AST part) also re-initialized the lexical analysis phase each time, which
is conceptually wrong.

With this patch, the previous st_lex structure has been split in two:
- st_lex represents the Abstract Syntax Tree for a statement. The name "lex"
has not been changed to avoid a bigger impact in the code base.
- class lex_input_stream represents the internal state of the lexical
  analyser, which by definition should *not* be reinitialized when parsing
  multiple statements from the same input stream.

This change is a pre-requisite for bug 25411, since the implementation of
lex_input_stream will later improve to deal properly with special comments,
and this processing can not be done with the current implementation of
sp_head::reset_lex and sp_head::restore_lex, which interfere with the lexer.

This change set alone does not fix bug 25411.


sql/item_func.cc:
  Refactoring, separate lex_input_stream from st_lex.
sql/log_event.cc:
  Refactoring, separate lex_input_stream from st_lex.
sql/mysql_priv.h:
  Refactoring, separate lex_input_stream from st_lex.
sql/slave.cc:
  Refactoring, separate lex_input_stream from st_lex.
sql/sp.cc:
  Refactoring, separate lex_input_stream from st_lex.
sql/sp_head.cc:
  Refactoring, separate lex_input_stream from st_lex.
sql/sp_head.h:
  Refactoring, separate lex_input_stream from st_lex.
sql/sql_class.cc:
  Refactoring, separate lex_input_stream from st_lex.
sql/sql_class.h:
  Refactoring, separate lex_input_stream from st_lex.
sql/sql_lex.cc:
  Refactoring, separate lex_input_stream from st_lex.
sql/sql_lex.h:
  Refactoring, separate lex_input_stream from st_lex.
sql/sql_parse.cc:
  Refactoring, separate lex_input_stream from st_lex.
sql/sql_prepare.cc:
  Refactoring, separate lex_input_stream from st_lex.
sql/sql_trigger.cc:
  Refactoring, separate lex_input_stream from st_lex.
sql/sql_view.cc:
  Refactoring, separate lex_input_stream from st_lex.
sql/sql_yacc.yy:
  Refactoring, separate lex_input_stream from st_lex.
2007-04-24 09:24:21 -06:00
unknown
67da87d82e Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-5.1
into  ua141d10.elisa.omakaista.fi:/home/my/bk/mysql-5.1-marvel


mysql-test/t/sp.test:
  Auto merged
mysys/typelib.c:
  Auto merged
sql/event_data_objects.cc:
  Auto merged
sql/event_db_repository.cc:
  Auto merged
sql/event_queue.cc:
  Auto merged
sql/ha_ndbcluster.cc:
  Auto merged
sql/item_func.h:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/sp.cc:
  Auto merged
sql/sp_head.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_prepare.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/sql_view.cc:
  Auto merged
sql/strfunc.cc:
  Auto merged
sql/table.cc:
  Auto merged
include/typelib.h:
  Merged from 5.1 main tree.
mysql-test/r/sp.result:
  Merged from 5.1 main tree.
2007-04-04 21:25:39 +03:00
unknown
374718ff45 Merge ua141d10.elisa.omakaista.fi:/home/my/bk/mysql-5.0-marvel
into  ua141d10.elisa.omakaista.fi:/home/my/bk/mysql-5.1-marvel


client/mysql.cc:
  Auto merged
client/mysqlbinlog.cc:
  Auto merged
BitKeeper/deleted/.del-my_lread.c:
  Auto merged
BitKeeper/deleted/.del-my_lwrite.c:
  Auto merged
BitKeeper/deleted/.del-raid.cc~488f5fa6538394e1:
  Auto merged
BitKeeper/deleted/.del-raid.h~2d2503a66b128ac6:
  Auto merged
client/mysqldump.c:
  Auto merged
extra/perror.c:
  Auto merged
include/my_sys.h:
  Auto merged
libmysql/libmysql.c:
  Auto merged
libmysqld/libmysqld.c:
  Auto merged
mysql-test/r/mysqlbinlog2.result:
  Auto merged
mysql-test/r/sp-security.result:
  Auto merged
mysql-test/r/view_grant.result:
  Auto merged
mysql-test/t/grant.test:
  Auto merged
mysql-test/t/sp-security.test:
  Auto merged
mysql-test/t/sp.test:
  Auto merged
mysql-test/t/sp_trans.test:
  Auto merged
mysql-test/t/view_grant.test:
  Auto merged
mysys/default.c:
  Auto merged
mysys/hash.c:
  Auto merged
mysys/mf_iocache.c:
  Auto merged
mysys/mf_keycache.c:
  Auto merged
mysys/my_alloc.c:
  Auto merged
mysys/my_dup.c:
  Auto merged
mysys/my_getwd.c:
  Auto merged
mysys/my_handler.c:
  Auto merged
mysys/my_lib.c:
  Auto merged
mysys/my_malloc.c:
  Auto merged
mysys/my_pread.c:
  Auto merged
mysys/my_read.c:
  Auto merged
mysys/my_seek.c:
  Auto merged
mysys/my_static.c:
  Auto merged
mysys/safemalloc.c:
  Auto merged
mysys/thr_alarm.c:
  Auto merged
mysys/typelib.c:
  Auto merged
sql/handler.cc:
  Auto merged
sql/item.cc:
  Auto merged
sql/item_cmpfunc.cc:
  Auto merged
sql/item_func.h:
  Auto merged
sql/item_subselect.cc:
  Auto merged
sql/log_event.cc:
  Auto merged
sql/net_serv.cc:
  Auto merged
sql/opt_range.cc:
  Auto merged
sql/slave.cc:
  Auto merged
sql/sp.cc:
  Auto merged
sql/sp_head.cc:
  Auto merged
sql/sql_acl.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_cache.cc:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_delete.cc:
  Auto merged
sql/sql_load.cc:
  Auto merged
sql/sql_prepare.cc:
  Auto merged
sql/sql_repl.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
sql/sql_view.cc:
  Auto merged
sql/strfunc.cc:
  Auto merged
sql/table.cc:
  Auto merged
sql/tztime.cc:
  Auto merged
sql/unireg.cc:
  Auto merged
sql-common/client.c:
  Auto merged
sql-common/my_time.c:
  Auto merged
storage/archive/ha_archive.cc:
  Auto merged
storage/heap/_check.c:
  Auto merged
storage/heap/hp_delete.c:
  Auto merged
storage/heap/hp_hash.c:
  Auto merged
storage/heap/hp_open.c:
  Auto merged
storage/heap/hp_rkey.c:
  Auto merged
storage/heap/hp_rrnd.c:
  Auto merged
storage/heap/hp_write.c:
  Auto merged
storage/innobase/handler/ha_innodb.cc:
  Auto merged
storage/myisam/mi_close.c:
  Auto merged
storage/myisam/mi_delete.c:
  Auto merged
storage/myisam/mi_dynrec.c:
  Auto merged
storage/myisam/mi_keycache.c:
  Auto merged
storage/myisam/mi_page.c:
  Auto merged
storage/myisam/mi_statrec.c:
  Auto merged
storage/myisam/myisamchk.c:
  Auto merged
storage/myisammrg/myrg_extra.c:
  Auto merged
storage/ndb/src/mgmclient/CommandInterpreter.cpp:
  Auto merged
tests/mysql_client_test.c:
  Auto merged
mysql-test/r/grant.result:
  Merged from 5.0
mysql-test/r/sp.result:
  Merged from 5.0
mysql-test/r/sp_trans.result:
  Merged from 5.0
mysql-test/t/mysqlbinlog2.test:
  Merged from 5.0
mysys/thr_lock.c:
  Merged from 5.0
sql/ha_ndbcluster.cc:
  Merged from 5.0
sql/log.cc:
  Merged from 5.0
sql/mysql_priv.h:
  Merged from 5.0
sql/mysqld.cc:
  Merged from 5.0
sql/set_var.cc:
  Merged from 5.0
sql/sql_db.cc:
  Merged from 5.0
sql/sql_insert.cc:
  Merged from 5.0
sql/sql_parse.cc:
  Merged from 5.0
sql/sql_show.cc:
  Merged from 5.0
sql/sql_update.cc:
  Merged from 5.0
2007-03-29 17:27:42 +03:00
unknown
00aaa9a3d4 Merge ua141d10.elisa.omakaista.fi:/home/my/bk/mysql-4.1-main
into  ua141d10.elisa.omakaista.fi:/home/my/bk/mysql-5.0-marvel


BitKeeper/deleted/.del-_dynrec.c~48dd758f5a5450df:
  Auto merged
BitKeeper/deleted/.del-_page.c~148b1a613d052ee8:
  Auto merged
BitKeeper/deleted/.del-_search.c~f509292aa1ff18ff:
  Auto merged
BitKeeper/deleted/.del-close.c~fd62629496ee5bcc:
  Auto merged
BitKeeper/deleted/.del-delete.c~65ee8daaa75a14b6:
  Auto merged
BitKeeper/deleted/.del-my_tempnam.c~a8562f15dad3012f:
  Auto merged
BitKeeper/deleted/.del-open.c~95b3b75042fae00a:
  Auto merged
BitKeeper/deleted/.del-rkey.c~cc54c6498352f999:
  Auto merged
client/mysql.cc:
  Auto merged
client/mysqldump.c:
  Auto merged
include/my_sys.h:
  Auto merged
include/raid.h:
  Auto merged
myisam/mi_close.c:
  Auto merged
BitKeeper/deleted/.del-sort.c~e2e56b5a37ce86f4:
  Auto merged
BitKeeper/deleted/.del-write.c~8f1918b1f6770e54:
  Auto merged
myisam/mi_page.c:
  Auto merged
myisam/myisamchk.c:
  Auto merged
mysys/default.c:
  Auto merged
mysys/mf_keycaches.c:
  Auto merged
mysys/my_dup.c:
  Auto merged
mysys/my_fopen.c:
  Auto merged
mysys/my_handler.c:
  Auto merged
mysys/my_malloc.c:
  Auto merged
mysys/my_static.c:
  Auto merged
mysys/my_write.c:
  Auto merged
mysys/safemalloc.c:
  Auto merged
mysys/tree.c:
  Auto merged
mysys/typelib.c:
  Auto merged
regex/regexec.c:
  Auto merged
sql/item.cc:
  Auto merged
sql/item_cmpfunc.cc:
  Auto merged
sql/opt_range.cc:
  Auto merged
sql/sql_repl.cc:
  Auto merged
sql-common/my_time.c:
  Auto merged
BitKeeper/deleted/.del-compiler_warnings.supp:
  Delete: support-files/compiler_warnings.supp
client/mysqlbinlog.cc:
  Manual merge from 4.1.
client/sql_string.cc:
  Manual merge from 4.1.
extra/perror.c:
  Manual merge from 4.1.
heap/_check.c:
  Manual merge from 4.1.
heap/hp_delete.c:
  Manual merge from 4.1.
heap/hp_hash.c:
  Manual merge from 4.1.
heap/hp_open.c:
  Manual merge from 4.1.
heap/hp_rkey.c:
  Manual merge from 4.1.
heap/hp_rrnd.c:
  Manual merge from 4.1.
heap/hp_write.c:
  Manual merge from 4.1.
libmysql/libmysql.c:
  Manual merge from 4.1.
libmysqld/libmysqld.c:
  Manual merge from 4.1.
myisam/mi_delete.c:
  Manual merge from 4.1.
myisam/mi_dynrec.c:
  Manual merge from 4.1.
myisam/mi_keycache.c:
  Manual merge from 4.1.
myisam/mi_statrec.c:
  Manual merge from 4.1.
myisammrg/myrg_extra.c:
  Manual merge from 4.1.
mysys/hash.c:
  Manual merge from 4.1.
mysys/list.c:
  Manual merge from 4.1.
mysys/mf_iocache.c:
  Manual merge from 4.1.
mysys/mf_keycache.c:
  Manual merge from 4.1.
mysys/my_alloc.c:
  Manual merge from 4.1.
mysys/my_fstream.c:
  Manual merge from 4.1.
mysys/my_getwd.c:
  Manual merge from 4.1.
mysys/my_lib.c:
  Manual merge from 4.1.
mysys/my_lread.c:
  Manual merge from 4.1.
mysys/my_lwrite.c:
  Manual merge from 4.1.
mysys/my_pread.c:
  Manual merge from 4.1.
mysys/my_read.c:
  Manual merge from 4.1.
mysys/my_realloc.c:
  Manual merge from 4.1.
mysys/my_seek.c:
  Manual merge from 4.1.
mysys/raid.cc:
  Manual merge from 4.1.
mysys/thr_lock.c:
  Manual merge from 4.1.
ndb/src/mgmclient/CommandInterpreter.cpp:
  Manual merge from 4.1.
sql/ha_archive.cc:
  Manual merge from 4.1.
sql/ha_innodb.cc:
  Manual merge from 4.1.
sql/ha_ndbcluster.cc:
  Manual merge from 4.1.
sql/item_subselect.cc:
  Manual merge from 4.1.
sql/log.cc:
  Manual merge from 4.1.
sql/log_event.cc:
  Manual merge from 4.1.
sql/mysqld.cc:
  Manual merge from 4.1.
sql/net_serv.cc:
  Manual merge from 4.1.
sql/slave.cc:
  Manual merge from 4.1.
sql/sql_cache.cc:
  Manual merge from 4.1.
sql/sql_class.cc:
  Manual merge from 4.1.
sql/sql_delete.cc:
  Manual merge from 4.1.
sql/sql_parse.cc:
  Manual merge from 4.1.
sql/sql_prepare.cc:
  Manual merge from 4.1.
sql-common/client.c:
  Manual merge from 4.1.
sql/sql_select.cc:
  Manual merge from 4.1.
sql/sql_table.cc:
  Manual merge from 4.1.
sql/sql_update.cc:
  Manual merge from 4.1.
sql/strfunc.cc:
  Manual merge from 4.1.
sql/table.cc:
  Manual merge from 4.1.
sql/tztime.cc:
  Manual merge from 4.1.
sql/unireg.cc:
  Manual merge from 4.1.
tests/mysql_client_test.c:
  Manual merge from 4.1.
2007-03-28 20:46:42 +03:00
unknown
f5940fe904 Remove unnecessary casts to uchar. The casts are stemming from
the lexer API which internally uses  unsigned char variables to
address its state map. The implementation of the lexer should be
internal to the lexer, and not influence the rest of the code.


sql/event_data_objects.cc:
  Clean up unnecessary type casts.
sql/event_data_objects.h:
  Clean up unnecessary type casts.
sql/ha_ndbcluster.cc:
  Clean up unnecessary type casts.
sql/mysql_priv.h:
  Clean up unnecessary type casts.
sql/partition_info.h:
  Clean up unnecessary type casts.
sql/sp.cc:
  Clean up unnecessary type casts.
sql/sp_head.cc:
  Clean up unnecessary type casts.
sql/sp_head.h:
  Clean up unnecessary type casts.
sql/sql_lex.cc:
  Clean up unnecessary type casts.
sql/sql_lex.h:
  Clean up unnecessary type casts.
sql/sql_parse.cc:
  Clean up unnecessary type casts.
sql/sql_partition.cc:
  Clean up unnecessary type casts.
sql/sql_partition.h:
  Clean up unnecessary type casts.
sql/sql_prepare.cc:
  Clean up unnecessary type casts.
sql/sql_trigger.cc:
  Clean up unnecessary type casts.
sql/sql_view.cc:
  Clean up unnecessary type casts.
sql/sql_yacc.yy:
  Clean up unnecessary type casts.
sql/table.cc:
  Clean up unnecessary type casts.
sql/table.h:
  Clean up unnecessary type casts.
2007-03-27 21:09:56 +04:00
unknown
7eb3881bd8 Fixed compiler warnings.
mysys/default.c:
  Fixed bug.
ndb/src/mgmclient/CommandInterpreter.cpp:
  Added parenthesis around the expression.
sql/mysqld.cc:
  Fixed compiler warnings.
  
  Added a missing component in options struct (bug).
sql-common/my_time.c:
  Removed garbage.
sql/sql_table.cc:
  A possible use of a variable uninitialized.
support-files/compiler_warnings.supp:
  BitKeeper file /home/my/bk/mysql-4.1-main/support-files/compiler_warnings.supp
2007-03-22 20:32:07 +02:00
unknown
e9bb08ac0c Merge bk-internal.mysql.com:/home/bk/mysql-5.1
into  bodhi.local:/opt/local/work/mysql-5.1-runtime


include/my_global.h:
  Auto merged
mysql-test/mysql-test-run.pl:
  Auto merged
mysql-test/r/events_scheduling.result:
  Auto merged
BitKeeper/deleted/.del-init_db.sql~a77d572c39d5a1f8:
  Auto merged
BitKeeper/deleted/.del-mysql_create_system_tables.sh:
  Auto merged
mysql-test/r/query_cache.result:
  Auto merged
mysql-test/r/view.result:
  Auto merged
mysql-test/t/events_scheduling.test:
  Auto merged
mysql-test/t/grant_cache.test:
  Auto merged
mysql-test/t/query_cache.test:
  Auto merged
mysql-test/t/view.test:
  Auto merged
scripts/mysql_system_tables_fix.sql:
  Auto merged
sql/event_db_repository.cc:
  Auto merged
sql/event_queue.cc:
  Auto merged
sql/field.cc:
  Auto merged
sql/handler.cc:
  Auto merged
sql/handler.h:
  Auto merged
sql/item.cc:
  Auto merged
sql/item.h:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/item_subselect.cc:
  Auto merged
sql/log_event.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/sp.cc:
  Auto merged
sql/sp_head.cc:
  Auto merged
sql/sp_head.h:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_help.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_select.cc:
  Auto merged
sql/sql_show.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
sql/table.cc:
  Auto merged
sql/share/errmsg.txt:
  Auto merged
sql/tztime.cc:
  Auto merged
storage/innobase/handler/ha_innodb.cc:
  Auto merged
storage/myisam/ha_myisam.cc:
  Auto merged
storage/myisam/ha_myisam.h:
  Auto merged
mysql-test/r/skip_grants.result:
  Manualmerge.
mysql-test/r/sp.result:
  Manualmerge.
mysql-test/t/skip_grants.test:
  Manualmerge.
mysql-test/t/sp.test:
  Manualmerge.
sql/event_data_objects.cc:
  Manualmerge.
2007-03-20 00:42:11 +03:00
unknown
793c30612a Merge mysql.com:/home/hf/work/mrg/mysql-5.0-opt
into  mysql.com:/home/hf/work/mrg/mysql-5.1-opt


mysql-test/r/insert_update.result:
  Auto merged
mysql-test/t/insert_update.test:
  Auto merged
mysql-test/t/skip_grants.test:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/sql_acl.cc:
  Auto merged
sql/sql_prepare.cc:
  Auto merged
sql/sql_insert.cc:
  merging
2007-03-16 22:09:10 +04:00
unknown
43b9ff1b21 Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/autopush/B26261-5.0-opt


sql/mysql_priv.h:
  Auto merged
sql/sql_insert.cc:
  Auto merged
sql/sql_prepare.cc:
  Auto merged
mysql-test/r/insert_update.result:
  SCCS merged
mysql-test/t/insert_update.test:
  SCCS merged
2007-03-16 10:50:33 +02:00
unknown
2e8e78a42c Bug #26261:
INSERT uses query_id to verify what fields are
 mentioned in the fields list of the INSERT command.
 However the check for that is made after the 
 ON DUPLICATE KEY is processed. This causes all
 the fields mentioned in ON DUPLICATE KEY to be 
 considered as mentioned in the fields list of 
 INSERT.
 Moved the check up, right after processing the
 fields list.


mysql-test/r/insert_update.result:
  Bug #26261: test case
mysql-test/t/insert_update.test:
  Bug #26261: test case
sql/mysql_priv.h:
  Bug #26261: moved the check inside mysql_prepare_insert
sql/sql_insert.cc:
  Bug #26261: move the check inside mysql_prepare_insert
  before setting up the ON DUPLICATE KEY part
sql/sql_prepare.cc:
  Bug #26261: moved the check inside mysql_prepare_insert
2007-03-16 10:35:39 +02:00
unknown
783b774837 Merge gbichot@bk-internal.mysql.com:/home/bk/mysql-5.1-runtime
into  gbichot3.local:/home/mysql_src/mysql-5.1-runtime-735-realfix


sql/mysql_priv.h:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/sql_prepare.cc:
  Auto merged
2007-03-15 12:11:03 +01:00
unknown
fa57a563ce Fix the bug introduced with the push of the fix for bug#18326: Do not
lock table for writing during prepare of statement.

When single call open_normal_and_derived_tables() was used, we never
set table_count to the right value.  This patch reverts the part of
the old code that does open_tables() (and sets table_count), then
checks if table_list->multitable_view is set (and returns if so, using
table_count value), and only then it does mysql_handle_derived().
2007-03-13 21:15:29 +03:00
unknown
dca006dfd2 Fix for BUG#735 "Prepared Statements: there is no support for Query
Cache".
WL#1569 "Prepared Statements: implement support of Query Cache".
Prepared SELECTs did not look up in the query cache, and their results
were not stored in the query cache. This made them slower than
non-prepared SELECTs in some cases.
The fix is to re-use the expanded query (the prepared query where
"?" placeholders are replaced by their values, at execution time)
for searching/storing in the query cache.
It works fine for statements prepared via mysql_stmt_prepare(), which
are the most commonly used and were the scope of this bugfix and WL.
It works less fine for statements prepared via the SQL command
PREPARE...FROM, which are still not using the query cache if they
have at least one parameter (because then the expanded query contains
names of user variables, and user variables don't work with the
query cache, even in non-prepared queries).
Note that results from prepared SELECTs, which are in the binary
protocol, and results from normal SELECTs, which are in the text
protocol, ignore each other in the query cache, because a result in the
binary protocol should never be served to a SELECT expecting the text
protocol and vice-versa.
Note, after this patch, bug 25843 starts applying to query cache
("changing default database between PREPARE and EXECUTE of statement
breaks binlog"), we need to fix it.


mysql-test/include/have_query_cache.inc:
  Now prepared statements work with the query cache, so don't disable
  prep stmts by default when doing a query cache test. All tests which
  include this file will now be really tested against prepared
  statements (in particular, query_cache.test).
mysql-test/r/query_cache.result:
  result update
mysql-test/t/grant_cache.test:
  Cannot enable this test in ps-protocol, because in normal protocol,
  a SELECT failing due to insufficient privileges increments
  Qcache_not_cached, while in ps-protocol, no.
  In detail: in normal protocol,
  the "access denied" errors on SELECT are issued at (stack trace):
  mysql_parse/mysql_execute_command/execute_sqlcom_select/handle_select/
  mysql_select/JOIN::prepare/setup_wild/insert_fields/
  check_grant_all_columns/my_error/my_message_sql, which then calls
  push_warning/query_cache_abort: at this moment,
  query_cache_store_query() has been called, so query exists in cache,
  so thd->net.query_cache_query!=NULL, so query_cache_abort() removes
  the query from cache, which causes a query_cache.refused++ (thus,
  a Qcache_not_cached++).
  While in ps-protocol, the error is issued at prepare time;
  for this mysql_test_select() is called, not execute_sqlcom_select()
  (and that also leads to JOIN::prepare/etc). Thus, as
  query_cache_store_query() has not been called,
  thd->net.query_cache_query==NULL, so query_cache_abort() does nothing:
  Qcache_not_cached is not incremented.
  As this test prints Qcache_not_cached after SELECT failures,
  we cannot enable this test in ps-protocol.
mysql-test/t/ndb_cache_multi2.test:
  The principle of this test is: two mysqlds connected to one cluster,
  both using their query cache. Queries are cached in server1
  ("select a!=3 from t1", "select * from t1"),
  table t1 is modified in server2, we want to see that this invalidates
  the query cache of server1. Invalidation with NDB works like this:
  when a query is found in the query cache, NDB is asked if the tables
  have changed. In this test, ha_ndbcluster calls NDB every millisecond
  to collect change information about tables.
  Due to this millisecond delay, there is need for a loop ("while...")
  in this test, which waits until a query1 ("select a!=3 from t1") is
  invalidated (which is equivalent to it returning
  up-to-date results), and then expects query2 ("select * from t1")
  to have been invalidated (see up-to-date results).
  But when enabling --ps-protocol in this test, the logic breaks,
  because query1 is still done via mysql_real_query() (see mysqltest.c:
  eval_expr() always uses mysql_real_query()). So, query1 returning
  up-to-date results is not a sign of it being invalidated in the cache,
  because it was NOT in the cache ("select a!=3 from t1" on line 39
  was done with prep stmts, while `select a!=3 from t1` is not,
  thus the second does not see the first in the cache). Thus, we may run
  query2 when cache still has not been invalidated.
  The solution is to make the initial "select a!=3 from t1" run
  as a normal query, this repairs the broken logic.
  But note, "select * from t1" is still using prepared statements
  which was the goal of this test with --ps-protocol.
mysql-test/t/query_cache.test:
  now that prepared statements work with the query cache, we check
  that results in binary protocol (prepared statements) and in text
  protocol (normal queries) don't mix in the query cache even though
  the text of the statement/query are identical.
sql/mysql_priv.h:
  In class Query_cache_flags, we add a bit to say if the result
  is in binary or text format (because, a result in binary format
  should never be served to a query expecting text format, and vice-
  versa).
  A macro to emphasize that we read the size of the query cache
  without mutex ("maybe" word).
  A macro which gives a first indication of if a query is cache-able
  (first indication - it does not consider the query cache's state).
sql/protocol.cc:
  indentation.
sql/protocol.h:
  Children classes of Protocol report their type (currently,
  text or binary). Query cache needs to know that.
sql/sql_cache.cc:
  When we store a result in the query cache, we need to remember if it's
  in binary or text format. And when we search for a result in the query
  cache, we need to select only those results which are in the format
  which the current statement expects (binary or text).
sql/sql_prepare.cc:
  Enabling use of the query cache by prepared statements.
  1) Prep stmts are of two types:
    a) prepared via the mysql_stmt_prepare() API call
    b) prepared via the SQL PREPARE...FROM statement.
  2) We already, when executing a prepared statement, sometimes built an
  "expanded" statement. For a), "?" placeholders were replaced by their
  values. For b), by names of the user variables containing the values.
  We did that only when we needed to write the query to logs.
  We now use this expanded query also for storing/searching
  in the query cache.
  Assume a query "SELECT * FROM T WHERE c=?", and the parameter is 10.
  For a), the expanded query is "SELECT * FROM T WHERE c=10", we look
  for "SELECT * FROM T WHERE c=10" in the query cache, and store that
  query's result in the query cache.
  For b), the expanded query is "SELECT * FROM T WHERE c=@somevar", and
  user variables don't work with the query cache (even inside non-
  prepared queries), so we don't enable query caching for SQL PREPARE'd
  statements if they have at least one parameter (see
  "if (stmt->param_count > 0)" in the patch).
  3) If query cache is enabled and this is a SELECT, we build the
  expanded query (as an optimisation, we don't want to build this
  expanded query if the query cache is disabled or this is not a SELECT).
  As the decision of building the expanded query or not is taken
  at prepare time (setup_set_params()), if query cache is disabled
  at prepare time, we won't build the expanded query at all next
  executions, thus shouldn't use this query for query cacheing.
  To ensure that we don't, we set safe_to_cache_query to FALSE.
  Note that we read the size of the query cache without mutex, which is
  ok: if we see it 0 but that cache has just been enlarged, no big deal,
  just our statement will not use the query cache; if we see it >0 but
  that cache has just been made destroyed, we'll build the expanded
  query at all executions, but query_cache_store_query() and
  query_cache_send_result_to_client() will read the size with a mutex
  and so properly decide to cache or not cache.
  4) Some functions in this file were named "withlog", others "with_log",
  now using "with_log" for all.
tests/mysql_client_test.c:
  Testing of how prepared statements enter and hit the query cache.
  test_ps_query_cache() is inspired from test_ps_conj_select().
  It creates data, a prepared SELECT statement, executes it once,
  then a second time with the same parameter value, to see that cache
  is hit, then a 3rd time with another parameter value to see that cache
  is not hit. Then, same from another connection, expecting hits.
  Then, tests border cases (enables query cache at prepare and disables
  at execute and vice-versa).
  It checks all results of SELECTs, cache hits and misses.
mysql-test/r/query_cache_sql_prepare.result:
  result of new test: we see hits when there is no parameter,
  no hit when there is a parameter.
mysql-test/t/query_cache_sql_prepare.test:
  new test to see if SQL PREPARE'd statements enter/hit the query cache:
  - if having at least one parameter, they should not
  - if having zero parameters, they should.
2007-03-09 18:09:57 +01:00
unknown
dfd93a8f96 manual merge
libmysqld/lib_sql.cc:
  Auto merged
sql/protocol.cc:
  Auto merged
sql/protocol.h:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_prepare.cc:
  merge
2007-03-09 16:06:08 +01:00
unknown
babe2aa421 Cleanup: removed unused variable that produced a warning. 2007-03-07 20:47:39 +03:00
unknown
ed1c2dc4fd Merge moonlight.home:/home/tomash/src/mysql_ab/mysql-5.1
into  moonlight.home:/home/tomash/src/mysql_ab/mysql-5.1-bug18326


mysql-test/r/ps.result:
  Auto merged
mysql-test/t/ps.test:
  Auto merged
sql/sql_prepare.cc:
  Auto merged
2007-03-07 19:05:46 +03:00
unknown
3b288b24a6 BUG#18326: Do not lock table for writing during prepare of statement
During statement prepare phase the tables were locked as if the
statement is being executed, however this is not necessary.

The solution is to not lock tables on statement prepare phase.
Opening tables is enough to prevent DDL on them, and during statement
prepare we do not access nor modify any data.


mysql-test/r/ps.result:
  Add result for bug#18326: Do not lock table for writing during
  prepare of statement.
mysql-test/t/ps.test:
  Add test case for bug#18326: Do not lock table for writing during
  prepare of statement.
sql/sql_prepare.cc:
  Do not lock tables on statement prepare phase.  Opening tables is
  enough to prevent DDL on them, and during statement prepare we do not
  access nor modify any data.
  
  Use open_normal_and_derived_tables() for table opening on prepare.
2007-03-07 18:51:49 +03:00
unknown
676b59cffa Merge bodhi.local:/opt/local/work/mysql-5.0-26750
into  bodhi.local:/opt/local/work/mysql-5.1-runtime


mysql-test/r/trigger.result:
  Auto merged
mysql-test/r/view.result:
  Auto merged
mysql-test/t/trigger.test:
  Auto merged
sql/log_event.cc:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/sp_head.cc:
  Auto merged
sql/sp_head.h:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_lex.cc:
  Auto merged
sql/sql_lex.h:
  Auto merged
sql/sql_trigger.cc:
  Auto merged
sql/sql_update.cc:
  Auto merged
sql/table.cc:
  Auto merged
sql/table.h:
  Auto merged
sql/sql_class.cc:
  Manual merge.
sql/sql_class.h:
  Manual merge.
sql/sql_parse.cc:
  Manual merge.
sql/sql_prepare.cc:
  Manual merge.
sql/sql_yacc.yy:
  Manual merge.
2007-03-07 13:02:14 +03:00
unknown
053c6c01d6 A fix for Bug#26750 "valgrind leak in sp_head" (and post-review
fixes).

The legend: on a replication slave, in case a trigger creation
was filtered out because of application of replicate-do-table/
replicate-ignore-table rule, the parsed definition of a trigger was not 
cleaned up properly. LEX::sphead member was left around and leaked 
memory. Until the actual implementation of support of 
replicate-ignore-table rules for triggers by the patch for Bug 24478 it 
was never the case that "case SQLCOM_CREATE_TRIGGER"
was not executed once a trigger was parsed,
so the deletion of lex->sphead there worked and the memory did not leak.

The fix: 

The real cause of the bug is that there is no 1 or 2 places where
we can clean up the main LEX after parse. And the reason we 
can not have just one or two places where we clean up the LEX is
asymmetric behaviour of MYSQLparse in case of success or error. 

One of the root causes of this behaviour is the code in Item::Item()
constructor. There, a newly created item adds itself to THD::free_list
- a single-linked list of Items used in a statement. Yuck. This code
is unaware that we may have more than one statement active at a time,
and always assumes that the free_list of the current statement is
located in THD::free_list. One day we need to be able to explicitly
allocate an item in a given Query_arena.
Thus, when parsing a definition of a stored procedure, like
CREATE PROCEDURE p1() BEGIN SELECT a FROM t1; SELECT b FROM t1; END;
we actually need to reset THD::mem_root, THD::free_list and THD::lex
to parse the nested procedure statement (SELECT *).
The actual reset and restore is implemented in semantic actions
attached to sp_proc_stmt grammar rule.
The problem is that in case of a parsing error inside a nested statement
Bison generated parser would abort immediately, without executing the
restore part of the semantic action. This would leave THD in an 
in-the-middle-of-parsing state.
This is why we couldn't have had a single place where we clean up the LEX
after MYSQLparse - in case of an error we needed to do a clean up
immediately, in case of success a clean up could have been delayed.
This left the door open for a memory leak.

One of the following possibilities were considered when working on a fix:
- patch the replication logic to do the clean up. Rejected
as breaks module borders, replication code should not need to know the
gory details of clean up procedure after CREATE TRIGGER.
- wrap MYSQLparse with a function that would do a clean up.
Rejected as ideally we should fix the problem when it happens, not
adjust for it outside of the problematic code.
- make sure MYSQLparse cleans up after itself by invoking the clean up
functionality in the appropriate places before return. Implemented in 
this patch.
- use %destructor rule for sp_proc_stmt to restore THD - cleaner
than the prevoius approach, but rejected
because needs a careful analysis of the side effects, and this patch is 
for 5.0, and long term we need to use the next alternative anyway
- make sure that sp_proc_stmt doesn't juggle with THD - this is a 
large work that will affect many modules.

Cleanup: move main_lex and main_mem_root from Statement to its
only two descendants Prepared_statement and THD. This ensures that
when a Statement instance was created for purposes of statement backup,
we do not involve LEX constructor/destructor, which is fairly expensive.
In order to track that the transformation produces equivalent 
functionality please check the respective constructors and destructors
of Statement, Prepared_statement and THD - these members were
used only there.
This cleanup is unrelated to the patch.


sql/log_event.cc:
  THD::main_lex is private and should not be used.
sql/mysqld.cc:
  Move MYSQLerror to sql_yacc.yy as it depends on LEX headers now.
sql/sql_class.cc:
  Cleanup: move main_lex and main_mem_root to THD and Prepared_statement
sql/sql_class.h:
  Cleanup: move main_lex and main_mem_root to THD and Prepared_statement
sql/sql_lex.cc:
  Implement st_lex::restore_lex()
sql/sql_lex.h:
  Declare st_lex::restore_lex().
sql/sql_parse.cc:
  Consolidate the calls to unit.cleanup() and deletion of lex->sphead
  in mysql_parse (COM_QUERY handler)
sql/sql_prepare.cc:
  No need to delete lex->sphead to restore memory roots now in case of a 
  parse error - this is done automatically inside MYSQLparse
sql/sql_trigger.cc:
  This code could lead to double deletion apparently, as in case
  of an error lex.sphead was never reset.
sql/sql_yacc.yy:
  Trap all returns from the parser to ensure that MySQL-specific cleanup
  is invoked: we need to restore the global state of THD and LEX in 
  case of a parsing error. In case of a parsing success this happens as 
  part of normal grammar reduction process.
2007-03-07 12:24:46 +03:00
unknown
536adef69d Merge mysql.com:/home/gluh/MySQL/Merge/5.1
into  mysql.com:/home/gluh/MySQL/Merge/5.1-opt


sql/item.cc:
  Auto merged
sql/item.h:
  Auto merged
sql/item_cmpfunc.cc:
  Auto merged
sql/item_cmpfunc.h:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/opt_range.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_insert.cc:
  Auto merged
sql/sql_lex.cc:
  Auto merged
sql/sql_lex.h:
  Auto merged
sql/sql_prepare.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/sql_union.cc:
  Auto merged
sql/sql_update.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
2007-02-26 17:46:52 +04:00
unknown
de5d4e32fb Merge mysql.com:/home/gluh/MySQL/Merge/5.0
into  mysql.com:/home/gluh/MySQL/Merge/5.0-opt


sql/item.cc:
  Auto merged
sql/item.h:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_insert.cc:
  Auto merged
sql/sql_lex.cc:
  Auto merged
sql/sql_lex.h:
  Auto merged
sql/sql_prepare.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/sql_union.cc:
  Auto merged
sql/sql_update.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
2007-02-26 16:57:45 +04:00
unknown
b10600528d Merge mysql.com:/home/gluh/MySQL/Merge/5.0-opt
into  mysql.com:/home/gluh/MySQL/Merge/5.1-opt


mysql-test/r/innodb.result:
  Auto merged
mysql-test/r/insert_update.result:
  Auto merged
mysql-test/r/myisam.result:
  Auto merged
mysql-test/r/select.result:
  Auto merged
mysql-test/r/subselect3.result:
  Auto merged
mysql-test/r/type_blob.result:
  Auto merged
mysql-test/t/insert_update.test:
  Auto merged
mysql-test/t/select.test:
  Auto merged
BitKeeper/deleted/.del-bdb.result:
  Auto merged
mysql-test/extra/binlog_tests/blackhole.test:
  Auto merged
sql/item.cc:
  Auto merged
sql/item.h:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_delete.cc:
  Auto merged
sql/sql_lex.cc:
  Auto merged
sql/sql_lex.h:
  Auto merged
sql/sql_prepare.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/sql_union.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
storage/blackhole/ha_blackhole.cc:
  Auto merged
mysql-test/r/binlog_stm_blackhole.result:
  manual merge
mysql-test/r/insert_select.result:
  manual merge
mysql-test/r/subselect.result:
  manual merge
mysql-test/r/update.result:
  manual merge
mysql-test/t/insert_select.test:
  manual merge
mysql-test/t/subselect.test:
  manual merge
sql/sql_help.cc:
  manual merge
sql/sql_insert.cc:
  manual merge
sql/sql_update.cc:
  manual merge
2007-02-26 15:54:43 +04:00
unknown
9e6784924a Fixed compiler warnings
Fixed compile-pentium64 scripts
Fixed wrong estimate of update_with_key_prefix in sql-bench
Merge bk-internal.mysql.com:/home/bk/mysql-5.1 into mysql.com:/home/my/mysql-5.1
Fixed unsafe define of uint4korr()
Fixed that --extern works with mysql-test-run.pl
Small trivial cleanups
This also fixes a bug in counting number of rows that are updated when we have many simultanous queries
Move all connection handling and command exectuion main loop from sql_parse.cc to sql_connection.cc
Split handle_one_connection() into reusable sub functions.
Split create_new_thread() into reusable sub functions.
Added thread_scheduler; Preliminary interface code for future thread_handling code.

Use 'my_thread_id' for internal thread id's
Make thr_alarm_kill() to depend on thread_id instead of thread
Make thr_abort_locks_for_thread() depend on thread_id instead of thread
In store_globals(), set my_thread_var->id to be thd->thread_id.
Use my_thread_var->id as basis for my_thread_name()
The above changes makes the connection we have between THD and threads more soft.

Added a lot of DBUG_PRINT() and DBUG_ASSERT() functions
Fixed compiler warnings
Fixed core dumps when running with --debug
Removed setting of signal masks (was never used)
Made event code call pthread_exit() (portability fix)
Fixed that event code doesn't call DBUG_xxx functions before my_thread_init() is called.
Made handling of thread_id and thd->variables.pseudo_thread_id uniform.
Removed one common 'not freed memory' warning from mysqltest
Fixed a couple of usage of not initialized warnings (unlikely cases)
Suppress compiler warnings from bdb and (for the moment) warnings from ndb


BitKeeper/deleted/.del-SETUP.sh.rej:
  Rename: BUILD/SETUP.sh.rej -> BitKeeper/deleted/.del-SETUP.sh.rej
BitKeeper/deleted/.del-configure.in.rej:
  Rename: configure.in.rej -> BitKeeper/deleted/.del-configure.in.rej
BitKeeper/deleted/.del-my_global.h.rej:
  Rename: include/my_global.h.rej -> BitKeeper/deleted/.del-my_global.h.rej
BitKeeper/deleted/.del-my_pthread.h.rej:
  Rename: include/my_pthread.h.rej -> BitKeeper/deleted/.del-my_pthread.h.rej
BitKeeper/deleted/.del-mysql_client_test.c.rej:
  Rename: tests/mysql_client_test.c.rej -> BitKeeper/deleted/.del-mysql_client_test.c.rej
BitKeeper/deleted/.del-mysqld.cc.rej~35c1c438e11ebd89:
  Rename: sql/mysqld.cc.rej -> BitKeeper/deleted/.del-mysqld.cc.rej~35c1c438e11ebd89
BitKeeper/deleted/.del-sql_parse.cc.rej:
  Rename: sql/sql_parse.cc.rej -> BitKeeper/deleted/.del-sql_parse.cc.rej
BitKeeper/deleted/.del-table.cc.rej:
  Rename: sql/table.cc.rej -> BitKeeper/deleted/.del-table.cc.rej
BitKeeper/deleted/.del-thr_alarm.c.rej:
  Rename: mysys/thr_alarm.c.rej -> BitKeeper/deleted/.del-thr_alarm.c.rej
BUILD/compile-pentium64:
  Update this to be in line with compile-pentium
BUILD/compile-pentium:
  Send command line options to SETUP.sh
BUILD/compile-solaris-sparc-debug:
  Update scripts
BUILD/compile-solaris-sparc-forte:
  Update scripts
BUILD/compile-solaris-sparc-purify:
  Update scripts
BUILD/compile-solaris-sparc:
  Update scripts
BitKeeper/deleted/.del-DbtupSystemRestart.cpp~15b54d7e4e75d2d:
  Removed compiler warning
BitKeeper/deleted/.del-ha_berkeley.cc:
  Moved get_auto_primary_key() here as int5store() gives (wrong) compiler warnings in win64
configure.in:
  Added detection of port_create and port.h (for future)as 
  ---
  manual merge
BitKeeper/deleted/.del-ha_berkeley.h:
  Moved get_auto_primary_key() to ha_berkeley.cc
BitKeeper/deleted/.del-mysqlmanager.c~e97636d71145a0b:
  Fixed compiler warnings
BitKeeper/etc/ignore:
  added storage/ndb/src/ndbapi/ndberror_check
client/mysqlbinlog.cc:
  Removed not needed 'static' (caused compiler warning)
client/mysqldump.c:
  Fixed compiler warnings from 'max' build
client/mysqltest.c:
  Free warning and query memory no abort.
  (Removes strange warnings on screen if mysql-test-run fails)
  Removed compiler warnings
  Portability fix for windows (windows doesn't have mode_t)
client/sql_string.h:
  Removed compiler warning
cmd-line-utils/readline/xmalloc.c:
  Fixed compiler warnings from 'max' build
extra/charset2html.c:
  Fixed compiler warnings
extra/comp_err.c:
  Fixed compiler warnings from 'max' build
extra/yassl/include/lock.hpp:
  Fix for windows64
extra/yassl/include/openssl/ssl.h:
  Changed prototype for SSL_set_fd() to fix compiler warnings (and possible errors) on windows 64 bit
extra/yassl/include/socket_wrapper.hpp:
  Moved socket_t to ssl.h, to be able to removed compiler warnings on windows 64 bit
extra/yassl/include/yassl.hpp:
  Fix for windows64
extra/yassl/src/ssl.cpp:
  Removed compiler warning
  Detect wrong parameter (Happens when running test suite on solaris)
  Changed prototype for SSL_set_fd() to fix compiler warnings (and possible errors) on windows 64 bit
extra/yassl/taocrypt/src/integer.cpp:
  Fixed compiler warnings
extra/yassl/testsuite/testsuite.cpp:
  Removed compiler warning
include/config-win.h:
  Added HAVE_WINSOCK2 (for future)
include/my_dbug.h:
  Fixed DBUG_PROCESS() so that we don't get compiler warnings for it
include/my_global.h:
  Fixed unsafe define of uint4korr()
  manual merge (ignore changes from 5.0)
  Fixed warnings on win64 when using int5store and int6store
include/my_pthread.h:
  Added my_thread_id typedef
  Renamed 'my_thread_id() function to my_thead_dbug_id()
include/thr_alarm.h:
  Make thr_alarm_kill() to depend on thread_id instead of thread
include/thr_lock.h:
  Make thr_abort_locks_for_thread() depend on thread_id instead of thread
libmysql/libmysql.def:
  Fixed compiler warnings on win64
libmysqld/CMakeLists.txt:
  Added missing files
libmysqld/Makefile.am:
  Added new files
libmysqld/lib_sql.cc:
  Remove not needed code (store_globals() now takes care of things)
mysql-test/lib/mtr_report.pl:
  Removed wrong messages when using --extern
mysql-test/mysql-test-run.pl:
  Fixed that --extern works
  Print help on stdout instead of stderr (make it easier to pipe it to less)
  Fixed typo that caused mysql-test-run.pl to fail on Solaris
mysql-test/r/keywords.result:
  manual merge
mysql-test/r/ndb_lock.result:
  After merge fixes
mysql-test/r/ps.result:
  Portability fix
mysql-test/t/disabled.def:
  Disabled ndb_alter_table as this very often fails for me (and have done it for a long time)
mysql-test/t/keywords.test:
  manual merge
mysql-test/t/ndb_lock.test:
  Added other possible error code
mysql-test/t/ps.test:
  Portability fix (when compiling without DLOPEN)
mysql-test/t/wait_timeout.test:
  Don't run this if we are not using a thread per connection (as other thread_handling code may not support timeouts)
mysys/base64.c:
  Fixed compiler warnings on win64
mysys/mf_keycache.c:
  Fixed compiler warnings
mysys/my_getopt.c:
  Fixed compiler warning
mysys/my_init.c:
  Fixed compiler warning
  Re-indented long comment
mysys/my_thr_init.c:
  Always use mysys_var->id to generate thread name (makes things uniform accross thread implementations and thread usage)
  Always generate my_thread_name() when using DBUG
  Ensure mysys_var->pthread_self is set
  Fixed compiler warnings
mysys/ptr_cmp.c:
  Fixed compiler warnings from 'max' build
mysys/thr_alarm.c:
  Change thr_alarm_kill() to use mysys_var->id instead of thread id
  Fixed compiler warning on windows
mysys/thr_lock.c:
  Change thr_abort_locks_for_thread() to use mysys_var->id instead of thread id
  Add purecov statements around not tested code
  Fixed compiler warnings
mysys/thr_mutex.c:
  my_thread_id() -> my_thread_dbug_id()
server-tools/instance-manager/guardian.cc:
  Fixed compiler warning
server-tools/instance-manager/instance.cc:
  Fixed compiler warning
server-tools/instance-manager/mysql_connection.cc:
  Fixed compiler warnings
server-tools/instance-manager/mysqlmanager.cc:
  Fixed compiler warnings
sql/CMakeLists.txt:
  Added missing files
sql/Makefile.am:
  Added new files
sql/event_scheduler.cc:
  Added pthread_exit() calls
  Ensure DBUG_xxx calls are not made before my_thread_init()
  Use common functions to set up thread handling
sql/field.h:
  manual merge
sql/ha_ndbcluster.cc:
  Removed some trivial 'current_thd' calls
sql/handler.cc:
  Avoid warnings on KILL_CONNECTION
  Don't print out null pointer with printf()  (Causes crashes on Solaris)
sql/item.cc:
  Fixed compiler warnings from 'max' build
sql/item_cmpfunc.cc:
  After merge fixes
sql/item_func.cc:
  Merge embedded and normal code usage
  (GET_LOCK, RELEASE_LOCK now works on my_thread_id instead of pthread_t)
  Fixed compiler warning
sql/item_strfunc.cc:
  Fixed compiler warning
sql/item_timefunc.cc:
  Fixed compiler warnings
sql/lock.cc:
  Use (new) parameter to thr_abort_locks_for_thread()
sql/log.cc:
  Fixed compiler warning
sql/log_event.cc:
  Fixed compiler warnings about not used variable
sql/mysql_priv.h:
  Remove TEST_NO_THREADS (not needed with new scheduler interface)
  Added functions from sql_connect.cc and new functions from sql_parse.cc
sql/mysqld.cc:
  Use thread_scheduler structure to dispatch calls (make code more dynamic)
  Change --one-thread option to use thread_scheduler interface
  Made ONE_THREAD option independent of DBUG_BUILD
  --one-thread is now depricated. One should instead use '--thread-handling=no-threads'
  Remove not used uname() function.
  Split create_new_thread() into reusable sub functions.
  Preliminary interface code for future thread_handling code.
  Fixed compiler warnings
sql/parse_file.cc:
  Don't send zero pointer to fn_format() (Causes crashes when using --debug)
sql/repl_failsafe.cc:
  Setup pseudo_thread_id same way as other code
sql/set_var.cc:
  Added variables 'thread_handling'
  Prepare for future variable 'thread_pool_size'
  Fixed compiler warnings
sql/set_var.h:
  Fixed compiler warning
sql/slave.cc:
  Setup pseudo_thread_id same way as other code
  Removed not used signal mask
sql/sql_acl.cc:
  Fixed compiler warnings from 'max' build
sql/sql_base.cc:
  Fixed long comments
  Normalized variable setup
  Don't destroy value of thd->variables.pseduo_thread_id
  More DBUG_PRINT()'s
  More DBUG_ASSERT()'s
  Fixed compiler warnings from 'max' build
sql/sql_class.cc:
  Remove thd->real_id and thd->dbug_thread_id
  Added DBUG_ASSERT()
  Use thread_scheduler to signal threads to be killed.
  In THD::store_globals(), set my_thread_var->id to be thd->thread_id.
  Fixed compiler warnings
sql/sql_class.h:
  Use 'my_thread_id' for internal thread id's
  Remove not needed THD elements: block_signals and dbug_thread_id
  Added 'thread_scheduler' scheduling extension element to THD
sql/sql_insert.cc:
  After merge fixes
  (This actually fixes a bug in old code when many connections are in use)
  Setup pseudo_thread_id same way as other code
  Removed not used signal mask
  Initialize variable that may be used unitialized on error conditions (not fatal)
sql/sql_parse.cc:
  Move connection related code to sql_connect.cc
  Remove setting of signal mask (not needed)
  Ensure TABLE_LIST->alias is set for generated TABLE_LIST elements (fixed core dumps when running with --debug)
  Added previous 'optional' element to reset_mgh()
  Removed not needed DBUG_PRINT call
sql/sql_partition.cc:
  Fixed compiler warnings
sql/sql_prepare.cc:
  Removed not needed casts
  Fixed compiler warnings from 'max' build
sql/sql_select.cc:
  Fixed compiler warnings
sql-bench/bench-init.pl.sh:
  Added --one-missing-tests
sql-bench/example:
  Better example
sql-bench/run-all-tests.sh:
  Added --only-missing-tests
sql-bench/test-insert.sh:
  Fixed wrong estimate of update_with_key_prefix
sql/sql_show.cc:
  Don't send pthread_kill() to threads to detect if they exists.
  (Not that useful and causes problems with future thread_handling code)
  Fixed compiler warnings
sql/sql_table.cc:
  Simplify code
  Fixed compiler warnings
sql/sql_test.cc:
  Remove dbug_thread_id from test output
sql/sql_view.cc:
  Don't send zero pointer to fn_format()
sql/tztime.cc:
  Fixed compiler warning
sql/udf_example.def:
  Fixed compiler warnings on win64
sql/unireg.cc:
  Initialize variable that may be used unitialized on error conditions
storage/archive/archive_test.c:
  Fixed compiler warnings
storage/archive/azio.c:
  Fixed compiler warnings
storage/innobase/dict/dict0crea.c:
  Fixed compiler warnings detected on windows64
storage/innobase/dict/dict0dict.c:
  Fixed compiler warnings detected on windows64
storage/innobase/dict/dict0load.c:
  Fixed compiler warnings detected on windows64
storage/innobase/dict/dict0mem.c:
  Fixed compiler warnings detected on windows64
storage/innobase/eval/eval0proc.c:
  Fixed compiler warnings detected on windows64
storage/innobase/handler/ha_innodb.cc:
  Fixed compiler warnings detected on windows64
storage/innobase/include/ut0byte.ic:
  Fixed compiler warnings on win64
storage/innobase/include/ut0ut.ic:
  Fixed compiler warnings on win64
storage/innobase/mtr/mtr0log.c:
  Fixed compiler warnings detected on windows64
storage/innobase/pars/pars0lex.l:
  Fixed warnings on win64
storage/innobase/rem/rem0cmp.c:
  Fixed compiler warnings detected on windows64
storage/innobase/row/row0mysql.c:
  Fixed compiler warnings detected on windows64
storage/innobase/row/row0sel.c:
  Fixed compiler warnings detected on windows64
storage/innobase/sync/sync0rw.c:
  Fixed compiler warnings detected on windows64
storage/innobase/trx/trx0trx.c:
  Fixed compiler warnings detected on windows64
storage/myisam/mi_log.c:
  my_thread_id() -> my_thread_debug_id()
storage/myisam/mi_packrec.c:
  Fixed compiler warnings detected on windows64
storage/myisam/myisamchk.c:
  Fixed compiler warnings from 'max' build
storage/ndb/src/common/debugger/EventLogger.cpp:
  Fixed compiler warnings
storage/ndb/src/common/util/ConfigValues.cpp:
  Removed compiler warnings
storage/ndb/src/common/util/NdbSqlUtil.cpp:
  Removed compiler warnings
storage/ndb/src/cw/cpcd/CPCD.hpp:
  Fixed compiler warnings
storage/ndb/src/kernel/blocks/backup/Backup.cpp:
  Fixed compiler warnings detected on windows64
storage/ndb/src/kernel/blocks/dbacc/Dbacc.hpp:
  Fixed compiler warnings detected on windows64
storage/ndb/src/kernel/blocks/dbacc/DbaccMain.cpp:
  Fixed compiler warnings detected on windows64
storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp:
  Fixed compiler warnings
storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp:
  Fixed compiler warnings
storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp:
  Fixed compiler warnings
storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp:
  Fixed compiler warnings
storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp:
  Fixed compiler warnings
storage/ndb/src/kernel/blocks/dbtup/Dbtup.hpp:
  Fixed compiler warnings
storage/ndb/src/kernel/blocks/dbtup/DbtupDiskAlloc.cpp:
  Fixed compiler warnings
storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp:
  Fixed compiler warnings
storage/ndb/src/kernel/blocks/dbtup/DbtupFixAlloc.cpp:
  Fixed compiler warnings
storage/ndb/src/kernel/blocks/dbtup/DbtupMeta.cpp:
  Fixed compiler warnings
storage/ndb/src/kernel/blocks/dbtup/DbtupRoutines.cpp:
  Fixed compiler warnings
storage/ndb/src/kernel/blocks/dbtup/DbtupScan.cpp:
  Fixed compiler warnings
storage/ndb/src/kernel/blocks/dbtup/DbtupVarAlloc.cpp:
  Fixed compiler warnings
storage/ndb/src/kernel/blocks/dbtup/tuppage.cpp:
  Fixed compiler warnings
storage/ndb/src/kernel/blocks/dbtup/tuppage.hpp:
  Fixed compiler warnings
storage/ndb/src/kernel/blocks/dbtux/DbtuxStat.cpp:
  Fixed compiler warnings
storage/ndb/src/kernel/blocks/diskpage.hpp:
  Fixed compiler warnings
storage/ndb/src/kernel/vm/ndbd_malloc.cpp:
  Fixed compiler warnings
storage/ndb/src/kernel/vm/ndbd_malloc_impl.cpp:
  Fixed compiler warnings
storage/ndb/src/mgmclient/main.cpp:
  Fixed compiler warnings
storage/ndb/src/ndbapi/NdbEventOperationImpl.cpp:
  Fixed compiler warnings
storage/ndb/src/ndbapi/NdbOperationExec.cpp:
  Fixed compiler warnings
storage/ndb/src/ndbapi/SignalSender.cpp:
  Fixed compiler warnings
storage/ndb/tools/restore/consumer_restore.cpp:
  Fixed compiler warnings
strings/ctype-ucs2.c:
  Fixed compiler warnings
strings/ctype-utf8.c:
  Fixed compiler warnings
strings/decimal.c:
  Fixed compiler warnings
strings/my_strchr.c:
  Fixed conflict between function and prototype
support-files/compiler_warnings.supp:
  Ignore warnings from sql_yacc.cc that are hard to remove
  Ignore some not important warnings from windows 64 bit build
  Suppress warnings from bdb and (for the moment) warnings from ndb
  Suppress all warnings for all pushbuild platforms (should make all trees green)
vio/viosslfactories.c:
  Added DBUG_PRINT
BUILD/compile-pentium64-max:
  New BitKeeper file ``BUILD/compile-pentium64-max''
libmysqld/scheduler.cc:
  New BitKeeper file ``libmysqld/scheduler.cc''
libmysqld/sql_connect.cc:
  New BitKeeper file ``libmysqld/sql_connect.cc''
mysql-test/include/one_thread_per_connection.inc:
  New BitKeeper file ``mysql-test/include/one_thread_per_connection.inc''
mysql-test/r/no-threads.result:
  New BitKeeper file ``mysql-test/r/no-threads.result''
mysql-test/r/one_thread_per_connection.require:
  New BitKeeper file ``mysql-test/r/one_thread_per_connection.require''
mysql-test/t/no-threads-master.opt:
  New BitKeeper file ``mysql-test/t/no-threads-master.opt''
mysql-test/t/no-threads.test:
  New BitKeeper file ``mysql-test/t/no-threads.test''
sql/scheduler.cc:
  New BitKeeper file ``sql/scheduler.cc''
sql/scheduler.h:
  New BitKeeper file ``sql/scheduler.h''
sql/sql_connect.cc:
  New BitKeeper file ``sql/sql_connect.cc''
2007-02-23 13:13:55 +02:00
unknown
50bd97a943 Fixed compiler warnings (for linux and win32 and win64)
Fixed a couple of usage of not initialized warnings (unlikely cases)


client/mysqldump.c:
  Fixed compiler warnings from 'max' build
client/mysqltest.c:
  Removed compiler warnings
cmd-line-utils/readline/xmalloc.c:
  Fixed compiler warnings from 'max' build
extra/comp_err.c:
  Fixed compiler warnings from 'max' build
extra/yassl/include/openssl/ssl.h:
  Changed prototype for SSL_set_fd() to fix compiler warnings (and possible errors) on windows 64 bit
extra/yassl/include/socket_wrapper.hpp:
  Moved socket_t to ssl.h, to be able to removed compiler warnings on windows 64 bit
extra/yassl/src/ssl.cpp:
  Changed prototype for SSL_set_fd() to fix compiler warnings (and possible errors) on windows 64 bit
extra/yassl/taocrypt/src/integer.cpp:
  Fixed compiler warnings
include/my_global.h:
  Added my_offsetof() macro from 5.1 to get rid of compiler warnings
innobase/include/ut0byte.ic:
  Fixed compiler warnings on win64
innobase/include/ut0ut.ic:
  Fixed compiler warnings on win64
libmysql/libmysql.def:
  Fixed compiler warnings on win64
myisam/mi_packrec.c:
  Fixed compiler warnings on win64
myisam/myisamchk.c:
  Fixed compiler warnings from 'max' build
mysys/base64.c:
  Fixed compiler warnings on win64
mysys/mf_keycache.c:
  Fixed compiler warnings from 'max' build
mysys/my_getopt.c:
  Fixed compiler warnings from 'max' build
mysys/my_init.c:
  Fixed compiler warnings from 'max' build
mysys/my_thr_init.c:
  Fixed compiler warnings
mysys/ptr_cmp.c:
  Fixed compiler warnings from 'max' build
ndb/include/kernel/signaldata/DictTabInfo.hpp:
  Fixed compiler warnings
server-tools/instance-manager/mysql_connection.cc:
  Fixed compiler warnings
server-tools/instance-manager/mysqlmanager.cc:
  Fixed compiler warnings
sql/filesort.cc:
  Initalize variable that was used unitialized in error conditions
sql/ha_berkeley.cc:
  Moved get_auto_primary_key() here as int5store() gives (wrong) compiler warnings in win64
sql/ha_berkeley.h:
  Moved get_auto_primary_key() to ha_berkeley.cc
sql/ha_innodb.cc:
  Fixed compiler warnings
sql/item.cc:
  Fixed compiler warnings from 'max' build
sql/item_timefunc.cc:
  Fixed compiler warnings
sql/mysqld.cc:
  Fixed compiler warnings
sql/sql_acl.cc:
  Fixed compiler warnings from 'max' build
sql/sql_base.cc:
  Fixed compiler warnings from 'max' build
sql/sql_insert.cc:
  Initialize variable that may be used unitialized on error conditions (not fatal)
sql/sql_prepare.cc:
  Fixed compiler warnings from 'max' build
sql/sql_select.cc:
  Fixed compiler warnings
sql/sql_show.cc:
  Fixed compiler warnings
sql/udf_example.def:
  Fixed compiler warnings on win64
sql/unireg.cc:
  Initialize variable that may be used unitialized on error conditions
strings/ctype-ucs2.c:
  Fixed compiler warnings
strings/ctype-utf8.c:
  Fixed compiler warnings
strings/decimal.c:
  Fixed compiler warnings
support-files/compiler_warnings.supp:
  Ignore warnings from sql_yacc.cc that are hard to remove
  Ignore some not important warnings from windows 64 bit build
tools/mysqlmanager.c:
  Fixed compiler warnings
2007-02-22 16:59:57 +02:00
unknown
1384e64005 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/my/mysql-5.0


BitKeeper/etc/ignore:
  auto-union
BUILD/SETUP.sh:
  Auto merged
Makefile.am:
  Auto merged
client/mysql.cc:
  Auto merged
cmd-line-utils/readline/display.c:
  Auto merged
configure.in:
  Auto merged
extra/yassl/include/buffer.hpp:
  Auto merged
extra/yassl/include/crypto_wrapper.hpp:
  Auto merged
extra/yassl/include/yassl_imp.hpp:
  Auto merged
extra/yassl/include/yassl_int.hpp:
  Auto merged
extra/yassl/src/crypto_wrapper.cpp:
  Auto merged
extra/yassl/taocrypt/include/algebra.hpp:
  Auto merged
extra/yassl/taocrypt/include/des.hpp:
  Auto merged
extra/yassl/taocrypt/include/hash.hpp:
  Auto merged
extra/yassl/taocrypt/include/hmac.hpp:
  Auto merged
extra/yassl/taocrypt/include/modarith.hpp:
  Auto merged
extra/yassl/taocrypt/include/modes.hpp:
  Auto merged
extra/yassl/taocrypt/include/rsa.hpp:
  Auto merged
extra/yassl/taocrypt/include/type_traits.hpp:
  Auto merged
extra/yassl/taocrypt/mySTL/list.hpp:
  Auto merged
extra/yassl/taocrypt/src/aes.cpp:
  Auto merged
extra/yassl/taocrypt/src/algebra.cpp:
  Auto merged
extra/yassl/testsuite/testsuite.cpp:
  Auto merged
include/my_global.h:
  Auto merged
include/my_pthread.h:
  Auto merged
libmysqld/lib_sql.cc:
  Auto merged
myisam/mi_open.c:
  Auto merged
mysql-test/mysql-test-run.pl:
  Auto merged
mysql-test/r/mysqltest.result:
  Auto merged
mysql-test/t/mysqltest.test:
  Auto merged
mysys/default.c:
  Auto merged
ndb/src/common/transporter/Transporter.cpp:
  Auto merged
ndb/src/common/util/File.cpp:
  Auto merged
ndb/src/common/util/SocketClient.cpp:
  Auto merged
ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp:
  Auto merged
ndb/src/kernel/blocks/dbtc/Dbtc.hpp:
  Auto merged
ndb/src/kernel/blocks/qmgr/Qmgr.hpp:
  Auto merged
ndb/src/kernel/blocks/qmgr/QmgrMain.cpp:
  Auto merged
ndb/src/mgmapi/mgmapi.cpp:
  Auto merged
ndb/src/mgmclient/CommandInterpreter.cpp:
  Auto merged
ndb/src/mgmsrv/ConfigInfo.cpp:
  Auto merged
ndb/src/mgmsrv/MgmtSrvr.cpp:
  Auto merged
ndb/src/ndbapi/ClusterMgr.hpp:
  Auto merged
ndb/src/ndbapi/Ndb.cpp:
  Auto merged
ndb/src/ndbapi/NdbScanOperation.cpp:
  Auto merged
ndb/src/ndbapi/SignalSender.cpp:
  Auto merged
sql/field.cc:
  Auto merged
sql/filesort.cc:
  Auto merged
sql/ha_myisammrg.cc:
  Auto merged
sql/handler.cc:
  Auto merged
sql/item.cc:
  Auto merged
sql/item.h:
  Auto merged
sql/item_cmpfunc.h:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/item_strfunc.cc:
  Auto merged
sql/item_subselect.h:
  Auto merged
sql/item_sum.cc:
  Auto merged
sql/item_timefunc.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/net_serv.cc:
  Auto merged
sql/opt_range.cc:
  Auto merged
sql/opt_range.h:
  Auto merged
sql/repl_failsafe.cc:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/set_var.h:
  Auto merged
sql/slave.cc:
  Auto merged
sql/sql_class.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_select.cc:
  Auto merged
sql/sql_show.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
sql/sql_union.cc:
  Auto merged
sql/sql_update.cc:
  Auto merged
sql-common/client.c:
  Auto merged
sql/sql_view.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
sql/table.cc:
  Auto merged
sql/unireg.cc:
  Auto merged
extra/yassl/taocrypt/src/asn.cpp:
  Manual merge (Fix shadowed variable name)
extra/yassl/taocrypt/test/test.cpp:
  No changes
ndb/src/common/util/ConfigValues.cpp:
  Manual merge (Fix shadowed variable name)
sql/field.h:
  manual merge
sql/ha_myisam.cc:
  manual merge
sql/ha_ndbcluster.cc:
  manual merge
sql/item_cmpfunc.cc:
  manual merge
sql/item_subselect.cc:
  Manual merge (Fix shadowed variable name)
sql/mysqld.cc:
  no changes
2007-02-21 14:07:08 +02:00
unknown
2f3a17b63e Fixed unsafe define of uint4korr()
Fixed that --extern works with mysql-test-run.pl
Small trivial cleanups


include/my_global.h:
  Fixed unsafe define of uint4korr()
mysql-test/lib/mtr_report.pl:
  Removed wrong messages when using --extern
mysql-test/mysql-test-run.pl:
  Fixed that --extern works
  Print help on stdout instead of stderr (make it easier to pipe it to less)
mysql-test/t/ndb_lock.test:
  Added other possible error code
sql/sql_prepare.cc:
  Removed not needed casts
2007-02-21 13:02:57 +02:00
unknown
6d537f01fd Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  rakia.gmz:/home/kgeorge/mysql/autopush/B25831-5.0-opt


sql/item.h:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_insert.cc:
  Auto merged
sql/sql_prepare.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
2007-02-19 14:47:16 +02:00
unknown
a97fd19371 Bug #25831: Deficiencies in INSERT ... SELECT ... field name resolving.
Several problems fixed: 
  1. There was a "catch-all" context initialization in setup_tables()
    that was causing the table that we insert into to be visible in the 
    SELECT part of an INSERT .. SELECT .. statement with no tables in
    its FROM clause. This was making sure all the under-initialized
    contexts in various parts of the code are not left uninitialized.
    Fixed by removing the "catch-all" statement and initializing the 
    context in the parser.
  2. Incomplete name resolution context when resolving the right-hand
    values in the ON DUPLICATE KEY UPDATE ... part of an INSERT ... SELECT ...
    caused columns from NATURAL JOIN/JOIN USING table references in the
    FROM clause of the select to be unavailable.
    Fixed by establishing a proper name resolution context.
  3. When setting up the special name resolution context for problem 2
    there was no check for cases where an aggregate function without a
    GROUP BY effectively takes the column from the SELECT part of an 
    INSERT ... SELECT unavailable for ON DUPLICATE KEY UPDATE.
    Fixed by checking for that condition when setting up the name 
    resolution context.


mysql-test/r/insert_update.result:
  Bug #25831: Deficiencies in INSERT ... SELECT ... field name resolving.
   - test case
mysql-test/t/insert_update.test:
  Bug #25831: Deficiencies in INSERT ... SELECT ... field name resolving.
   - test case
sql/item.h:
  Bug #25831: Deficiencies in INSERT ... SELECT ... field name resolving.
   - save_next_local is not referenced any more outside class methods
sql/sql_base.cc:
  Bug #25831: Deficiencies in INSERT ... SELECT ... field name resolving.
   - removed a "catch-all" code to cater for correct context initialization
sql/sql_help.cc:
  Bug #25831: Deficiencies in INSERT ... SELECT ... field name resolving.
   - fixed the name resolution context initialization
sql/sql_insert.cc:
  Bug #25831: Deficiencies in INSERT ... SELECT ... field name resolving.
   - Fixed the context of resolving the values in INSERT SELECT ON UPDATE
sql/sql_prepare.cc:
  Bug #25831: Deficiencies in INSERT ... SELECT ... field name resolving.
   - Correct context for name resolution of prepared INSERT .. SELECT
sql/sql_union.cc:
  Bug #25831: Deficiencies in INSERT ... SELECT ... field name resolving.
   - fixed the name resolution context initialization
sql/sql_yacc.yy:
  Bug #25831: Deficiencies in INSERT ... SELECT ... field name resolving.
   - Set the context here instead of setup_tables()
2007-02-19 14:39:37 +02:00
unknown
b4442bb2d6 Merge pilot.mysql.com:/home/msvensson/mysql/mysql-5.0-maint
into  pilot.mysql.com:/home/msvensson/mysql/mysql-5.1-new-maint


BitKeeper/etc/gone:
  auto-union
BitKeeper/etc/ignore:
  auto-union
mysys/my_getopt.c:
  Auto merged
sql/sql_prepare.cc:
  Auto merged
sql/table.cc:
  Auto merged
sql/unireg.cc:
  Auto merged
mysql-test/r/type_enum.result:
  Use local
mysql-test/t/type_enum.test:
  Use local
2007-02-13 10:27:39 +01:00
unknown
faacf58091 Merge pilot.mysql.com:/home/msvensson/mysql/mysql-4.1-maint
into  pilot.mysql.com:/home/msvensson/mysql/mysql-5.0-maint


BitKeeper/etc/gone:
  auto-union
mysys/my_getopt.c:
  Auto merged
sql/sql_prepare.cc:
  Auto merged
sql/table.cc:
  Auto merged
2007-02-13 09:56:56 +01:00
unknown
43ada21fe1 Merge siva.hindu.god:/home/tsmith/m/bk/41
into  siva.hindu.god:/home/tsmith/m/bk/maint/41


sql/sql_prepare.cc:
  Manual merge
2007-02-08 16:01:13 -07:00
unknown
eb6c1b2666 Merge pilot.mysql.com:/home/msvensson/mysql/mysql-5.0-maint
into  pilot.mysql.com:/home/msvensson/mysql/mysql-5.1-new-maint


configure.in:
  Auto merged
mysql-test/mysql-test-run.pl:
  Auto merged
mysql-test/r/range.result:
  Auto merged
mysql-test/t/range.test:
  Auto merged
mysys/default.c:
  Auto merged
scripts/mysqld_multi.sh:
  Auto merged
sql/field.h:
  Auto merged
sql/item_timefunc.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/slave.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_prepare.cc:
  Auto merged
2007-02-06 15:52:33 +01:00
unknown
56e9231f65 Merge pilot.mysql.com:/home/msvensson/mysql/mysql-4.1-maint
into  pilot.mysql.com:/home/msvensson/mysql/mysql-5.0-maint


configure.in:
  Auto merged
mysql-test/mysql-test-run.pl:
  Auto merged
mysql-test/r/range.result:
  Auto merged
mysql-test/t/range.test:
  Auto merged
mysys/default.c:
  Auto merged
scripts/mysqld_multi.sh:
  Auto merged
sql/field.h:
  Auto merged
sql/item_timefunc.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/slave.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_prepare.cc:
  Merfge backport
2007-02-06 15:50:53 +01:00
unknown
b93d81a8d1 Merge neptunus.(none):/home/msvensson/mysql/my41-nmj
into  neptunus.(none):/home/msvensson/mysql/mysql-4.1-maint


sql/sql_prepare.cc:
  Auto merged
2007-02-06 14:42:40 +01:00
unknown
1d2d9a033d Bug#8983 one place that isn't strict-aliasing-safe
- Backport fix from 5.0


sql/sql_prepare.cc:
  Avoid problems with -no-strict-aliasing in gcc 4.0+
2007-02-06 14:07:40 +01:00
unknown
9946ed16f3 Test and bug fixes and removed unneccessary files.
mysys/my_getopt.c:
  Fixes problem with getting output lines from
  my_getopt in random places in tests.
sql/sql_prepare.cc:
  Fixes problem with failing mysql_client_test
  on some machines. This is actually a problem
  with prepared statements.
2007-02-05 17:09:44 +02:00
unknown
7f028f6b03 Mechanical class renaming:
Protocol_simple->Protocol_text; Protocol_prep->Protocol_binary
and also THD::protocol_simple->THD::protocol_text,
THD::protocol_prep->THD::protocol_binary.
Reason: the binary protocol is not bound to be used only with
prepared statements long term (see WL#3559 "Decouple binary protocol
from prepared statements"). Renaming now is pressing because
the fix for BUG#735 "Prepared Statements: there is
no support for Query Cache" will introduce a new member
in class Query_cache_flags telling about the protocol's nature.
Other reason: "simple" is less accurate than "text".
Future patches for BUG#735 will rely on this cset.


libmysqld/lib_sql.cc:
  Protocol_simple->Protocol_text; Protocol_prep->Protocol_binary
sql/protocol.cc:
  Protocol_simple->Protocol_text; Protocol_prep->Protocol_binary
sql/protocol.h:
  Protocol_simple->Protocol_text; Protocol_prep->Protocol_binary
sql/set_var.cc:
  Protocol_simple->Protocol_text; Protocol_prep->Protocol_binary
sql/sql_class.cc:
  Protocol_simple->Protocol_text; Protocol_prep->Protocol_binary
sql/sql_class.h:
  Protocol_simple->Protocol_text; Protocol_prep->Protocol_binary
sql/sql_prepare.cc:
  Protocol_simple->Protocol_text; Protocol_prep->Protocol_binary
2007-01-30 22:48:05 +01:00
unknown
533497d8c9 Merge bk-internal.mysql.com:/home/bk/mysql-5.1
into  mysql.com:/home/my/mysql-5.1


BitKeeper/etc/ignore:
  auto-union
Makefile.am:
  Auto merged
configure.in:
  Auto merged
include/m_ctype.h:
  Auto merged
mysql-test/t/myisam.test:
  Auto merged
mysql-test/t/ndb_basic.test:
  Auto merged
sql/ha_ndbcluster.cc:
  Auto merged
sql/ha_partition.cc:
  Auto merged
sql/item.cc:
  Auto merged
sql/item.h:
  Auto merged
sql/item_cmpfunc.h:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/item_strfunc.cc:
  Auto merged
sql/item_subselect.h:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/opt_range.cc:
  Auto merged
sql/opt_range.h:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_class.h:
  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_select.cc:
  Auto merged
sql/sql_show.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
sql/sql_union.cc:
  Auto merged
sql/sql_update.cc:
  Auto merged
sql/sql_view.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
sql/table.cc:
  Auto merged
storage/federated/ha_federated.cc:
  Auto merged
storage/myisam/mi_open.c:
  Auto merged
storage/ndb/src/ndbapi/NdbEventOperationImpl.cpp:
  Auto merged
BUILD/SETUP.sh:
  manual merge
sql/item_cmpfunc.cc:
  manual merge
sql/item_subselect.cc:
  manual merge
2007-01-29 01:57:07 +02:00
unknown
36b058929f Merge mysql.com:/home/my/mysql-5.0
into  mysql.com:/home/my/mysql-5.1
Merge of 'remove compiler warnings when using -Wshadow'


BitKeeper/etc/ignore:
  auto-union
BitKeeper/deleted/.del-MetaData.hpp~538342afcd8ac53c:
  Auto merged
configure.in:
  Auto merged
client/mysql.cc:
  Auto merged
client/mysql_upgrade.c:
  Auto merged
client/mysqlbinlog.cc:
  Auto merged
client/mysqldump.c:
  Auto merged
extra/yassl/include/yassl_int.hpp:
  Auto merged
extra/yassl/taocrypt/include/algebra.hpp:
  Auto merged
include/m_ctype.h:
  Auto merged
include/my_global.h:
  Auto merged
include/my_pthread.h:
  Auto merged
include/my_sys.h:
  Auto merged
include/my_time.h:
  Auto merged
libmysql/libmysql.c:
  Auto merged
mysql-test/r/mysqltest.result:
  Auto merged
mysql-test/t/mysql.test:
  Auto merged
mysql-test/t/mysqlbinlog.test:
  Auto merged
mysql-test/t/mysqlcheck.test:
  Auto merged
mysql-test/t/mysqltest.test:
  Auto merged
mysql-test/t/wait_timeout.test:
  Auto merged
mysys/default.c:
  Auto merged
mysys/mf_iocache2.c:
  Auto merged
mysys/mf_keycache.c:
  Auto merged
server-tools/instance-manager/instance_options.cc:
  Auto merged
sql/filesort.cc:
  Auto merged
sql/item_cmpfunc.cc:
  Auto merged
sql/item_cmpfunc.h:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/item_geofunc.cc:
  Auto merged
sql/item_row.h:
  Auto merged
sql/item_strfunc.cc:
  Auto merged
sql/item_subselect.cc:
  Auto merged
sql/item_subselect.h:
  Auto merged
sql/item_sum.cc:
  Auto merged
sql/item_timefunc.cc:
  Auto merged
sql/log_event.h:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/net_serv.cc:
  Auto merged
sql/opt_range.cc:
  Auto merged
sql/opt_range.h:
  Auto merged
sql/password.c:
  Auto merged
sql/protocol.cc:
  Auto merged
sql/repl_failsafe.cc:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/set_var.h:
  Auto merged
sql/sp.cc:
  Auto merged
sql/sp_head.cc:
  Auto merged
sql/sp_head.h:
  Auto merged
sql/spatial.h:
  Auto merged
sql/sql_cache.h:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_derived.cc:
  Auto merged
sql/sql_lex.cc:
  Auto merged
sql/sql_lex.h:
  Auto merged
sql/sql_load.cc:
  Auto merged
sql/sql_prepare.cc:
  Auto merged
sql-common/client.c:
  Auto merged
sql-common/my_time.c:
  Auto merged
sql/sql_string.cc:
  Auto merged
sql/sql_string.h:
  Auto merged
sql/sql_trigger.h:
  Auto merged
sql/sql_union.cc:
  Auto merged
sql/sql_update.cc:
  Auto merged
sql/tztime.cc:
  Auto merged
storage/archive/ha_archive.h:
  Auto merged
storage/heap/hp_write.c:
  Auto merged
storage/myisam/ft_boolean_search.c:
  Auto merged
storage/myisam/mi_open.c:
  Auto merged
storage/myisam/mi_search.c:
  Auto merged
storage/myisam/mi_unique.c:
  Auto merged
storage/myisam/myisampack.c:
  Auto merged
storage/myisam/rt_index.c:
  Auto merged
storage/myisam/sort.c:
  Auto merged
storage/ndb/include/kernel/signaldata/ArbitSignalData.hpp:
  Auto merged
storage/ndb/include/kernel/signaldata/DictTabInfo.hpp:
  Auto merged
storage/ndb/include/ndbapi/NdbReceiver.hpp:
  Auto merged
storage/ndb/include/transporter/TransporterDefinitions.hpp:
  Auto merged
storage/ndb/include/util/OutputStream.hpp:
  Auto merged
storage/ndb/include/util/SimpleProperties.hpp:
  Auto merged
storage/ndb/include/util/SocketAuthenticator.hpp:
  Auto merged
storage/ndb/include/util/SocketServer.hpp:
  Auto merged
storage/ndb/src/common/portlib/NdbTick.c:
  Auto merged
storage/ndb/src/common/transporter/SHM_Transporter.cpp:
  Auto merged
storage/ndb/src/common/transporter/TCP_Transporter.cpp:
  Auto merged
storage/ndb/src/common/transporter/TCP_Transporter.hpp:
  Auto merged
storage/ndb/src/common/transporter/Transporter.cpp:
  Auto merged
storage/ndb/src/common/transporter/TransporterRegistry.cpp:
  Auto merged
storage/ndb/src/common/util/File.cpp:
  Auto merged
storage/ndb/src/common/util/Properties.cpp:
  Auto merged
storage/ndb/src/common/util/SocketClient.cpp:
  Auto merged
storage/ndb/src/common/util/random.c:
  Auto merged
storage/ndb/src/common/util/socket_io.cpp:
  Auto merged
storage/ndb/src/cw/cpcd/APIService.cpp:
  Auto merged
storage/ndb/src/cw/cpcd/main.cpp:
  Auto merged
storage/ndb/src/kernel/blocks/dbdih/Dbdih.hpp:
  Auto merged
storage/ndb/src/kernel/blocks/dblqh/Dblqh.hpp:
  Auto merged
storage/ndb/src/kernel/blocks/dbtc/Dbtc.hpp:
  Auto merged
storage/ndb/src/kernel/blocks/dbtup/Dbtup.hpp:
  Auto merged
storage/ndb/src/kernel/blocks/dbtup/DbtupScan.cpp:
  Auto merged
storage/ndb/src/kernel/blocks/dbtux/DbtuxNode.cpp:
  Auto merged
storage/ndb/src/kernel/blocks/dbtux/DbtuxTree.cpp:
  Auto merged
storage/ndb/src/kernel/blocks/ndbcntr/Ndbcntr.hpp:
  Auto merged
storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp:
  Auto merged
storage/ndb/src/kernel/blocks/ndbfs/AsyncFile.hpp:
  Auto merged
storage/ndb/src/kernel/blocks/qmgr/Qmgr.hpp:
  Auto merged
storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp:
  Auto merged
storage/ndb/src/mgmapi/LocalConfig.cpp:
  Auto merged
storage/ndb/src/mgmapi/mgmapi.cpp:
  Auto merged
storage/ndb/src/mgmclient/CommandInterpreter.cpp:
  Auto merged
storage/ndb/src/mgmsrv/ConfigInfo.cpp:
  Auto merged
storage/ndb/src/mgmsrv/ConfigInfo.hpp:
  Auto merged
storage/ndb/src/mgmsrv/InitConfigFileParser.cpp:
  Auto merged
storage/ndb/src/mgmsrv/MgmtSrvr.hpp:
  Auto merged
storage/ndb/src/mgmsrv/Services.cpp:
  Auto merged
storage/ndb/src/mgmsrv/main.cpp:
  Auto merged
storage/ndb/src/ndbapi/ClusterMgr.hpp:
  Auto merged
storage/ndb/src/ndbapi/Ndb.cpp:
  Auto merged
storage/ndb/src/ndbapi/NdbIndexOperation.cpp:
  Auto merged
storage/ndb/src/ndbapi/NdbOperationExec.cpp:
  Auto merged
storage/ndb/src/ndbapi/NdbOperationSearch.cpp:
  Auto merged
storage/ndb/src/ndbapi/NdbScanFilter.cpp:
  Auto merged
storage/ndb/src/ndbapi/NdbScanOperation.cpp:
  Auto merged
storage/ndb/src/ndbapi/SignalSender.cpp:
  Auto merged
storage/ndb/src/ndbapi/ndb_cluster_connection.cpp:
  Auto merged
storage/ndb/tools/delete_all.cpp:
  Auto merged
storage/ndb/tools/desc.cpp:
  Auto merged
storage/ndb/tools/drop_index.cpp:
  Auto merged
storage/ndb/tools/drop_tab.cpp:
  Auto merged
storage/ndb/tools/listTables.cpp:
  Auto merged
storage/ndb/tools/ndb_condig.cpp:
  Auto merged
storage/ndb/tools/restore/Restore.hpp:
  Auto merged
storage/ndb/tools/restore/consumer.hpp:
  Auto merged
storage/ndb/tools/select_all.cpp:
  Auto merged
storage/ndb/tools/select_count.cpp:
  Auto merged
strings/ctype-bin.c:
  Auto merged
strings/ctype-cp932.c:
  Auto merged
strings/ctype-eucjpms.c:
  Auto merged
strings/ctype-mb.c:
  Auto merged
strings/ctype-simple.c:
  Auto merged
strings/ctype-sjis.c:
  Auto merged
strings/ctype-ujis.c:
  Auto merged
strings/ctype-utf8.c:
  Auto merged
strings/decimal.c:
  Auto merged
BUILD/SETUP.sh:
  manual merge
BUILD/compile-pentium-gcov:
  manual merge
Makefile.am:
  manual merge
client/mysqltest.c:
  Automatic merge
include/mysql.h:
  manual merge
libmysqld/lib_sql.cc:
  Automatic merge
mysql-test/r/mysqlbinlog.result:
  Automatic merge
mysql-test/r/mysqlcheck.result:
  Fixed test case (we should never drop 'test' database)
mysys/my_bitmap.c:
  manual merge
server-tools/instance-manager/commands.h:
  manual merge
server-tools/instance-manager/guardian.cc:
  manual merge
server-tools/instance-manager/mysql_connection.cc:
  manual merge
server-tools/instance-manager/options.cc:
  manual merge
server-tools/instance-manager/options.h:
  manual merge
server-tools/instance-manager/parse.cc:
  Automatic merge
server-tools/instance-manager/user_map.cc:
  manual merge
server-tools/instance-manager/user_map.h:
  manual merge
sql/field.cc:
  manual merge
sql/field.h:
  manual merge
sql/ha_ndbcluster.cc:
  manual merge
sql/handler.cc:
  manual merge
sql/item.cc:
  manual merge
sql/item.h:
  Automatic merge
sql/log.cc:
  manual merge
sql/log_event.cc:
  manual merge
sql/mysqld.cc:
  manual merge
sql/slave.cc:
  manual merge
sql/spatial.cc:
  Automatic merge
sql/sql_class.h:
  manual merge
sql/sql_insert.cc:
  manual merge
sql/sql_parse.cc:
  manual merge
sql/sql_select.cc:
  manual merge
sql/sql_show.cc:
  manual merge
sql/sql_table.cc:
  manual merge
sql/sql_trigger.cc:
  manual merge
sql/sql_view.cc:
  manual merge
sql/sql_yacc.yy:
  manual merge
  Made setting thd and lex uniform
sql/table.cc:
  manual merge
sql/unireg.cc:
  manual merge
storage/archive/ha_archive.cc:
  manual merge
storage/federated/ha_federated.cc:
  manual merge
storage/heap/ha_heap.cc:
  manual merge
storage/myisam/ha_myisam.cc:
  manual merge
storage/myisammrg/ha_myisammrg.cc:
  manual merge
storage/ndb/include/util/InputStream.hpp:
  manual merge
storage/ndb/src/common/mgmcommon/ConfigRetriever.cpp:
  manual merge
storage/ndb/src/common/util/Bitmask.cpp:
  manual merge
storage/ndb/src/common/util/ConfigValues.cpp:
  Automatic merge
storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp:
  manual merge
storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp:
  manual merge
storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp:
  manual merge
storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp:
  manual merge
  Changed commented code to be #ifdef-ed instead
storage/ndb/src/kernel/blocks/dbtux/DbtuxScan.cpp:
  manual merge
storage/ndb/src/kernel/blocks/suma/Suma.cpp:
  Automatic merge
storage/ndb/src/kernel/blocks/suma/Suma.hpp:
  manual merge
storage/ndb/src/mgmsrv/MgmtSrvr.cpp:
  Automatic merge
storage/ndb/src/ndbapi/NdbBlob.cpp:
  Automatic merge
storage/ndb/src/ndbapi/NdbDictionaryImpl.cpp:
  Automatic merge
storage/ndb/src/ndbapi/NdbOperationDefine.cpp:
  manual merge
storage/ndb/tools/restore/restore_main.cpp:
  manual merge
tests/mysql_client_test.c:
  manual merge
2007-01-27 03:46:45 +02:00
unknown
d663a34303 Merge mysql.com:/home/gluh/MySQL/Merge/5.1
into  mysql.com:/home/gluh/MySQL/Merge/5.1-opt


BitKeeper/etc/ignore:
  auto-union
mysql-test/r/func_in.result:
  Auto merged
mysql-test/r/range.result:
  Auto merged
mysql-test/r/sp-code.result:
  Auto merged
mysql-test/r/trigger.result:
  Auto merged
mysql-test/r/udf.result:
  Auto merged
mysql-test/t/func_in.test:
  Auto merged
mysql-test/t/range.test:
  Auto merged
mysql-test/t/trigger.test:
  Auto merged
sql/item.cc:
  Auto merged
sql/item.h:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_insert.cc:
  Auto merged
sql/sql_lex.cc:
  Auto merged
sql/sql_lex.h:
  Auto merged
sql/sql_prepare.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/sql_show.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
mysql-test/r/select.result:
  manual merge
mysql-test/r/view.result:
  manual merge
mysql-test/t/select.test:
  manual merge
mysql-test/t/view.test:
  manual merge
2007-01-24 19:54:40 +04:00
unknown
276f0d4c5e Merge macbook.gmz:/Users/kgeorge/mysql/work/mysql-5.0-opt
into  macbook.gmz:/Users/kgeorge/mysql/work/merge-5.1-opt


mysql-test/r/func_in.result:
  Auto merged
mysql-test/r/range.result:
  Auto merged
mysql-test/r/select.result:
  Auto merged
mysql-test/r/sp-code.result:
  Auto merged
mysql-test/r/trigger.result:
  Auto merged
mysql-test/r/udf.result:
  Auto merged
mysql-test/r/view.result:
  Auto merged
mysql-test/t/func_in.test:
  Auto merged
mysql-test/t/func_str.test:
  Auto merged
mysql-test/t/range.test:
  Auto merged
mysql-test/t/select.test:
  Auto merged
mysql-test/t/trigger.test:
  Auto merged
mysql-test/t/udf.test:
  Auto merged
sql/item.cc:
  Auto merged
sql/item.h:
  Auto merged
sql/item_cmpfunc.cc:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/item_strfunc.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/opt_range.h:
  Auto merged
sql/sql_base.cc:
  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_prepare.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
sql/sql_union.cc:
  Auto merged
sql/sql_update.cc:
  Auto merged
mysql-test/r/func_str.result:
  merge 5.0-opt -> 5.1-opt
mysql-test/r/group_by.result:
  merge 5.0-opt -> 5.1-opt
mysql-test/r/insert.result:
  merge 5.0-opt -> 5.1-opt
mysql-test/r/subselect.result:
  merge 5.0-opt -> 5.1-opt
mysql-test/t/group_by.test:
  merge 5.0-opt -> 5.1-opt
mysql-test/t/insert.test:
  merge 5.0-opt -> 5.1-opt
mysql-test/t/subselect.test:
  merge 5.0-opt -> 5.1-opt
mysql-test/t/view.test:
  merge 5.0-opt -> 5.1-opt
sql/item_cmpfunc.h:
  merge 5.0-opt -> 5.1-opt
sql/item_strfunc.h:
  merge 5.0-opt -> 5.1-opt
2007-01-23 12:34:50 +02:00