diff options
author | unknown <jimw@mysql.com> | 2006-01-06 08:34:55 -0800 |
---|---|---|
committer | unknown <jimw@mysql.com> | 2006-01-06 08:34:55 -0800 |
commit | bf1ebe98dfe51c7f7b13e783cd13d8362a26afbf (patch) | |
tree | 2051ec4c25b53bd0dfb5b8f24c5b125bbc2c45f9 /sql | |
parent | f3915a41647978a71aedb209a28f8b61f1dd4cd5 (diff) | |
parent | 4d09673065bba0434909ad09b7f9ecd82752c8db (diff) | |
download | mariadb-git-bf1ebe98dfe51c7f7b13e783cd13d8362a26afbf.tar.gz |
Merge mysql.com:/home/jimw/my/mysql-5.0-14212
into mysql.com:/home/jimw/my/mysql-5.0-clean
sql/ha_ndbcluster.cc:
Auto merged
sql/handler.cc:
Auto merged
mysql-test/r/bdb.result:
Resolve conflict
mysql-test/t/bdb.test:
Resolve conflict
Diffstat (limited to 'sql')
-rw-r--r-- | sql/ha_ndbcluster.cc | 14 | ||||
-rw-r--r-- | sql/handler.cc | 3 |
2 files changed, 10 insertions, 7 deletions
diff --git a/sql/ha_ndbcluster.cc b/sql/ha_ndbcluster.cc index 5d10a758f86..699b3f05a70 100644 --- a/sql/ha_ndbcluster.cc +++ b/sql/ha_ndbcluster.cc @@ -3256,6 +3256,10 @@ int ha_ndbcluster::external_lock(THD *thd, int lock_type) if (lock_type != F_UNLCK) { DBUG_PRINT("info", ("lock_type != F_UNLCK")); + if (!thd->transaction.on) + m_transaction_on= FALSE; + else + m_transaction_on= thd->variables.ndb_use_transactions; if (!thd_ndb->lock_count++) { PRINT_OPTION_FLAGS(thd); @@ -3270,7 +3274,8 @@ int ha_ndbcluster::external_lock(THD *thd, int lock_type) ERR_RETURN(ndb->getNdbError()); no_uncommitted_rows_reset(thd); thd_ndb->stmt= trans; - trans_register_ha(thd, FALSE, &ndbcluster_hton); + if (m_transaction_on) + trans_register_ha(thd, FALSE, &ndbcluster_hton); } else { @@ -3285,7 +3290,8 @@ int ha_ndbcluster::external_lock(THD *thd, int lock_type) ERR_RETURN(ndb->getNdbError()); no_uncommitted_rows_reset(thd); thd_ndb->all= trans; - trans_register_ha(thd, TRUE, &ndbcluster_hton); + if (m_transaction_on) + trans_register_ha(thd, TRUE, &ndbcluster_hton); /* If this is the start of a LOCK TABLE, a table look @@ -3319,10 +3325,6 @@ int ha_ndbcluster::external_lock(THD *thd, int lock_type) m_ha_not_exact_count= !thd->variables.ndb_use_exact_count; m_autoincrement_prefetch= (ha_rows) thd->variables.ndb_autoincrement_prefetch_sz; - if (!thd->transaction.on) - m_transaction_on= FALSE; - else - m_transaction_on= thd->variables.ndb_use_transactions; m_active_trans= thd_ndb->all ? thd_ndb->all : thd_ndb->stmt; DBUG_ASSERT(m_active_trans); diff --git a/sql/handler.cc b/sql/handler.cc index 4b4c446f09b..4e128eb5938 100644 --- a/sql/handler.cc +++ b/sql/handler.cc @@ -1926,7 +1926,8 @@ int ha_enable_transaction(THD *thd, bool on) is an optimization hint that storage engine is free to ignore. So, let's commit an open transaction (if any) now. */ - error= end_trans(thd, COMMIT); + if (!(error= ha_commit_stmt(thd))) + error= end_trans(thd, COMMIT); } DBUG_RETURN(error); } |