int CreateCallContextTable(Ndb* pNdb, const char* szTableName, bool bStored) { int iRes = -1; NdbError err; memset(&err, 0, sizeof(err)); NdbSchemaCon* pNdbSchemaCon = NdbSchemaCon::startSchemaTrans(pNdb); if(pNdbSchemaCon) { NdbSchemaOp* pNdbSchemaOp = pNdbSchemaCon->getNdbSchemaOp(); if(pNdbSchemaOp) { if(!pNdbSchemaOp->createTable(szTableName, 8, TupleKey, 2, All, 6, 78, 80, 1, bStored) && !pNdbSchemaOp->createAttribute(c_szContextId, TupleKey, 32, 1, Signed) && !pNdbSchemaOp->createAttribute(c_szVersion, NoKey, 32, 1, Signed) && !pNdbSchemaOp->createAttribute(c_szLockFlag, NoKey, 32, 1, Signed) && !pNdbSchemaOp->createAttribute(c_szLockTime, NoKey, 32, 1, Signed) && !pNdbSchemaOp->createAttribute(c_szLockTimeUSec, NoKey, 32, 1, Signed) && !pNdbSchemaOp->createAttribute(c_szContextData, NoKey, 8, g_nStatusDataSize, String)) { if(!pNdbSchemaCon->execute()) iRes = 0; else err = pNdbSchemaCon->getNdbError(); } else err = pNdbSchemaOp->getNdbError(); } else err = pNdbSchemaCon->getNdbError(); NdbSchemaCon::closeSchemaTrans(pNdbSchemaCon); } else err = pNdb->getNdbError(); if(iRes) { ReportNdbError("create call context table failed", err); } return iRes; }
int create_table_session(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( SESSION_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( SESSION_SUBSCRIBER, TupleKey, sizeof(char) << 3, SUBSCRIBER_NUMBER_LENGTH, String, MMBased, NotNullAttribute, 0, 0, 1, 16); if( check == -1 ) error_handler("createAttribute (session_subscriber)", MySchemaTransaction->getNdbError(), 0); // Create first column, primary key check = MySchemaOp->createAttribute( SESSION_SERVER, TupleKey, sizeof(ServerId) << 3, 1, UnSigned, MMBased, NotNullAttribute ); if( check == -1 ) error_handler("createAttribute (session_server)", MySchemaTransaction->getNdbError(), 0); check = MySchemaOp->createAttribute( SESSION_DATA, NoKey, sizeof(char) << 3, SESSION_DETAILS_LENGTH, String, MMBased, NotNullAttribute ); if( check == -1 ) error_handler("createAttribute (session_data)", MySchemaTransaction->getNdbError(), 0); if( MySchemaTransaction->execute() == -1 ) { error_handler("schemaTransaction->execute()", MySchemaTransaction->getNdbError(), 0); } NdbSchemaCon::closeSchemaTrans(MySchemaTransaction); return 0; }
int create_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, sizeof(char) << 3, SUBSCRIBER_NUMBER_LENGTH, String, MMBased, NotNullAttribute, 0, 0, 1, 16); if( check == -1 ) error_handler("createAttribute (subscriber number)", MySchemaTransaction->getNdbError(), 0); check = MySchemaOp->createAttribute( SUBSCRIBER_NAME, NoKey, sizeof(char) << 3, SUBSCRIBER_NAME_LENGTH, String, MMBased, NotNullAttribute ); if( check == -1 ) error_handler("createAttribute (subscriber name)", MySchemaTransaction->getNdbError(), 0); check = MySchemaOp->createAttribute( SUBSCRIBER_GROUP, NoKey, sizeof(GroupId) << 3, 1, UnSigned, MMBased, NotNullAttribute ); if( check == -1 ) error_handler("createAttribute (subscriber_group)", MySchemaTransaction->getNdbError(), 0); check = MySchemaOp->createAttribute( SUBSCRIBER_LOCATION, NoKey, sizeof(Location) << 3, 1, UnSigned, MMBased, NotNullAttribute ); if( check == -1 ) error_handler("createAttribute (server reads)", MySchemaTransaction->getNdbError(), 0); check = MySchemaOp->createAttribute( SUBSCRIBER_SESSIONS, NoKey, sizeof(ActiveSessions) << 3, 1, UnSigned, MMBased, NotNullAttribute ); if( check == -1 ) error_handler("createAttribute (subscriber_sessions)", MySchemaTransaction->getNdbError(), 0); check = MySchemaOp->createAttribute( SUBSCRIBER_CHANGED_BY, NoKey, sizeof(char) << 3, CHANGED_BY_LENGTH, String, MMBased, NotNullAttribute ); if( check == -1 ) error_handler("createAttribute (subscriber_changed_by)", MySchemaTransaction->getNdbError(), 0); check = MySchemaOp->createAttribute( SUBSCRIBER_CHANGED_TIME, NoKey, sizeof(char) << 3, CHANGED_TIME_LENGTH, String, MMBased, NotNullAttribute ); if( check == -1 ) error_handler("createAttribute (subscriber_changed_time)", MySchemaTransaction->getNdbError(), 0); if( MySchemaTransaction->execute() == -1 ) { error_handler("schemaTransaction->execute()", MySchemaTransaction->getNdbError(), 0); } NdbSchemaCon::closeSchemaTrans(MySchemaTransaction); return 0; }
int create_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( NDB_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; }
int create_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; }
void create_table(Ndb* pMyNdb) { /**************************************************************** * Create SimpleTable and Attributes. * * create table SimpleTable1( * col0 int, * col1 int not null, * col2 int not null, * col3 int not null ... 129) * ***************************************************************/ int check = -1 ; NdbSchemaOp *MySchemaOp = NULL ; ndbout << endl << "Creating " << tableName << " ... " << endl; NdbSchemaCon* MySchemaTransaction = NdbSchemaCon::startSchemaTrans(pMyNdb); if(!MySchemaTransaction) error_handler(MySchemaTransaction->getNdbError(), NO_FAIL); MySchemaOp = MySchemaTransaction->getNdbSchemaOp(); if( !MySchemaOp ) error_handler(MySchemaTransaction->getNdbError(), NO_FAIL); // Create table check = MySchemaOp->createTable( tableName, 8, // Table size TupleKey, // Key Type 40 // Nr of Pages ); if( check == -1 ) error_handler(MySchemaTransaction->getNdbError(), NO_FAIL); ndbout << "Creating attributes ... " << flush; // Create first column, primary key check = MySchemaOp->createAttribute( attrName[0], TupleKey, 32, 1/*3, tAttributeSize */, UnSigned, MMBased, NotNullAttribute ); if( check == -1 ) error_handler(MySchemaTransaction->getNdbError(), NO_FAIL); // create the 2 .. n columns. for ( int i = 1; i < MAXATTR; i++ ) { check = MySchemaOp->createAttribute( attrName[i], NoKey, 32, tAttributeSize, UnSigned, MMBased, NotNullAttribute ); if( check == -1 ) error_handler(MySchemaTransaction->getNdbError(), NO_FAIL); } ndbout << "OK" << endl; if( MySchemaTransaction->execute() == -1 ) { ndbout << MySchemaTransaction->getNdbError() << endl; } else { ndbout << tableName[0] << " created" << endl; } NdbSchemaCon::closeSchemaTrans(MySchemaTransaction); return; }