Merge mskold@bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/usr/local/home/marty/MySQL/mysql-5.0
This commit is contained in:
commit
ee74d3a54a
@ -3224,7 +3224,7 @@ int ha_ndbcluster::external_lock(THD *thd, int lock_type)
|
|||||||
if (!thd_ndb->lock_count++)
|
if (!thd_ndb->lock_count++)
|
||||||
{
|
{
|
||||||
PRINT_OPTION_FLAGS(thd);
|
PRINT_OPTION_FLAGS(thd);
|
||||||
if (!(thd->options & (OPTION_NOT_AUTOCOMMIT | OPTION_BEGIN | OPTION_TABLE_LOCK)))
|
if (!(thd->options & (OPTION_NOT_AUTOCOMMIT | OPTION_BEGIN)))
|
||||||
{
|
{
|
||||||
// Autocommit transaction
|
// Autocommit transaction
|
||||||
DBUG_ASSERT(!thd_ndb->stmt);
|
DBUG_ASSERT(!thd_ndb->stmt);
|
||||||
@ -3398,11 +3398,11 @@ int ha_ndbcluster::external_lock(THD *thd, int lock_type)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
When using LOCK TABLE's external_lock is only called when the actual
|
Start a transaction for running a statement if one is not
|
||||||
TABLE LOCK is done.
|
already running in a transaction. This will be the case in
|
||||||
Under LOCK TABLES, each used tables will force a call to start_stmt.
|
a BEGIN; COMMIT; block
|
||||||
Ndb doesn't currently support table locks, and will do ordinary
|
When using LOCK TABLE's external_lock will start a transaction
|
||||||
startTransaction for each transaction/statement.
|
since ndb does not currently does not support table locking
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int ha_ndbcluster::start_stmt(THD *thd, thr_lock_type lock_type)
|
int ha_ndbcluster::start_stmt(THD *thd, thr_lock_type lock_type)
|
||||||
@ -3412,17 +3412,10 @@ int ha_ndbcluster::start_stmt(THD *thd, thr_lock_type lock_type)
|
|||||||
PRINT_OPTION_FLAGS(thd);
|
PRINT_OPTION_FLAGS(thd);
|
||||||
|
|
||||||
Thd_ndb *thd_ndb= get_thd_ndb(thd);
|
Thd_ndb *thd_ndb= get_thd_ndb(thd);
|
||||||
NdbTransaction *trans= thd_ndb->stmt;
|
NdbTransaction *trans= (thd_ndb->stmt)?thd_ndb->stmt:thd_ndb->all;
|
||||||
if (!trans){
|
if (!trans){
|
||||||
Ndb *ndb= thd_ndb->ndb;
|
Ndb *ndb= thd_ndb->ndb;
|
||||||
DBUG_PRINT("trans",("Starting transaction stmt"));
|
DBUG_PRINT("trans",("Starting transaction stmt"));
|
||||||
|
|
||||||
#if 0
|
|
||||||
NdbTransaction *tablock_trans= thd_ndb->all;
|
|
||||||
DBUG_PRINT("info", ("tablock_trans: %x", (UintPtr)tablock_trans));
|
|
||||||
DBUG_ASSERT(tablock_trans);
|
|
||||||
// trans= ndb->hupp(tablock_trans);
|
|
||||||
#endif
|
|
||||||
trans= ndb->startTransaction();
|
trans= ndb->startTransaction();
|
||||||
if (trans == NULL)
|
if (trans == NULL)
|
||||||
ERR_RETURN(ndb->getNdbError());
|
ERR_RETURN(ndb->getNdbError());
|
||||||
@ -4187,7 +4180,12 @@ ulonglong ha_ndbcluster::get_auto_increment()
|
|||||||
--retries &&
|
--retries &&
|
||||||
ndb->getNdbError().status == NdbError::TemporaryError);
|
ndb->getNdbError().status == NdbError::TemporaryError);
|
||||||
if (auto_value == NDB_FAILED_AUTO_INCREMENT)
|
if (auto_value == NDB_FAILED_AUTO_INCREMENT)
|
||||||
ERR_RETURN(ndb->getNdbError());
|
{
|
||||||
|
const NdbError err= ndb->getNdbError();
|
||||||
|
sql_print_error("Error %lu in ::get_auto_increment(): %s",
|
||||||
|
(ulong) err.code, err.message);
|
||||||
|
DBUG_RETURN(~(ulonglong) 0);
|
||||||
|
}
|
||||||
DBUG_RETURN((longlong)auto_value);
|
DBUG_RETURN((longlong)auto_value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user