Since UNLOCK TABLES will commit the transaction (and thus release
all InnoDB locks held by it), it is unnecessary to release the
user-requested table locks separately.
innobase/include/lock0lock.h:
Remove references to LOCK_TABLE_EXP and LOCK_TABLE_TRANSACTIONAL.
Remove lock_release_tables_off_kernel().
innobase/include/row0mysql.h:
Remove row_unlock_tables_for_mysql().
innobase/include/trx0trx.h:
Remove n_lock_table_exp and n_lock_table_transactional.
innobase/lock/lock0lock.c:
Remove references to LOCK_TABLE_EXP and LOCK_TABLE_TRANSACTIONAL.
Remove lock_release_tables_off_kernel().
Remove references to trx->n_lock_table_exp
and trx->n_lock_table_transactional.
innobase/row/row0mysql.c:
Remove row_unlock_tables_for_mysql().
Remove references to LOCK_TABLE_TRANSACTIONAL and LOCK_TABLE_EXP.
innobase/trx/trx0trx.c:
Remove n_lock_table_exp and n_lock_table_transactional.
sql/ha_innodb.cc:
Remove references to LOCK_TABLE_EXP and LOCK_TABLE_TRANSACTIONAL
and row_unlock_tables_for_mysql().
sql/ha_innodb.cc:
Remove unused variable innobase_thread_concurrency.
Add UNIV_LIKELY hints to srv_thread_concurrency tests
and lower the limit from 500 to 20.
sql/ha_innodb.h:
Remove unused variable innobase_thread_concurrency.
sql/mysqld.cc:
Make innodb_thread_concurrency=20 by default (it was 8).
Add UNIV_UNLIKELY hint.
lock0lock.c:
Correct the prototypes of lock_deadlock_recursive() and
lock_deadlock_occurs().
data0data.c:
dtuple_convert_big_rec(): Add UNIV_UNLIKELY hint.
ha_innodb.cc:
ha_innobase::write_row(): Correct the type of 'mode'.
sql/ha_innodb.cc:
ha_innobase::write_row(): Correct the type of 'mode'.
innobase/data/data0data.c:
dtuple_convert_big_rec(): Add UNIV_UNLIKELY hint.
innobase/lock/lock0lock.c:
Correct the prototypes of lock_deadlock_recursive() and
lock_deadlock_occurs().
innobase/row/row0upd.c:
Add UNIV_UNLIKELY hint.
by copying only a prefix of the row that covers the requested
columns.
innobase/include/row0mysql.h:
row_prebuilt_struct: Add field mysql_prefix_len
in order to reduce memcpy() time in
row_sel_pop_cached_row_for_mysql().
innobase/row/row0sel.c:
row_sel_pop_cached_row_for_mysql(): memcpy() only
mysql_prefix_len bytes instead of mysql_row_len.
sql/ha_innodb.cc:
build_template(): Initialize prebuilt->mysql_prefix_len.
innobase/btr/btr0btr.c:
Enclose btr_print_size() and btr_print_tree() in #ifdef UNIV_BTR_PRINT
Add trx_t* parameter to btr_validate_tree() and btr_validate_level().
btr_validate_level(): Call trx_is_interrupted() on each page.
innobase/ibuf/ibuf0ibuf.c:
Add trx_t* parameter to btr_validate_tree().
innobase/include/btr0btr.h:
Enclose btr_print_size() and btr_print_tree() in #ifdef UNIV_BTR_PRINT
Add trx_t* parameter to btr_validate_tree().
innobase/include/trx0trx.h:
Declare trx_is_interrupted().
innobase/row/row0mysql.c:
row_scan_and_check_index(): Check trx_is_interrupted() every 1,000
scanned rows.
row_check_table_for_mysql(): Check trx_is_interrupted()
for each index after btr_validate_tree().
sql/ha_innodb.cc:
Define trx_is_interrupted().
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
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.
... actually, it was a query cache problem. (It shouldn't cache such queries)
mysql-test/r/sp.result:
Added testcase for BUG#9902.
mysql-test/t/sp.test:
Added testcase for BUG#9902.
sql/sql_yacc.yy:
Don't cache queries which are calling stored functions.
overwrites IN variable
and added error checking of variables for [IN]OUT parameters while
rewriting the out parameter handling.
mysql-test/r/sp-error.result:
New test case for non-variable argument for [IN]OUT parameters.
(And changed to qualified names in some other error messages.)
mysql-test/r/sp.result:
New test case for BUG#9598.
mysql-test/t/sp-error.test:
New test case for non-variable argument for [IN]OUT parameters.
mysql-test/t/sp.test:
New test case for BUG#9598.
sql/item.h:
Need to distinguish between SP local variable items and other items,
for error checking and [IN]OUT parameter handling.
sql/share/errmsg.txt:
New error message for non-variable arguments for [IN]OUT parameters in stored procedures.
sql/sp_head.cc:
Rewrote the [IN]OUT parameter handling in procedure invokation, to make
it work properly when using user variables in sub-calls.
Also added error checking for non-variable arguments for such parameters
(and changed to qualified names for wrong number of arg. errors).
sql/sp_rcontext.cc:
No need to keep track on the out index for an [IN]OUT parameter any more.
sql/sp_rcontext.h:
No need to keep track on the out index for an [IN]OUT parameter any more.
- Send error to client when mysql_change_db fails.
sql/sql_db.cc:
Added a note to comment for mysql_change_db that it will not send any error to the client.
sql/sql_parse.cc:
Call net_send_error(thd) if mysql_change_db fails.
Remove comments claiming that mysql_change_db sends error the the client.
Add a big fat warning for future programmers that MySQL may call ::store_lock() also with lock 'type' TL_IGNORE; my ignorance of this caused bug 9670
sql/ha_innodb.cc:
Add a big fat warning for future programmers that MySQL may call ::store_lock() also with lock 'type' TL_IGNORE; my ignorance of this caused bug 9670
Added a test in connection with the fix for
bug #6106.
view.result, view.test:
Added test cases for bugs #6106/6107.
sql_show.cc:
The addition of the case for items of the type REF_ITEM in the
function uses_only_table_name_fields became necessary after
the fix for bug #6106.
sql_base.cc:
The problem was due to the fact that two different column
references were glued together though one of them belonged to
a subquery while another to an outer query. This caused
eventually a wrong calculation of values for the used_tables
attribute.
sql/sql_base.cc:
The problem was due to the fact that two different column
references were glued together though one of them belonged to
a subquery while another to an outer query. This caused
eventually a wrong calculation of values for the used_tables
attribute.
sql/sql_show.cc:
The addition of the case for items of the type REF_ITEM in the
function uses_only_table_name_fields became necessary after
the fix for bug #6106.
mysql-test/t/view.test:
Added test cases for bugs #6106/6107.
mysql-test/r/view.result:
Added test cases for bugs #6106/6107.
mysql-test/t/information_schema.test:
Added a test in connection with the fix for
bug #6106.
mysql-test/r/information_schema.result:
Added a test in connection with the fix for
bug #6106.
refuse to start up if it is not. (Bug #9815)
sql/handler.cc:
Add ha_storage_engine_is_enabled function.
sql/handler.h:
Declare ha_storage_engine_is_enabled()
sql/mysqld.cc:
Abort startup if the specified default storage engine is
not available.
mysql-test/r/ps.result:
Test results: adding tests for CALL statement in prepared mode.
mysql-test/t/ps.test:
Adding tests for CALL statement in prepared mode.
Fix part of bug #9670: if MySQL calls ::store_lock with TL_IGNORE, do not change prebuilt->select_lock_type; this fix may heal the assertion failures reported in UPDATE and multi-table UPDATE; it is not clear if this fixes the problems in OPTIMIZE TABLE
sql/ha_innodb.cc:
Fix part of bug #9670: if MySQL calls ::store_lock with TL_IGNORE, do not change prebuilt->select_lock_type; this fix may heal the assertion failures reported in UPDATE and multi-table UPDATE; it is not clear if this fixes the problems in OPTIMIZE TABLE
causes system crash.
mysql-test/r/sp.result:
Added test case for BUG#9674.
mysql-test/t/sp.test:
Added test case for BUG#9674.
sql/item.cc:
Returning a pointer to a local variable is not a good idea.
Better to use parameter which is there for exactly this purpose.