From fa5d6ac3b3c49f1dc64a5a87a3aa1a68433ab557 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 27 Aug 2004 22:31:16 +0200 Subject: Added 3 psuedo columns Cleaned up code Changed ndb_select_all ndb/include/kernel/AttributeHeader.hpp: Added commit count to psuedo columns Added bit for psuedo columns ndb/include/kernel/GlobalSignalNumbers.h: Changed into READ_PSUEDO ndb/include/ndbapi/NdbDictionary.hpp: Added 3 psuedo columns ndb/include/ndbapi/NdbOperation.hpp: Added 3 psuedo columns ndb/src/kernel/blocks/dbacc/Dbacc.hpp: Changed into READ_PSUEDO Added commit count ndb/src/kernel/blocks/dbacc/DbaccInit.cpp: Changed into READ_PSUEDO Added commit count ndb/src/kernel/blocks/dbacc/DbaccMain.cpp: Changed into READ_PSUEDO Added commit count ndb/src/kernel/blocks/dblqh/Dblqh.hpp: Changed into READ_PSUEDO Added commit count ndb/src/kernel/blocks/dblqh/DblqhInit.cpp: Changed into READ_PSUEDO Added commit count ndb/src/kernel/blocks/dblqh/DblqhMain.cpp: Changed into READ_PSUEDO Added commit count ndb/src/kernel/blocks/dbtup/Dbtup.hpp: Changed into READ_PSUEDO Added commit count ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp: Changed into READ_PSUEDO Added commit count ndb/src/kernel/blocks/dbtup/DbtupRoutines.cpp: Changed into READ_PSUEDO Added commit count ndb/src/ndbapi/NdbDictionary.cpp: Added 3 psuedo columns ndb/src/ndbapi/NdbDictionaryImpl.cpp: Added 3 psuedo columns ndb/src/ndbapi/NdbDictionaryImpl.hpp: Added 3 psuedo columns ndb/src/ndbapi/NdbOperation.cpp: Added 3 psuedo columns ndb/tools/select_count.cpp: Changed select_count into using new features --- ndb/tools/select_count.cpp | 38 ++++++++++++++------------------------ 1 file changed, 14 insertions(+), 24 deletions(-) (limited to 'ndb/tools') diff --git a/ndb/tools/select_count.cpp b/ndb/tools/select_count.cpp index 2c43af20e64..9037ba01c9d 100644 --- a/ndb/tools/select_count.cpp +++ b/ndb/tools/select_count.cpp @@ -129,50 +129,40 @@ select_count(Ndb* pNdb, const NdbDictionary::Table* pTab, return NDBT_FAILED; } - NdbResultSet * rs; - switch(lock){ - case UtilTransactions::SL_ReadHold: - rs = pOp->readTuples(NdbScanOperation::LM_Read, 0, parallelism); - break; - case UtilTransactions::SL_Exclusive: - rs = pOp->readTuples(NdbScanOperation::LM_Exclusive, 0, parallelism); - break; - case UtilTransactions::SL_Read: - default: - rs = pOp->readTuples(NdbScanOperation::LM_Dirty, 0, parallelism); - } - + NdbResultSet * rs = pOp->readTuples(NdbScanOperation::LM_Dirty); if( rs == 0 ) { ERR(pTrans->getNdbError()); pNdb->closeTransaction(pTrans); return NDBT_FAILED; } - check = pOp->interpret_exit_ok(); + + check = pOp->interpret_exit_last_row(); if( check == -1 ) { ERR(pTrans->getNdbError()); pNdb->closeTransaction(pTrans); return NDBT_FAILED; } + Uint32 tmp; + pOp->getValue(NdbDictionary::Column::ROW_COUNT, (char*)&tmp); + check = pTrans->execute(NoCommit); if( check == -1 ) { ERR(pTrans->getNdbError()); pNdb->closeTransaction(pTrans); return NDBT_FAILED; } - + + Uint64 row_count = 0; int eof; - int rows = 0; - eof = rs->nextResult(); - - while(eof == 0){ - rows++; - eof = rs->nextResult(); + while((eof = rs->nextResult(true)) == 0){ + row_count += tmp; } + if (eof == -1) { const NdbError err = pTrans->getNdbError(); - + if (err.status == NdbError::TemporaryError){ pNdb->closeTransaction(pTrans); NdbSleep_MilliSleep(50); @@ -183,11 +173,11 @@ select_count(Ndb* pNdb, const NdbDictionary::Table* pTab, pNdb->closeTransaction(pTrans); return NDBT_FAILED; } - + pNdb->closeTransaction(pTrans); if (count_rows != NULL){ - *count_rows = rows; + *count_rows = row_count; } return NDBT_OK; -- cgit v1.2.1