summaryrefslogtreecommitdiff
path: root/storage/connect/tabmysql.cpp
diff options
context:
space:
mode:
authorOlivier Bertrand <bertrandop@gmail.com>2014-07-22 15:51:21 +0200
committerOlivier Bertrand <bertrandop@gmail.com>2014-07-22 15:51:21 +0200
commitdecc23cbc2d0ece2217f3d70173cc4dd7088da5c (patch)
tree776c418ea03cc00eebb6446012a757750a29ccdf /storage/connect/tabmysql.cpp
parent26e4b69ffd45332fb16a18ce25481e7ac0c69b84 (diff)
downloadmariadb-git-decc23cbc2d0ece2217f3d70173cc4dd7088da5c.tar.gz
- Fix bugs in handling of remote index when updating and deleting
modified: storage/connect/ha_connect.cc storage/connect/tabdos.cpp storage/connect/tabfmt.cpp storage/connect/tabmysql.cpp - add AVG_REC_LENGTH option to avoid result mismatch between Windows and Linux modified: storage/connect/mysql-test/connect/r/part_file.result storage/connect/mysql-test/connect/r/part_table.result storage/connect/mysql-test/connect/t/part_file.test
Diffstat (limited to 'storage/connect/tabmysql.cpp')
-rw-r--r--storage/connect/tabmysql.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/storage/connect/tabmysql.cpp b/storage/connect/tabmysql.cpp
index 0d0b17c3dcc..6c7c58152b3 100644
--- a/storage/connect/tabmysql.cpp
+++ b/storage/connect/tabmysql.cpp
@@ -653,7 +653,7 @@ int TDBMYSQL::MakeCommand(PGLOBAL g)
// Make a lower case copy of the originale query
- qrystr = (char*)PlugSubAlloc(g, NULL, strlen(Qrystr) + 1);
+ qrystr = (char*)PlugSubAlloc(g, NULL, strlen(Qrystr) + 5);
strlwr(strcpy(qrystr, Qrystr));
// Check whether the table name is equal to a keyword
@@ -673,6 +673,7 @@ int TDBMYSQL::MakeCommand(PGLOBAL g)
strcat(Query, Tabname);
strcat(Query, Qrystr + (p - qrystr) + strlen(name));
+ strlwr(strcpy(qrystr, Query));
} else {
sprintf(g->Message, "Cannot use this %s command",
(Mode == MODE_UPDATE) ? "UPDATE" : "DELETE");
@@ -1035,7 +1036,8 @@ bool TDBMYSQL::ReadKey(PGLOBAL g, OPVAL op, const void *key, int len)
{
int oldlen = strlen(Query);
- if (!key || op == OP_NEXT)
+ if (!key || op == OP_NEXT ||
+ Mode == MODE_UPDATE || Mode == MODE_DELETE)
return false;
else if (op == OP_FIRST) {
if (To_CondFil)
@@ -1054,7 +1056,7 @@ bool TDBMYSQL::ReadKey(PGLOBAL g, OPVAL op, const void *key, int len)
m_Rc = Myc.ExecSQL(g, Query);
Query[oldlen] = 0;
- return false;
+ return (m_Rc == RC_FX) ? true : false;
} // end of ReadKey
/***********************************************************************/