2910 Christopher Powers 2008-11-14 [merge]
merge
removed:
mysql-test/suite/rpl/r/rpl_row_stop_middle.result
mysql-test/suite/rpl/t/rpl_row_stop_middle.test
unittest/mysys/CMakeLists.txt
added:
mysql-test/r/partition_innodb_stmt.result
mysql-test/r/query_cache_disabled.result
mysql-test/t/partition_innodb_stmt.test
mysql-test/t/query_cache_disabled-master.opt
mysql-test/t/query_cache_disabled.test
sql/MSG00001.bin
sql/message.h
sql/message.rc
unittest/mysys/CMakeLists.txt
modified:
BUILD/SETUP.sh
configure.in
include/Makefile.am
include/config-netware.h
include/my_pthread.h
include/mysql_com.h
mysql-test/extra/rpl_tests/rpl_insert_id.test
mysql-test/extra/rpl_tests/rpl_row_basic.test
mysql-test/include/restart_mysqld.inc
mysql-test/include/wait_until_connected_again.inc
mysql-test/r/alter_table.result
mysql-test/r/ctype_cp1251.result
mysql-test/r/ctype_ldml.result
mysql-test/r/debug_sync.result
mysql-test/r/events_bugs.result
mysql-test/r/explain.result
mysql-test/r/group_by.result
mysql-test/r/information_schema.result
mysql-test/r/information_schema_parameters.result
mysql-test/r/information_schema_part.result
mysql-test/r/information_schema_routines.result
mysql-test/r/innodb_data_home_dir_basic.result
mysql-test/r/innodb_flush_method_basic.result
mysql-test/r/innodb_mysql.result
mysql-test/r/limit.result
mysql-test/r/locktrans_innodb.result
mysql-test/r/locktrans_myisam.result
mysql-test/r/log_tables.result
mysql-test/r/merge.result
mysql-test/r/metadata.result
mysql-test/r/order_by.result
mysql-test/r/partition.result
mysql-test/r/partition_archive.result
mysql-test/r/partition_datatype.result
mysql-test/r/partition_innodb.result
mysql-test/r/partition_mgm.result
mysql-test/r/partition_mgm_err.result
mysql-test/r/partition_not_windows.result
mysql-test/r/partition_range.result
mysql-test/r/partition_symlink.result
mysql-test/r/partition_windows.result
mysql-test/r/ps_11bugs.result
mysql-test/r/show_check.result
mysql-test/r/sp.result
mysql-test/r/ssl_capath_basic.result
mysql-test/r/ssl_cipher_basic.result
mysql-test/r/subselect3.result
mysql-test/r/subselect_sj.result
mysql-test/r/symlink.result
mysql-test/r/thread_cache_size_func.result
mysql-test/r/variables.result
mysql-test/r/view.result
mysql-test/r/windows.result
mysql-test/r/xa.result
mysql-test/std_data/Index.xml
mysql-test/suite/backup/r/backup_backupdir.result
mysql-test/suite/falcon/r/falcon_bug_33404.result
mysql-test/suite/falcon/t/falcon_bug_28095.test
mysql-test/suite/funcs_1/r/is_columns_is.result
mysql-test/suite/funcs_1/r/is_events.result
mysql-test/suite/funcs_1/r/is_routines.result
mysql-test/suite/funcs_1/r/is_triggers.result
mysql-test/suite/ndb/r/ndb_partition_key.result
mysql-test/suite/ndb/r/ndb_partition_range.result
mysql-test/suite/ndb_team/r/ndb_dd_backuprestore.result
mysql-test/suite/parts/inc/partition_auto_increment.inc
mysql-test/suite/parts/inc/partition_directory.inc
mysql-test/suite/parts/inc/partition_mgm.inc
mysql-test/suite/parts/r/ndb_dd_backuprestore.result
mysql-test/suite/parts/r/part_supported_sql_func_innodb.result
mysql-test/suite/parts/r/part_supported_sql_func_myisam.result
mysql-test/suite/parts/r/part_supported_sql_func_ndb.result
mysql-test/suite/parts/r/partition_alter1_1_2_innodb.result
mysql-test/suite/parts/r/partition_alter1_1_2_myisam.result
mysql-test/suite/parts/r/partition_alter1_1_innodb.result
mysql-test/suite/parts/r/partition_alter1_1_myisam.result
mysql-test/suite/parts/r/partition_alter1_2_innodb.result
mysql-test/suite/parts/r/partition_alter1_2_myisam.result
mysql-test/suite/parts/r/partition_alter2_1_innodb.result
mysql-test/suite/parts/r/partition_alter2_1_myisam.result
mysql-test/suite/parts/r/partition_alter2_2_innodb.result
mysql-test/suite/parts/r/partition_alter2_2_myisam.result
mysql-test/suite/parts/r/partition_alter3_innodb.result
mysql-test/suite/parts/r/partition_alter3_myisam.result
mysql-test/suite/parts/r/partition_alter4_innodb.result
mysql-test/suite/parts/r/partition_alter4_myisam.result
mysql-test/suite/parts/r/partition_auto_increment_archive.result
mysql-test/suite/parts/r/partition_auto_increment_blackhole.result
mysql-test/suite/parts/r/partition_auto_increment_falcon.result
mysql-test/suite/parts/r/partition_auto_increment_innodb.result
mysql-test/suite/parts/r/partition_auto_increment_memory.result
mysql-test/suite/parts/r/partition_auto_increment_myisam.result
mysql-test/suite/parts/r/partition_auto_increment_ndb.result
mysql-test/suite/parts/r/partition_basic_innodb.result
mysql-test/suite/parts/r/partition_basic_myisam.result
mysql-test/suite/parts/r/partition_basic_symlink_innodb.result
mysql-test/suite/parts/r/partition_basic_symlink_myisam.result
mysql-test/suite/parts/r/partition_bit_innodb.result
mysql-test/suite/parts/r/partition_bit_myisam.result
mysql-test/suite/parts/r/partition_bit_ndb.result
mysql-test/suite/parts/r/partition_char_innodb.result
mysql-test/suite/parts/r/partition_char_myisam.result
mysql-test/suite/parts/r/partition_datetime_innodb.result
mysql-test/suite/parts/r/partition_datetime_myisam.result
mysql-test/suite/parts/r/partition_decimal_innodb.result
mysql-test/suite/parts/r/partition_decimal_myisam.result
mysql-test/suite/parts/r/partition_engine_innodb.result
mysql-test/suite/parts/r/partition_engine_myisam.result
mysql-test/suite/parts/r/partition_engine_ndb.result
mysql-test/suite/parts/r/partition_float_innodb.result
mysql-test/suite/parts/r/partition_float_myisam.result
mysql-test/suite/parts/r/partition_int_innodb.result
mysql-test/suite/parts/r/partition_int_myisam.result
mysql-test/suite/parts/r/partition_int_ndb.result
mysql-test/suite/parts/r/partition_mgm_lc0_archive.result
mysql-test/suite/parts/r/partition_mgm_lc0_innodb.result
mysql-test/suite/parts/r/partition_mgm_lc0_memory.result
mysql-test/suite/parts/r/partition_mgm_lc0_myisam.result
mysql-test/suite/parts/r/partition_mgm_lc0_ndb.result
mysql-test/suite/parts/r/partition_mgm_lc1_archive.result
mysql-test/suite/parts/r/partition_mgm_lc1_innodb.result
mysql-test/suite/parts/r/partition_mgm_lc1_memory.result
mysql-test/suite/parts/r/partition_mgm_lc1_myisam.result
mysql-test/suite/parts/r/partition_mgm_lc1_ndb.result
mysql-test/suite/parts/r/partition_mgm_lc2_archive.result
mysql-test/suite/parts/r/partition_mgm_lc2_innodb.result
mysql-test/suite/parts/r/partition_mgm_lc2_memory.result
mysql-test/suite/parts/r/partition_mgm_lc2_myisam.result
mysql-test/suite/parts/r/partition_mgm_lc2_ndb.result
mysql-test/suite/parts/r/partition_special_innodb.result
mysql-test/suite/parts/r/partition_special_myisam.result
mysql-test/suite/parts/r/partition_syntax_innodb.result
mysql-test/suite/parts/r/partition_syntax_myisam.result
mysql-test/suite/parts/r/rpl_partition.result
mysql-test/suite/parts/t/partition_mgm_lc0_archive.test
mysql-test/suite/rpl/r/rpl_extraCol_innodb.result
mysql-test/suite/rpl/r/rpl_extraCol_myisam.result
mysql-test/suite/rpl/r/rpl_innodb_bug28430.result
mysql-test/suite/rpl/r/rpl_insert_id.result
mysql-test/suite/rpl/r/rpl_locktrans_myisam.result
mysql-test/suite/rpl/r/rpl_row_basic_2myisam.result
mysql-test/suite/rpl/r/rpl_row_basic_3innodb.result
mysql-test/suite/rpl/r/rpl_row_basic_8partition.result
mysql-test/suite/rpl/t/disabled.def
mysql-test/suite/rpl_ndb/r/rpl_ndb_extraCol.result
mysql-test/suite/rpl_ndb/r/rpl_ndb_innodb2ndb.result
mysql-test/suite/rpl_ndb_big/r/rpl_ndb_2innodb.result
mysql-test/suite/rpl_ndb_big/r/rpl_ndb_2myisam.result
mysql-test/suite/rpl_ndb_big/r/rpl_ndb_dd_partitions.result
mysql-test/suite/rpl_ndb_big/r/rpl_ndb_myisam2ndb.result
mysql-test/suite/rpl_ndb_big/r/rpl_row_basic_7ndb.result
mysql-test/t/alter_table.test
mysql-test/t/ctype_cp1251.test
mysql-test/t/ctype_ldml.test
mysql-test/t/disabled.def
mysql-test/t/events_bugs.test
mysql-test/t/explain.test
mysql-test/t/group_by.test
mysql-test/t/information_schema.test
mysql-test/t/innodb_mysql.test
mysql-test/t/limit.test
mysql-test/t/log_tables.test
mysql-test/t/merge.test
mysql-test/t/metadata.test
mysql-test/t/order_by.test
mysql-test/t/partition.test
mysql-test/t/partition_innodb.test
mysql-test/t/partition_mgm.test
mysql-test/t/partition_mgm_err.test
mysql-test/t/partition_not_windows.test
mysql-test/t/ps_11bugs.test
mysql-test/t/query_cache_limit_func.test
mysql-test/t/query_cache_type_basic.test
mysql-test/t/query_cache_type_func.test
mysql-test/t/query_cache_wlock_invalidate_basic.test
mysql-test/t/query_cache_wlock_invalidate_func.test
mysql-test/t/sp.test
mysql-test/t/subselect3.test
mysql-test/t/subselect_sj.test
mysql-test/t/thread_cache_size_func.test
mysql-test/t/view.test
mysql-test/t/windows.test*
mysql-test/t/xa.test
mysql-test/valgrind.supp
mysys/my_init.c
mysys/my_pthread.c
mysys/my_symlink.c
mysys/my_wincond.c
mysys/my_winthread.c
mysys/thr_alarm.c
mysys/thr_mutex.c
scripts/mysqldumpslow.sh
sql/CMakeLists.txt
sql/Makefile.am
sql/backup/kernel.cc
sql/backup/logger.h
sql/event_scheduler.cc
sql/field.cc
sql/field.h
sql/ha_partition.cc
sql/ha_partition.h
sql/handler.cc
sql/handler.h
sql/item.cc
sql/item.h
sql/item_cmpfunc.cc
sql/item_func.cc
sql/item_func.h
sql/item_sum.cc
sql/item_sum.h
sql/key.cc
sql/log_event.cc
sql/log_event_old.cc
sql/message.mc
sql/mysql_priv.h
sql/mysqld.cc
sql/opt_range.cc
sql/opt_sum.cc
sql/partition_info.cc
sql/set_var.cc
sql/set_var.h
sql/share/errmsg.txt
sql/slave.cc
sql/slave.h
sql/sql_base.cc
sql/sql_cache.cc
sql/sql_cache.h
sql/sql_class.cc
sql/sql_class.h
sql/sql_delete.cc
sql/sql_error.cc
sql/sql_insert.cc
sql/sql_lex.cc
sql/sql_lex.h
sql/sql_parse.cc
sql/sql_partition.cc
sql/sql_plugin.cc
sql/sql_prepare.cc
sql/sql_select.cc
sql/sql_show.cc
sql/sql_table.cc
sql/sql_view.cc
sql/sql_yacc.yy
sql/transaction.cc
sql/unireg.cc
sql/unireg.h
storage/archive/ha_archive.cc
storage/falcon/Log.h
storage/falcon/StorageHandler.cpp
storage/falcon/StorageVersion.h
storage/falcon/ha_falcon.cpp
storage/falcon/ha_falcon.h
storage/innobase/handler/ha_innodb.cc
storage/innobase/include/srv0srv.h
storage/innobase/os/os0thread.c
storage/innobase/srv/srv0srv.c
strings/ctype-uca.c
strings/ctype.c
support-files/mysql.spec.sh
tests/mysql_client_test.c
=== modified file 'storage/falcon/DeferredIndex.cpp'
--- a/storage/falcon/DeferredIndex.cpp 2008-10-16 02:53:35 +0000
+++ b/storage/falcon/DeferredIndex.cpp 2008-11-13 09:04:22 +0000
@@ -862,6 +862,10 @@ void DeferredIndex::chill(Dbb *dbb)
leaf->count = 0;
root = leaf;
count = 0;
+ minValue = NULL;
+ maxValue = NULL;
+ haveMinValue = true;
+ haveMaxValue = true;
Log::log(LogInfo, "%d: Index chill: transaction %ld, index %ld, %ld bytes, address %p, vofs %llx\n",
dbb->database->deltaTime, transaction->transactionId, index->indexId, sizeEstimate, this, virtualOffset);
=== modified file 'storage/falcon/SRLUpdateIndex.cpp'
--- a/storage/falcon/SRLUpdateIndex.cpp 2008-11-11 22:33:27 +0000
+++ b/storage/falcon/SRLUpdateIndex.cpp 2008-11-13 09:04:22 +0000
@@ -60,14 +60,16 @@ void SRLUpdateIndex::append(DeferredInde
uint64 virtualOffset = 0;
uint64 virtualOffsetAtEnd = 0;
- // Save the absolute offset of the DeferredIndex record within the serial log
-
- virtualOffset = log->writeWindow->getNextVirtualOffset();
-
for (DINode *node = walker.next(); node;)
{
START_RECORD(srlUpdateIndex, "SRLUpdateIndex::append(2)");
+ // Save the absolute offset of the DeferredIndex record within the serial log.
+ // This must be done inside the SerialLog::syncWrite lock set by START_RECORD().
+
+ if (virtualOffset == 0)
+ virtualOffset = log->startRecordVirtualOffset;
+
log->updateIndexUseVector(indexId, tableSpaceId, 1);
SerialLogTransaction *srlTrans = log->getTransaction(transaction->transactionId);
srlTrans->setTransaction(transaction);
@@ -238,9 +240,9 @@ void SRLUpdateIndex::thaw(DeferredIndex*
{
Sync sync(&log->syncWrite, "SRLUpdateIndex::thaw");
sync.lock(Exclusive);
+
uint64 virtualOffset = deferredIndex->virtualOffset;
int recordNumber = 0; // a valid record number to get into the loop.
- ASSERT(deferredIndex->virtualOffset);
Transaction *trans = deferredIndex->transaction;
TransId transId = trans->transactionId;
indexId = deferredIndex->index->indexId;
@@ -255,7 +257,7 @@ void SRLUpdateIndex::thaw(DeferredIndex*
if (window == NULL)
{
- Log::log("A window for DeferredIndex::virtualOffset=" I64FORMAT " could not be found.\n", deferredIndex->virtualOffset);
+ Log::log("Index thaw FAIL: A window for DeferredIndex::virtualOffset=" I64FORMAT " could not be found.\n", deferredIndex->virtualOffset);
log->printWindows();
return;
}
@@ -302,7 +304,10 @@ void SRLUpdateIndex::thaw(DeferredIndex*
if (srlRecord && srlRecord->type == srlVersion)
srlRecord = control->nextRecord();
- ASSERT(srlRecord->type == srlUpdateIndex);
+ if (srlRecord)
+ ASSERT(srlRecord->type == srlUpdateIndex);
+ else
+ Log::log("Index thaw FAIL: SRLUpdateIndex record not found. DeferredIndex::virtualOffset=" I64FORMAT "\n", deferredIndex->virtualOffset);
// The DeferredIndex may reside in several serial log records. Read each record and
// rebuild the index from the nodes stored within the record.
=== modified file 'storage/falcon/SRLUpdateRecords.cpp'
--- a/storage/falcon/SRLUpdateRecords.cpp 2008-11-09 01:44:58 +0000
+++ b/storage/falcon/SRLUpdateRecords.cpp 2008-11-13 09:04:22 +0000
@@ -76,6 +76,9 @@ int SRLUpdateRecords::thaw(RecordVersion
if (!window)
return 0;
+ Sync sync(&log->syncWrite, "SRLUpdateRecords::thaw");
+ sync.lock(Exclusive);
+
// Return pointer to record data
control->input = window->buffer + (record->getVirtualOffset() - window->virtualOffset);
@@ -94,14 +97,15 @@ int SRLUpdateRecords::thaw(RecordVersion
int dataLength = control->getInt();
int bytesReallocated = 0;
+ window->deactivateWindow();
+ sync.unlock();
+
// setRecordData() handles race conditions with an interlocked compare and exchange,
// but check the state and record number anyway
if (record->state == recChilled && recordNumber == record->recordNumber)
bytesReallocated = record->setRecordData(control->input, dataLength);
- window->deactivateWindow();
-
if (bytesReallocated > 0)
{
ASSERT(recordNumber == record->recordNumber);
=== modified file 'storage/falcon/SerialLog.cpp'
--- a/storage/falcon/SerialLog.cpp 2008-10-30 00:22:54 +0000
+++ b/storage/falcon/SerialLog.cpp 2008-11-13 09:04:22 +0000
@@ -131,6 +131,7 @@ SerialLog::SerialLog(Database *db, JStri
gophers = NULL;
wantToSerializeGophers = 0;
serializeGophers = 0;
+ startRecordVirtualOffset = 0;
for (uint n = 0; n < falcon_gopher_threads; ++n)
{
@@ -711,6 +712,8 @@ void SerialLog::startRecord()
if (writeError)
throw SQLError(IO_ERROR_SERIALLOG, "Previous I/O error on serial log prevents further processing");
+ startRecordVirtualOffset = writeWindow->getNextVirtualOffset();
+
if (writePtr == writeBlock->data)
putVersion();
=== modified file 'storage/falcon/SerialLog.h'
--- a/storage/falcon/SerialLog.h 2008-10-20 21:28:11 +0000
+++ b/storage/falcon/SerialLog.h 2008-11-13 09:04:22 +0000
@@ -224,6 +224,7 @@ public:
uint64 chilledBytes;
int32 wantToSerializeGophers;
int32 serializeGophers;
+ uint64 startRecordVirtualOffset;
TableSpaceInfo *tableSpaces[SLT_HASH_SIZE];
TableSpaceInfo *tableSpaceInfo;
| Thread |
|---|
| • bzr push into mysql-6.0-falcon-team branch (cpowers:2910) | Christopher Powers | 14 Nov |