MXS-1820 Make routing of queries in schemarouter case insensitive

This commit is contained in:
Marko
2018-07-05 13:39:20 +03:00
parent 0fe5eb2743
commit 13763ace32

View File

@ -43,7 +43,9 @@ SERVER* Shard::get_location(std::string table)
{ {
for (ServerMap::iterator it = m_map.begin(); it != m_map.end(); it++) for (ServerMap::iterator it = m_map.begin(); it != m_map.end(); it++)
{ {
std::transform(table.begin(), table.end(), table.begin(), ::tolower);
std::string db = it->first.substr(0, it->first.find(".")); std::string db = it->first.substr(0, it->first.find("."));
std::transform(db.begin(), db.end(), db.begin(), ::tolower);
if (db.compare(table) == 0) if (db.compare(table) == 0)
{ {
if ((rval && rval != it->second)) if ((rval && rval != it->second))
@ -61,11 +63,16 @@ SERVER* Shard::get_location(std::string table)
} }
else else
{ {
ServerMap::iterator iter = m_map.find(table); for (ServerMap::iterator it = m_map.begin(); it != m_map.end(); it++)
if (iter != m_map.end())
{ {
rval = iter->second; std::transform(table.begin(), table.end(), table.begin(), ::tolower);
std::string db = it->first;
std::transform(db.begin(), db.end(), db.begin(), ::tolower);
if (db.compare(table) == 0)
{
rval = it->second;
break;
}
} }
} }
return rval; return rval;