diff options
Diffstat (limited to 'storage/connect/tabcol.h')
-rw-r--r-- | storage/connect/tabcol.h | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/storage/connect/tabcol.h b/storage/connect/tabcol.h new file mode 100644 index 00000000..e4657e2f --- /dev/null +++ b/storage/connect/tabcol.h @@ -0,0 +1,109 @@ +/*************** TabCol H Declares Source Code File (.H) ***************/ +/* Name: TABCOL.H Version 2.8 */ +/* */ +/* (C) Copyright to the author Olivier BERTRAND 1998-2013 */ +/* */ +/* This file contains the XTAB, COLUMN and XORDER class definitions. */ +/***********************************************************************/ + +/***********************************************************************/ +/* Include required application header files */ +/* block.h is header containing Block global declarations. */ +/***********************************************************************/ +#include "xobject.h" + +/***********************************************************************/ +/* Definition of class XTAB with all its method functions. */ +/***********************************************************************/ +class DllExport XTAB: public BLOCK { // Table Name-Schema-Srcdef block. + friend class TDBPRX; + friend class TDBTBM; + public: + // Constructors + XTAB(LPCSTR name, LPCSTR srcdef = NULL); + XTAB(PTABLE tp); + + // Implementation + PTABLE GetNext(void) {return Next;} + PTDB GetTo_Tdb(void) {return To_Tdb;} + LPCSTR GetName(void) {return Name;} + LPCSTR GetSrc(void) {return Srcdef;} + LPCSTR GetSchema(void) {return Schema;} + LPCSTR GetQualifier(void) {return Qualifier;} + void SetTo_Tdb(PTDB tdbp) {To_Tdb = tdbp;} + void SetName(LPCSTR name) {Name = name;} + void SetSrc(LPCSTR srcdef) {Srcdef = srcdef;} + void SetSchema(LPCSTR schname) {Schema = schname;} + void SetQualifier(LPCSTR qname) {Qualifier = qname;} + + // Methods + PTABLE Link(PTABLE); + void Printf(PGLOBAL g, FILE *f, uint n); + void Prints(PGLOBAL g, char *ps, uint z); + + protected: + // Members + PTABLE Next; // Points to next table in chain + PTDB To_Tdb; // Points to Table description Block + LPCSTR Name; // Table name + LPCSTR Srcdef; // Table Source definition + LPCSTR Schema; // Schema name + LPCSTR Qualifier; // Qualifier name + }; // end of class XTAB + + +/***********************************************************************/ +/* Definition of class COLUMN with all its method functions. */ +/* Note: because of LNA routines, the constantness of Name was */ +/* removed and constructing a COLUMN with null name was allowed. */ +/* Perhaps this should be replaced by the use of a specific class. */ +/***********************************************************************/ +class DllExport COLUMN: public XOBJECT { // Column Name/Qualifier block. + public: + // Constructor + COLUMN(LPCSTR name); + + // Implementation + virtual int GetType(void) {return TYPE_COLUMN;} + virtual int GetResultType(void) {assert(false); return TYPE_VOID;} + virtual int GetLength(void) {assert(false); return 0;} + virtual int GetLengthEx(void) {assert(false); return 0;} + virtual int GetScale() {assert(false); return 0;}; + LPCSTR GetName(void) {return Name;} + LPCSTR GetQualifier(void) {return Qualifier;} + PTABLE GetTo_Table(void) {return To_Table;} + PCOL GetTo_Col(void) {return To_Col;} + void SetQualifier(LPCSTR qualif) {Qualifier = qualif;} + void SetTo_Table(PTABLE tablep) {To_Table = tablep;} + void SetTo_Col(PCOL colp) {To_Col = colp;} + + // Methods + virtual void Printf(PGLOBAL g, FILE *f, uint n); + virtual void Prints(PGLOBAL g, char *ps, uint z); + // All methods below should never be used for COLUMN's + virtual void Reset(void) {assert(false);} + virtual bool Compare(PXOB) {assert(false); return false;} + virtual bool SetFormat(PGLOBAL, FORMAT&); + virtual bool Eval(PGLOBAL) {assert(false); return true;} + + private: + // Members + PTABLE To_Table; // Point to Table Name Block + PCOL To_Col; // Points to Column Description Block + LPCSTR const Name; // Column name + LPCSTR Qualifier; // Qualifier name + }; // end of class COLUMN + +/***********************************************************************/ +/* Definition of class SPCCOL with all its method functions. */ +/* Note: Currently the special columns are ROWID, ROWNUM, FILEID, */ +/* SERVID, TABID, PARTID, and CONID. */ +/***********************************************************************/ +class SPCCOL: public COLUMN { // Special Column Name/Qualifier block. + public: + // Constructor + SPCCOL(LPCSTR name) : COLUMN(name) {} + + private: + // Members + }; // end of class SPCCOL |