(Review on irc by monty)
mysql-test/r/sp-error.result:
Renamed a procedure and function to avoid confusion
mysql-test/t/sp-error.test:
Renamed a procedure and function to avoid confusion
sql/item_func.cc:
Corrected (and better) way to set/reset the client cap. flag in Item_func_sp::execute()
sql/share/errmsg.txt:
Changed the ER_SP_BADSELECT error; more accurate, and includes the procedure name.
sql/sql_parse.cc:
Include the procedure name in the new error message.
Fixed problem with NULL in VARCHAR/BLOB keys for multi-part keys where VARCHAR/BLOB is first part
client/mysqladmin.cc:
Show GLOBAL status
myisam/mi_key.c:
Fixed problem with NULL in VARCHAR/BLOB keys for multi-part keys where VARCHAR/BLOB is first part
(Ramil will soon push test cases)
sql/handler.cc:
Indentation fix
tests/mysql_client_test.c:
Portability fixes
client/mysql.cc:
Auto merged
include/my_pthread.h:
Auto merged
ndb/src/ndbapi/ndberror.c:
Auto merged
sql/examples/ha_archive.cc:
Auto merged
sql/examples/ha_archive.h:
Auto merged
BUILD/SETUP.sh:
Manual merge of conflicts
-DBIG_TABLES removed set by configure using --with-big-tables
configure.in:
manual merge
mysql-test/r/archive.result:
Manual merge
mysql-test/t/archive.test:
Manual merge
Added protection against global read lock while creating and
initializing a delayed insert handler.
Allowed to ignore a global read lock when locking the table
inside the delayed insert handler.
Added some minor improvements.
sql/lock.cc:
Bug#7823 - FLUSH TABLES WITH READ LOCK + INSERT DELAYED = deadlock
Changed mysql_lock_tables() to allow for ignoring global read lock.
Added functions to set/unset protection against global read lock.
sql/mysql_priv.h:
Bug#7823 - FLUSH TABLES WITH READ LOCK + INSERT DELAYED = deadlock
Changed existing and added new function declarations.
sql/sql_insert.cc:
Bug#7823 - FLUSH TABLES WITH READ LOCK + INSERT DELAYED = deadlock
Added and extended some comments.
Added a protection against global read lock while a handler is
created and initialized.
Moved the unlock of the delayed insert object past its last usage
in delayed_get_table().
Changed the table locking in handle_delayed_insert() so that it
does not wait for global read lock.
Fix compilation error if HAVE_REPLICATION is not defined
sql/mysqld.cc:
Fix compilation error if HAVE_REPLICATION is not defined
sql/ha_innodb.cc:
Fix compilation error if HAVE_REPLICATION is not defined
into neptunus.(none):/home/msvensson/mysql/mysql-5.0
configure.in:
Auto merged
sql/ha_innodb.cc:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
sql/item.cc:
Auto merged
sql/ha_innodb.cc:
Fixed a bug using mysqldump to InnoDB tables causes error (Bug #10200).
Lock type must be stored when sql_command = SQLCOM_LOCK_TABLES and
lock_type = TL_READ or TL_READ_INSERT even when
innobase_locks_unsafe_for_binlog is set.
- Remove linking of libsupc++
- Move all local static variables to filescope
configure.in:
Remove linking with libsupc++
sql/examples/ha_archive.cc:
Move local static variables to file scope
sql/examples/ha_example.cc:
Move local static variables to file scope
sql/examples/ha_tina.cc:
Move local static variables to file scope
sql/ha_berkeley.cc:
Move local static variables to file scope
sql/ha_blackhole.cc:
Move local static variables to file scope
sql/ha_federated.cc:
Move local static variables to file scope
sql/ha_heap.cc:
Move local static variables to file scope
sql/ha_innodb.cc:
Move local static variables to file scope
sql/ha_myisam.cc:
Move local static variables to file scope
sql/ha_myisammrg.cc:
Move local static variables to file scope
sql/ha_ndbcluster.cc:
Move local static variables to file scope
sql/item.cc:
Move local static instance variables to file scope
sql/item_sum.cc:
Move local static variables to file scope
that merges ON and WHERE (BUG#10162)
mysql-test/r/join_outer.result:
BUG#10162 - ON is merged with WHERE, left join is convered to a regular join
mysql-test/t/join_outer.test:
BUG#10162 - ON is merged with WHERE, left join is convered to a regular join
mysys/default.c:
Cleanup:
- Just test once for recursion level
- Don't test explicitely for \r or \n as my_isspace() already does that
sql/sql_insert.cc:
Fix argument
sql/sql_select.cc:
Fixed indentation
added comment
We simply have to disallow any kind of result set being sent back
from a function. Can't see any way to make that to work.
mysql-test/r/sp-error.result:
New test case for BUG#8408.
mysql-test/t/sp-error.test:
New test case for BUG#8408.
sql/item_func.cc:
Disable result sets from functions but temporarily turning CLIENT_MULTI_RESULTS off.
sql/share/errmsg.txt:
Added error message for statements not allowed in functions (detected during parsing).
sql/sql_yacc.yy:
Don't allow result sets in functions.
into mysql.com:/home/jimw/my/mysql-5.0-build
BitKeeper/deleted/.del-acinclude.m4~f4ab416bac5003:
Auto merged
configure.in:
Auto merged
sql/mysqld.cc:
Auto merged
- Implemented ha_archive::rename_table
- Added testcases for rename
mysql-test/r/archive.result:
Addd testcase for rename of archive table
mysql-test/t/archive.test:
Addd testcase for rename of archive table
sql/examples/ha_archive.cc:
Implement special version of rename table that does not care it the .arn file is missing
sql/examples/ha_archive.h:
Implement special version of rename table that does not care it the .arn file is missing
acinclude.m4:
Use AC_LANG_PUSH/POP instead of _SAVE/RESTORE
Add test to get type of 'struct rlimit'
Switch order of including stdlib.h and declaration being tested to
match how it will be used in regular code.
configure.in:
Call MYSQL_TYPE_STRUCT_RLIMIT macro
sql/mysqld.cc:
Use STRUCT_RLIMIT for getting type of struct rlimit.
In mysql_make_view when joining subquery lists, take into account that both lists
can have length > 1 (see also fix for BUG#8490)
(note to bk trigger: this commit is about BUG#10107)
sql/sql_view.cc:
Fix for BUG#10107: In mysql_make_view, when joining subquery lists, take into account
that both lists can have length > 1 (see also fix for BUG#8490)
BUG#9738 "SHOW VARIABLES still displays the deprecated 'log_update' in 5.0",
BUG#9542 "MySQL dies with signal 11 when it is using non-existent location of binary logs"
mysql-test/r/create.result:
MEMORY, not HEAP
mysql-test/r/ps_1general.result:
order changed in SHOW STORAGE ENGINES
mysql-test/r/variables.result:
MEMORY, not HEAP
sql/handler.cc:
the array of storage engine names is searched in index order, so we must put the preferred name
before the alias so that the preferred name is printed by MySQL instead of the alias.
sql/log.cc:
TC_LOG::open(): don't try to open if the index (relevant only for binlog TC log)
could not be opened.
sql/set_var.cc:
--log-update is deprecated and replaced by --log-bin so don't show log_update in SHOW VARIABLES.
to insert view's subqueries into select_lex->slave(->next)* chain.
In case a join has several such views, don't add the same subqueries several times
(this forms a loop on the above chain which breaks many parts of the code)
mysql-test/r/view.result:
Testcase for BUG#8490
mysql-test/t/view.test:
Testcase for BUG#8490
mysql-test/r/sp.result:
New test case for BUG#9004.
Also updated some other results, since formerly "invisible" (but correct)
warnings now are visible.
mysql-test/t/sp.test:
New test case for BUG#9004.
sql/sql_error.cc:
Don't reset warnings while executing a stored routine.
sql/sql_parse.cc:
Don't reset warnings while executing a stored routine.
Bug partially fixed by 9775/9102 work on SP function return.
mysql-test/r/sp.result:
Bug#8861
Test for bug
mysql-test/t/sp.test:
Bug#8861
Test for bug
sql/protocol.cc:
Bug#8861
Requires change in assertion
into mysql.com:/usr/local/home/marty/MySQL/mysql-5.0
libmysql/libmysql.c:
Auto merged
ndb/src/ndbapi/TransporterFacade.cpp:
Auto merged
sql/sql_select.cc:
Auto merged
mysql-test/t/ndb_alter_table.test:
Auto merged
mysql-test/t/ndb_autodiscover.test:
Auto merged
mysql-test/t/ndb_basic.test:
Auto merged
mysql-test/t/ndb_cache.test:
Auto merged
mysql-test/t/ndb_charset.test:
Auto merged
mysql-test/t/ndb_index_ordered.test:
Auto merged
mysql-test/t/ndb_index_unique.test:
Auto merged
mysql-test/t/ndb_types.test:
Auto merged
ndb/src/kernel/blocks/dbtc/DbtcMain.cpp:
Auto merged
ndb/src/ndbapi/TransporterFacade.cpp:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
sql/sql_select.cc:
Auto merged
* Add 0.01 to cost of 'range'+'using index' scan to avoid optimizer choice races with
'index' scan.
mysql-test/r/range.result:
Update the test result after the changed cost
sql/opt_range.cc:
Fix for BUG#10037
* Add 0.01 to cost of 'range'+'using index' scan to avoid optimizer choice races with
'index' scan.
* make QUICK_GROUP_MIN_MAX_SELECT handle the case where the source table is empty.
Define a new CPP symbol that the target OS is Linux, and use it where only the OS matters and not the threads Library.
Until now, 'HAVE_LINUXTHREADS' was used to indicate "Target is Linux" in many places.
When we support configuration with NPTL but no Linuxthreads, this misuse must cease.
configure.in:
Step 2 of the switch to support configuration with NPTL:
Define a new CPP symbol that the target OS is Linux.
Until now, 'HAVE_LINUXTHREADS' was used to indicate "Target is Linux" in many places.
When we support configuration with NPTL but no Linuxthreads, this misuse must cease.
include/my_global.h:
Step 2 of the switch to support configuration with NPTL:
Use the new 'TARGET_OS_LINUX' where only the OS matters and not the threads Library.
mysys/thr_mutex.c:
Step 2 of the switch to support configuration with NPTL:
Use the new 'TARGET_OS_LINUX' where only the OS matters and not the threads Library.
sql/stacktrace.c:
Step 2 of the switch to support configuration with NPTL:
Use the new 'TARGET_OS_LINUX' where only the OS matters and not the threads Library.
sql/stacktrace.h:
Step 2 of the switch to support configuration with NPTL:
Use the new 'TARGET_OS_LINUX' where only the OS matters and not the threads Library.
tools/mysqlmanager.c:
Step 2 of the switch to support configuration with NPTL:
Use the new 'TARGET_OS_LINUX' where only the OS matters and not the threads Library.
Fix bug and implement return type casting.
mysql-test/r/sp.result:
Bug#9775
Test for bug + feature
Fix previous tests
mysql-test/t/sp.test:
Bug#9775
Test for bug + feature
Fix previous tests
sql/item_func.cc:
Bug#9775
new method Item_func_sp::execute(Field **)
some optimizations.
sql/item_func.h:
Bug#9775
results for Item_func_sp pass through a Field of the return type.
new method Item_func_sp::execute(Field **)
sql/sp_head.cc:
Bug#9775
missing initialiation for type_lengths in sp_head::create_typelib()
Semi-synchronous replication for InnoDB type tables; before telling the client that a commit has been processed, wait that the replication thread has returned from my_net_send() where it sends the binlog to the slave; note that TCP/IP, even with the TCP_NODELAY option does not guarantee that the slave has RECEIVED the data - this is just heuristic at the moment; this is useful in failover: in almost all cases, every transaction that has returned from the commit has been sent and processed in the slave, which makes failover to the slave simpler if the master crashes; the code does not work yet as is, because MySQL should call innobase_report_binlog_offset_and_commit() in a commit; we will most probably return that call to 5.0.x, to make InnoDB Hot Backup and group commit to work again; XA code broke them temporarily in 5.0.3
sql/ha_innodb.cc:
Semi-synchronous replication for InnoDB type tables; before telling the client that a commit has been processed, wait that the replication thread has returned from my_net_send() where it sends the binlog to the slave; note that TCP/IP, even with the TCP_NODELAY option does not guarantee that the slave has RECEIVED the data - this is just heuristic at the moment; this is useful in failover: in almost all cases, every transaction that has returned from the commit has been sent and processed in the slave, which makes failover to the slave simpler if the master crashes; the code does not work yet as is, because MySQL should call innobase_report_binlog_offset_and_commit() in a commit; we will most probably return that call to 5.0.x, to make InnoDB Hot Backup and group commit to work again; XA code broke them temporarily in 5.0.3
sql/handler.cc:
Semi-synchronous replication for InnoDB type tables; before telling the client that a commit has been processed, wait that the replication thread has returned from my_net_send() where it sends the binlog to the slave; note that TCP/IP, even with the TCP_NODELAY option does not guarantee that the slave has RECEIVED the data - this is just heuristic at the moment; this is useful in failover: in almost all cases, every transaction that has returned from the commit has been sent and processed in the slave, which makes failover to the slave simpler if the master crashes; the code does not work yet as is, because MySQL should call innobase_report_binlog_offset_and_commit() in a commit; we will most probably return that call to 5.0.x, to make InnoDB Hot Backup and group commit to work again; XA code broke them temporarily in 5.0.3
sql/mysqld.cc:
Semi-synchronous replication for InnoDB type tables; before telling the client that a commit has been processed, wait that the replication thread has returned from my_net_send() where it sends the binlog to the slave; note that TCP/IP, even with the TCP_NODELAY option does not guarantee that the slave has RECEIVED the data - this is just heuristic at the moment; this is useful in failover: in almost all cases, every transaction that has returned from the commit has been sent and processed in the slave, which makes failover to the slave simpler if the master crashes; the code does not work yet as is, because MySQL should call innobase_report_binlog_offset_and_commit() in a commit; we will most probably return that call to 5.0.x, to make InnoDB Hot Backup and group commit to work again; XA code broke them temporarily in 5.0.3
sql/set_var.cc:
Semi-synchronous replication for InnoDB type tables; before telling the client that a commit has been processed, wait that the replication thread has returned from my_net_send() where it sends the binlog to the slave; note that TCP/IP, even with the TCP_NODELAY option does not guarantee that the slave has RECEIVED the data - this is just heuristic at the moment; this is useful in failover: in almost all cases, every transaction that has returned from the commit has been sent and processed in the slave, which makes failover to the slave simpler if the master crashes; the code does not work yet as is, because MySQL should call innobase_report_binlog_offset_and_commit() in a commit; we will most probably return that call to 5.0.x, to make InnoDB Hot Backup and group commit to work again; XA code broke them temporarily in 5.0.3
sql/sql_repl.cc:
Semi-synchronous replication for InnoDB type tables; before telling the client that a commit has been processed, wait that the replication thread has returned from my_net_send() where it sends the binlog to the slave; note that TCP/IP, even with the TCP_NODELAY option does not guarantee that the slave has RECEIVED the data - this is just heuristic at the moment; this is useful in failover: in almost all cases, every transaction that has returned from the commit has been sent and processed in the slave, which makes failover to the slave simpler if the master crashes; the code does not work yet as is, because MySQL should call innobase_report_binlog_offset_and_commit() in a commit; we will most probably return that call to 5.0.x, to make InnoDB Hot Backup and group commit to work again; XA code broke them temporarily in 5.0.3
sql/ha_innodb.h:
Semi-synchronous replication for InnoDB type tables; before telling the client that a commit has been processed, wait that the replication thread has returned from my_net_send() where it sends the binlog to the slave; note that TCP/IP, even with the TCP_NODELAY option does not guarantee that the slave has RECEIVED the data - this is just heuristic at the moment; this is useful in failover: in almost all cases, every transaction that has returned from the commit has been sent and processed in the slave, which makes failover to the slave simpler if the master crashes; the code does not work yet as is, because MySQL should call innobase_report_binlog_offset_and_commit() in a commit; we will most probably return that call to 5.0.x, to make InnoDB Hot Backup and group commit to work again; XA code broke them temporarily in 5.0.3
sql/handler.h:
Semi-synchronous replication for InnoDB type tables; before telling the client that a commit has been processed, wait that the replication thread has returned from my_net_send() where it sends the binlog to the slave; note that TCP/IP, even with the TCP_NODELAY option does not guarantee that the slave has RECEIVED the data - this is just heuristic at the moment; this is useful in failover: in almost all cases, every transaction that has returned from the commit has been sent and processed in the slave, which makes failover to the slave simpler if the master crashes; the code does not work yet as is, because MySQL should call innobase_report_binlog_offset_and_commit() in a commit; we will most probably return that call to 5.0.x, to make InnoDB Hot Backup and group commit to work again; XA code broke them temporarily in 5.0.3
by simply disallowing alter procedure/function in an SP (as for drop).
mysql-test/r/sp-error.result:
Added test case for BUG#7047.
mysql-test/t/sp-error.test:
Added test case for BUG#7047.
sql/share/errmsg.txt:
Modified error message for "update procedure/function" too.
sql/sql_yacc.yy:
Don't allow alter procedure/function in an SP.
mysql-test/r/type_timestamp.result:
Auto merged
mysql-test/t/type_timestamp.test:
Auto merged
sql/table.h:
Auto merged
ndb/test/ndbapi/Makefile.am:
Using local 5.0 version.
sql/mysql_priv.h:
Merged.
sql/sql_insert.cc:
Merge needs fixes.
Bug in the optimizer caused an infinite loop for weird code.
mysql-test/r/sp.result:
New test case for BUG#6898.
mysql-test/t/sp.test:
New test case for BUG#6898.
sql/sp_head.cc:
Detect self referencing jumps in the optimizer.
Fixed bug #9681.
The bug happened with queries using derived tables specified by
a SELECT with ROLLUP, such as:
SELECT * FROM (SELECT a, SUM(a) FROM t1 GROUP BY a WITH ROLLUP) t2,
if column a of table t1 is declared as NOT NULL.
This was to the fact that the first column of the temporary table
created to contain the derived table erroneously inherited the NOT NULL
attribute from column a.
olap.result, olap.test:
Added a test case for bug #9681.
mysql-test/t/olap.test:
Added a test case for bug #9681.
mysql-test/r/olap.result:
Added a test case for bug #9681.
sql/sql_select.cc:
Fixed bug #9681.
The bug happened with queries using derived tables specified by
a SELECT with ROLLUP, such as:
SELECT * FROM (SELECT a, SUM(a) FROM t1 GROUP BY a WITH ROLLUP) t2,
if column a of table t1 is declared as NOT NULL.
This was to the fact that the first column of the temporary table
created to contain the derived table erroneously inherited the NOT NULL
attribute from column a.
while testing changes to the mysql-copyright scripts
libmysqld/examples/Makefile.am:
- added a copyright header
sql/share/Makefile.am:
- added a copyright header
tools/Makefile.am:
- added a copyright header
Modified the check for the timestamp field so that the flags for
the automatic for inserts and updates are cleared independently.
mysql-test/r/type_timestamp.result:
Bug#7806 - insert on duplicate key and auto-update of timestamp
The test result.
mysql-test/t/type_timestamp.test:
Bug#7806 - insert on duplicate key and auto-update of timestamp
The test case.
sql/mysql_priv.h:
Bug#7806 - insert on duplicate key and auto-update of timestamp
Made check_insert_fields() static. It is used only in sql_insert.cc.
sql/sql_insert.cc:
Bug#7806 - insert on duplicate key and auto-update of timestamp
Modified the check of the insert fields so that an explicit
assignment of the timestamp field does only disable the automatic
for inserts and retains the automatic for updates.
Added a check if the update fields contain the timestamp field.
In this case, the automatic on update is disabled, but not the
automatic on insert. This is called from mysql_prepare_insert().
sql/table.h:
Bug#7806 - insert on duplicate key and auto-update of timestamp
Extended a comment to warn about usage of enum timestamp_auto_set_type.
bugfix 9102 corrected the crashing, this corrects the result.
mysql-test/r/sp.result:
Bug#7648
New test for bug
mysql-test/t/sp.test:
Bug#7648
New test for bug
sql/item_func.h:
Bug#7648
Cannot cheat in Item_func_sp::val_int()
sql/item_func.cc:
A fix (bug #9837: round(1, 6) delivers wrong value in create table context).
As we change decimals, we should change max_length accordingly.
Initialization of fields for sp return type was not complete.
mysql-test/r/sp.result:
Bug#9102
Test for bug
mysql-test/t/sp.test:
Bug#9102
Test for bug
sql/mysql_priv.h:
Bug#9102
new function: sp_prepare_create_field()
sql/sp_head.cc:
Strip spaces and do charset conversion for sp function typelibs
sql/sql_table.cc:
Bug#9102
new function - sp_prepare_create_field()
prepares create_field in similar way to mysql_prepare_table()
sql/sql_yacc.yy:
Bug#9102
Backported from 5.0.3.
innobase/row/row0ins.c:
If the SQL-query will update or replace duplicate records we take X-lock
for duplicate records.
sql/ha_innodb.cc:
INSERT ON DUPLICATE KEY UPDATE will also update duplicate records and we should
take X-lock in this case for duplicate records.
Don't produce data truncation warnings from within cp_buffer_from_ref(). This function
is only used to make index search tuples and data truncation that occurs here has no
relation with truncated values being saved into tables.
mysql-test/r/update.result:
Testcase for BUG#9103
mysql-test/t/update.test:
Testcase for BUG#9103
sql/opt_range.cc:
cp_buffer_from_ref now has THD* parameter
sql/sql_select.h:
cp_buffer_from_ref now has THD* parameter
Changed type of "Sub_part" column in SHOW KEYS from TINYINT to SMALLINT (as MAX_KEY_LENGTH=1024)
(this is the final cset with proper tests)
mysql-test/r/show_check.result:
Testcase for BUG#9439
mysql-test/t/show_check.test:
Testcase for BUG#9439
sql/sql_show.cc:
Fix for BUG#9439:
Changed type of "Sub_part" column in SHOW KEYS from TINYINT to SMALLINT (as MAX_KEY_LENGTH=1024)
myisam/mi_search.c:
Auto merged
myisam/mi_write.c:
Auto merged
mysql-test/r/innodb.result:
Auto merged
mysql-test/t/innodb.test:
Auto merged
sql/sql_delete.cc:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
mysql-test/r/myisam.result:
SCCS merged
mysql-test/t/myisam.test:
SCCS merged
Added a test case for bug #9516.
item_subselect.h:
Fixed bug #9516.
The bug was due to that fact that the class Item_subselect
inherited the generic implementation of the function
not_null_tables that was not valid for the objects
of this class. As a result evaluation of the
not_null_tables attribute was not correct for subqueries.
This caused invalid transformations of outer joins into
inner joins.
sql/item_subselect.h:
Fixed bug #9516.
The bug was due to that fact that the class Item_subselect
inherited the generic implementation of the function
not_null_tables that was not valid for the objects
of this class. As a result evaluation of the
not_null_tables attribute was not correct for subqueries.
This caused invalid transformations of outer joins into
inner joins.
mysql-test/t/subselect.test:
Added a test case for bug #9516.
mysql-test/r/subselect.result:
Added a test case for bug #9516.
Added a test case for bug #9338.
sql_select.cc:
Fixed bug #9338.
When an occurence of a field reference has to be replaced
by another field reference the whole Item_field must be
replaced.
item.cc:
Fixed bug #9338.
The method Item_field::replace_equal_field_processor was
replaced by Item_field::replace_equal_field. The new method
is used to replace the occurences of Item_field objects.
item.h:
Fixed bug #9338.
The virtual function replace_equal_field_processor was replaced
by replace_equal_field. The latter is supposed to be used as a
callback function in calls of the method transform.
sql/item.h:
Fixed bug #9338.
The virtual function replace_equal_field_processor was replaced
by replace_equal_field. The latter is supposed to be used as a
callback function in calls of the method transform.
sql/item.cc:
The method Item_field::replace_equal_field_processor was
replaced by Item_field::replace_equal_field The new method
is used to replace the occurences of Item_field objects.
sql/sql_select.cc:
Fixed bug #9338.
When an occurence of a field reference has to be replaced
by another field reference the whole Item_field must be
replaced.
mysql-test/t/subselect.test:
Added a test case for bug #9338.
mysql-test/r/subselect.result:
Added a test case for bug #9338.
scripts/mysql_create_system_tables.sh:
Auto merged
scripts/mysql_fix_privilege_tables.sql:
Auto merged
sql/set_var.cc:
Auto merged
support-files/mysql.server.sh:
Auto merged
sql/ha_ndbcluster.cc:
Merge
sql/handler.cc:
Merge
sql/handler.h:
Merge
sql/mysqld.cc:
Merge
Don't abort on bootstrap if a wrong --default-storage-engine is specified
sql/handler.cc:
Combined code
sql/mysqld.cc:
Fixed core dump with long timezone names
Don't abort on bootstrap if a wrong --default-storage-engine is specified
Don't print strange messages if one sends 'kill' to a mysqld --bootstrap
sql/set_var.cc:
Indentaion change
New more SP-locking friendly approach to handling locks in multi-update.
Now we mark all tables of multi-update as needing write lock at parsing
stage and if possible downgrade lock at execution stage (For its work
SP-locking mechanism needs to know all lock types right after parsing
stage).
mysql-test/r/sp-threads.result:
Added test for bug #9486 "Can't perform multi-update in stored procedure".
mysql-test/t/sp-threads.test:
Added test for bug #9486 "Can't perform multi-update in stored procedure".
sql/sp_head.cc:
SP_TABLE, sp_head::merge_table_list()/add_used_tables_to_table_list():
Since some queries during their execution (e.g. multi-update)
may change type of lock for some of their tables and thus change
lock_type member for some of elements of table list, we should
store type of lock in SP_TABLE struct explicitly instead of using
lock_type member of TABLE_LIST object pointed by SP_TABLE::table.
sql/sql_lex.h:
Removed no longer used LEX::multi_lock_option member.
sql/sql_prepare.cc:
mysql_test_update():
We don't need to bother about LEX::multi_lock_option if we convert
multi-update to update anymore. Since nowdays multi-update uses
TABLE_LIST::lock_type for specifying lock level of updated tables
instead of LEX::multi_lock_option.
sql/sql_update.cc:
mysql_update()/mysql_multi_update_prepare():
Now we mark all tables of multi-update as needing write lock at parsing
stage and if possible downgrade lock at execution stage. Old approach
(don't set lock type until execution stage) was not working well with
SP-locking (For its work SP-locking mechanism needs to know all lock
types right after parsing stage).
mysql_multi_update():
We should return FALSE if no error occurs.
sql/sql_yacc.yy:
update:
Now we mark all tables of multi-update as needing write lock at parsing
stage and if possible downgrade lock at execution stage. Old approach
(don't set lock type until execution stage) was not working well with
SP-locking (For its work SP-locking mechanism needs to know all lock
types right after parsing stage).
most InnoDB threads are not terminated properly and the buffer pool is not flushed
to disk. Still no committed transaction is lost as we flush the logs to disk.
InnoDB does crash recovery at startup after this shutdown.
Using this shutdown in testsuite (mysql-test-run --mysqld=--innodb_fast_shutdown=2) saved 3 minutes (13% of total time).
innobase/include/srv0srv.h:
srv_fast_shutdown now int to allow 3 values, replacing the srv_fast_shutdown/srv_very_fast_shutdown combo
innobase/log/log0log.c:
srv_very_fast_shutdown -> (srv_fast_shutdown == 2)
innobase/srv/srv0srv.c:
srv_very_fast_shutdown -> (srv_fast_shutdown == 2)
innobase/srv/srv0start.c:
moving message to the InnoDB internal code (like "InnoDB: Starting shutdown" is)
instead of ha_innodb.cc. That's to have ut_print_timestamp().
sql/ha_innodb.cc:
As innodb_fast_shutdown is now settable, srv_fast_shutdown must be
set at shutdown, not at startup.
sql/ha_innodb.h:
innobase_fast_shutdown now ulong to accept 3 values
sql/mysqld.cc:
Making the "very fast" InnoDB shutdown accessible to users, by passing
--innodb-fast-shutdown=2 (disabled on Netware)
sql/set_var.cc:
innodb_fast_shutdown now settable on the fly (global variable).
So that user can decide to do a normal/fast/fastest shutdown
just before doing it.