Commit ed69a682 authored by Zardosht Kasheff's avatar Zardosht Kasheff Committed by Yoni Fogel

[t:4695], make handler changes to get this working. Tests remain

git-svn-id: file:///svn/mysql/tokudb-engine/tokudb-engine@41776 c7de825b-a66e-492c-adef-691d508d4ae1
parent fb5fe09f
...@@ -7717,9 +7717,8 @@ int ha_tokudb::add_index(TABLE *table_arg, KEY *key_info, uint num_of_keys, hand ...@@ -7717,9 +7717,8 @@ int ha_tokudb::add_index(TABLE *table_arg, KEY *key_info, uint num_of_keys, hand
bool incremented_numDBs = false; bool incremented_numDBs = false;
bool modified_DBs = false; bool modified_DBs = false;
DB_TXN* txn = NULL; // transaction is created in prepare_for_alter
error = db_env->txn_begin(db_env, 0, &txn, 0); DB_TXN* txn = transaction;
if (error) { goto cleanup; }
error = tokudb_add_index( error = tokudb_add_index(
table_arg, table_arg,
...@@ -7735,7 +7734,6 @@ int ha_tokudb::add_index(TABLE *table_arg, KEY *key_info, uint num_of_keys, hand ...@@ -7735,7 +7734,6 @@ int ha_tokudb::add_index(TABLE *table_arg, KEY *key_info, uint num_of_keys, hand
if (error) { if (error) {
if (txn) { if (txn) {
restore_add_index(table_arg, num_of_keys, incremented_numDBs, modified_DBs); restore_add_index(table_arg, num_of_keys, incremented_numDBs, modified_DBs);
abort_txn(txn);
} }
} else { } else {
*add = new ha_tokudb_add_index(table_arg, key_info, num_of_keys, txn, incremented_numDBs, modified_DBs); *add = new ha_tokudb_add_index(table_arg, key_info, num_of_keys, txn, incremented_numDBs, modified_DBs);
...@@ -7750,7 +7748,7 @@ int ha_tokudb::final_add_index(handler_add_index *add_arg, bool commit) { ...@@ -7750,7 +7748,7 @@ int ha_tokudb::final_add_index(handler_add_index *add_arg, bool commit) {
while (ha_tokudb_final_add_index_wait) sleep(1); // debug while (ha_tokudb_final_add_index_wait) sleep(1); // debug
// extract the saved state variables // extract the saved state variables
ha_tokudb_add_index *add = static_cast<class ha_tokudb_add_index*>(add_arg); ha_tokudb_add_index *add = static_cast<class ha_tokudb_add_index*>(add_arg);
DB_TXN *txn = add->txn; DB_TXN *txn = add->txn;
bool incremented_numDBs = add->incremented_numDBs; bool incremented_numDBs = add->incremented_numDBs;
bool modified_DBs = add->modified_DBs; bool modified_DBs = add->modified_DBs;
...@@ -7760,12 +7758,12 @@ int ha_tokudb::final_add_index(handler_add_index *add_arg, bool commit) { ...@@ -7760,12 +7758,12 @@ int ha_tokudb::final_add_index(handler_add_index *add_arg, bool commit) {
int error = 0; int error = 0;
if (commit) { if (!commit) {
commit_txn(txn, 0);
} else {
restore_add_index(table, num_of_keys, incremented_numDBs, modified_DBs); restore_add_index(table, num_of_keys, incremented_numDBs, modified_DBs);
abort_txn(txn);
} }
// transaction does not need to be committed,
// we depend on MySQL to rollback the transaction
// by calling tokudb_rollback
TOKUDB_DBUG_RETURN(error); TOKUDB_DBUG_RETURN(error);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment