Loading ndb/src/mgmclient/CommandInterpreter.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -2119,6 +2119,7 @@ CommandInterpreter::executeStatus(int processId, } if (cl->node_states[i].node_type != NDB_MGM_NODE_TYPE_NDB){ if (cl->node_states[i].version != 0){ version = cl->node_states[i].version; ndbout << "Node "<< cl->node_states[i].node_id <<": connected" ; ndbout_c(" (Version %d.%d.%d)", getMajor(version) , Loading ndb/src/mgmsrv/ConfigInfo.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -458,7 +458,7 @@ const ConfigInfo::ParamInfo ConfigInfo::m_ParamInfo[] = { ConfigInfo::CI_INT, "128", "8", STR_VALUE(MAX_INT_RNIL) }, STR_VALUE(MAX_TABLES) }, { CFG_DB_NO_ORDERED_INDEXES, Loading ndb/src/ndbapi/NdbScanFilter.cpp +45 −1 Original line number Diff line number Diff line Loading @@ -42,7 +42,9 @@ class NdbScanFilterImpl { int m_label; State m_current; Uint32 m_negative; //used for translating NAND/NOR to AND/OR, equal 0 or 1 Vector<State> m_stack; Vector<Uint32> m_stack2; //to store info of m_negative NdbOperation * m_operation; Uint32 m_latestAttrib; Loading @@ -66,6 +68,7 @@ NdbScanFilter::NdbScanFilter(class NdbOperation * op) m_impl.m_label = 0; m_impl.m_latestAttrib = ~0; m_impl.m_operation = op; m_impl.m_negative = 0; } NdbScanFilter::~NdbScanFilter(){ Loading @@ -75,18 +78,39 @@ NdbScanFilter::~NdbScanFilter(){ int NdbScanFilter::begin(Group group){ m_impl.m_stack2.push_back(m_impl.m_negative); switch(group){ case NdbScanFilter::AND: INT_DEBUG(("Begin(AND)")); if(m_impl.m_negative == 1){ group = NdbScanFilter::OR; } break; case NdbScanFilter::OR: INT_DEBUG(("Begin(OR)")); if(m_impl.m_negative == 1){ group = NdbScanFilter::AND; } break; case NdbScanFilter::NAND: INT_DEBUG(("Begin(NAND)")); if(m_impl.m_negative == 0){ group = NdbScanFilter::OR; m_impl.m_negative = 1; }else{ group = NdbScanFilter::AND; m_impl.m_negative = 0; } break; case NdbScanFilter::NOR: INT_DEBUG(("Begin(NOR)")); if(m_impl.m_negative == 0){ group = NdbScanFilter::AND; m_impl.m_negative = 1; }else{ group = NdbScanFilter::OR; m_impl.m_negative = 0; } break; } Loading Loading @@ -130,6 +154,13 @@ NdbScanFilter::begin(Group group){ int NdbScanFilter::end(){ if(m_impl.m_stack2.size() == 0){ m_impl.m_operation->setErrorCodeAbort(4259); return -1; } m_impl.m_negative = m_impl.m_stack2.back(); m_impl.m_stack2.erase(m_impl.m_stack2.size() - 1); switch(m_impl.m_current.m_group){ case NdbScanFilter::AND: INT_DEBUG(("End(AND pc=%d)", m_impl.m_current.m_popCount)); Loading @@ -151,6 +182,10 @@ NdbScanFilter::end(){ } NdbScanFilterImpl::State tmp = m_impl.m_current; if(m_impl.m_stack.size() == 0){ m_impl.m_operation->setErrorCodeAbort(4259); return -1; } m_impl.m_current = m_impl.m_stack.back(); m_impl.m_stack.erase(m_impl.m_stack.size() - 1); Loading Loading @@ -396,7 +431,16 @@ NdbScanFilterImpl::cond_col_const(Interpreter::BinaryCondition op, return -1; } StrBranch2 branch = table3[op].m_branches[m_current.m_group]; StrBranch2 branch; if(m_negative == 1){ //change NdbOperation to its negative if(m_current.m_group == NdbScanFilter::AND) branch = table3[op].m_branches[(Uint32)(m_current.m_group) + 1]; if(m_current.m_group == NdbScanFilter::OR) branch = table3[op].m_branches[(Uint32)(m_current.m_group) - 1]; }else{ branch = table3[op].m_branches[(Uint32)(m_current.m_group)]; } const NdbDictionary::Column * col = m_operation->m_currentTable->getColumn(AttrId); Loading ndb/test/include/NDBT_Test.hpp +6 −0 Original line number Diff line number Diff line Loading @@ -325,6 +325,12 @@ public: // supply argc and argv as parameters int execute(int, const char**); // NDBT's test tables are fixed and it always create // and drop fixed table when execute, add this method // in order to run CTX only and adapt to some new // customized testsuite int executeOneCtx(Ndb_cluster_connection&, const NdbDictionary::Table* ptab, const char* testname = NULL); // These function can be used from main in the test program // to control the behaviour of the testsuite Loading ndb/test/ndbapi/Makefile.am +2 −0 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ testOperations \ testRestartGci \ testScan \ testInterpreter \ testScanFilter \ testScanInterpreter \ testScanPerf \ testSystemRestart \ Loading Loading @@ -83,6 +84,7 @@ testOperations_SOURCES = testOperations.cpp testRestartGci_SOURCES = testRestartGci.cpp testScan_SOURCES = testScan.cpp ScanFunctions.hpp testInterpreter_SOURCES = testInterpreter.cpp testScanFilter_SOURCES = testScanFilter.cpp testScanInterpreter_SOURCES = testScanInterpreter.cpp ScanFilter.hpp ScanInterpretTest.hpp testScanPerf_SOURCES = testScanPerf.cpp testSystemRestart_SOURCES = testSystemRestart.cpp Loading Loading
ndb/src/mgmclient/CommandInterpreter.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -2119,6 +2119,7 @@ CommandInterpreter::executeStatus(int processId, } if (cl->node_states[i].node_type != NDB_MGM_NODE_TYPE_NDB){ if (cl->node_states[i].version != 0){ version = cl->node_states[i].version; ndbout << "Node "<< cl->node_states[i].node_id <<": connected" ; ndbout_c(" (Version %d.%d.%d)", getMajor(version) , Loading
ndb/src/mgmsrv/ConfigInfo.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -458,7 +458,7 @@ const ConfigInfo::ParamInfo ConfigInfo::m_ParamInfo[] = { ConfigInfo::CI_INT, "128", "8", STR_VALUE(MAX_INT_RNIL) }, STR_VALUE(MAX_TABLES) }, { CFG_DB_NO_ORDERED_INDEXES, Loading
ndb/src/ndbapi/NdbScanFilter.cpp +45 −1 Original line number Diff line number Diff line Loading @@ -42,7 +42,9 @@ class NdbScanFilterImpl { int m_label; State m_current; Uint32 m_negative; //used for translating NAND/NOR to AND/OR, equal 0 or 1 Vector<State> m_stack; Vector<Uint32> m_stack2; //to store info of m_negative NdbOperation * m_operation; Uint32 m_latestAttrib; Loading @@ -66,6 +68,7 @@ NdbScanFilter::NdbScanFilter(class NdbOperation * op) m_impl.m_label = 0; m_impl.m_latestAttrib = ~0; m_impl.m_operation = op; m_impl.m_negative = 0; } NdbScanFilter::~NdbScanFilter(){ Loading @@ -75,18 +78,39 @@ NdbScanFilter::~NdbScanFilter(){ int NdbScanFilter::begin(Group group){ m_impl.m_stack2.push_back(m_impl.m_negative); switch(group){ case NdbScanFilter::AND: INT_DEBUG(("Begin(AND)")); if(m_impl.m_negative == 1){ group = NdbScanFilter::OR; } break; case NdbScanFilter::OR: INT_DEBUG(("Begin(OR)")); if(m_impl.m_negative == 1){ group = NdbScanFilter::AND; } break; case NdbScanFilter::NAND: INT_DEBUG(("Begin(NAND)")); if(m_impl.m_negative == 0){ group = NdbScanFilter::OR; m_impl.m_negative = 1; }else{ group = NdbScanFilter::AND; m_impl.m_negative = 0; } break; case NdbScanFilter::NOR: INT_DEBUG(("Begin(NOR)")); if(m_impl.m_negative == 0){ group = NdbScanFilter::AND; m_impl.m_negative = 1; }else{ group = NdbScanFilter::OR; m_impl.m_negative = 0; } break; } Loading Loading @@ -130,6 +154,13 @@ NdbScanFilter::begin(Group group){ int NdbScanFilter::end(){ if(m_impl.m_stack2.size() == 0){ m_impl.m_operation->setErrorCodeAbort(4259); return -1; } m_impl.m_negative = m_impl.m_stack2.back(); m_impl.m_stack2.erase(m_impl.m_stack2.size() - 1); switch(m_impl.m_current.m_group){ case NdbScanFilter::AND: INT_DEBUG(("End(AND pc=%d)", m_impl.m_current.m_popCount)); Loading @@ -151,6 +182,10 @@ NdbScanFilter::end(){ } NdbScanFilterImpl::State tmp = m_impl.m_current; if(m_impl.m_stack.size() == 0){ m_impl.m_operation->setErrorCodeAbort(4259); return -1; } m_impl.m_current = m_impl.m_stack.back(); m_impl.m_stack.erase(m_impl.m_stack.size() - 1); Loading Loading @@ -396,7 +431,16 @@ NdbScanFilterImpl::cond_col_const(Interpreter::BinaryCondition op, return -1; } StrBranch2 branch = table3[op].m_branches[m_current.m_group]; StrBranch2 branch; if(m_negative == 1){ //change NdbOperation to its negative if(m_current.m_group == NdbScanFilter::AND) branch = table3[op].m_branches[(Uint32)(m_current.m_group) + 1]; if(m_current.m_group == NdbScanFilter::OR) branch = table3[op].m_branches[(Uint32)(m_current.m_group) - 1]; }else{ branch = table3[op].m_branches[(Uint32)(m_current.m_group)]; } const NdbDictionary::Column * col = m_operation->m_currentTable->getColumn(AttrId); Loading
ndb/test/include/NDBT_Test.hpp +6 −0 Original line number Diff line number Diff line Loading @@ -325,6 +325,12 @@ public: // supply argc and argv as parameters int execute(int, const char**); // NDBT's test tables are fixed and it always create // and drop fixed table when execute, add this method // in order to run CTX only and adapt to some new // customized testsuite int executeOneCtx(Ndb_cluster_connection&, const NdbDictionary::Table* ptab, const char* testname = NULL); // These function can be used from main in the test program // to control the behaviour of the testsuite Loading
ndb/test/ndbapi/Makefile.am +2 −0 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ testOperations \ testRestartGci \ testScan \ testInterpreter \ testScanFilter \ testScanInterpreter \ testScanPerf \ testSystemRestart \ Loading Loading @@ -83,6 +84,7 @@ testOperations_SOURCES = testOperations.cpp testRestartGci_SOURCES = testRestartGci.cpp testScan_SOURCES = testScan.cpp ScanFunctions.hpp testInterpreter_SOURCES = testInterpreter.cpp testScanFilter_SOURCES = testScanFilter.cpp testScanInterpreter_SOURCES = testScanInterpreter.cpp ScanFilter.hpp ScanInterpretTest.hpp testScanPerf_SOURCES = testScanPerf.cpp testSystemRestart_SOURCES = testSystemRestart.cpp Loading