(especially in case of bug like BUG#6732 "FLUSH TABLES WITH READ LOCK + COMMIT makes next FLUSH...LOCK hang forever").
sql/lock.cc:
making FLUSH TABLES WITH READ LOCK killable while it's waiting for running commits to finish
sql/mysql_priv.h:
prototype change
sql/sql_parse.cc:
now it's possible that make_global_read_lock_block_commit fails (killed)
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/btr/btr0btr.c:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/btr/btr0cur.c:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/btr/btr0pcur.c:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/btr/btr0sea.c:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/data/data0data.c:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/data/data0type.c:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/dict/dict0boot.c:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/dict/dict0crea.c:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/dict/dict0dict.c:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/dict/dict0load.c:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/dict/dict0mem.c:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/fil/fil0fil.c:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/fsp/fsp0fsp.c:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/ibuf/ibuf0ibuf.c:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/include/btr0btr.h:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/include/btr0btr.ic:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/include/btr0cur.h:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/include/btr0cur.ic:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/include/btr0pcur.h:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/include/btr0sea.h:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/include/data0type.ic:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/include/dict0dict.h:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/include/dict0dict.ic:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/include/dict0mem.h:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/include/lock0lock.h:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/include/lock0lock.ic:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/include/mtr0log.h:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/include/mtr0mtr.h:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/include/page0cur.h:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/include/page0cur.ic:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/include/page0page.h:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/include/page0page.ic:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/include/rem0cmp.h:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/include/rem0cmp.ic:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/include/rem0rec.h:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/include/rem0rec.ic:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/include/row0row.h:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/include/row0row.ic:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/include/row0upd.h:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/include/row0upd.ic:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/include/row0vers.h:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/include/row0vers.ic:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/include/srv0srv.h:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/include/trx0rec.h:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/include/ut0byte.h:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/include/ut0byte.ic:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/lock/lock0lock.c:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/log/log0recv.c:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/mtr/mtr0log.c:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/page/page0cur.c:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/page/page0page.c:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/pars/pars0pars.c:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/rem/rem0cmp.c:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/rem/rem0rec.c:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/row/row0ins.c:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/row/row0mysql.c:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/row/row0purge.c:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/row/row0row.c:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/row/row0sel.c:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/row/row0umod.c:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/row/row0undo.c:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/row/row0upd.c:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/row/row0vers.c:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/srv/srv0srv.c:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/trx/trx0rec.c:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
innobase/trx/trx0undo.c:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
sql/ha_innodb.cc:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
mysql-test/r/rpl_start_stop_slave.result:
Auto merged
sql/field.cc:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/sql_table.cc:
Auto merged
mysql-test/r/type_enum.result:
merged test cases
mysql-test/t/type_enum.test:
merged test cases
Added auto-correct of field length for enum/set tables for ALTER TABLE
This is becasue of a bug in previous MySQL 4.1 versions where the length for enum/set was set incorrectly after ALTER TABLE
mysql-test/r/rpl_start_stop_slave.result:
Fixed wrong test
mysql-test/r/type_enum.result:
Added test for wrong enum/set length after alter table
mysql-test/t/ps.test:
removed empty line
mysql-test/t/type_enum.test:
Added test for wrong enum/set length after alter table
sql/field.cc:
Added auto-correct of field length for enum/set tables.
This is becasue of a bug in previous MySQL 4.1 versions where the length for enum/set was set incorrectly after ALTER TABLE
sql/item_cmpfunc.cc:
Simple optimization
sql/mysql_priv.h:
Made local function global
sql/set_var.cc:
Simple cleanup
sql/sql_table.cc:
Simple cleanups & optimizations
mysql-test/mysql-test-run.sh:
Tests that can't be fixed now showed in the ignore-list
mysql-test/r/query_cache.result.es:
test result renewed
mysql-test/r/select.result.es:
test result renewed
mysql-test/r/type_blob.result.es:
test result renewed
mysql-test/r/type_float.result.es:
test result renewed
sql/sql_prepare.cc:
time values sending fixed
tests/client_test.c:
that doesnt work in embedded server
BitKeeper/etc/ignore:
Added libmysqld/ha_archive.cc libmysqld/ha_example.cc libmysqld/ha_tina.cc to the ignore list
innodb_autoextend_increment: set a maximum limit of 1000 (Bug #6904)
sql/mysqld.cc:
innodb_autoextend_increment: set a maximum limit of 1000 (Bug #6904)
bug #6933: error in the tests/grant.pl test).
mysql-test/r/grant.result:
A fix (bug #6932: 'revoke all privileges...' doesn't remove all proper columns from columns_priv).
mysql-test/t/grant.test:
A fix (bug #6932: 'revoke all privileges...' doesn't remove all proper columns from columns_priv).
sql/sql_acl.cc:
A fix (bug #6932: 'revoke all privileges...' doesn't remove all proper columns from columns_priv).
The problem is that we use whole key length (including 'Column_name' keypart)
during scanning the 'columns_priv' table in case of revoke_grant.
tests/grant.pl:
A fix (bug #6933: error in the tests/grant.pl test).
- add_field_to_list() now uses <List>String
instead of TYPELIB to be able to distinguish
literals 'aaa' and hex literals 0xaabbcc.
- move some code from add_field_to_list() where
we don't know column charset yet, to
mysql_prepare_table(), where we do.
mysql-test/r/ndb_read_multi_range.result:
Add tests of null handling to read_multi
mysql-test/t/ndb_read_multi_range.test:
Add tests of null handling to read_multi
ndb/include/ndbapi/NdbOperation.hpp:
Get recattr
ndb/include/ndbapi/NdbRecAttr.hpp:
Get recattr
sql/ha_ndbcluster.cc:
Fix handling of null values wrt read multi range
sql/ha_ndbcluster.h:
Fix handling of null values wrt read multi range
sql/sql_class.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_select.cc:
Auto merged
mysql-test/r/subselect.result:
SCCS merged
mysql-test/t/subselect.test:
SCCS merged
BitKeeper/deleted/.del-xa.h~4021d7e61ff515b:
Delete: innobase/include/xa.h
innobase/include/trx0trx.h:
Change xa.h to trx0ha.h.
innobase/include/trx0undo.h:
Split TRX_UNDO_DICT_OPERATION field to two fiels: first contains
TRX_UNDO_XID_EXISTS flag which is TRUE if log header contains
X/Open XA XID and the second one contains TRX_UNDO_DICT_TRANS
flag which is TRUE if the transaction is dictionary transaction.
innobase/trx/trx0trx.c:
Remove unnecessary and erroneus code from prepare. Add some
informative printouts of prepared transactions.
innobase/trx/trx0undo.c:
Split TRX_UNDO_DICT_OPERATION field to two fields: the first field
is TRX_UNDO_XID_EXISTS flag which is true if the log header contains
X/Open XA XID and the second field is TRX_UNDO_DICT_TRANS flag
which is true if the transaction was a dictionary transaction.
sql/ha_innodb.cc:
Code cleanup.
into mysql.com:/home/mysql_src/mysql-4.1-clean
mysql-test/r/flush_block_commit.result:
Auto merged
mysql-test/t/flush_block_commit.test:
Auto merged
sql/lock.cc:
Auto merged
(originally reported as "second run of innobackup hangs forever and can even hang server").
Plus testcase for the bugfix and comments about global read locks.
mysql-test/r/flush_block_commit.result:
result update
mysql-test/t/flush_block_commit.test:
testing bugfix (originally: second run of innobackup hangs)
sql/lock.cc:
When we are in start_waiting_global_read_lock(), if we ourselves have
the global read lock, there is nothing to start. This makes a pair with how
wait_if_global_read_lock() behaves when we ourselves have the global read lock.
Previously, start_waiting_global_read_lock() decremented protect... whereas wait_if_global_read_lock()
hadn't incremented it => very wrong => hangs.
Descriptive comments on how global read lock works.
mysql-test/t/subselect_innodb.test:
possible early unlock
sql/sql_lex.cc:
subqueries presence flag
sql/sql_lex.h:
subqueries presence flag
sql/sql_parse.cc:
subqueries presence flag
sql/sql_select.cc:
removed some too optimistic optimisation, now we create temporary join for all queries with subqueries to make correct cleunup of tables and avoid too early unlock
client/mysqldump.c:
Auto merged
innobase/include/row0mysql.h:
Auto merged
innobase/lock/lock0lock.c:
Auto merged
innobase/row/row0mysql.c:
Auto merged
innobase/row/row0sel.c:
Auto merged
mysql-test/r/mysqldump.result:
Auto merged
mysql-test/r/ndb_index_unique.result:
Auto merged
mysql-test/r/rpl_start_stop_slave.result:
Auto merged
mysql-test/t/mysqldump.test:
Auto merged
mysql-test/t/ndb_grant.later:
Auto merged
mysql-test/t/ndb_index_unique.test:
Auto merged
ndb/include/ndbapi/NdbScanOperation.hpp:
Auto merged
ndb/src/ndbapi/NdbScanOperation.cpp:
Auto merged
ndb/test/ndbapi/testScanPerf.cpp:
Auto merged
netware/comp_err.def:
Auto merged
netware/isamchk.def:
Auto merged
netware/isamlog.def:
Auto merged
netware/libmysql.def:
Auto merged
netware/my_print_defaults.def:
Auto merged
netware/myisam_ftdump.def:
Auto merged
netware/myisamchk.def:
Auto merged
netware/myisamlog.def:
Auto merged
netware/myisampack.def:
Auto merged
netware/mysql.def:
Auto merged
netware/mysql_install.def:
Auto merged
netware/mysql_install_db.def:
Auto merged
netware/mysql_test_run.def:
Auto merged
netware/mysql_waitpid.def:
Auto merged
netware/mysqladmin.def:
Auto merged
netware/mysqlbinlog.def:
Auto merged
netware/mysqlcheck.def:
Auto merged
netware/mysqld.def:
Auto merged
netware/mysqld_safe.def:
Auto merged
netware/mysqldump.def:
Auto merged
netware/mysqlimport.def:
Auto merged
netware/mysqlshow.def:
Auto merged
netware/mysqltest.def:
Auto merged
netware/pack_isam.def:
Auto merged
netware/perror.def:
Auto merged
netware/replace.def:
Auto merged
netware/resolve_stack_dump.def:
Auto merged
netware/resolveip.def:
Auto merged
sql/ha_innodb.cc:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
client/mysqladmin.cc:
Merge for Netware changes. Indention fixes.
sql/field.cc:
Merge fixes, warnings added from 4.1 to 5.0
sql/mysqld.cc:
Merge fixes, just indention fixes.
Sergey Petrunia's ROR code fails to tell handlers that they should retrieve the primary key columns; let InnoDB ALWAYS retrieve them, to fix many bugs and potential bugs
sql/ha_innodb.cc:
Sergey Petrunia's ROR code fails to tell handlers that they should retrieve the primary key columns; let InnoDB ALWAYS retrieve them, to fix many bugs and potential bugs
innobase/include/row0mysql.h:
Sergey Petrunia's ROR code fails to tell handlers that they should retrieve the primary key columns; let InnoDB ALWAYS retrieve them, to fix many bugs and potential bugs
added extra calls to retrieve connectstring used
reengineered connect somewhat to make retries etc explicit
mysql-test/r/ndb_index_unique.result:
fixed error in test result
ndb/include/mgmapi/mgmapi.h:
added extra calls to retrieve connectstring used
ndb/include/mgmcommon/ConfigRetriever.hpp:
added extra calls to retrieve connectstring used
ndb/include/ndbapi/ndb_cluster_connection.hpp:
added extra calls to retrieve connectstring used
reengineered connect somewhat to make retries etc explicit
ndb/src/common/mgmcommon/ConfigRetriever.cpp:
added extra calls to retrieve connectstring used
ndb/src/mgmapi/mgmapi.cpp:
added extra calls to retrieve connectstring used
ndb/src/mgmclient/CommandInterpreter.cpp:
moved parse of quit to avoid connect before
ndb/src/ndbapi/Ndbinit.cpp:
reengineered connect somewhat to make retries etc explicit
ndb/src/ndbapi/ndb_cluster_connection.cpp:
added extra calls to retrieve connectstring used
reengineered connect somewhat to make retries etc explicit
ndb/tools/listTables.cpp:
reengineered connect somewhat to make retries etc explicit
sql/ha_ndbcluster.cc:
added extra calls to retrieve connectstring used
reengineered connect somewhat to make retries etc explicit
contains auto_increment columns. (Bug #6633)
innobase/include/lock0lock.h:
Replaced lock_get_table()
with lock_get_src_table() and lock_is_table_exclusive()
innobase/lock/lock0lock.c:
Replaced lock_get_table()
with lock_get_src_table() and lock_is_table_exclusive()
sql/ha_innodb.cc:
ha_innobase::write_row(): Improve the ALTER TABLE optimization
(do intermediate COMMIT also if table contains auto_increment columns)
mysql-test/r/archive.result:
Updated result set for changes amde to support delayed insert and bulk insert optimizations.
mysql-test/t/archive.test:
Test cases to test bulk insert statements and delayed insert syntax.
sql/examples/ha_archive.cc:
Added methods needed for bulk operations to be optimized. Bulk inserts now do not trigger the file as dirty until they are complete. A normal insert though can still cause them to be synced though since it is not effected by the flag. Removed share variable to determine if row count is right or not (it should not be treated as an upper end estimate).
sql/examples/ha_archive.h:
Removed share variable for delayed flag since it is no longer needed.
Added flag in table instance to know if a bulk insert is happening.
Added method declarations for bulk insert optimizations.
innobase/include/trx0roll.h:
Changed prototype of the function trx_rollback_or_clean_all_without_sess
because this function is executed in a background thread.
innobase/include/trx0trx.h:
Added support for X/Open XA prepare, recover and search by X/Open XA XID.
innobase/include/trx0undo.h:
Added support for X/Open XA prepare and recover. We need to store X/Open XA XID
to the undo log header for recovery.
innobase/log/log0recv.c:
Create a thread to run trx_rollback_or_clean_all_without_sess function
to rollback the uncommitted transactions which have no user session.
innobase/row/row0ins.c:
Remove unnecessary variables.
innobase/trx/trx0roll.c:
Changed so that trx_rollback_or_clean_all_without_sess is executed
in a background thread. We should also leave all prepared transactions
active to wait for commit or abort from MySQL.
innobase/trx/trx0sys.c:
Only those rows which belong to the active transaction in crash recovery
are undone.
innobase/trx/trx0trx.c:
Added support for X/Open XA prepare and recover. We need to store X/Open XA
XID to trx structure and left prepared transactions to wait for a
commit or abort from MySQL. This requires also that we add TRX_PREPARED
state to the transaction and TRX_UNDO_PREPARED state for undo logs.
innobase/trx/trx0undo.c:
Added support for X/Open XA prepare and recover. We need to store X/Open XA
XID to undo log header for recovery of distributed transactions.
sql/ha_innodb.h:
Added prototypes for X/Open XA prepare, recover, commit and rollback.
sql/handler.h:
Added definition for X/Open XA XID structure.
into mysql.com:/home/jonas/src/mysql-5.0
mysql-test/r/ndb_index_unique.result:
Auto merged
mysql-test/t/ndb_index_unique.test:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
into mysql.com:/home/jonas/src/mysql-4.1
mysql-test/r/ndb_index_unique.result:
Auto merged
mysql-test/t/ndb_index_unique.test:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
mysql-test/r/ndb_index_unique.result:
Test of unique index and null
mysql-test/t/ndb_index_unique.test:
Test of unique index and null
sql/ha_ndbcluster.cc:
Fixed long overdue problems with unique indexes and null values