diff options
author | Olivier Bertrand <bertrandop@gmail.com> | 2014-03-10 18:29:04 +0100 |
---|---|---|
committer | Olivier Bertrand <bertrandop@gmail.com> | 2014-03-10 18:29:04 +0100 |
commit | e5729127b8a50a0e553fd8b87b2683e4a684dfcc (patch) | |
tree | e1aa801ddbce432955725707a90e0be9b8d8845f /storage/connect/filamtxt.cpp | |
parent | 126bb34513f34eba97598d2357bfc1c2fbf594b4 (diff) | |
download | mariadb-git-e5729127b8a50a0e553fd8b87b2683e4a684dfcc.tar.gz |
- 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
Diffstat (limited to 'storage/connect/filamtxt.cpp')
-rw-r--r-- | storage/connect/filamtxt.cpp | 140 |
1 files changed, 3 insertions, 137 deletions
diff --git a/storage/connect/filamtxt.cpp b/storage/connect/filamtxt.cpp index 1d3f17e2228..b700ae182a0 100644 --- a/storage/connect/filamtxt.cpp +++ b/storage/connect/filamtxt.cpp @@ -228,25 +228,6 @@ int TXTFAM::Cardinality(PGLOBAL g) } // end of Cardinality -/***********************************************************************/ -/* Use BlockTest to reduce the table estimated size. */ -/* Note: This function is meant only for fixed length files but is */ -/* placed here to be available to FIXFAM and MPXFAM classes. */ -/***********************************************************************/ -int TXTFAM::MaxBlkSize(PGLOBAL g, int s) - { - int savcur = CurBlk, blm1 = Block - 1; - int size, last = s - blm1 * Nrec; - - // 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 == blm1) ? last : Nrec; - - CurBlk = savcur; - return size; - } // end of MaxBlkSize - /* --------------------------- Class DOSFAM -------------------------- */ /***********************************************************************/ @@ -314,15 +295,6 @@ int DOSFAM::Cardinality(PGLOBAL g) } // end of Cardinality /***********************************************************************/ -/* Use BlockTest to reduce the table estimated size. */ -/* Note: This function is not really implemented yet. */ -/***********************************************************************/ -int DOSFAM::MaxBlkSize(PGLOBAL g, int s) - { - return s; - } // end of MaxBlkSize - -/***********************************************************************/ /* OpenTableFile: Open a DOS/UNIX table file using C standard I/Os. */ /***********************************************************************/ bool DOSFAM::OpenTableFile(PGLOBAL g) @@ -993,7 +965,7 @@ BLKFAM::BLKFAM(PDOSDEF tdp) : DOSFAM(tdp) Last = tdp->GetLast(); Nrec = tdp->GetElemt(); Closing = false; - BlkPos = tdp->GetTo_Pos(); + BlkPos = NULL; CurLine = NULL; NxtLine = NULL; OutBuf = NULL; @@ -1029,23 +1001,6 @@ int BLKFAM::Cardinality(PGLOBAL g) } // end of Cardinality /***********************************************************************/ -/* Use BlockTest to reduce the table estimated size. */ -/***********************************************************************/ -int BLKFAM::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 - -/***********************************************************************/ /* Allocate the line buffer. For mode Delete or when a temp file is */ /* used another big buffer has to be allocated because is it used */ /* to move or update the lines into the (temp) file. */ @@ -1150,97 +1105,8 @@ int BLKFAM::SkipRecord(PGLOBAL g, bool header) /***********************************************************************/ int BLKFAM::ReadBuffer(PGLOBAL g) { - int i, n, rc = RC_OK; - - /*********************************************************************/ - /* Sequential reading when Placed is not true. */ - /*********************************************************************/ - if (Placed) { - Placed = false; - } else 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'; - goto fin; - } else if (Rbuf < Nrec && CurBlk != -1) { - return RC_EF; - } else { - /*******************************************************************/ - /* New block. */ - /*******************************************************************/ - CurNum = 0; - - if (++CurBlk >= Block) - return RC_EF; - - } // endif's - - if (OldBlk == CurBlk) - goto ok; // Block is already there - - // fseek is required only in non sequential reading - if (CurBlk != OldBlk + 1) - if (fseek(Stream, BlkPos[CurBlk], SEEK_SET)) { - sprintf(g->Message, MSG(FSETPOS_ERROR), BlkPos[CurBlk]); - return RC_FX; - } // endif fseek - - // Calculate the length of block to read - BlkLen = BlkPos[CurBlk + 1] - BlkPos[CurBlk]; - - if (trace) - htrc("File position is now %d\n", ftell(Stream)); - - // Read the entire next block - n = fread(To_Buf, 1, (size_t)BlkLen, Stream); - - if (n == BlkLen) { -// ReadBlks++; - num_read++; - Rbuf = (CurBlk == Block - 1) ? Last : Nrec; - - ok: - rc = RC_OK; - - // Get the position of the current line - for (i = 0, CurLine = To_Buf; i < CurNum; i++) - while (*CurLine++ != '\n') ; // What about Unix ??? - - // 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'; - } else if (feof(Stream)) { - rc = RC_EF; - } else { -#if defined(UNIX) - sprintf(g->Message, MSG(READ_ERROR), To_File, strerror(errno)); -#else - sprintf(g->Message, MSG(READ_ERROR), To_File, _strerror(NULL)); -#endif - - if (trace) - htrc("%s\n", g->Message); - - return RC_FX; - } // endelse - - OldBlk = CurBlk; // Last block actually read - IsRead = true; // Is read indeed - - fin: - // Store the current record file position for Delete and Update - Fpos = BlkPos[CurBlk] + CurLine - To_Buf; - return rc; + strcpy(g->Message, "This AM cannot be used in this version"); + return RC_FX; } // end of ReadBuffer /***********************************************************************/ |