diff --git a/demo/makefile b/demo/makefile index 81a50a0..0484e7f 100755 --- a/demo/makefile +++ b/demo/makefile @@ -17,9 +17,10 @@ GROUP=group EXTREME=extreme TRUNCATE=truncate DROP=drop +CLICK=click PRESSURE=press_demo -all: $(CREATE) $(INSERT) $(SELECT) $(QUERY) $(DELETE) $(UPDATE) $(COUNT) $(GROUP) $(EXTREME) $(TRUNCATE) $(DROP) $(PRESSURE) clean +all: $(CREATE) $(INSERT) $(SELECT) $(QUERY) $(DELETE) $(UPDATE) $(COUNT) $(GROUP) $(EXTREME) $(TRUNCATE) $(DROP) $(PRESSURE) $(CLICK) clean $(CREATE): create.o $(CC) -o $@ $< $(LIBDIR) $(INSERT): insert.o @@ -42,6 +43,8 @@ $(TRUNCATE): truncate.o $(CC) -o $@ $< $(LIBDIR) $(DROP): drop.o $(CC) -o $@ $< $(LIBDIR) +$(CLICK): click.o + $(CC) -o $@ $< $(LIBDIR) $(PRESSURE): press_demo.o $(CC) -o $@ $< $(LIBDIR) diff --git a/src/detvm.c b/src/detvm.c index 654dbd1..f67ed1b 100644 --- a/src/detvm.c +++ b/src/detvm.c @@ -318,10 +318,10 @@ void vGetAction(char *s, long *plAction) *************************************************************************************************/ void vPrintFunc(char *s) { - fprintf(stdout, "\nUsage:\t%s -[tpu][hugldtui]\n", s); + fprintf(stdout, "\nUsage:\t%s -[tpr][hugldtui]\n", s); fprintf(stdout, "\t-t\t\t--table\n"); fprintf(stdout, "\t-p[hugldta]\t--debug\n"); - fprintf(stdout, "\t-u(ui)\t\t--reset lock\n"); + fprintf(stdout, "\t-r\t\t--reset lock\n"); fprintf(stdout, "\n"); } @@ -367,7 +367,7 @@ int main(int argc, char *argv[]) int iChoose = 0, iAction = 0; memset(szCom, 0, sizeof(szCom)); - while(-1 != (iChoose = getopt(argc, argv, "t:p:u::v?::"))) + while(-1 != (iChoose = getopt(argc, argv, "t:p:r::v?::"))) { switch(iChoose) { @@ -375,11 +375,7 @@ int main(int argc, char *argv[]) iAction |= 1; t = atol(optarg); break; - case 'u': - if(!optarg) - strcpy(szCom, "u"); - else - strcpy(szCom, optarg); + case 'r': iAction |= 2; break; case 'p': diff --git a/src/tree.c b/src/tree.c index 0cae96c..3d6070e 100644 --- a/src/tree.c +++ b/src/tree.c @@ -5256,6 +5256,7 @@ long _lSelectTruck(SATvm *pstSavm, void *pvAddr, TABLE t, void *psvOut, size_ memcpy(psvOut, pvData, lGetRowSize(pstSavm->tblName)); pthread_rwlock_unlock(prwLock); pstTruck->m_lTimes ++; + return RC_SUCC; } @@ -5799,7 +5800,6 @@ long _lQueryHash(SATvm *pstSavm, void *pvAddr, TABLE t, size_t *plOut, void * continue; } - pstTruck->m_lTimes ++; lPos = (++ (*plOut)) * lGetRowSize(t); if(NULL == (*ppsvOut = (char *)realloc(*ppsvOut, lPos))) { @@ -5867,7 +5867,6 @@ long _lQueryGroup(SATvm *pstSavm, void *pvAddr, TABLE t, size_t *plOut, void continue; } - pstTruck->m_lTimes ++; lPos = (++ (*plOut)) * lGetRowSize(t); if(NULL == (*ppsvOut = (char *)realloc(*ppsvOut, lPos))) { @@ -7296,6 +7295,7 @@ long _lUpdateIndex(SATvm *pstSavm, void *pvAddr, TABLE t, void *pvUpdate) } pstSavm->pstVoid = pvUpdate; + pstTruck->m_lTimes ++; SET_DATA_TRUCK(pstTruck, DATA_TRUCK_NULL); if(!memcmp(szIdx, szOld, MAX_INDEX_LEN)) { @@ -9977,16 +9977,23 @@ long lMountTable(SATvm *pstSavm, char *pszFile) goto MOUNT_ERROR; } + lEffect ++; if(RC_SUCC != __lInsert(pstSavm, pstRun->m_pvAddr, pstSavm->tblName, uTimes)) + { + fprintf(stderr, "=>警告, 导入表:%s 第(%ld)条记录错误, %s, 跳过..\n", + sGetTableName(stTde.m_table), lEffect, sGetTError(pstSavm->m_lErrno)); continue; + } - lEffect ++; + pstSavm->m_lEffect ++; } fclose(fp); TFree(pvData); - pstSavm->m_lEffect = lEffect; pthread_rwlock_unlock(prwLock); vTblDisconnect(pstSavm, pstSavm->tblName); + + fprintf(stdout, "导入表:%s 有效记录:%ld, completed successfully !!\n", + sGetTableName(stTde.m_table), lEffect); return RC_SUCC; MOUNT_ERROR: