mirror of
https://github.com/MariaDB/server.git
synced 2026-05-15 19:37:16 +02: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:
parent
126bb34513
commit
e5729127b8
63 changed files with 331 additions and 1441 deletions
|
|
@ -403,7 +403,7 @@ ZBKFAM::ZBKFAM(PDOSDEF tdp) : ZIPFAM(tdp)
|
|||
CurLine = NULL;
|
||||
NxtLine = NULL;
|
||||
Closing = false;
|
||||
BlkPos = tdp->GetTo_Pos();
|
||||
BlkPos = NULL;
|
||||
} // end of ZBKFAM standard constructor
|
||||
|
||||
ZBKFAM::ZBKFAM(PZBKFAM txfp) : ZIPFAM(txfp)
|
||||
|
|
@ -413,23 +413,6 @@ ZBKFAM::ZBKFAM(PZBKFAM txfp) : ZIPFAM(txfp)
|
|||
Closing = txfp->Closing;
|
||||
} // end of ZBKFAM copy constructor
|
||||
|
||||
/***********************************************************************/
|
||||
/* Use BlockTest to reduce the table estimated size. */
|
||||
/***********************************************************************/
|
||||
int ZBKFAM::MaxBlkSize(PGLOBAL g, int s)
|
||||
{
|
||||
int savcur = CurBlk;
|
||||
int size;
|
||||
|
||||
// Roughly estimate the table size as the sum of blocks
|
||||
// that can contain good rows
|
||||
for (size = 0, CurBlk = 0; CurBlk < Block; CurBlk++)
|
||||
size += (CurBlk == Block - 1) ? Last : Nrec;
|
||||
|
||||
CurBlk = savcur;
|
||||
return size;
|
||||
} // end of MaxBlkSize
|
||||
|
||||
/***********************************************************************/
|
||||
/* ZBK Cardinality: returns table cardinality in number of rows. */
|
||||
/* This function can be called with a null argument to test the */
|
||||
|
|
@ -509,56 +492,8 @@ int ZBKFAM::SkipRecord(PGLOBAL g, bool header)
|
|||
/***********************************************************************/
|
||||
int ZBKFAM::ReadBuffer(PGLOBAL g)
|
||||
{
|
||||
int n, rc = RC_OK;
|
||||
|
||||
/*********************************************************************/
|
||||
/* Sequential reading when Placed is not true. */
|
||||
/*********************************************************************/
|
||||
if (++CurNum < Rbuf) {
|
||||
CurLine = NxtLine;
|
||||
|
||||
// Get the position of the next line in the buffer
|
||||
while (*NxtLine++ != '\n') ;
|
||||
|
||||
// Set caller line buffer
|
||||
n = NxtLine - CurLine - Ending;
|
||||
memcpy(Tdbp->GetLine(), CurLine, n);
|
||||
Tdbp->GetLine()[n] = '\0';
|
||||
return RC_OK;
|
||||
} else if (Rbuf < Nrec && CurBlk != -1)
|
||||
return RC_EF;
|
||||
|
||||
/*********************************************************************/
|
||||
/* New block. */
|
||||
/*********************************************************************/
|
||||
CurNum = 0;
|
||||
|
||||
if (++CurBlk >= Block)
|
||||
return RC_EF;
|
||||
|
||||
BlkLen = BlkPos[CurBlk + 1] - BlkPos[CurBlk];
|
||||
|
||||
if (!(n = gzread(Zfile, To_Buf, BlkLen))) {
|
||||
rc = RC_EF;
|
||||
} else if (n > 0) {
|
||||
// Get the position of the current line
|
||||
CurLine = To_Buf;
|
||||
|
||||
// Now get the position of the next line
|
||||
for (NxtLine = CurLine; *NxtLine++ != '\n';) ;
|
||||
|
||||
// Set caller line buffer
|
||||
n = NxtLine - CurLine - Ending;
|
||||
memcpy(Tdbp->GetLine(), CurLine, n);
|
||||
Tdbp->GetLine()[n] = '\0';
|
||||
Rbuf = (CurBlk == Block - 1) ? Last : Nrec;
|
||||
IsRead = true;
|
||||
rc = RC_OK;
|
||||
num_read++;
|
||||
} else
|
||||
rc = Zerror(g);
|
||||
|
||||
return rc;
|
||||
strcpy(g->Message, "This AM cannot be used in this version");
|
||||
return RC_FX;
|
||||
} // end of ReadBuffer
|
||||
|
||||
/***********************************************************************/
|
||||
|
|
@ -770,9 +705,6 @@ int ZIXFAM::ReadBuffer(PGLOBAL g)
|
|||
CurNum = 0;
|
||||
Tdbp->SetLine(To_Buf);
|
||||
|
||||
//if (++CurBlk >= Block)
|
||||
// return RC_EF;
|
||||
|
||||
if (!(n = gzread(Zfile, To_Buf, Buflen))) {
|
||||
rc = RC_EF;
|
||||
} else if (n > 0) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue