mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-04 04:46:15 +01:00 
			
		
		
		
	modified: storage/connect/CMakeLists.txt modified: storage/connect/cmgoconn.cpp modified: storage/connect/ha_connect.cc - Add FORCE to the connect_type_conv enum values This will translate binary values to TYPE_STRING modified: storage/connect/checklvl.h modified: storage/connect/ha_connect.cc modified: storage/connect/odbconn.cpp - Change the connect_xtrace variable to from int to set modified: storage/connect/array.cpp modified: storage/connect/blkfil.cpp modified: storage/connect/block.h modified: storage/connect/cmgoconn.cpp modified: storage/connect/colblk.cpp modified: storage/connect/connect.cc modified: storage/connect/filamap.cpp modified: storage/connect/filamdbf.cpp modified: storage/connect/filamfix.cpp modified: storage/connect/filamgz.cpp modified: storage/connect/filamtxt.cpp modified: storage/connect/filamvct.cpp modified: storage/connect/filamzip.cpp modified: storage/connect/filter.cpp modified: storage/connect/global.h modified: storage/connect/ha_connect.cc modified: storage/connect/javaconn.cpp modified: storage/connect/jdbconn.cpp modified: storage/connect/jmgfam.cpp modified: storage/connect/jmgoconn.cpp modified: storage/connect/json.cpp modified: storage/connect/jsonudf.cpp modified: storage/connect/mongo.cpp modified: storage/connect/mycat.cc modified: storage/connect/myconn.cpp modified: storage/connect/odbconn.cpp modified: storage/connect/plgdbutl.cpp modified: storage/connect/plugutil.cpp modified: storage/connect/reldef.cpp modified: storage/connect/tabcol.cpp modified: storage/connect/tabdos.cpp modified: storage/connect/tabext.cpp modified: storage/connect/tabfix.cpp modified: storage/connect/tabfmt.cpp modified: storage/connect/tabjdbc.cpp modified: storage/connect/tabjson.cpp modified: storage/connect/table.cpp modified: storage/connect/tabmul.cpp modified: storage/connect/tabmysql.cpp modified: storage/connect/tabodbc.cpp modified: storage/connect/tabpivot.cpp modified: storage/connect/tabsys.cpp modified: storage/connect/tabtbl.cpp modified: storage/connect/tabutil.cpp modified: storage/connect/tabvct.cpp modified: storage/connect/tabwmi.cpp modified: storage/connect/tabxml.cpp modified: storage/connect/user_connect.cc modified: storage/connect/valblk.cpp modified: storage/connect/value.cpp modified: storage/connect/xindex.cpp - Restore connect_enable_mongo variable (but undocumented) modified: storage/connect/ha_connect.cc modified: storage/connect/mycat.cc modified: storage/connect/mysql-test/connect/r/json_java_2.result modified: storage/connect/mysql-test/connect/r/json_java_3.result modified: storage/connect/mysql-test/connect/r/json_mongo_c.result modified: storage/connect/mysql-test/connect/r/mongo_c.result modified: storage/connect/mysql-test/connect/r/mongo_java_2.result modified: storage/connect/mysql-test/connect/r/mongo_java_3.result modified: storage/connect/mysql-test/connect/r/tbl_thread.result modified: storage/connect/mysql-test/connect/t/mongo.inc modified: storage/connect/mysql-test/connect/t/mongo_test.inc modified: storage/connect/mysql-test/connect/t/tbl_thread.test
		
			
				
	
	
		
			169 lines
		
	
	
	
		
			5.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			169 lines
		
	
	
	
		
			5.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
/************* TabCol C++ Functions Source Code File (.CPP) ************/
 | 
						|
/*  Name: TABCOL.CPP  Version 2.7                                      */
 | 
						|
/*                                                                     */
 | 
						|
/*  (C) Copyright to the author Olivier BERTRAND          1998-2015    */
 | 
						|
/*                                                                     */
 | 
						|
/*  This file contains the PlugDB++ XTAB, COLUMN and XORDER methods.   */
 | 
						|
/***********************************************************************/
 | 
						|
 | 
						|
/***********************************************************************/
 | 
						|
/*  Include relevant MariaDB header file.                              */
 | 
						|
/***********************************************************************/
 | 
						|
#include "my_global.h"
 | 
						|
 | 
						|
/***********************************************************************/
 | 
						|
/*  Include required application header files                          */
 | 
						|
/*  global.h   is header containing all global Plug declarations.      */
 | 
						|
/*  plgdbsem.h is header containing the DB applic. declarations.       */
 | 
						|
/*  tabcol.h   is header containing XTAB, and XORDER declares.         */
 | 
						|
/***********************************************************************/
 | 
						|
#include "global.h"
 | 
						|
#include "plgdbsem.h"
 | 
						|
#include "xtable.h"
 | 
						|
#include "tabcol.h"
 | 
						|
 | 
						|
/***********************************************************************/
 | 
						|
/*  XTAB public constructor.                                           */
 | 
						|
/***********************************************************************/
 | 
						|
XTAB::XTAB(LPCSTR name, LPCSTR srcdef) : Name(name)
 | 
						|
  {
 | 
						|
  Next = NULL;
 | 
						|
  To_Tdb = NULL;
 | 
						|
  Srcdef = srcdef;
 | 
						|
  Schema = NULL;
 | 
						|
  Qualifier = NULL;
 | 
						|
 | 
						|
  if (trace(1))
 | 
						|
    htrc("XTAB: making new TABLE %s %s\n", Name, Srcdef);
 | 
						|
 | 
						|
  } // end of XTAB constructor
 | 
						|
 | 
						|
/***********************************************************************/
 | 
						|
/*  XTAB public constructor as a copy of another table.                */
 | 
						|
/***********************************************************************/
 | 
						|
XTAB::XTAB(PTABLE tp) : Name(tp->Name)
 | 
						|
  {
 | 
						|
  Next = NULL;
 | 
						|
  To_Tdb = NULL;
 | 
						|
  Srcdef = tp->Srcdef;
 | 
						|
  Schema = tp->Schema;
 | 
						|
  Qualifier = tp->Qualifier;
 | 
						|
 | 
						|
  if (trace(1))
 | 
						|
    htrc(" making copy TABLE %s %s\n", Name, SVP(Srcdef));
 | 
						|
 | 
						|
  } // end of XTAB constructor
 | 
						|
 | 
						|
/***********************************************************************/
 | 
						|
/*  Link the tab2 tables to the tab1(this) table chain.                */
 | 
						|
/***********************************************************************/
 | 
						|
PTABLE XTAB::Link(PTABLE tab2)
 | 
						|
  {
 | 
						|
  PTABLE tabp;
 | 
						|
 | 
						|
  if (trace(1))
 | 
						|
    htrc("Linking tables %s... to %s\n", Name, tab2->Name);
 | 
						|
 | 
						|
  for (tabp = this; tabp->Next; tabp = tabp->Next) ;
 | 
						|
 | 
						|
  tabp->Next = tab2;
 | 
						|
  return (this);
 | 
						|
  } /* end of Link */
 | 
						|
 | 
						|
/***********************************************************************/
 | 
						|
/*  Make file output of XTAB contents.                                 */
 | 
						|
/***********************************************************************/
 | 
						|
void XTAB::Printf(PGLOBAL g, FILE *f, uint n)
 | 
						|
  {
 | 
						|
  char  m[64];
 | 
						|
 | 
						|
  memset(m, ' ', n);                             /* Make margin string */
 | 
						|
  m[n] = '\0';
 | 
						|
 | 
						|
  for (PTABLE tp = this; tp; tp = tp->Next) {
 | 
						|
    fprintf(f, "%sTABLE: %s.%s %s\n",
 | 
						|
            m, SVP(tp->Schema), tp->Name, SVP(tp->Srcdef));
 | 
						|
    PlugPutOut(g, f, TYPE_TDB, tp->To_Tdb, n + 2);
 | 
						|
    } /* endfor tp */
 | 
						|
 | 
						|
  } /* end of Printf */
 | 
						|
 | 
						|
/***********************************************************************/
 | 
						|
/*  Make string output of XTAB contents.                               */
 | 
						|
/***********************************************************************/
 | 
						|
void XTAB::Prints(PGLOBAL, char *ps, uint z)
 | 
						|
  {
 | 
						|
  char buf[128];
 | 
						|
  int  i, n = (int)z - 1;
 | 
						|
 | 
						|
  *ps = '\0';
 | 
						|
 | 
						|
  for (PTABLE tp = this; tp && n > 0; tp = tp->Next) {
 | 
						|
    i = sprintf(buf, "TABLE: %s.%s %s To_Tdb=%p ",
 | 
						|
                SVP(tp->Schema), tp->Name, SVP(tp->Srcdef), tp->To_Tdb);
 | 
						|
    strncat(ps, buf, n);
 | 
						|
    n -= i;
 | 
						|
    } // endif tp
 | 
						|
 | 
						|
  } /* end of Prints */
 | 
						|
 | 
						|
 | 
						|
/***********************************************************************/
 | 
						|
/*  COLUMN public constructor.                                         */
 | 
						|
/***********************************************************************/
 | 
						|
COLUMN::COLUMN(LPCSTR name) : Name(name)
 | 
						|
  {
 | 
						|
  To_Table = NULL;
 | 
						|
  To_Col = NULL;
 | 
						|
  Qualifier = NULL;
 | 
						|
 | 
						|
  if (trace(1))
 | 
						|
    htrc(" making new COLUMN %s\n", Name);
 | 
						|
 | 
						|
  } // end of COLUMN constructor
 | 
						|
 | 
						|
/***********************************************************************/
 | 
						|
/*  COLUMN SetFormat: should never be called.                          */
 | 
						|
/***********************************************************************/
 | 
						|
bool COLUMN::SetFormat(PGLOBAL g, FORMAT&)
 | 
						|
  {
 | 
						|
  strcpy(g->Message, MSG(NO_FORMAT_COL));
 | 
						|
  return true;
 | 
						|
  } // end of SetFormat
 | 
						|
 | 
						|
/***********************************************************************/
 | 
						|
/*  Make file output of COLUMN contents.                               */
 | 
						|
/***********************************************************************/
 | 
						|
void COLUMN::Printf(PGLOBAL g, FILE *f, uint n)
 | 
						|
  {
 | 
						|
  char  m[64];
 | 
						|
 | 
						|
  memset(m, ' ', n);      // Make margin string
 | 
						|
  m[n] = '\0';
 | 
						|
 | 
						|
  if (Name)
 | 
						|
    fprintf(f, "%sCOLUMN: %s.%s\n", m,
 | 
						|
      ((!Qualifier) ? (PSZ)"?" : Qualifier), Name);
 | 
						|
  else         // LNA
 | 
						|
    fprintf(f, "%sC%d\n", m, (!Qualifier) ? 0 : *(int *)Qualifier);
 | 
						|
 | 
						|
  PlugPutOut(g, f, TYPE_TABLE, To_Table, n + 2);
 | 
						|
  PlugPutOut(g, f, TYPE_XOBJECT, To_Col, n + 2);
 | 
						|
  } /* end of Printf */
 | 
						|
 | 
						|
/***********************************************************************/
 | 
						|
/*  Make string output of COLUMN contents.                             */
 | 
						|
/***********************************************************************/
 | 
						|
void COLUMN::Prints(PGLOBAL, char *ps, uint z)
 | 
						|
  {
 | 
						|
  char buf[80];
 | 
						|
 | 
						|
  if (Name)
 | 
						|
    sprintf(buf, "COLUMN: %s.%s table=%p col=%p",
 | 
						|
      ((!Qualifier) ? (PSZ)"?" : Qualifier), Name, To_Table, To_Col);
 | 
						|
  else         // LNA
 | 
						|
    sprintf(buf, "C%d", (!Qualifier) ? 0 : *(int *)Qualifier);
 | 
						|
 | 
						|
  strncpy(ps, buf, z);
 | 
						|
  ps[z - 1] = '\0';
 | 
						|
  } /* end of Prints */
 |