sql/sql_insert.cc:
CREATE ... IF NOT EXISTS may do nothing, but
it is still not a failure. don't forget to my_ok it.
******
CREATE ... IF NOT EXISTS may do nothing, but
it is still not a failure. don't forget to my_ok it.
sql/sql_table.cc:
small cleanup
******
small cleanup
The bug lp:798213 exposes a design flaw in --innodb-release-locks-early.
It does not work with InnoDB crash recovery, so it breaks transactional
integrety. So remove the feature.
This patch removes most remaining delays due to uninteruptible sleep()
during shutdown, as found using PMP. This makes standard test run very
close in speed to with --loose-innodb-fast-shutdown=2, and greatly
speeds up running the test suite.
sql/mysqld.cc:
Poll for threads to die every 20 msec during shutdown, rather than force
a wait for 2 full seconds should one thread be a little slow to exit
(this was seen occasionally in mysql-test-run).
storage/xtradb/include/srv0srv.h:
Rename the event, as we now use it to wakeup more threads during shutdown.
storage/xtradb/log/log0log.c:
Rename the event, as we now use it to wakeup more threads during shutdown.
storage/xtradb/srv/srv0srv.c:
Replace some hardcoded sleep()s with os_wait_event_time() that can be
interrupted early during server shutdown to avoid unnecessary delays.
Implement os_event_wait_time() for POSIX systems.
In the purge thread, use os_event_wait_time() when sleeping rather than sleep,
and signal the event when server shuts down, so we do not need to wait for
upto 10 seconds until the purge thread wakes up.
Also fix bug that warnings that were pushed after we call set_ok_status() were
not included in the waning count sent to the client in the result packet.
Also in mysqltest, in recursive die() invocation at least print the message
before aborting.
client/mysqltest.cc:
If we detect recursive die(), at least print the message before aborting.
mysql-test/r/warnings_debug.result:
Test case.
mysql-test/t/warnings_debug.test:
Test case.
sql/handler.cc:
Force generation of a warning with specific debug option, for testing.
sql/protocol.cc:
Fix wrong DBUG_ENTER
sql/sql_class.h:
Add method to count warnings pushed after set_ok_status() is called.
sql/sql_error.cc:
Also count warnings pushed after set_ok_status() is called.
storage/xtradb/include/os0sync.h:
Implement working os_sync_wait_time() for POSIX.
storage/xtradb/include/srv0srv.h:
Make the purge thread wait for an event when sleeping, so we can signal it to
wakeup immediately at shutdown.
storage/xtradb/log/log0log.c:
Make the purge thread wait for an event when sleeping, so we can signal it to
wakeup immediately at shutdown.
storage/xtradb/os/os0sync.c:
Implement working os_sync_wait_time() for POSIX.
storage/xtradb/srv/srv0srv.c:
Make the purge thread wait for an event when sleeping, so we can signal it to
wakeup immediately at shutdown.
Port the Facebook patch for releasing InnoDB row locks early to the
MWL#116 framework.
A new --innodb-release-locks-early option (off by default) enables a
prepare_ordered() handlerton method which will release row locks and
commit a transaction to memory immediately after successful prepare.
If the server subsequently tries to rollback (ie. due to binlog error),
crashes the server to prevent corrupting the InnoDB state.
mysql-test/r/innodb_release_row_locks_early.result:
Test case.
mysql-test/t/innodb_release_row_locks_early-master.opt:
Test case.
mysql-test/t/innodb_release_row_locks_early.test:
Test case.
sql/log.cc:
Add DEBUG_SYNC points for testing.
storage/xtradb/handler/ha_innodb.cc:
Release locks during prepare phase if --innodb-release-locks-early.
Crash the server if we are asked to rollback after releasing locks and
committing the transaction to memory.
storage/xtradb/include/srv0srv.h:
Add variable for --innodb-release-locks-early option.
storage/xtradb/include/trx0sys.ic:
If --innodb-release-locks-early, treat a transaction as committed to memory
as soon as it enters the TRX_PREPARED state.
storage/xtradb/srv/srv0srv.c:
Add variable for --innodb-release-locks-early option.
sql/mysqld.cc:
Explicit type casting required by windows x64 compiler.
storage/xtradb/include/srv0srv.h:
Parameters should be declared as ulong.
storage/xtradb/srv/srv0srv.c:
Parameters should be declared as ulong.