⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 userinterface.cpp

📁 mysql-5.0.22.tar.gz源码包
💻 CPP
📖 第 1 页 / 共 2 页
字号:
/* Copyright (C) 2003 MySQL AB   This program is free software; you can redistribute it and/or modify   it under the terms of the GNU General Public License as published by   the Free Software Foundation; either version 2 of the License, or   (at your option) any later version.   This program is distributed in the hope that it will be useful,   but WITHOUT ANY WARRANTY; without even the implied warranty of   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the   GNU General Public License for more details.   You should have received a copy of the GNU General Public License   along with this program; if not, write to the Free Software   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA *//**************************************************************** I N C L U D E D   F I L E S                                  ****************************************************************/#include <ndb_global.h>#ifndef NDB_WIN32#include <sys/time.h>#endif#include "ndb_error.hpp"#include "userInterface.h"#include <NdbThread.h>#include <NdbTick.h>#include <NdbMutex.h>#include <NdbSleep.h>#include "ndb_schema.hpp"#include <NDBT.hpp>#include <NdbSchemaCon.hpp>/**************************************************************** L O C A L   C O N S T A N T S                                ****************************************************************//**************************************************************** L O C A L   D A T A   S T R U C T U R E S                    ****************************************************************//**************************************************************** L O C A L   F U N C T I O N S                                ****************************************************************/extern int localDbPrepare(UserHandle *uh);static int dbCreate(UserHandle *uh);/**************************************************************** L O C A L   D A T A                                          ****************************************************************//**************************************************************** P U B L I C   D A T A                                        ****************************************************************//******************************************************************************************************************************** L O C A L   F U N C T I O N S   C O D E   S E C T I O N      ********************************************************************************************************************************//******************************************************************************************************************************** P U B L I C   F U N C T I O N S   C O D E   S E C T I O N    ********************************************************************************************************************************//*-----------------------------------*//* Time related Functions            *//*                                   *//* Returns a double value in seconds *//*-----------------------------------*/double userGetTimeSync(void){  static int initialized = 0;  static NDB_TICKS initSecs = 0;  static Uint32 initMicros = 0;  double timeValue = 0;  if ( !initialized ) {    initialized = 1;    NdbTick_CurrentMicrosecond(&initSecs, &initMicros);      timeValue = 0.0;  } else {    NDB_TICKS secs = 0;    Uint32 micros = 0;      NdbTick_CurrentMicrosecond(&secs, &micros);    double s  = (double)secs  - (double)initSecs;    double us = (double)secs - (double)initMicros;        timeValue = s + (us / 1000000.0);  }  return timeValue;}// 0 - OK// 1 - Retry transaction// 2 - Permanentint userDbCommit(UserHandle *uh){  if(uh->pCurrTrans != 0){    int check = uh->pCurrTrans->execute( Commit );     NdbError err = uh->pCurrTrans->getNdbError();    uh->pNDB->closeTransaction(uh->pCurrTrans);    uh->pCurrTrans = 0;        if(err.status != NdbError::Success)      ndbout << err << endl;        if(err.status == NdbError::TemporaryError &&        err.classification == NdbError::OverloadError){      NdbSleep_SecSleep(3);    }        return err.status;  }  return 2;}/** * TRUE - Normal table * FALSE - Table w.o. checkpoing and logging */#ifdef	__cplusplusextern "C" {#endifextern int useTableLogging;#ifdef	__cplusplus}#endifintcreate_table_server(Ndb * pNdb){  int check;  NdbSchemaCon * MySchemaTransaction = NdbSchemaCon::startSchemaTrans(pNdb);  if( MySchemaTransaction == NULL )    error_handler("startSchemaTransaction", pNdb->getNdbError(), 0);    NdbSchemaOp * MySchemaOp = MySchemaTransaction->getNdbSchemaOp();	  if( MySchemaOp == NULL )     error_handler("getNdbSchemaOp", MySchemaTransaction->getNdbError(), 0);    // Create table  check = MySchemaOp->createTable( SERVER_TABLE,				   8,	     	// Table size				   TupleKey,	// Key Type				   1		// Nr of Pages				   ,DistributionGroup,				   6,				   78,				   80,				   1,				   useTableLogging                                   );  if( check == -1 )     error_handler("createTable", MySchemaTransaction->getNdbError(), 0);    check = MySchemaOp->createAttribute    ( SERVER_SUBSCRIBER_SUFFIX,      TupleKey,       sizeof(char) << 3,      SUBSCRIBER_NUMBER_SUFFIX_LENGTH,      String,       MMBased,      NotNullAttribute,      0,      0,      1,      16);  if( check == -1 )     error_handler("createAttribute (subscriber suffix)", 		  MySchemaTransaction->getNdbError(), 0);  // Create first column, primary key   check = MySchemaOp->createAttribute( SERVER_ID,				       TupleKey, 				       sizeof(ServerId) << 3,				       1,				       UnSigned, 				       MMBased,				       NotNullAttribute );  if( check == -1 )     error_handler("createAttribute (serverid)", 		  MySchemaTransaction->getNdbError(), 0);  check = MySchemaOp->createAttribute( SERVER_NAME,				       NoKey, 				       sizeof(char) << 3,				       SERVER_NAME_LENGTH,				       String, 				       MMBased,				       NotNullAttribute );  if( check == -1 )     error_handler("createAttribute (server name)", 		  MySchemaTransaction->getNdbError(), 0);    check = MySchemaOp->createAttribute( SERVER_READS,				       NoKey, 				       sizeof(Counter) << 3,				       1,				       UnSigned,				       MMBased,				       NotNullAttribute );  if( check == -1 )     error_handler("createAttribute (server reads)", 		  MySchemaTransaction->getNdbError(), 0);  check = MySchemaOp->createAttribute( SERVER_INSERTS,				       NoKey, 				       sizeof(Counter) << 3,				       1,				       UnSigned,				       MMBased,				       NotNullAttribute );  if( check == -1 )     error_handler("createAttribute (server inserts)", 		  MySchemaTransaction->getNdbError(), 0);  check = MySchemaOp->createAttribute( SERVER_DELETES,				       NoKey, 				       sizeof(Counter) << 3,				       1,				       UnSigned,				       MMBased,				       NotNullAttribute );  if( check == -1 )     error_handler("createAttribute (server deletes)", 		  MySchemaTransaction->getNdbError(), 0);    if( MySchemaTransaction->execute() == -1 ) {    error_handler("schemaTransaction->execute()", 		  MySchemaTransaction->getNdbError(), 0);  }      NdbSchemaCon::closeSchemaTrans(MySchemaTransaction);  return 0;}intcreate_table_group(Ndb * pNdb){  int check;  NdbSchemaCon * MySchemaTransaction = NdbSchemaCon::startSchemaTrans(pNdb);  if( MySchemaTransaction == NULL )    error_handler("startSchemaTransaction", pNdb->getNdbError(), 0);    NdbSchemaOp * MySchemaOp = MySchemaTransaction->getNdbSchemaOp();	  if( MySchemaOp == NULL )     error_handler("getNdbSchemaOp", MySchemaTransaction->getNdbError(), 0);    // Create table  check = MySchemaOp->createTable( GROUP_TABLE,				   8,	     	// Table size				   TupleKey,	// Key Type				   1		// Nr of Pages				   ,All,				   6,				   78,				   80,				   1,				   useTableLogging                                   );  if( check == -1 )     error_handler("createTable", MySchemaTransaction->getNdbError(), 0);    // Create first column, primary key   check = MySchemaOp->createAttribute( GROUP_ID,				       TupleKey, 				       sizeof(GroupId) << 3,				       1,				       UnSigned, 				       MMBased,				       NotNullAttribute );  if( check == -1 )     error_handler("createAttribute (group id)", 		  MySchemaTransaction->getNdbError(), 0);  check = MySchemaOp->createAttribute( GROUP_NAME,				       NoKey,				       sizeof(char) << 3,				       GROUP_NAME_LENGTH,				       String, 				       MMBased,				       NotNullAttribute );  if( check == -1 )     error_handler("createAttribute (group name)", 		  MySchemaTransaction->getNdbError(), 0);    check = MySchemaOp->createAttribute( GROUP_ALLOW_READ,				       NoKey, 				       sizeof(Permission) << 3,				       1,				       String, 				       MMBased,				       NotNullAttribute );  if( check == -1 )     error_handler("createAttribute (group read)", 		  MySchemaTransaction->getNdbError(), 0);    check = MySchemaOp->createAttribute( GROUP_ALLOW_INSERT,				       NoKey, 				       sizeof(Permission) << 3,				       1,				       UnSigned,				       MMBased,				       NotNullAttribute );  if( check == -1 )     error_handler("createAttribute (group insert)", 		  MySchemaTransaction->getNdbError(), 0);  check = MySchemaOp->createAttribute( GROUP_ALLOW_DELETE,				       NoKey, 				       sizeof(Permission) << 3,				       1,				       UnSigned,				       MMBased,				       NotNullAttribute );  if( check == -1 )     error_handler("createAttribute (group delete)", 		  MySchemaTransaction->getNdbError(), 0);    if( MySchemaTransaction->execute() == -1 ) {    error_handler("schemaTransaction->execute()", 		  MySchemaTransaction->getNdbError(), 0);  }      NdbSchemaCon::closeSchemaTrans(MySchemaTransaction);  return 0;}intcreate_table_subscriber(Ndb * pNdb){  int check;  NdbSchemaCon * MySchemaTransaction = NdbSchemaCon::startSchemaTrans(pNdb);  if( MySchemaTransaction == NULL )    error_handler("startSchemaTransaction", pNdb->getNdbError(), 0);    NdbSchemaOp * MySchemaOp = MySchemaTransaction->getNdbSchemaOp();	  if( MySchemaOp == NULL )     error_handler("getNdbSchemaOp", MySchemaTransaction->getNdbError(), 0);    // Create table  check = MySchemaOp->createTable( SUBSCRIBER_TABLE,				   8,	     	// Table size				   TupleKey,	// Key Type				   1		// Nr of Pages				   ,DistributionGroup,				   6,				   78,				   80,				   1,				   useTableLogging                                   );  if( check == -1 )     error_handler("createTable", MySchemaTransaction->getNdbError(), 0);    // Create first column, primary key   check = MySchemaOp->createAttribute    ( SUBSCRIBER_NUMBER,      TupleKey, 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -