summaryrefslogtreecommitdiffstats
path: root/storage/connect/tabcol.h
diff options
context:
space:
mode:
Diffstat (limited to 'storage/connect/tabcol.h')
-rw-r--r--storage/connect/tabcol.h109
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