to read and write
Changed Server code, added new interface to handler and changed the
NDB handler, InnoDB handler and Federated handler that previously used
query_id
Bug#10202 fix (one-liner fix for memory leak)
mysys/my_bitmap.c:
Debug code
sql/field.cc:
Initialise fieldnr to 0 if not set anywhere else
sql/field.h:
Introduce a fieldnr (first field = 1 and last = table->s->fields
in field object to be able to quickly set appropriate bit in
read/write set
sql/ha_federated.cc:
Changed federated handler to use write set instead of query_id
sql/ha_innodb.cc:
Changed InnoDB handler to use write set instead of query_id
sql/ha_ndbcluster.cc:
Changed NDB handler to use write set instead of query_id
sql/ha_ndbcluster.h:
Changed NDB handler to use write set instead of query_id
sql/handler.cc:
Allocate read_set and write_set either in get_new_handler or in
special routine
Routines used at destruction of handler object
plus routine to set all primary key fields in read_set
sql/handler.h:
bool to keep track if read/write set allocated or not in handler
Deallocate read/write set at delete of handler object
New bitmap's for read/write set
sql/item.cc:
Set bits in read or write set (set_query_id = 2 => write_set
set_query_id = 1 => read_set
sql/lock.cc:
Clear bit set when starting a new statement in external lock
sql/mysql_priv.h:
changed set_query_id from bool to ulong
sql/opt_range.cc:
Set primary key read set in all places where HA_EXTRA_RETRIEVE_PRIMARY_KEY
is used
sql/sql_acl.cc:
set all bits in read set all places where HA_EXTRA_RETRIEVE_ALL_COLS
are used
sql/sql_base.cc:
Clear all bits before start new statement when table locked already
Set bit in read/write set dependent on set_query_id and fieldnr
bool -> ulong for set_query_id
set all bits in read set for SELECT * queries where table is not view
sql/sql_class.h:
Added comments + changed type of set_query_id
sql/sql_insert.cc:
Use 2 when setup_fields called for fields to updated in UPDATE
and INSERT statements
set primary key fields when EXTRA param used
sql/sql_load.cc:
Set all bits in write set if no fields specified in LOAD DATA FROM
INFILE
Otherwise use 2 to set specific fields to be updated by LOAD DATA...
sql/sql_select.cc:
Set primary key read set when EXTRA param specified
Set fieldnr for temporary tables
Set number of fields before calling get_new_handler
and only set all bits if there at least one field in table
sql/sql_table.cc:
Set all bits in read set for old table and all bits in write set for
new table for ALTER TABLE copy method
Set all bits in read set when EXTRA param used
sql/sql_udf.cc:
Set all bits in read set when EXTRA param used
sql/sql_update.cc:
Set fields to UPDATE to use 2 for set_query_id
Set all bits in read set when EXTRA param used
sql/table.cc:
Set fieldnr in openfrm
Reallocate read/write set in openfrm since table->s->fields==0
at call to get_new_handler
sql/unireg.cc:
Fix Bug #10202
to read and write
Changed Server code, added new interface to handler and changed the
NDB handler, InnoDB handler and Federated handler that previously used
query_id
Bug#10202 fix (one-liner fix for memory leak)
- Remove ha_archive::rename_table and move the fix to handler::rename_table
sql/examples/ha_archive.cc:
Remove ha_archive::rename_table
sql/examples/ha_archive.h:
Remove ha_archive::rename_table
sql/handler.cc:
Fix handler::rename_table so it does not care about if the file to rename is missing
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
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.
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"
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
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
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
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/flush_block_commit.result:
FLUSH TABLES WITH READ LOCK should block writes to binlog too
it does not yet
mysql-test/t/flush_block_commit.test:
FLUSH TABLES WITH READ LOCK should block writes to binlog too
it does not yet
- Removed hardcoded error message from 4.1
include/my_base.h:
Adding error message for the case when table definition has changed in storage engine
mysql-test/t/ndb_alter_table.test:
Updated testresult to expect new error code
sql/ha_ndbcluster.cc:
Add mapping for ndb error 284 to HA_ERR_TABLE_DEF_CHANGED, this error will occur when the table definition has been changed by another MySQL Server connected to the cluster.
Remove hardcoded errormessage from 4.1
sql/handler.cc:
Adding error message for the case when table definition has changed in storage engine
sql/share/errmsg.txt:
Adding error message for the case when table definition has changed in storage engine
Fix Bug #8650 : InnoDB does not rollback SQL statement at an error
sql/ha_innodb.cc:
Fix Bug #8650 : InnoDB does not rollback SQL statement at an error
sql/handler.cc:
Fix Bug #8650 : InnoDB does not rollback SQL statement at an error
sql/field.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/handler.cc:
SCCS merged
fix a race condition in TC_LOG_BINLOG::unlog
include/Makefile.am:
remove the rest of isam/merge references
include/config-win.h:
unused and abused macro removed
include/my_pthread.h:
unused and abused macro removed
include/my_sys.h:
MY_IGNORE_BADFD flag
include/mysql_embed.h:
remove the rest of isam/merge references
mysql-test/r/replace.result:
remove the rest of isam/merge references
mysql-test/t/replace.test:
remove the rest of isam/merge references
mysql-test/t/xa.test:
comment
mysys/my_sync.c:
MY_IGNORE_BADFD flag
sql/handler.cc:
remove the rest of isam/merge references
sql/log.cc:
fix a race condition in TC_LOG_BINLOG::unlog
preparation for binlog group commit
sql/mysql_priv.h:
remove duplicates
sql/mysqld.cc:
remove the rest of isam/merge references
sql/opt_range.cc:
remove the rest of isam/merge references
sql/set_var.cc:
hide unused variables. simplify sync_binlog code
sql/sql_base.cc:
remove the rest of isam/merge references
sql/sql_class.h:
cleanup
Small fixes while doing review of new pushed code
More test cases for decimal
mysql-test/r/date_formats.result:
Warnings added for STR_TO_DATE()
mysql-test/r/ps_1general.result:
Better description for BLACKHOLE
mysql-test/r/strict.result:
Added tests for STR_TO_DATE
mysql-test/r/type_decimal.result:
Test to test ranges of DECIMAL
mysql-test/t/date_formats.test:
More tests
mysql-test/t/strict.test:
Added tests for STR_TO_DATE
mysql-test/t/type_decimal.test:
Test to test ranges of DECIMAL
sql/field.cc:
Simple optimization
sql/handler.cc:
Better description for BLACKHOLE
sql/item_timefunc.cc:
Give warnings if wrong date/time/datetime argument for STR_TO_DATE
sql/log_event.cc:
Indentation fixes
sql/log_event.h:
#ifdef-ed not used code
sql/share/errmsg.txt:
New error message
sql/sql_show.cc:
Ensure that we do a proper restore in case of error