mirror of
https://github.com/MariaDB/server.git
synced 2026-05-15 11:27:39 +02:00
Merge 10.2 into bb-10.2-ext
This commit is contained in:
commit
fc3b1a7d2f
230 changed files with 3605 additions and 2161 deletions
|
|
@ -2980,6 +2980,9 @@ int ha_federated::reset(void)
|
|||
}
|
||||
reset_dynamic(&results);
|
||||
|
||||
if (mysql)
|
||||
mysql->net.thd= NULL;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -3200,11 +3203,13 @@ int ha_federated::real_query(const char *query, size_t length)
|
|||
int rc= 0;
|
||||
DBUG_ENTER("ha_federated::real_query");
|
||||
|
||||
if (!query || !length)
|
||||
goto end;
|
||||
|
||||
if (!mysql && (rc= real_connect()))
|
||||
goto end;
|
||||
|
||||
if (!query || !length)
|
||||
goto end;
|
||||
mysql->net.thd= table->in_use;
|
||||
|
||||
rc= mysql_real_query(mysql, query, (uint) length);
|
||||
|
||||
|
|
@ -3289,66 +3294,6 @@ int ha_federated::external_lock(THD *thd, int lock_type)
|
|||
int error= 0;
|
||||
DBUG_ENTER("ha_federated::external_lock");
|
||||
|
||||
/*
|
||||
Support for transactions disabled until WL#2952 fixes it.
|
||||
*/
|
||||
#ifdef XXX_SUPERCEDED_BY_WL2952
|
||||
if (lock_type != F_UNLCK)
|
||||
{
|
||||
ha_federated *trx= (ha_federated *)thd_get_ha_data(thd, ht);
|
||||
|
||||
DBUG_PRINT("info",("federated not lock F_UNLCK"));
|
||||
if (!(thd->options & (OPTION_NOT_AUTOCOMMIT | OPTION_BEGIN)))
|
||||
{
|
||||
DBUG_PRINT("info",("federated autocommit"));
|
||||
/*
|
||||
This means we are doing an autocommit
|
||||
*/
|
||||
error= connection_autocommit(TRUE);
|
||||
if (error)
|
||||
{
|
||||
DBUG_PRINT("info", ("error setting autocommit TRUE: %d", error));
|
||||
DBUG_RETURN(error);
|
||||
}
|
||||
trans_register_ha(thd, FALSE, ht);
|
||||
}
|
||||
else
|
||||
{
|
||||
DBUG_PRINT("info",("not autocommit"));
|
||||
if (!trx)
|
||||
{
|
||||
/*
|
||||
This is where a transaction gets its start
|
||||
*/
|
||||
error= connection_autocommit(FALSE);
|
||||
if (error)
|
||||
{
|
||||
DBUG_PRINT("info", ("error setting autocommit FALSE: %d", error));
|
||||
DBUG_RETURN(error);
|
||||
}
|
||||
thd_set_ha_data(thd, ht, this);
|
||||
trans_register_ha(thd, TRUE, ht);
|
||||
/*
|
||||
Send a lock table to the remote end.
|
||||
We do not support this at the moment
|
||||
*/
|
||||
if (thd->options & (OPTION_TABLE_LOCK))
|
||||
{
|
||||
DBUG_PRINT("info", ("We do not support lock table yet"));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ha_federated *ptr;
|
||||
for (ptr= trx; ptr; ptr= ptr->trx_next)
|
||||
if (ptr == this)
|
||||
break;
|
||||
else if (!ptr->trx_next)
|
||||
ptr->trx_next= this;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif /* XXX_SUPERCEDED_BY_WL2952 */
|
||||
table_will_be_deleted = FALSE;
|
||||
DBUG_RETURN(error);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue