mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
- NOTE: an experimental implementation of MRR was done but not kept
in this version. Sure enough, it never caused any improvement in the execution speed and rather caused a small increase of execution time. This is probably because values are sorted by rowid in each range of CONNECT indexes. This could be reconsidered if a customer have a need for processing very big files. - Fix a bug in ha_connect::CheckCond. The negated form of BETWEEN and IS NULL operators was not recognized. modified: storage/connect/ha_connect.cc - Add long jump initialization in CntReadNext. This was causing a server crash when an error occured in a ReadColumn. modified: storage/connect/connect.cc - General cleanup of CONNECT source code eliminating all code not used by CONNECT, including the MRR test code (saved separately). modified: storage/connect/catalog.h storage/connect/colblk.cpp storage/connect/colblk.h storage/connect/connect.cc storage/connect/connect.h storage/connect/domdoc.h storage/connect/filamap.cpp storage/connect/filamap.h storage/connect/filamdbf.h storage/connect/filamfix.cpp storage/connect/filamfix.h storage/connect/filamtxt.cpp storage/connect/filamtxt.h storage/connect/filamvct.cpp storage/connect/filamvct.h storage/connect/filamzip.cpp storage/connect/filamzip.h storage/connect/global.h storage/connect/ha_connect.cc storage/connect/ha_connect.h storage/connect/myconn.h storage/connect/plgcnx.h storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/preparse.h storage/connect/reldef.cpp storage/connect/reldef.h storage/connect/tabcol.h storage/connect/tabdos.cpp storage/connect/tabdos.h storage/connect/tabfix.cpp storage/connect/tabfmt.cpp storage/connect/tabfmt.h storage/connect/table.cpp storage/connect/tabmac.h storage/connect/tabmul.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.h storage/connect/tabodbc.cpp storage/connect/tabodbc.h storage/connect/tabsys.cpp storage/connect/tabsys.h storage/connect/tabtbl.cpp storage/connect/tabtbl.h storage/connect/tabutil.h storage/connect/tabvct.cpp storage/connect/tabvct.h storage/connect/tabwmi.cpp storage/connect/tabwmi.h storage/connect/tabxml.cpp storage/connect/tabxml.h storage/connect/user_connect.cc storage/connect/user_connect.h storage/connect/valblk.cpp storage/connect/valblk.h storage/connect/value.cpp storage/connect/value.h storage/connect/xindex.cpp storage/connect/xindex.h storage/connect/xobject.cpp storage/connect/xobject.h storage/connect/xtable.h
This commit is contained in:
@ -14,7 +14,7 @@
|
||||
#include "reldef.h"
|
||||
#include "xtable.h"
|
||||
#include "colblk.h"
|
||||
#include "filter.h"
|
||||
//#include "filter.h"
|
||||
//#include "xindex.h"
|
||||
#include "tabwmi.h"
|
||||
#include "valblk.h"
|
||||
@ -480,8 +480,8 @@ bool TDBWMI::Initialize(PGLOBAL g)
|
||||
/***********************************************************************/
|
||||
void TDBWMI::DoubleSlash(PGLOBAL g)
|
||||
{
|
||||
if (To_Filter && strchr(To_Filter->Body, '\\')) {
|
||||
char *body = To_Filter->Body;
|
||||
if (To_CondFil && strchr(To_CondFil->Body, '\\')) {
|
||||
char *body = To_CondFil->Body;
|
||||
char *buf = (char*)PlugSubAlloc(g, NULL, strlen(body) * 2);
|
||||
int i = 0, k = 0;
|
||||
|
||||
@ -492,8 +492,8 @@ void TDBWMI::DoubleSlash(PGLOBAL g)
|
||||
buf[k++] = body[i];
|
||||
} while (body[i++]);
|
||||
|
||||
To_Filter->Body = buf;
|
||||
} // endif To_Filter
|
||||
To_CondFil->Body = buf;
|
||||
} // endif To_CondFil
|
||||
|
||||
} // end of DoubleSlash
|
||||
|
||||
@ -540,13 +540,13 @@ char *TDBWMI::MakeWQL(PGLOBAL g)
|
||||
|
||||
// Below 14 is length of 'select ' + length of ' from ' + 1
|
||||
len = (strlen(colist) + strlen(Wclass) + 14);
|
||||
len += (To_Filter ? strlen(To_Filter->Body) + 7 : 0);
|
||||
len += (To_CondFil ? strlen(To_CondFil->Body) + 7 : 0);
|
||||
wql = (char*)PlugSubAlloc(g, NULL, len);
|
||||
strcat(strcat(strcpy(wql, "SELECT "), colist), " FROM ");
|
||||
strcat(wql, Wclass);
|
||||
|
||||
if (To_Filter)
|
||||
strcat(strcat(wql, " WHERE "), To_Filter->Body);
|
||||
if (To_CondFil)
|
||||
strcat(strcat(wql, " WHERE "), To_CondFil->Body);
|
||||
|
||||
return wql;
|
||||
} // end of MakeWQL
|
||||
@ -659,8 +659,8 @@ bool TDBWMI::OpenDB(PGLOBAL g)
|
||||
return true;
|
||||
} // endif Mode
|
||||
|
||||
if (!To_Filter && !stricmp(Wclass, "CIM_Datafile")
|
||||
&& !stricmp(Nspace, "root\\cimv2")) {
|
||||
if (!To_CondFil && !stricmp(Wclass, "CIM_Datafile")
|
||||
&& !stricmp(Nspace, "root\\cimv2")) {
|
||||
strcpy(g->Message,
|
||||
"Would last forever when not filtered, use DIR table instead");
|
||||
return true;
|
||||
|
Reference in New Issue
Block a user