add function-Replace transcation
parent
3bd719bc31
commit
f7f0eeb042
33
src/tcp.c
33
src/tcp.c
|
@ -154,11 +154,11 @@ void vTraceLog(const char *pszFile, int nLine, const char *fmt, ...)
|
||||||
ptm = localtime(&tb.time);
|
ptm = localtime(&tb.time);
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
fprintf(fp, "F=%-8s L=%-5d P=%-7d T=%-7ld T=%04d%02d%02d %02d%02d%02d:%03d %s\n",
|
fprintf(fp, "F=%-8s L=%-5d P=%-7d T=%-7ld D=%04d%02d%02d %02d%02d%02d:%03d %s\n",
|
||||||
pszFile, nLine, getpid(), syscall(SYS_gettid), ptm->tm_year + 1900, ptm->tm_mon + 1,
|
pszFile, nLine, getpid(), syscall(SYS_gettid), ptm->tm_year + 1900, ptm->tm_mon + 1,
|
||||||
ptm->tm_mday, ptm->tm_hour, ptm->tm_min, ptm->tm_sec, tb.millitm, szMsg);
|
ptm->tm_mday, ptm->tm_hour, ptm->tm_min, ptm->tm_sec, tb.millitm, szMsg);
|
||||||
#else
|
#else
|
||||||
fprintf(fp, "P=%-7d T=%-7ld T=%04d%02d%02d %02d%02d%02d:%03d %s\n",
|
fprintf(fp, "P=%d|T=%-7ld|D=%04d%02d%02d %02d%02d%02d:%03d %s\n",
|
||||||
getpid(), syscall(SYS_gettid), ptm->tm_year + 1900, ptm->tm_mon + 1,
|
getpid(), syscall(SYS_gettid), ptm->tm_year + 1900, ptm->tm_mon + 1,
|
||||||
ptm->tm_mday, ptm->tm_hour, ptm->tm_min, ptm->tm_sec, tb.millitm, szMsg);
|
ptm->tm_mday, ptm->tm_hour, ptm->tm_min, ptm->tm_sec, tb.millitm, szMsg);
|
||||||
#endif
|
#endif
|
||||||
|
@ -1378,10 +1378,7 @@ long lEventOperate(SATvm *pstSavm, SKCon *pstCon, TFace *pstFace, char *pvDat
|
||||||
pstSavm->m_bWork = pstCon->m_bWork;
|
pstSavm->m_bWork = pstCon->m_bWork;
|
||||||
pstSavm->m_pstWork = pstCon->m_pstWork;
|
pstSavm->m_pstWork = pstCon->m_pstWork;
|
||||||
if(RC_SUCC != lReplace(pstSavm, pvData))
|
if(RC_SUCC != lReplace(pstSavm, pvData))
|
||||||
{
|
|
||||||
pstFace->m_lErrno = pstSavm->m_lErrno;
|
pstFace->m_lErrno = pstSavm->m_lErrno;
|
||||||
Tlog("TvmReplace error, %d, %s", pstSavm->m_lErrno, sGetTError(pstSavm->m_lErrno));
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
pstFace->m_lRows = pstSavm->m_lEffect;
|
pstFace->m_lRows = pstSavm->m_lEffect;
|
||||||
|
@ -1394,10 +1391,7 @@ long lEventOperate(SATvm *pstSavm, SKCon *pstCon, TFace *pstFace, char *pvDat
|
||||||
pstSavm->m_bWork = pstCon->m_bWork;
|
pstSavm->m_bWork = pstCon->m_bWork;
|
||||||
pstSavm->m_pstWork = pstCon->m_pstWork;
|
pstSavm->m_pstWork = pstCon->m_pstWork;
|
||||||
if(RC_SUCC != lUpdate(pstSavm, pvData))
|
if(RC_SUCC != lUpdate(pstSavm, pvData))
|
||||||
{
|
|
||||||
pstFace->m_lErrno = pstSavm->m_lErrno;
|
pstFace->m_lErrno = pstSavm->m_lErrno;
|
||||||
Tlog("TvmUpdate error, %d, %s", pstSavm->m_lErrno, sGetTError(pstSavm->m_lErrno));
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
pstFace->m_lRows = pstSavm->m_lEffect;
|
pstFace->m_lRows = pstSavm->m_lEffect;
|
||||||
|
@ -1410,10 +1404,7 @@ long lEventOperate(SATvm *pstSavm, SKCon *pstCon, TFace *pstFace, char *pvDat
|
||||||
pstSavm->m_bWork = pstCon->m_bWork;
|
pstSavm->m_bWork = pstCon->m_bWork;
|
||||||
pstSavm->m_pstWork = pstCon->m_pstWork;
|
pstSavm->m_pstWork = pstCon->m_pstWork;
|
||||||
if(RC_SUCC != lDelete(pstSavm))
|
if(RC_SUCC != lDelete(pstSavm))
|
||||||
{
|
|
||||||
pstFace->m_lErrno = pstSavm->m_lErrno;
|
pstFace->m_lErrno = pstSavm->m_lErrno;
|
||||||
Tlog("TvmDelete error, %d, %s", pstSavm->m_lErrno, sGetTError(pstSavm->m_lErrno));
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
pstFace->m_lDLen = pstSavm->m_lEType;
|
pstFace->m_lDLen = pstSavm->m_lEType;
|
||||||
|
@ -1427,39 +1418,28 @@ long lEventOperate(SATvm *pstSavm, SKCon *pstCon, TFace *pstFace, char *pvDat
|
||||||
pstSavm->m_pstWork = pstCon->m_pstWork;
|
pstSavm->m_pstWork = pstCon->m_pstWork;
|
||||||
if(RC_SUCC == lReplace(pstSavm, pvData))
|
if(RC_SUCC == lReplace(pstSavm, pvData))
|
||||||
pstCon->m_pstWork = pstSavm->m_pstWork;
|
pstCon->m_pstWork = pstSavm->m_pstWork;
|
||||||
else
|
|
||||||
Tlog("AsyReplace error, %d, %s", pstSavm->m_lErrno, sGetTError(pstSavm->m_lErrno));
|
|
||||||
return RC_SUCC;
|
return RC_SUCC;
|
||||||
case OPERAYS_UPDATE:
|
case OPERAYS_UPDATE:
|
||||||
pstSavm->m_bWork = pstCon->m_bWork;
|
pstSavm->m_bWork = pstCon->m_bWork;
|
||||||
pstSavm->m_pstWork = pstCon->m_pstWork;
|
pstSavm->m_pstWork = pstCon->m_pstWork;
|
||||||
if(RC_SUCC == lUpdate(pstSavm, pvData))
|
if(RC_SUCC == lUpdate(pstSavm, pvData))
|
||||||
pstCon->m_pstWork = pstSavm->m_pstWork;
|
pstCon->m_pstWork = pstSavm->m_pstWork;
|
||||||
else
|
|
||||||
Tlog("AsyUpdate error, %d, %s", pstSavm->m_lErrno, sGetTError(pstSavm->m_lErrno));
|
|
||||||
return RC_SUCC;
|
return RC_SUCC;
|
||||||
case OPERAYS_DELETE:
|
case OPERAYS_DELETE:
|
||||||
pstSavm->m_bWork = pstCon->m_bWork;
|
pstSavm->m_bWork = pstCon->m_bWork;
|
||||||
pstSavm->m_pstWork = pstCon->m_pstWork;
|
pstSavm->m_pstWork = pstCon->m_pstWork;
|
||||||
if(RC_SUCC == lDelete(pstSavm))
|
if(RC_SUCC == lDelete(pstSavm))
|
||||||
pstCon->m_pstWork = pstSavm->m_pstWork;
|
pstCon->m_pstWork = pstSavm->m_pstWork;
|
||||||
else
|
|
||||||
Tlog("AsyDelete error, %d, %s", pstSavm->m_lErrno, sGetTError(pstSavm->m_lErrno));
|
|
||||||
return RC_SUCC;
|
return RC_SUCC;
|
||||||
case OPERAYS_QUEPUSH:
|
case OPERAYS_QUEPUSH:
|
||||||
if(RC_SUCC != lPush(pstSavm))
|
if(RC_SUCC != lPush(pstSavm))
|
||||||
{
|
|
||||||
Tlog("Asypush error, %d, %s", pstSavm->m_lErrno, sGetTError(pstSavm->m_lErrno));
|
|
||||||
pstFace->m_lRows = pstSavm->m_lEffect;
|
pstFace->m_lRows = pstSavm->m_lEffect;
|
||||||
}
|
|
||||||
return RC_SUCC;
|
return RC_SUCC;
|
||||||
case OPERAYS_INSERT:
|
case OPERAYS_INSERT:
|
||||||
pstSavm->m_bWork = pstCon->m_bWork;
|
pstSavm->m_bWork = pstCon->m_bWork;
|
||||||
pstSavm->m_pstWork = pstCon->m_pstWork;
|
pstSavm->m_pstWork = pstCon->m_pstWork;
|
||||||
if(RC_SUCC == lInsert(pstSavm))
|
if(RC_SUCC == lInsert(pstSavm))
|
||||||
pstCon->m_pstWork = pstSavm->m_pstWork;
|
pstCon->m_pstWork = pstSavm->m_pstWork;
|
||||||
else
|
|
||||||
Tlog("AsyInsert error, %d, %s", pstSavm->m_lErrno, sGetTError(pstSavm->m_lErrno));
|
|
||||||
return RC_SUCC;
|
return RC_SUCC;
|
||||||
case OPERATE_QUEPOPS:
|
case OPERATE_QUEPOPS:
|
||||||
lPopup(pstSavm, pstFace->m_lFind, pstFace->m_lErrno, (size_t *)&pstFace->m_lRows,
|
lPopup(pstSavm, pstFace->m_lFind, pstFace->m_lErrno, (size_t *)&pstFace->m_lRows,
|
||||||
|
@ -1491,10 +1471,7 @@ long lEventOperate(SATvm *pstSavm, SKCon *pstCon, TFace *pstFace, char *pvDat
|
||||||
return RC_SUCC;
|
return RC_SUCC;
|
||||||
case OPERATE_QUEPUSH:
|
case OPERATE_QUEPUSH:
|
||||||
if(RC_SUCC != lPush(pstSavm))
|
if(RC_SUCC != lPush(pstSavm))
|
||||||
{
|
|
||||||
pstFace->m_lErrno = pstSavm->m_lErrno;
|
pstFace->m_lErrno = pstSavm->m_lErrno;
|
||||||
Tlog("TvmPush error, %d, %s", pstSavm->m_lErrno, sGetTError(pstSavm->m_lErrno));
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
pstFace->m_lRows = pstSavm->m_lEffect;
|
pstFace->m_lRows = pstSavm->m_lEffect;
|
||||||
lSendBuffer(pstCon->m_skSock, (void *)pstFace, sizeof(TFace));
|
lSendBuffer(pstCon->m_skSock, (void *)pstFace, sizeof(TFace));
|
||||||
|
@ -1503,10 +1480,7 @@ long lEventOperate(SATvm *pstSavm, SKCon *pstCon, TFace *pstFace, char *pvDat
|
||||||
pstSavm->m_bWork = pstCon->m_bWork;
|
pstSavm->m_bWork = pstCon->m_bWork;
|
||||||
pstSavm->m_pstWork = pstCon->m_pstWork;
|
pstSavm->m_pstWork = pstCon->m_pstWork;
|
||||||
if(RC_SUCC != lInsert(pstSavm))
|
if(RC_SUCC != lInsert(pstSavm))
|
||||||
{
|
|
||||||
pstFace->m_lErrno = pstSavm->m_lErrno;
|
pstFace->m_lErrno = pstSavm->m_lErrno;
|
||||||
Tlog("TvmInsert error, %d, %s", pstSavm->m_lErrno, sGetTError(pstSavm->m_lErrno));
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
pstFace->m_lRows = pstSavm->m_lEffect;
|
pstFace->m_lRows = pstSavm->m_lEffect;
|
||||||
pstCon->m_pstWork = pstSavm->m_pstWork;
|
pstCon->m_pstWork = pstSavm->m_pstWork;
|
||||||
|
@ -1514,10 +1488,7 @@ long lEventOperate(SATvm *pstSavm, SKCon *pstCon, TFace *pstFace, char *pvDat
|
||||||
return RC_SUCC;
|
return RC_SUCC;
|
||||||
case OPERATE_TRCATE:
|
case OPERATE_TRCATE:
|
||||||
if(RC_SUCC != lTruncate(pstSavm, pstFace->m_table))
|
if(RC_SUCC != lTruncate(pstSavm, pstFace->m_table))
|
||||||
{
|
|
||||||
pstFace->m_lErrno = pstSavm->m_lErrno;
|
pstFace->m_lErrno = pstSavm->m_lErrno;
|
||||||
Tlog("TvmTruncate error, %d, %s", pstSavm->m_lErrno, sGetTError(pstSavm->m_lErrno));
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
pstFace->m_lRows = pstSavm->m_lEffect;
|
pstFace->m_lRows = pstSavm->m_lEffect;
|
||||||
lSendBuffer(pstCon->m_skSock, (void *)pstFace, sizeof(TFace));
|
lSendBuffer(pstCon->m_skSock, (void *)pstFace, sizeof(TFace));
|
||||||
|
|
38
src/tree.c
38
src/tree.c
|
@ -10441,12 +10441,12 @@ long _lReplaceIndex(SATvm *pstSavm, RunTime *pstRun, TABLE t, void *pvUpdate)
|
||||||
|
|
||||||
if(NULL == (pstTree = (SHTree *)pSearchTree(pvAddr, pstRoot, szOld, lGetIdxLen(t))))
|
if(NULL == (pstTree = (SHTree *)pSearchTree(pvAddr, pstRoot, szOld, lGetIdxLen(t))))
|
||||||
{
|
{
|
||||||
// If don't find it, so insert
|
TFree(pvData);
|
||||||
pstSavm->pstVoid = pvUpdate;
|
pstSavm->pstVoid = pvUpdate;
|
||||||
lRet = __lInsert(pstSavm, pstRun, t, 0);
|
lRet = __lInsert(pstSavm, pstRun, t, 0);
|
||||||
pthread_rwlock_unlock(prwLock);
|
pthread_rwlock_unlock(prwLock);
|
||||||
TFree(pvData);
|
if(RC_SUCC != lRet) return RC_FAIL;
|
||||||
return lRet;
|
return lRecordWork(pstSavm, pstSavm->pstVoid, OPERATE_INSERT);
|
||||||
}
|
}
|
||||||
|
|
||||||
lData = pstTree->m_lData;
|
lData = pstTree->m_lData;
|
||||||
|
@ -10593,11 +10593,11 @@ long _lReplaceGroup(SATvm *pstSavm, RunTime *pstRun, TABLE t, void *pvUpdate)
|
||||||
if(NULL == (pstTree = pSearchTree(pvAddr, pstRoot, szOld, lGetGrpLen(t))))
|
if(NULL == (pstTree = pSearchTree(pvAddr, pstRoot, szOld, lGetGrpLen(t))))
|
||||||
{
|
{
|
||||||
TFree(pvData);
|
TFree(pvData);
|
||||||
// If don't find it, then insert
|
|
||||||
pstSavm->pstVoid = pvUpdate;
|
pstSavm->pstVoid = pvUpdate;
|
||||||
lNext = __lInsert(pstSavm, pstRun, t, 0);
|
lNext = __lInsert(pstSavm, pstRun, t, 0);
|
||||||
pthread_rwlock_unlock(prwLock);
|
pthread_rwlock_unlock(prwLock);
|
||||||
return lNext;
|
if(RC_SUCC != lNext) return RC_FAIL;
|
||||||
|
return lRecordWork(pstSavm, pstSavm->pstVoid, OPERATE_INSERT);
|
||||||
}
|
}
|
||||||
|
|
||||||
pstSavm->m_lEffect = 0;
|
pstSavm->m_lEffect = 0;
|
||||||
|
@ -10677,12 +10677,12 @@ long _lReplaceGroup(SATvm *pstSavm, RunTime *pstRun, TABLE t, void *pvUpdate)
|
||||||
|
|
||||||
if(0 == pstSavm->m_lEffect)
|
if(0 == pstSavm->m_lEffect)
|
||||||
{
|
{
|
||||||
// If don't find it, then insert
|
TFree(pvData);
|
||||||
pstSavm->pstVoid = pvUpdate;
|
pstSavm->pstVoid = pvUpdate;
|
||||||
lNext = __lInsert(pstSavm, pstRun, t, 0);
|
lNext = __lInsert(pstSavm, pstRun, t, 0);
|
||||||
pthread_rwlock_unlock(prwLock);
|
pthread_rwlock_unlock(prwLock);
|
||||||
TFree(pvData);
|
if(RC_SUCC != lNext) return RC_FAIL;
|
||||||
return lNext;
|
return lRecordWork(pstSavm, pstSavm->pstVoid, OPERATE_INSERT);
|
||||||
}
|
}
|
||||||
|
|
||||||
pthread_rwlock_unlock(prwLock);
|
pthread_rwlock_unlock(prwLock);
|
||||||
|
@ -10738,12 +10738,12 @@ long _lReplaceHash(SATvm *pstSavm, RunTime *pstRun, TABLE t, void *pvUpdate)
|
||||||
|
|
||||||
if(NULL == (pstHash = (SHTree *)(pvAddr + lOffset)))
|
if(NULL == (pstHash = (SHTree *)(pvAddr + lOffset)))
|
||||||
{
|
{
|
||||||
// If don't find it, then insert
|
|
||||||
pstSavm->pstVoid = pvUpdate;
|
|
||||||
lNext = __lInsert(pstSavm, pstRun, t, 0);
|
|
||||||
pthread_rwlock_unlock(prwLock);
|
|
||||||
TFree(pvData);
|
TFree(pvData);
|
||||||
return lNext;
|
pstSavm->pstVoid = pvUpdate;
|
||||||
|
lNext = __lInsert(pstSavm, pstRun, t, 0);
|
||||||
|
pthread_rwlock_unlock(prwLock);
|
||||||
|
if(RC_SUCC != lNext) return RC_FAIL;
|
||||||
|
return lRecordWork(pstSavm, pstSavm->pstVoid, OPERATE_INSERT);
|
||||||
}
|
}
|
||||||
|
|
||||||
pstSavm->m_lEffect = 0;
|
pstSavm->m_lEffect = 0;
|
||||||
|
@ -10825,12 +10825,12 @@ long _lReplaceHash(SATvm *pstSavm, RunTime *pstRun, TABLE t, void *pvUpdate)
|
||||||
|
|
||||||
if(0 == pstSavm->m_lEffect)
|
if(0 == pstSavm->m_lEffect)
|
||||||
{
|
{
|
||||||
// If don't find it, then insert
|
TFree(pvData);
|
||||||
pstSavm->pstVoid = pvUpdate;
|
pstSavm->pstVoid = pvUpdate;
|
||||||
lNext = __lInsert(pstSavm, pstRun, t, 0);
|
lNext = __lInsert(pstSavm, pstRun, t, 0);
|
||||||
pthread_rwlock_unlock(prwLock);
|
pthread_rwlock_unlock(prwLock);
|
||||||
TFree(pvData);
|
if(RC_SUCC != lNext) return RC_FAIL;
|
||||||
return lNext;
|
return lRecordWork(pstSavm, pstSavm->pstVoid, OPERATE_INSERT);
|
||||||
}
|
}
|
||||||
|
|
||||||
pthread_rwlock_unlock(prwLock);
|
pthread_rwlock_unlock(prwLock);
|
||||||
|
@ -10929,12 +10929,12 @@ long _lTruckReplace(SATvm *pstSavm, RunTime *pstRun, TABLE t, void *pvUpdate)
|
||||||
|
|
||||||
if(0 == pstSavm->m_lEffect)
|
if(0 == pstSavm->m_lEffect)
|
||||||
{
|
{
|
||||||
// If don't find it, so insert
|
TFree(pvData);
|
||||||
pstSavm->pstVoid = pvUpdate;
|
pstSavm->pstVoid = pvUpdate;
|
||||||
lRet = __lInsert(pstSavm, pstRun, t, 0);
|
lRet = __lInsert(pstSavm, pstRun, t, 0);
|
||||||
pthread_rwlock_unlock(prwLock);
|
pthread_rwlock_unlock(prwLock);
|
||||||
TFree(pvData);
|
if(RC_SUCC != lRet) return RC_FAIL;
|
||||||
return lRet;
|
return lRecordWork(pstSavm, pstSavm->pstVoid, OPERATE_INSERT);
|
||||||
}
|
}
|
||||||
|
|
||||||
pthread_rwlock_unlock(prwLock);
|
pthread_rwlock_unlock(prwLock);
|
||||||
|
|
Loading…
Reference in New Issue