mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 12:32:27 +01:00
671d9b6c61
and enable using special column in them. modified: storage/connect/tabzip.cpp modified: storage/connect/tabzip.h - Fix some compiler errors modified: storage/connect/tabcmg.cpp
108 lines
4.1 KiB
C++
108 lines
4.1 KiB
C++
/***************** FilAmDbf H Declares Source Code File (.H) ****************/
|
|
/* Name: filamdbf.h Version 1.4 */
|
|
/* */
|
|
/* (C) Copyright to the author Olivier BERTRAND 2005-2014 */
|
|
/* */
|
|
/* This file contains the DBF file access method classes declares. */
|
|
/****************************************************************************/
|
|
|
|
#ifndef __FILAMDBF_H
|
|
#define __FILAMDBF_H
|
|
|
|
#include "filamfix.h"
|
|
#include "filamap.h"
|
|
|
|
typedef class DBFBASE *PDBF;
|
|
typedef class DBFFAM *PDBFFAM;
|
|
typedef class DBMFAM *PDBMFAM;
|
|
|
|
/****************************************************************************/
|
|
/* Functions used externally. */
|
|
/****************************************************************************/
|
|
PQRYRES DBFColumns(PGLOBAL g, PCSZ dp, PCSZ fn, PTOS tiop, bool info);
|
|
|
|
/****************************************************************************/
|
|
/* This is the base class for dBASE file access methods. */
|
|
/****************************************************************************/
|
|
class DllExport DBFBASE {
|
|
public:
|
|
// Constructors
|
|
DBFBASE(PDOSDEF tdp);
|
|
DBFBASE(PDBF txfp);
|
|
|
|
// Implementation
|
|
int ScanHeader(PGLOBAL g, PCSZ fname, int lrecl, int *rlen, PCSZ defpath);
|
|
|
|
protected:
|
|
// Default constructor, not to be used
|
|
DBFBASE(void) {}
|
|
|
|
// Members
|
|
int Records; /* records in the file */
|
|
bool Accept; /* true if bad lines are accepted */
|
|
int Nerr; /* Number of bad records */
|
|
int Maxerr; /* Maximum number of bad records */
|
|
int ReadMode; /* 1: ALL 2: DEL 0: NOT DEL */
|
|
}; // end of class DBFBASE
|
|
|
|
/****************************************************************************/
|
|
/* This is the DOS/UNIX Access Method class declaration for DBase files. */
|
|
/****************************************************************************/
|
|
class DllExport DBFFAM : public FIXFAM, public DBFBASE {
|
|
public:
|
|
// Constructors
|
|
DBFFAM(PDOSDEF tdp) : FIXFAM(tdp), DBFBASE(tdp) {}
|
|
DBFFAM(PDBFFAM txfp) : FIXFAM(txfp), DBFBASE((PDBF)txfp) {}
|
|
|
|
// Implementation
|
|
virtual AMT GetAmType(void) {return TYPE_AM_DBF;}
|
|
virtual PTXF Duplicate(PGLOBAL g)
|
|
{return (PTXF)new(g) DBFFAM(this);}
|
|
|
|
// Methods
|
|
virtual int GetNerr(void) {return Nerr;}
|
|
virtual int Cardinality(PGLOBAL g);
|
|
virtual bool OpenTableFile(PGLOBAL g);
|
|
virtual bool AllocateBuffer(PGLOBAL g);
|
|
virtual void ResetBuffer(PGLOBAL g);
|
|
virtual int ReadBuffer(PGLOBAL g);
|
|
virtual int DeleteRecords(PGLOBAL g, int irc);
|
|
virtual void CloseTableFile(PGLOBAL g, bool abort);
|
|
virtual void Rewind(void);
|
|
|
|
protected:
|
|
virtual bool CopyHeader(PGLOBAL g);
|
|
//virtual int InitDelete(PGLOBAL g, int fpos, int spos);
|
|
|
|
// Members
|
|
}; // end of class DBFFAM
|
|
|
|
/****************************************************************************/
|
|
/* This is the DOS/UNIX Access Method class declaration for DBase files */
|
|
/* using file mapping to access the file. */
|
|
/****************************************************************************/
|
|
class DllExport DBMFAM : public MPXFAM, public DBFBASE {
|
|
public:
|
|
// Constructors
|
|
DBMFAM(PDOSDEF tdp) : MPXFAM(tdp), DBFBASE(tdp) {}
|
|
DBMFAM(PDBMFAM txfp) : MPXFAM(txfp), DBFBASE((PDBF)txfp) {}
|
|
|
|
// Implementation
|
|
virtual AMT GetAmType(void) {return TYPE_AM_DBF;}
|
|
virtual PTXF Duplicate(PGLOBAL g)
|
|
{return (PTXF)new(g) DBMFAM(this);}
|
|
virtual int GetDelRows(void);
|
|
|
|
// Methods
|
|
virtual int GetNerr(void) {return Nerr;}
|
|
virtual int Cardinality(PGLOBAL g);
|
|
virtual bool AllocateBuffer(PGLOBAL g);
|
|
virtual int ReadBuffer(PGLOBAL g);
|
|
virtual int DeleteRecords(PGLOBAL g, int irc);
|
|
virtual void Rewind(void);
|
|
|
|
protected:
|
|
// Members
|
|
}; // end of class DBFFAM
|
|
|
|
#endif // __FILAMDBF_H
|