summaryrefslogtreecommitdiff
path: root/storage/connect/connect.cc
diff options
context:
space:
mode:
authorOlivier Bertrand <bertrandop@gmail.com>2014-08-23 19:17:15 +0200
committerOlivier Bertrand <bertrandop@gmail.com>2014-08-23 19:17:15 +0200
commit74a46726227b5f34dedb28ff6d7a4d81b157d764 (patch)
tree9c2d6fdebca4cf11ccb3b65c02a27633c1010212 /storage/connect/connect.cc
parentf930f4eda9dd849b48e67eaecc8c130bb9310107 (diff)
downloadmariadb-git-74a46726227b5f34dedb28ff6d7a4d81b157d764.tar.gz
- Move DataPath from the MYCAT catalog to the ha_connect handler. Indeed
it belongs to each tables and the catalog being share between several instances of CONNECT, when a query implied several tables belonging to different databases, some where pointing on the wrong database. This fix bugs occuring in queries such as: INSERT into db1.t1 select * from db2.t2; Where the t1 data file was made in db2. modified: storage/connect/catalog.h storage/connect/connect.cc storage/connect/filamdbf.cpp storage/connect/filamdbf.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/mycat.cc storage/connect/mycat.h storage/connect/plgdbsem.h storage/connect/plgdbutl.cpp storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabfix.h storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/tabmul.cpp
Diffstat (limited to 'storage/connect/connect.cc')
-rw-r--r--storage/connect/connect.cc7
1 files changed, 5 insertions, 2 deletions
diff --git a/storage/connect/connect.cc b/storage/connect/connect.cc
index c835d8c8233..381e437f9ec 100644
--- a/storage/connect/connect.cc
+++ b/storage/connect/connect.cc
@@ -122,9 +122,12 @@ bool CntCheckDB(PGLOBAL g, PHC handler, const char *pathname)
(dbuserp->Catalog) ? ((MYCAT*)dbuserp->Catalog)->GetHandler() : NULL,
handler);
+ // Set the database path for this table
+ handler->SetDataPath(g, pathname);
+
if (dbuserp->Catalog) {
// ((MYCAT *)dbuserp->Catalog)->SetHandler(handler); done later
- ((MYCAT *)dbuserp->Catalog)->SetDataPath(g, pathname);
+// ((MYCAT *)dbuserp->Catalog)->SetDataPath(g, pathname);
return false; // Nothing else to do
} // endif Catalog
@@ -141,7 +144,7 @@ bool CntCheckDB(PGLOBAL g, PHC handler, const char *pathname)
if (!(dbuserp->Catalog= new MYCAT(handler)))
return true;
- ((MYCAT *)dbuserp->Catalog)->SetDataPath(g, pathname);
+//((MYCAT *)dbuserp->Catalog)->SetDataPath(g, pathname);
//dbuserp->UseTemp= TMP_AUTO;
/*********************************************************************/