Fix to session variables not being written to all backends when USE DATABASE is used.
This commit is contained in:
@ -2115,6 +2115,10 @@ static int routeQuery(
|
|||||||
goto retblock;
|
goto retblock;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
route_target = get_shard_route_target(qtype,
|
||||||
|
router_cli_ses->rses_transaction_active,
|
||||||
|
querybuf->hint);
|
||||||
|
|
||||||
if (packet_type == MYSQL_COM_INIT_DB)
|
if (packet_type == MYSQL_COM_INIT_DB)
|
||||||
{
|
{
|
||||||
char dbname[MYSQL_DATABASE_MAXLEN+1];
|
char dbname[MYSQL_DATABASE_MAXLEN+1];
|
||||||
@ -2127,7 +2131,8 @@ static int routeQuery(
|
|||||||
route_target = TARGET_NAMED_SERVER;
|
route_target = TARGET_NAMED_SERVER;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if((tname = get_shard_target_name(inst,router_cli_ses,querybuf,qtype)) != NULL)
|
else if(route_target != TARGET_ALL &&
|
||||||
|
(tname = get_shard_target_name(inst,router_cli_ses,querybuf,qtype)) != NULL)
|
||||||
{
|
{
|
||||||
bool shard_ok = check_shard_status(inst,tname);
|
bool shard_ok = check_shard_status(inst,tname);
|
||||||
|
|
||||||
@ -2153,16 +2158,6 @@ static int routeQuery(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* The query targets something else than a shard.
|
|
||||||
*/
|
|
||||||
|
|
||||||
route_target = get_shard_route_target(qtype,
|
|
||||||
router_cli_ses->rses_transaction_active,
|
|
||||||
querybuf->hint);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(TARGET_IS_UNDEFINED(route_target))
|
if(TARGET_IS_UNDEFINED(route_target))
|
||||||
{
|
{
|
||||||
@ -2170,9 +2165,6 @@ static int routeQuery(
|
|||||||
* No valid targets found for this query, return an error packet and update the hashtable. This also adds new databases to the hashtable.
|
* No valid targets found for this query, return an error packet and update the hashtable. This also adds new databases to the hashtable.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
char errstr[2048];
|
|
||||||
GWBUF *errbuff;
|
|
||||||
|
|
||||||
update_dbnames_hash(inst,inst->servers,inst->dbnames_hash);
|
update_dbnames_hash(inst,inst->servers,inst->dbnames_hash);
|
||||||
tname = get_shard_target_name(inst,router_cli_ses,querybuf,qtype);
|
tname = get_shard_target_name(inst,router_cli_ses,querybuf,qtype);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user