Add a test case for killing a waiting query in parallel replication.
Fix several bugs found:
- We should not wakeup_subsequent_commits() in ha_rollback_trans(), since we
do not know the right wakeup_error() to give.
- When a wait_for_prior_commit() is killed, we must unregister from the
waitee so we do not race and get an extra (non-kill) wakeup.
- We need to deal with error propagation correctly in queue_for_group_commit
when one thread is killed.
- Fix one locking issue in queue_for_group_commit(), we could unlock the
waitee lock too early and this end up processing wakeup() with insufficient
locking.
- Fix Xid_log_event::do_apply_event; if commit fails it must not update the
in-memory @@gtid_slave_pos state.
- Fix and cleanup some things in the rpl_parallel.cc error handling.
- Add a missing check for killed in the slave sql driver thread, to avoid a
race.
- include metadata_lock_info plugin into debian packages
- ignore metadata_lock_info plugin in mysqld--help test
- let test suite run with built-in metadata_lock_info plugin
modified:
storage/connect/plgdbutl.cpp
- Update type translation to take care of type_modifiers
modified:
storage/connect/ha_connect.cc
storage/connect/myutil.cpp
storage/connect/myutil.h
storage/connect/odbconn.cpp
with the same names present in multiple schemas
The "TABNAME" option now supports qualified table names,
to connect to tables residing in a particular schema and catalog.
Qualified table names have the following format:
[[CatalogName.]SchemaName.]TableName
Qualified table names can be used:
1. In "normal" tables:
CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=ODBC
CONNECTION='DSN=ConnectEng;UID=mtr;PWD=mtr'
TABNAME='schema1.t1';
2. In catalog tables (CATFUNC=Tables and CATFUNC=Columns)
CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=ODBC
CONNECTION='DSN=postgresql;UID=user;PWD=password'
TABNAME='schema1.t1';
Note, the % and _ wildcards are supported in
the schema name and the table name parts:
CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=ODBC
CONNECTION='DSN=postgresql;UID=user;PWD=password'
TABNAME='%.t1';
CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=ODBC
CONNECTION='DSN=postgresql;UID=user;PWD=password'
TABNAME='schema1.%';
- tc_acquire_table and tc_release_table do not access
TABLE_SHARE::tdc.used_tables anymore
- in tc_acquire_table(): release LOCK_tdc after we relase LOCK_open
(saves a few CPU cycles in critical section)
- in tc_release_table(): if we reached table cache threshold, evict
to-be-released table without moving it to unused_tables. unused_tables
must be empty at this point.
When a DSO is loaded we rewrite service pointers to point to the actual service structures.
But when a DSO is unloaded, we have to restore their original values, in case this DSO
wasn't removed from memory on dlclose() and is later loaded again.
When marking used columns the function find_field_in_table_ref() erroneously
called the walk method for the real item behind a view/derived table field
with the second parameter set to TRUE.
This erroneous code was introduced in 2006.
modified:
storage/connect/tabutil.cpp
- Fix test results to reflect the fact that in discovery, column defaults
are now retrieved for the MYSQL table type.
modified:
storage/connect/mysql-test/connect/r/mysql_discovery.result
storage/connect/mysql-test/connect/r/mysql_new.result
- Restore Unix line endings
modified:
storage/connect/value.cpp