Merge remote-tracking branch 'origin/main' into fix/3.0_merge_main

This commit is contained in:
Xiaoyu Wang 2023-04-12 14:13:23 +08:00
commit 933660ae8d
15 changed files with 168 additions and 163 deletions

View File

@ -163,8 +163,8 @@ static int32_t vmPutMsgToQueue(SVnodeMgmt *pMgmt, SRpcMsg *pMsg, EQueueType qtyp
SVnodeObj *pVnode = vmAcquireVnode(pMgmt, pHead->vgId); SVnodeObj *pVnode = vmAcquireVnode(pMgmt, pHead->vgId);
if (pVnode == NULL) { if (pVnode == NULL) {
dGError("vgId:%d, msg:%p failed to put into vnode queue since %s, type:%s qtype:%d contLen:%d", pHead->vgId, pMsg, dGWarn("vgId:%d, msg:%p failed to put into vnode queue since %s, type:%s qtype:%d contLen:%d", pHead->vgId, pMsg,
terrstr(), TMSG_INFO(pMsg->msgType), qtype, pHead->contLen); terrstr(), TMSG_INFO(pMsg->msgType), qtype, pHead->contLen);
terrno = (terrno != 0) ? terrno : -1; terrno = (terrno != 0) ? terrno : -1;
return terrno; return terrno;
} }

View File

@ -1168,15 +1168,13 @@ static void mndLoopHash(SHashObj *hash, char *priType, SSDataBlock *pBlock, int3
sprintf(sql, "error"); sprintf(sql, "error");
} }
// char *obj = taosMemoryMalloc(sqlLen + VARSTR_HEADER_SIZE + 1);
char obj[TSDB_PRIVILEDGE_CONDITION_LEN + VARSTR_HEADER_SIZE] = {0}; char obj[TSDB_PRIVILEDGE_CONDITION_LEN + VARSTR_HEADER_SIZE] = {0};
STR_WITH_MAXSIZE_TO_VARSTR(obj, sql, pShow->pMeta->pSchemas[cols].bytes); STR_WITH_MAXSIZE_TO_VARSTR(obj, sql, pShow->pMeta->pSchemas[cols].bytes);
pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); pColInfo = taosArrayGet(pBlock->pDataBlock, cols++);
colDataSetVal(pColInfo, *numOfRows, (const char *)obj, false); colDataSetVal(pColInfo, *numOfRows, (const char *)obj, false);
// taosMemoryFree(obj);
} else { } else {
char condition[20] = {0}; char condition[TSDB_PRIVILEDGE_CONDITION_LEN + VARSTR_HEADER_SIZE] = {0};
STR_WITH_MAXSIZE_TO_VARSTR(condition, "", pShow->pMeta->pSchemas[cols].bytes); STR_WITH_MAXSIZE_TO_VARSTR(condition, "", pShow->pMeta->pSchemas[cols].bytes);
pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); pColInfo = taosArrayGet(pBlock->pDataBlock, cols++);
colDataSetVal(pColInfo, *numOfRows, (const char *)condition, false); colDataSetVal(pColInfo, *numOfRows, (const char *)condition, false);
@ -1257,12 +1255,12 @@ static int32_t mndRetrievePrivileges(SRpcMsg *pReq, SShowObj *pShow, SSDataBlock
pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); pColInfo = taosArrayGet(pBlock->pDataBlock, cols++);
colDataSetVal(pColInfo, numOfRows, (const char *)objName, false); colDataSetVal(pColInfo, numOfRows, (const char *)objName, false);
char tableName[20] = {0}; char tableName[TSDB_TABLE_NAME_LEN + VARSTR_HEADER_SIZE] = {0};
STR_WITH_MAXSIZE_TO_VARSTR(tableName, "", pShow->pMeta->pSchemas[cols].bytes); STR_WITH_MAXSIZE_TO_VARSTR(tableName, "", pShow->pMeta->pSchemas[cols].bytes);
pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); pColInfo = taosArrayGet(pBlock->pDataBlock, cols++);
colDataSetVal(pColInfo, numOfRows, (const char *)tableName, false); colDataSetVal(pColInfo, numOfRows, (const char *)tableName, false);
char condition[20] = {0}; char condition[TSDB_PRIVILEDGE_CONDITION_LEN + VARSTR_HEADER_SIZE] = {0};
STR_WITH_MAXSIZE_TO_VARSTR(condition, "", pShow->pMeta->pSchemas[cols].bytes); STR_WITH_MAXSIZE_TO_VARSTR(condition, "", pShow->pMeta->pSchemas[cols].bytes);
pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); pColInfo = taosArrayGet(pBlock->pDataBlock, cols++);
colDataSetVal(pColInfo, numOfRows, (const char *)condition, false); colDataSetVal(pColInfo, numOfRows, (const char *)condition, false);
@ -1292,12 +1290,12 @@ static int32_t mndRetrievePrivileges(SRpcMsg *pReq, SShowObj *pShow, SSDataBlock
pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); pColInfo = taosArrayGet(pBlock->pDataBlock, cols++);
colDataSetVal(pColInfo, numOfRows, (const char *)objName, false); colDataSetVal(pColInfo, numOfRows, (const char *)objName, false);
char tableName[20] = {0}; char tableName[TSDB_TABLE_NAME_LEN + VARSTR_HEADER_SIZE] = {0};
STR_WITH_MAXSIZE_TO_VARSTR(tableName, "", pShow->pMeta->pSchemas[cols].bytes); STR_WITH_MAXSIZE_TO_VARSTR(tableName, "", pShow->pMeta->pSchemas[cols].bytes);
pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); pColInfo = taosArrayGet(pBlock->pDataBlock, cols++);
colDataSetVal(pColInfo, numOfRows, (const char *)tableName, false); colDataSetVal(pColInfo, numOfRows, (const char *)tableName, false);
char condition[20] = {0}; char condition[TSDB_PRIVILEDGE_CONDITION_LEN + VARSTR_HEADER_SIZE] = {0};
STR_WITH_MAXSIZE_TO_VARSTR(condition, "", pShow->pMeta->pSchemas[cols].bytes); STR_WITH_MAXSIZE_TO_VARSTR(condition, "", pShow->pMeta->pSchemas[cols].bytes);
pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); pColInfo = taosArrayGet(pBlock->pDataBlock, cols++);
colDataSetVal(pColInfo, numOfRows, (const char *)condition, false); colDataSetVal(pColInfo, numOfRows, (const char *)condition, false);
@ -1329,12 +1327,12 @@ static int32_t mndRetrievePrivileges(SRpcMsg *pReq, SShowObj *pShow, SSDataBlock
pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); pColInfo = taosArrayGet(pBlock->pDataBlock, cols++);
colDataSetVal(pColInfo, numOfRows, (const char *)topicName, false); colDataSetVal(pColInfo, numOfRows, (const char *)topicName, false);
char tableName[20] = {0}; char tableName[TSDB_TABLE_NAME_LEN + VARSTR_HEADER_SIZE] = {0};
STR_WITH_MAXSIZE_TO_VARSTR(tableName, "", pShow->pMeta->pSchemas[cols].bytes); STR_WITH_MAXSIZE_TO_VARSTR(tableName, "", pShow->pMeta->pSchemas[cols].bytes);
pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); pColInfo = taosArrayGet(pBlock->pDataBlock, cols++);
colDataSetVal(pColInfo, numOfRows, (const char *)tableName, false); colDataSetVal(pColInfo, numOfRows, (const char *)tableName, false);
char condition[20] = {0}; char condition[TSDB_PRIVILEDGE_CONDITION_LEN + VARSTR_HEADER_SIZE] = {0};
STR_WITH_MAXSIZE_TO_VARSTR(condition, "", pShow->pMeta->pSchemas[cols].bytes); STR_WITH_MAXSIZE_TO_VARSTR(condition, "", pShow->pMeta->pSchemas[cols].bytes);
pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); pColInfo = taosArrayGet(pBlock->pDataBlock, cols++);
colDataSetVal(pColInfo, numOfRows, (const char *)condition, false); colDataSetVal(pColInfo, numOfRows, (const char *)condition, false);

View File

@ -1469,11 +1469,14 @@ static int32_t mergeLastRow(tb_uid_t uid, STsdb *pTsdb, bool *dup, SArray **ppCo
hasRow = true; hasRow = true;
code = updateTSchema(TSDBROW_SVERSION(pRow), pr, uid); int32_t sversion = TSDBROW_SVERSION(pRow);
if (TSDB_CODE_SUCCESS != code) { if (sversion != -1) {
goto _err; code = updateTSchema(sversion, pr, uid);
if (TSDB_CODE_SUCCESS != code) {
goto _err;
}
pTSchema = pr->pCurrSchema;
} }
pTSchema = pr->pCurrSchema;
int16_t nCol = pTSchema->numOfCols; int16_t nCol = pTSchema->numOfCols;
TSKEY rowTs = TSDBROW_TS(pRow); TSKEY rowTs = TSDBROW_TS(pRow);
@ -1623,11 +1626,14 @@ static int32_t mergeLast(tb_uid_t uid, STsdb *pTsdb, SArray **ppLastArray, SCach
hasRow = true; hasRow = true;
code = updateTSchema(TSDBROW_SVERSION(pRow), pr, uid); int32_t sversion = TSDBROW_SVERSION(pRow);
if (TSDB_CODE_SUCCESS != code) { if (sversion != -1) {
goto _err; code = updateTSchema(sversion, pr, uid);
if (TSDB_CODE_SUCCESS != code) {
goto _err;
}
pTSchema = pr->pCurrSchema;
} }
pTSchema = pr->pCurrSchema;
int16_t nCol = pTSchema->numOfCols; int16_t nCol = pTSchema->numOfCols;
TSKEY rowTs = TSDBROW_TS(pRow); TSKEY rowTs = TSDBROW_TS(pRow);

View File

@ -24,7 +24,7 @@ DLL_EXPORT int32_t udf1(SUdfDataBlock *block, SUdfColumn *resultCol) {
} }
} }
if (j == block->numOfCols) { if (j == block->numOfCols) {
int32_t luckyNum = 88; int32_t luckyNum = 1;
udfColDataSet(resultCol, i, (char *)&luckyNum, false); udfColDataSet(resultCol, i, (char *)&luckyNum, false);
} }
} }

View File

@ -77,18 +77,19 @@ static FORCE_INLINE int32_t syncLogReplGetNextRetryBackoff(SSyncLogReplMgr* pMgr
SyncTerm syncLogReplGetPrevLogTerm(SSyncLogReplMgr* pMgr, SSyncNode* pNode, SyncIndex index); SyncTerm syncLogReplGetPrevLogTerm(SSyncLogReplMgr* pMgr, SSyncNode* pNode, SyncIndex index);
int32_t syncLogReplReplicateOnce(SSyncLogReplMgr* pMgr, SSyncNode* pNode); int32_t syncLogReplDoOnce(SSyncLogReplMgr* pMgr, SSyncNode* pNode);
int32_t syncLogReplReplicateOneTo(SSyncLogReplMgr* pMgr, SSyncNode* pNode, SyncIndex index, SyncTerm* pTerm, int32_t syncLogReplAttempt(SSyncLogReplMgr* pMgr, SSyncNode* pNode);
SRaftId* pDestId, bool* pBarrier); int32_t syncLogReplProbe(SSyncLogReplMgr* pMgr, SSyncNode* pNode, SyncIndex index);
int32_t syncLogReplReplicateAttempt(SSyncLogReplMgr* pMgr, SSyncNode* pNode);
int32_t syncLogReplReplicateProbe(SSyncLogReplMgr* pMgr, SSyncNode* pNode, SyncIndex index); int32_t syncLogReplRetryOnNeed(SSyncLogReplMgr* pMgr, SSyncNode* pNode);
int32_t syncLogReplSendTo(SSyncLogReplMgr* pMgr, SSyncNode* pNode, SyncIndex index, SyncTerm* pTerm, SRaftId* pDestId,
bool* pBarrier);
int32_t syncLogReplProcessReply(SSyncLogReplMgr* pMgr, SSyncNode* pNode, SyncAppendEntriesReply* pMsg); int32_t syncLogReplProcessReply(SSyncLogReplMgr* pMgr, SSyncNode* pNode, SyncAppendEntriesReply* pMsg);
int32_t syncLogReplProcessReplyAsRecovery(SSyncLogReplMgr* pMgr, SSyncNode* pNode, SyncAppendEntriesReply* pMsg); int32_t syncLogReplProcessReplyAsRecovery(SSyncLogReplMgr* pMgr, SSyncNode* pNode, SyncAppendEntriesReply* pMsg);
int32_t syncLogReplProcessReplyAsNormal(SSyncLogReplMgr* pMgr, SSyncNode* pNode, SyncAppendEntriesReply* pMsg); int32_t syncLogReplProcessReplyAsNormal(SSyncLogReplMgr* pMgr, SSyncNode* pNode, SyncAppendEntriesReply* pMsg);
int32_t syncLogReplProcessHeartbeatReply(SSyncLogReplMgr* pMgr, SSyncNode* pNode, SyncHeartbeatReply* pMsg); int32_t syncLogReplProcessHeartbeatReply(SSyncLogReplMgr* pMgr, SSyncNode* pNode, SyncHeartbeatReply* pMsg);
int32_t syncLogReplRetryOnNeed(SSyncLogReplMgr* pMgr, SSyncNode* pNode);
// SSyncLogBuffer // SSyncLogBuffer
SSyncLogBuffer* syncLogBufferCreate(); SSyncLogBuffer* syncLogBufferCreate();
@ -100,6 +101,7 @@ int32_t syncLogBufferReInit(SSyncLogBuffer* pBuf, SSyncNode* pNode);
int64_t syncLogBufferGetEndIndex(SSyncLogBuffer* pBuf); int64_t syncLogBufferGetEndIndex(SSyncLogBuffer* pBuf);
SyncTerm syncLogBufferGetLastMatchTerm(SSyncLogBuffer* pBuf); SyncTerm syncLogBufferGetLastMatchTerm(SSyncLogBuffer* pBuf);
bool syncLogBufferIsEmpty(SSyncLogBuffer* pBuf); bool syncLogBufferIsEmpty(SSyncLogBuffer* pBuf);
int32_t syncLogBufferAppend(SSyncLogBuffer* pBuf, SSyncNode* pNode, SSyncRaftEntry* pEntry); int32_t syncLogBufferAppend(SSyncLogBuffer* pBuf, SSyncNode* pNode, SSyncRaftEntry* pEntry);
int32_t syncLogBufferAccept(SSyncLogBuffer* pBuf, SSyncNode* pNode, SSyncRaftEntry* pEntry, SyncTerm prevTerm); int32_t syncLogBufferAccept(SSyncLogBuffer* pBuf, SSyncNode* pNode, SSyncRaftEntry* pEntry, SyncTerm prevTerm);
int64_t syncLogBufferProceed(SSyncLogBuffer* pBuf, SSyncNode* pNode, SyncTerm* pMatchTerm); int64_t syncLogBufferProceed(SSyncLogBuffer* pBuf, SSyncNode* pNode, SyncTerm* pMatchTerm);

View File

@ -45,7 +45,7 @@ SSyncRaftEntry* syncEntryBuildNoop(SyncTerm term, SyncIndex index, int32_t vgId)
void syncEntryDestroy(SSyncRaftEntry* pEntry); void syncEntryDestroy(SSyncRaftEntry* pEntry);
void syncEntry2OriginalRpc(const SSyncRaftEntry* pEntry, SRpcMsg* pRpcMsg); // step 7 void syncEntry2OriginalRpc(const SSyncRaftEntry* pEntry, SRpcMsg* pRpcMsg); // step 7
static FORCE_INLINE bool syncLogIsReplicationBarrier(SSyncRaftEntry* pEntry) { static FORCE_INLINE bool syncLogReplBarrier(SSyncRaftEntry* pEntry) {
return pEntry->originalRpcType == TDMT_SYNC_NOOP; return pEntry->originalRpcType == TDMT_SYNC_NOOP;
} }

View File

@ -617,7 +617,7 @@ int32_t syncNodePropose(SSyncNode* pSyncNode, SRpcMsg* pMsg, bool isWeak, int64_
sNTrace(pSyncNode, "propose msg, type:%s", TMSG_INFO(pMsg->msgType)); sNTrace(pSyncNode, "propose msg, type:%s", TMSG_INFO(pMsg->msgType));
code = (*pSyncNode->syncEqMsg)(pSyncNode->msgcb, &rpcMsg); code = (*pSyncNode->syncEqMsg)(pSyncNode->msgcb, &rpcMsg);
if (code != 0) { if (code != 0) {
sError("vgId:%d, failed to propose msg while enqueue since %s", pSyncNode->vgId, terrstr()); sWarn("vgId:%d, failed to propose msg while enqueue since %s", pSyncNode->vgId, terrstr());
(void)syncRespMgrDel(pSyncNode->pSyncRespMgr, seqNum); (void)syncRespMgrDel(pSyncNode->pSyncRespMgr, seqNum);
} }

View File

@ -633,7 +633,7 @@ int32_t syncLogReplRetryOnNeed(SSyncLogReplMgr* pMgr, SSyncNode* pNode) {
SRaftId* pDestId = &pNode->replicasId[pMgr->peerId]; SRaftId* pDestId = &pNode->replicasId[pMgr->peerId];
if (pMgr->retryBackoff == SYNC_MAX_RETRY_BACKOFF) { if (pMgr->retryBackoff == SYNC_MAX_RETRY_BACKOFF) {
syncLogReplReset(pMgr); syncLogReplReset(pMgr);
sWarn("vgId:%d, reset sync log repl mgr since retry backoff exceeding limit. peer:%" PRIx64, pNode->vgId, sWarn("vgId:%d, reset sync log repl since retry backoff exceeding limit. peer:%" PRIx64, pNode->vgId,
pDestId->addr); pDestId->addr);
return -1; return -1;
} }
@ -658,15 +658,15 @@ int32_t syncLogReplRetryOnNeed(SSyncLogReplMgr* pMgr, SSyncNode* pNode) {
if (pMgr->states[pos].acked) { if (pMgr->states[pos].acked) {
if (pMgr->matchIndex < index && pMgr->states[pos].timeMs + (syncGetRetryMaxWaitMs() << 3) < nowMs) { if (pMgr->matchIndex < index && pMgr->states[pos].timeMs + (syncGetRetryMaxWaitMs() << 3) < nowMs) {
syncLogReplReset(pMgr); syncLogReplReset(pMgr);
sWarn("vgId:%d, reset sync log repl mgr since stagnation. index:%" PRId64 ", peer:%" PRIx64, pNode->vgId, sWarn("vgId:%d, reset sync log repl since stagnation. index:%" PRId64 ", peer:%" PRIx64, pNode->vgId, index,
index, pDestId->addr); pDestId->addr);
goto _out; goto _out;
} }
continue; continue;
} }
bool barrier = false; bool barrier = false;
if (syncLogReplReplicateOneTo(pMgr, pNode, index, &term, pDestId, &barrier) < 0) { if (syncLogReplSendTo(pMgr, pNode, index, &term, pDestId, &barrier) < 0) {
sError("vgId:%d, failed to replicate sync log entry since %s. index:%" PRId64 ", dest:%" PRIx64 "", pNode->vgId, sError("vgId:%d, failed to replicate sync log entry since %s. index:%" PRId64 ", dest:%" PRIx64 "", pNode->vgId,
terrstr(), index, pDestId->addr); terrstr(), index, pDestId->addr);
goto _out; goto _out;
@ -708,7 +708,7 @@ int32_t syncLogReplProcessReplyAsRecovery(SSyncLogReplMgr* pMgr, SSyncNode* pNod
ASSERT(pMgr->matchIndex == 0); ASSERT(pMgr->matchIndex == 0);
if (pMsg->matchIndex < 0) { if (pMsg->matchIndex < 0) {
pMgr->restored = true; pMgr->restored = true;
sInfo("vgId:%d, sync log repl mgr restored. peer: dnode:%d (%" PRIx64 "), mgr: rs(%d) [%" PRId64 " %" PRId64 sInfo("vgId:%d, sync log repl restored. peer: dnode:%d (%" PRIx64 "), mgr: rs(%d) [%" PRId64 " %" PRId64
", %" PRId64 "), buffer: [%" PRId64 " %" PRId64 " %" PRId64 ", %" PRId64 ")", ", %" PRId64 "), buffer: [%" PRId64 " %" PRId64 " %" PRId64 ", %" PRId64 ")",
pNode->vgId, DID(&destId), destId.addr, pMgr->restored, pMgr->startIndex, pMgr->matchIndex, pMgr->endIndex, pNode->vgId, DID(&destId), destId.addr, pMgr->restored, pMgr->startIndex, pMgr->matchIndex, pMgr->endIndex,
pBuf->startIndex, pBuf->commitIndex, pBuf->matchIndex, pBuf->endIndex); pBuf->startIndex, pBuf->commitIndex, pBuf->matchIndex, pBuf->endIndex);
@ -725,7 +725,7 @@ int32_t syncLogReplProcessReplyAsRecovery(SSyncLogReplMgr* pMgr, SSyncNode* pNod
if (pMsg->success && pMsg->matchIndex == pMsg->lastSendIndex) { if (pMsg->success && pMsg->matchIndex == pMsg->lastSendIndex) {
pMgr->matchIndex = pMsg->matchIndex; pMgr->matchIndex = pMsg->matchIndex;
pMgr->restored = true; pMgr->restored = true;
sInfo("vgId:%d, sync log repl mgr restored. peer: dnode:%d (%" PRIx64 "), mgr: rs(%d) [%" PRId64 " %" PRId64 sInfo("vgId:%d, sync log repl restored. peer: dnode:%d (%" PRIx64 "), mgr: rs(%d) [%" PRId64 " %" PRId64
", %" PRId64 "), buffer: [%" PRId64 " %" PRId64 " %" PRId64 ", %" PRId64 ")", ", %" PRId64 "), buffer: [%" PRId64 " %" PRId64 " %" PRId64 ", %" PRId64 ")",
pNode->vgId, DID(&destId), destId.addr, pMgr->restored, pMgr->startIndex, pMgr->matchIndex, pMgr->endIndex, pNode->vgId, DID(&destId), destId.addr, pMgr->restored, pMgr->startIndex, pMgr->matchIndex, pMgr->endIndex,
pBuf->startIndex, pBuf->commitIndex, pBuf->matchIndex, pBuf->endIndex); pBuf->startIndex, pBuf->commitIndex, pBuf->matchIndex, pBuf->endIndex);
@ -774,14 +774,14 @@ int32_t syncLogReplProcessReplyAsRecovery(SSyncLogReplMgr* pMgr, SSyncNode* pNod
// attempt to replicate the raft log at index // attempt to replicate the raft log at index
(void)syncLogReplReset(pMgr); (void)syncLogReplReset(pMgr);
return syncLogReplReplicateProbe(pMgr, pNode, index); return syncLogReplProbe(pMgr, pNode, index);
} }
int32_t syncLogReplProcessHeartbeatReply(SSyncLogReplMgr* pMgr, SSyncNode* pNode, SyncHeartbeatReply* pMsg) { int32_t syncLogReplProcessHeartbeatReply(SSyncLogReplMgr* pMgr, SSyncNode* pNode, SyncHeartbeatReply* pMsg) {
SSyncLogBuffer* pBuf = pNode->pLogBuf; SSyncLogBuffer* pBuf = pNode->pLogBuf;
taosThreadMutexLock(&pBuf->mutex); taosThreadMutexLock(&pBuf->mutex);
if (pMsg->startTime != 0 && pMsg->startTime != pMgr->peerStartTime) { if (pMsg->startTime != 0 && pMsg->startTime != pMgr->peerStartTime) {
sInfo("vgId:%d, reset sync log repl mgr in heartbeat. peer:%" PRIx64 ", start time:%" PRId64 ", old:%" PRId64 "", sInfo("vgId:%d, reset sync log repl in heartbeat. peer:%" PRIx64 ", start time:%" PRId64 ", old:%" PRId64 "",
pNode->vgId, pMsg->srcId.addr, pMsg->startTime, pMgr->peerStartTime); pNode->vgId, pMsg->srcId.addr, pMsg->startTime, pMgr->peerStartTime);
syncLogReplReset(pMgr); syncLogReplReset(pMgr);
pMgr->peerStartTime = pMsg->startTime; pMgr->peerStartTime = pMsg->startTime;
@ -794,8 +794,7 @@ int32_t syncLogReplProcessReply(SSyncLogReplMgr* pMgr, SSyncNode* pNode, SyncApp
SSyncLogBuffer* pBuf = pNode->pLogBuf; SSyncLogBuffer* pBuf = pNode->pLogBuf;
taosThreadMutexLock(&pBuf->mutex); taosThreadMutexLock(&pBuf->mutex);
if (pMsg->startTime != pMgr->peerStartTime) { if (pMsg->startTime != pMgr->peerStartTime) {
sInfo("vgId:%d, reset sync log repl mgr in appendlog reply. peer:%" PRIx64 ", start time:%" PRId64 sInfo("vgId:%d, reset sync log repl in appendlog reply. peer:%" PRIx64 ", start time:%" PRId64 ", old:%" PRId64,
", old:%" PRId64,
pNode->vgId, pMsg->srcId.addr, pMsg->startTime, pMgr->peerStartTime); pNode->vgId, pMsg->srcId.addr, pMsg->startTime, pMgr->peerStartTime);
syncLogReplReset(pMgr); syncLogReplReset(pMgr);
pMgr->peerStartTime = pMsg->startTime; pMgr->peerStartTime = pMsg->startTime;
@ -810,16 +809,16 @@ int32_t syncLogReplProcessReply(SSyncLogReplMgr* pMgr, SSyncNode* pNode, SyncApp
return 0; return 0;
} }
int32_t syncLogReplReplicateOnce(SSyncLogReplMgr* pMgr, SSyncNode* pNode) { int32_t syncLogReplDoOnce(SSyncLogReplMgr* pMgr, SSyncNode* pNode) {
if (pMgr->restored) { if (pMgr->restored) {
(void)syncLogReplReplicateAttempt(pMgr, pNode); (void)syncLogReplAttempt(pMgr, pNode);
} else { } else {
(void)syncLogReplReplicateProbe(pMgr, pNode, pNode->pLogBuf->matchIndex); (void)syncLogReplProbe(pMgr, pNode, pNode->pLogBuf->matchIndex);
} }
return 0; return 0;
} }
int32_t syncLogReplReplicateProbe(SSyncLogReplMgr* pMgr, SSyncNode* pNode, SyncIndex index) { int32_t syncLogReplProbe(SSyncLogReplMgr* pMgr, SSyncNode* pNode, SyncIndex index) {
ASSERT(!pMgr->restored); ASSERT(!pMgr->restored);
ASSERT(pMgr->startIndex >= 0); ASSERT(pMgr->startIndex >= 0);
int64_t retryMaxWaitMs = syncGetRetryMaxWaitMs(); int64_t retryMaxWaitMs = syncGetRetryMaxWaitMs();
@ -834,7 +833,7 @@ int32_t syncLogReplReplicateProbe(SSyncLogReplMgr* pMgr, SSyncNode* pNode, SyncI
SRaftId* pDestId = &pNode->replicasId[pMgr->peerId]; SRaftId* pDestId = &pNode->replicasId[pMgr->peerId];
bool barrier = false; bool barrier = false;
SyncTerm term = -1; SyncTerm term = -1;
if (syncLogReplReplicateOneTo(pMgr, pNode, index, &term, pDestId, &barrier) < 0) { if (syncLogReplSendTo(pMgr, pNode, index, &term, pDestId, &barrier) < 0) {
sError("vgId:%d, failed to replicate log entry since %s. index:%" PRId64 ", dest: 0x%016" PRIx64 "", pNode->vgId, sError("vgId:%d, failed to replicate log entry since %s. index:%" PRId64 ", dest: 0x%016" PRIx64 "", pNode->vgId,
terrstr(), index, pDestId->addr); terrstr(), index, pDestId->addr);
return -1; return -1;
@ -857,7 +856,7 @@ int32_t syncLogReplReplicateProbe(SSyncLogReplMgr* pMgr, SSyncNode* pNode, SyncI
return 0; return 0;
} }
int32_t syncLogReplReplicateAttempt(SSyncLogReplMgr* pMgr, SSyncNode* pNode) { int32_t syncLogReplAttempt(SSyncLogReplMgr* pMgr, SSyncNode* pNode) {
ASSERT(pMgr->restored); ASSERT(pMgr->restored);
SRaftId* pDestId = &pNode->replicasId[pMgr->peerId]; SRaftId* pDestId = &pNode->replicasId[pMgr->peerId];
@ -879,7 +878,7 @@ int32_t syncLogReplReplicateAttempt(SSyncLogReplMgr* pMgr, SSyncNode* pNode) {
SRaftId* pDestId = &pNode->replicasId[pMgr->peerId]; SRaftId* pDestId = &pNode->replicasId[pMgr->peerId];
bool barrier = false; bool barrier = false;
SyncTerm term = -1; SyncTerm term = -1;
if (syncLogReplReplicateOneTo(pMgr, pNode, index, &term, pDestId, &barrier) < 0) { if (syncLogReplSendTo(pMgr, pNode, index, &term, pDestId, &barrier) < 0) {
sError("vgId:%d, failed to replicate log entry since %s. index:%" PRId64 ", dest: 0x%016" PRIx64 "", pNode->vgId, sError("vgId:%d, failed to replicate log entry since %s. index:%" PRId64 ", dest: 0x%016" PRIx64 "", pNode->vgId,
terrstr(), index, pDestId->addr); terrstr(), index, pDestId->addr);
return -1; return -1;
@ -932,7 +931,7 @@ int32_t syncLogReplProcessReplyAsNormal(SSyncLogReplMgr* pMgr, SSyncNode* pNode,
pMgr->startIndex = pMgr->matchIndex; pMgr->startIndex = pMgr->matchIndex;
} }
return syncLogReplReplicateAttempt(pMgr, pNode); return syncLogReplAttempt(pMgr, pNode);
} }
SSyncLogReplMgr* syncLogReplCreate() { SSyncLogReplMgr* syncLogReplCreate() {
@ -1127,8 +1126,8 @@ SSyncRaftEntry* syncLogBufferGetOneEntry(SSyncLogBuffer* pBuf, SSyncNode* pNode,
return pEntry; return pEntry;
} }
int32_t syncLogReplReplicateOneTo(SSyncLogReplMgr* pMgr, SSyncNode* pNode, SyncIndex index, SyncTerm* pTerm, int32_t syncLogReplSendTo(SSyncLogReplMgr* pMgr, SSyncNode* pNode, SyncIndex index, SyncTerm* pTerm, SRaftId* pDestId,
SRaftId* pDestId, bool* pBarrier) { bool* pBarrier) {
SSyncRaftEntry* pEntry = NULL; SSyncRaftEntry* pEntry = NULL;
SRpcMsg msgOut = {0}; SRpcMsg msgOut = {0};
bool inBuf = false; bool inBuf = false;
@ -1141,14 +1140,14 @@ int32_t syncLogReplReplicateOneTo(SSyncLogReplMgr* pMgr, SSyncNode* pNode, SyncI
if (terrno == TSDB_CODE_WAL_LOG_NOT_EXIST) { if (terrno == TSDB_CODE_WAL_LOG_NOT_EXIST) {
SSyncLogReplMgr* pMgr = syncNodeGetLogReplMgr(pNode, pDestId); SSyncLogReplMgr* pMgr = syncNodeGetLogReplMgr(pNode, pDestId);
if (pMgr) { if (pMgr) {
sInfo("vgId:%d, reset sync log repl mgr of peer:%" PRIx64 " since %s. index:%" PRId64, pNode->vgId, sInfo("vgId:%d, reset sync log repl of peer:%" PRIx64 " since %s. index:%" PRId64, pNode->vgId, pDestId->addr,
pDestId->addr, terrstr(), index); terrstr(), index);
(void)syncLogReplReset(pMgr); (void)syncLogReplReset(pMgr);
} }
} }
goto _err; goto _err;
} }
*pBarrier = syncLogIsReplicationBarrier(pEntry); *pBarrier = syncLogReplBarrier(pEntry);
prevLogTerm = syncLogReplGetPrevLogTerm(pMgr, pNode, index); prevLogTerm = syncLogReplGetPrevLogTerm(pMgr, pNode, index);
if (prevLogTerm < 0) { if (prevLogTerm < 0) {

View File

@ -74,7 +74,7 @@ int32_t syncNodeReplicateWithoutLock(SSyncNode* pNode) {
continue; continue;
} }
SSyncLogReplMgr* pMgr = pNode->logReplMgrs[i]; SSyncLogReplMgr* pMgr = pNode->logReplMgrs[i];
(void)syncLogReplReplicateOnce(pMgr, pNode); (void)syncLogReplDoOnce(pMgr, pNode);
} }
return 0; return 0;
} }

View File

@ -321,7 +321,7 @@ TAOS_DEFINE_ERROR(TSDB_CODE_SNODE_ALREADY_DEPLOYED, "Snode already deploye
TAOS_DEFINE_ERROR(TSDB_CODE_SNODE_NOT_DEPLOYED, "Snode not deployed") TAOS_DEFINE_ERROR(TSDB_CODE_SNODE_NOT_DEPLOYED, "Snode not deployed")
// vnode // vnode
TAOS_DEFINE_ERROR(TSDB_CODE_VND_INVALID_VGROUP_ID, "Vnode moved to another dnode or was deleted") TAOS_DEFINE_ERROR(TSDB_CODE_VND_INVALID_VGROUP_ID, "Vnode is closed or removed")
TAOS_DEFINE_ERROR(TSDB_CODE_VND_NO_WRITE_AUTH, "Database write operation denied") TAOS_DEFINE_ERROR(TSDB_CODE_VND_NO_WRITE_AUTH, "Database write operation denied")
TAOS_DEFINE_ERROR(TSDB_CODE_VND_NOT_EXIST, "Vnode not exist") TAOS_DEFINE_ERROR(TSDB_CODE_VND_NOT_EXIST, "Vnode not exist")
TAOS_DEFINE_ERROR(TSDB_CODE_VND_ALREADY_EXIST, "Vnode already exist") TAOS_DEFINE_ERROR(TSDB_CODE_VND_ALREADY_EXIST, "Vnode already exist")

View File

@ -29,10 +29,10 @@ sql select udf1(f) from t;
if $rows != 2 then if $rows != 2 then
return -1 return -1
endi endi
if $data00 != 88 then if $data00 != 1 then
return -1 return -1
endi endi
if $data10 != 88 then if $data10 != 1 then
return -1 return -1
endi endi
@ -51,10 +51,10 @@ sql select udf1(f1, f2) from t2;
if $rows != 2 then if $rows != 2 then
return -1 return -1
endi endi
if $data00 != 88 then if $data00 != 1 then
return -1 return -1
endi endi
if $data10 != 88 then if $data10 != 1 then
return -1 return -1
endi endi
@ -72,10 +72,10 @@ print $rows , $data00 , $data10 , $data20 , $data30
if $rows != 4 then if $rows != 4 then
return -1 return -1
endi endi
if $data00 != 88 then if $data00 != 1 then
return -1 return -1
endi endi
if $data10 != 88 then if $data10 != 1 then
return -1 return -1
endi endi
@ -114,10 +114,10 @@ print $rows , $data00 , $data01
if $rows != 1 then if $rows != 1 then
return -1 return -1
endi endi
if $data00 != 176.000000000 then if $data00 != 2.000000000 then
return -1 return -1
endi endi
if $data01 != 152.420471066 then if $data01 != 1.732050808 then
return -1 return -1
endi endi

View File

@ -191,20 +191,20 @@ class TDTestCase:
tdSql.checkData(0,0,None) tdSql.checkData(0,0,None)
tdSql.checkData(0,1,None) tdSql.checkData(0,1,None)
tdSql.checkData(0,2,1) tdSql.checkData(0,2,1)
tdSql.checkData(0,3,88) tdSql.checkData(0,3,1)
tdSql.checkData(0,4,1.000000000) tdSql.checkData(0,4,1.000000000)
tdSql.checkData(0,5,88) tdSql.checkData(0,5,1)
tdSql.checkData(0,6,"binary1") tdSql.checkData(0,6,"binary1")
tdSql.checkData(0,7,88) tdSql.checkData(0,7,1)
tdSql.checkData(3,0,3) tdSql.checkData(3,0,3)
tdSql.checkData(3,1,88) tdSql.checkData(3,1,1)
tdSql.checkData(3,2,33333) tdSql.checkData(3,2,33333)
tdSql.checkData(3,3,88) tdSql.checkData(3,3,1)
tdSql.checkData(3,4,33.000000000) tdSql.checkData(3,4,33.000000000)
tdSql.checkData(3,5,88) tdSql.checkData(3,5,1)
tdSql.checkData(3,6,"binary1") tdSql.checkData(3,6,"binary1")
tdSql.checkData(3,7,88) tdSql.checkData(3,7,1)
tdSql.checkData(11,0,None) tdSql.checkData(11,0,None)
tdSql.checkData(11,1,None) tdSql.checkData(11,1,None)
@ -213,7 +213,7 @@ class TDTestCase:
tdSql.checkData(11,4,None) tdSql.checkData(11,4,None)
tdSql.checkData(11,5,None) tdSql.checkData(11,5,None)
tdSql.checkData(11,6,"binary1") tdSql.checkData(11,6,"binary1")
tdSql.checkData(11,7,88) tdSql.checkData(11,7,1)
tdSql.query("select c1 , udf1(c1) ,c2 ,udf1(c2), c3 ,udf1(c3), c4 ,udf1(c4) from stb1 order by c1") tdSql.query("select c1 , udf1(c1) ,c2 ,udf1(c2), c3 ,udf1(c3), c4 ,udf1(c4) from stb1 order by c1")
tdSql.checkData(0,0,None) tdSql.checkData(0,0,None)
@ -226,13 +226,13 @@ class TDTestCase:
tdSql.checkData(0,7,None) tdSql.checkData(0,7,None)
tdSql.checkData(20,0,8) tdSql.checkData(20,0,8)
tdSql.checkData(20,1,88) tdSql.checkData(20,1,1)
tdSql.checkData(20,2,88888) tdSql.checkData(20,2,88888)
tdSql.checkData(20,3,88) tdSql.checkData(20,3,1)
tdSql.checkData(20,4,888) tdSql.checkData(20,4,888)
tdSql.checkData(20,5,88) tdSql.checkData(20,5,1)
tdSql.checkData(20,6,88) tdSql.checkData(20,6,88)
tdSql.checkData(20,7,88) tdSql.checkData(20,7,1)
# aggregate functions # aggregate functions
@ -375,14 +375,14 @@ class TDTestCase:
tdSql.checkRows(25) tdSql.checkRows(25)
tdSql.checkData(0,0,None) tdSql.checkData(0,0,None)
tdSql.checkData(0,1,None) tdSql.checkData(0,1,None)
tdSql.checkData(1,0,88) tdSql.checkData(1,0,1)
tdSql.checkData(1,1,8) tdSql.checkData(1,1,8)
tdSql.query("select abs(udf1(c1)) , abs(ceil(c1)) from ct1 order by ts;") tdSql.query("select abs(udf1(c1)) , abs(ceil(c1)) from ct1 order by ts;")
tdSql.checkRows(13) tdSql.checkRows(13)
tdSql.checkData(0,0,88) tdSql.checkData(0,0,1)
tdSql.checkData(0,1,8) tdSql.checkData(0,1,8)
tdSql.checkData(1,0,88) tdSql.checkData(1,0,1)
tdSql.checkData(1,1,7) tdSql.checkData(1,1,7)
# bug fix for crash # bug fix for crash
@ -401,9 +401,9 @@ class TDTestCase:
tdSql.query("select c1 ,udf1(c1) , c6 ,udf1(c6) from stb1 where c1 > 8 order by ts") tdSql.query("select c1 ,udf1(c1) , c6 ,udf1(c6) from stb1 where c1 > 8 order by ts")
tdSql.checkRows(3) tdSql.checkRows(3)
tdSql.checkData(0,0,9) tdSql.checkData(0,0,9)
tdSql.checkData(0,1,88) tdSql.checkData(0,1,1)
tdSql.checkData(0,2,-99.990000000) tdSql.checkData(0,2,-99.990000000)
tdSql.checkData(0,3,88) tdSql.checkData(0,3,1)
tdSql.query("select sub1.c1, sub2.c2 from sub1, sub2 where sub1.ts=sub2.ts and sub1.c1 is not null") tdSql.query("select sub1.c1, sub2.c2 from sub1, sub2 where sub1.ts=sub2.ts and sub1.c1 is not null")
tdSql.checkData(0,0,0) tdSql.checkData(0,0,0)
@ -412,20 +412,20 @@ class TDTestCase:
tdSql.checkData(1,1,10) tdSql.checkData(1,1,10)
tdSql.query("select udf1(sub1.c1), udf1(sub2.c2) from sub1, sub2 where sub1.ts=sub2.ts and sub1.c1 is not null") tdSql.query("select udf1(sub1.c1), udf1(sub2.c2) from sub1, sub2 where sub1.ts=sub2.ts and sub1.c1 is not null")
tdSql.checkData(0,0,88) tdSql.checkData(0,0,1)
tdSql.checkData(0,1,88) tdSql.checkData(0,1,1)
tdSql.checkData(1,0,88) tdSql.checkData(1,0,1)
tdSql.checkData(1,1,88) tdSql.checkData(1,1,1)
tdSql.query("select sub1.c1 , udf1(sub1.c1), sub2.c2 ,udf1(sub2.c2) from sub1, sub2 where sub1.ts=sub2.ts and sub1.c1 is not null") tdSql.query("select sub1.c1 , udf1(sub1.c1), sub2.c2 ,udf1(sub2.c2) from sub1, sub2 where sub1.ts=sub2.ts and sub1.c1 is not null")
tdSql.checkData(0,0,0) tdSql.checkData(0,0,0)
tdSql.checkData(0,1,88) tdSql.checkData(0,1,1)
tdSql.checkData(0,2,0) tdSql.checkData(0,2,0)
tdSql.checkData(0,3,88) tdSql.checkData(0,3,1)
tdSql.checkData(1,0,1) tdSql.checkData(1,0,1)
tdSql.checkData(1,1,88) tdSql.checkData(1,1,1)
tdSql.checkData(1,2,10) tdSql.checkData(1,2,10)
tdSql.checkData(1,3,88) tdSql.checkData(1,3,1)
tdSql.query("select udf2(sub1.c1), udf2(sub2.c2) from sub1, sub2 where sub1.ts=sub2.ts and sub1.c1 is not null") tdSql.query("select udf2(sub1.c1), udf2(sub2.c2) from sub1, sub2 where sub1.ts=sub2.ts and sub1.c1 is not null")
tdSql.checkData(0,0,16.881943016) tdSql.checkData(0,0,16.881943016)

View File

@ -193,20 +193,20 @@ class TDTestCase:
tdSql.checkData(0,0,None) tdSql.checkData(0,0,None)
tdSql.checkData(0,1,None) tdSql.checkData(0,1,None)
tdSql.checkData(0,2,1) tdSql.checkData(0,2,1)
tdSql.checkData(0,3,88) tdSql.checkData(0,3,1)
tdSql.checkData(0,4,1.000000000) tdSql.checkData(0,4,1.000000000)
tdSql.checkData(0,5,88) tdSql.checkData(0,5,1)
tdSql.checkData(0,6,"binary1") tdSql.checkData(0,6,"binary1")
tdSql.checkData(0,7,88) tdSql.checkData(0,7,1)
tdSql.checkData(3,0,3) tdSql.checkData(3,0,3)
tdSql.checkData(3,1,88) tdSql.checkData(3,1,1)
tdSql.checkData(3,2,33333) tdSql.checkData(3,2,33333)
tdSql.checkData(3,3,88) tdSql.checkData(3,3,1)
tdSql.checkData(3,4,33.000000000) tdSql.checkData(3,4,33.000000000)
tdSql.checkData(3,5,88) tdSql.checkData(3,5,1)
tdSql.checkData(3,6,"binary1") tdSql.checkData(3,6,"binary1")
tdSql.checkData(3,7,88) tdSql.checkData(3,7,1)
tdSql.checkData(11,0,None) tdSql.checkData(11,0,None)
tdSql.checkData(11,1,None) tdSql.checkData(11,1,None)
@ -215,7 +215,7 @@ class TDTestCase:
tdSql.checkData(11,4,None) tdSql.checkData(11,4,None)
tdSql.checkData(11,5,None) tdSql.checkData(11,5,None)
tdSql.checkData(11,6,"binary1") tdSql.checkData(11,6,"binary1")
tdSql.checkData(11,7,88) tdSql.checkData(11,7,1)
tdSql.query("select c1 , udf1(c1) ,c2 ,udf1(c2), c3 ,udf1(c3), c4 ,udf1(c4) from stb1 order by c1") tdSql.query("select c1 , udf1(c1) ,c2 ,udf1(c2), c3 ,udf1(c3), c4 ,udf1(c4) from stb1 order by c1")
tdSql.checkData(0,0,None) tdSql.checkData(0,0,None)
@ -228,13 +228,13 @@ class TDTestCase:
tdSql.checkData(0,7,None) tdSql.checkData(0,7,None)
tdSql.checkData(20,0,8) tdSql.checkData(20,0,8)
tdSql.checkData(20,1,88) tdSql.checkData(20,1,1)
tdSql.checkData(20,2,88888) tdSql.checkData(20,2,88888)
tdSql.checkData(20,3,88) tdSql.checkData(20,3,1)
tdSql.checkData(20,4,888) tdSql.checkData(20,4,888)
tdSql.checkData(20,5,88) tdSql.checkData(20,5,1)
tdSql.checkData(20,6,88) tdSql.checkData(20,6,88)
tdSql.checkData(20,7,88) tdSql.checkData(20,7,1)
# aggregate functions # aggregate functions
@ -377,14 +377,14 @@ class TDTestCase:
tdSql.checkRows(25) tdSql.checkRows(25)
tdSql.checkData(0,0,None) tdSql.checkData(0,0,None)
tdSql.checkData(0,1,None) tdSql.checkData(0,1,None)
tdSql.checkData(1,0,88) tdSql.checkData(1,0,1)
tdSql.checkData(1,1,8) tdSql.checkData(1,1,8)
tdSql.query("select abs(udf1(c1)) , abs(ceil(c1)) from ct1 order by ts;") tdSql.query("select abs(udf1(c1)) , abs(ceil(c1)) from ct1 order by ts;")
tdSql.checkRows(13) tdSql.checkRows(13)
tdSql.checkData(0,0,88) tdSql.checkData(0,0,1)
tdSql.checkData(0,1,8) tdSql.checkData(0,1,8)
tdSql.checkData(1,0,88) tdSql.checkData(1,0,1)
tdSql.checkData(1,1,7) tdSql.checkData(1,1,7)
# bug fix for crash # bug fix for crash
@ -403,9 +403,9 @@ class TDTestCase:
tdSql.query("select c1 ,udf1(c1) , c6 ,udf1(c6) from stb1 where c1 > 8 order by ts") tdSql.query("select c1 ,udf1(c1) , c6 ,udf1(c6) from stb1 where c1 > 8 order by ts")
tdSql.checkRows(3) tdSql.checkRows(3)
tdSql.checkData(0,0,9) tdSql.checkData(0,0,9)
tdSql.checkData(0,1,88) tdSql.checkData(0,1,1)
tdSql.checkData(0,2,-99.990000000) tdSql.checkData(0,2,-99.990000000)
tdSql.checkData(0,3,88) tdSql.checkData(0,3,1)
tdSql.query("select sub1.c1, sub2.c2 from sub1, sub2 where sub1.ts=sub2.ts and sub1.c1 is not null") tdSql.query("select sub1.c1, sub2.c2 from sub1, sub2 where sub1.ts=sub2.ts and sub1.c1 is not null")
tdSql.checkData(0,0,0) tdSql.checkData(0,0,0)
@ -414,20 +414,20 @@ class TDTestCase:
tdSql.checkData(1,1,10) tdSql.checkData(1,1,10)
tdSql.query("select udf1(sub1.c1), udf1(sub2.c2) from sub1, sub2 where sub1.ts=sub2.ts and sub1.c1 is not null") tdSql.query("select udf1(sub1.c1), udf1(sub2.c2) from sub1, sub2 where sub1.ts=sub2.ts and sub1.c1 is not null")
tdSql.checkData(0,0,88) tdSql.checkData(0,0,1)
tdSql.checkData(0,1,88) tdSql.checkData(0,1,1)
tdSql.checkData(1,0,88) tdSql.checkData(1,0,1)
tdSql.checkData(1,1,88) tdSql.checkData(1,1,1)
tdSql.query("select sub1.c1 , udf1(sub1.c1), sub2.c2 ,udf1(sub2.c2) from sub1, sub2 where sub1.ts=sub2.ts and sub1.c1 is not null") tdSql.query("select sub1.c1 , udf1(sub1.c1), sub2.c2 ,udf1(sub2.c2) from sub1, sub2 where sub1.ts=sub2.ts and sub1.c1 is not null")
tdSql.checkData(0,0,0) tdSql.checkData(0,0,0)
tdSql.checkData(0,1,88) tdSql.checkData(0,1,1)
tdSql.checkData(0,2,0) tdSql.checkData(0,2,0)
tdSql.checkData(0,3,88) tdSql.checkData(0,3,1)
tdSql.checkData(1,0,1) tdSql.checkData(1,0,1)
tdSql.checkData(1,1,88) tdSql.checkData(1,1,1)
tdSql.checkData(1,2,10) tdSql.checkData(1,2,10)
tdSql.checkData(1,3,88) tdSql.checkData(1,3,1)
tdSql.query("select udf2(sub1.c1), udf2(sub2.c2) from sub1, sub2 where sub1.ts=sub2.ts and sub1.c1 is not null") tdSql.query("select udf2(sub1.c1), udf2(sub2.c2) from sub1, sub2 where sub1.ts=sub2.ts and sub1.c1 is not null")
tdSql.checkData(0,0,16.881943016) tdSql.checkData(0,0,16.881943016)

View File

@ -193,20 +193,20 @@ class TDTestCase:
tdSql.checkData(0,0,None) tdSql.checkData(0,0,None)
tdSql.checkData(0,1,None) tdSql.checkData(0,1,None)
tdSql.checkData(0,2,1) tdSql.checkData(0,2,1)
tdSql.checkData(0,3,88) tdSql.checkData(0,3,1)
tdSql.checkData(0,4,1.000000000) tdSql.checkData(0,4,1.000000000)
tdSql.checkData(0,5,88) tdSql.checkData(0,5,1)
tdSql.checkData(0,6,"binary1") tdSql.checkData(0,6,"binary1")
tdSql.checkData(0,7,88) tdSql.checkData(0,7,1)
tdSql.checkData(3,0,3) tdSql.checkData(3,0,3)
tdSql.checkData(3,1,88) tdSql.checkData(3,1,1)
tdSql.checkData(3,2,33333) tdSql.checkData(3,2,33333)
tdSql.checkData(3,3,88) tdSql.checkData(3,3,1)
tdSql.checkData(3,4,33.000000000) tdSql.checkData(3,4,33.000000000)
tdSql.checkData(3,5,88) tdSql.checkData(3,5,1)
tdSql.checkData(3,6,"binary1") tdSql.checkData(3,6,"binary1")
tdSql.checkData(3,7,88) tdSql.checkData(3,7,1)
tdSql.checkData(11,0,None) tdSql.checkData(11,0,None)
tdSql.checkData(11,1,None) tdSql.checkData(11,1,None)
@ -215,7 +215,7 @@ class TDTestCase:
tdSql.checkData(11,4,None) tdSql.checkData(11,4,None)
tdSql.checkData(11,5,None) tdSql.checkData(11,5,None)
tdSql.checkData(11,6,"binary1") tdSql.checkData(11,6,"binary1")
tdSql.checkData(11,7,88) tdSql.checkData(11,7,1)
tdSql.query("select c1 , udf1(c1) ,c2 ,udf1(c2), c3 ,udf1(c3), c4 ,udf1(c4) from stb1 order by c1") tdSql.query("select c1 , udf1(c1) ,c2 ,udf1(c2), c3 ,udf1(c3), c4 ,udf1(c4) from stb1 order by c1")
tdSql.checkData(0,0,None) tdSql.checkData(0,0,None)
@ -228,13 +228,13 @@ class TDTestCase:
tdSql.checkData(0,7,None) tdSql.checkData(0,7,None)
tdSql.checkData(20,0,8) tdSql.checkData(20,0,8)
tdSql.checkData(20,1,88) tdSql.checkData(20,1,1)
tdSql.checkData(20,2,88888) tdSql.checkData(20,2,88888)
tdSql.checkData(20,3,88) tdSql.checkData(20,3,1)
tdSql.checkData(20,4,888) tdSql.checkData(20,4,888)
tdSql.checkData(20,5,88) tdSql.checkData(20,5,1)
tdSql.checkData(20,6,88) tdSql.checkData(20,6,88)
tdSql.checkData(20,7,88) tdSql.checkData(20,7,1)
# aggregate functions # aggregate functions
@ -377,14 +377,14 @@ class TDTestCase:
tdSql.checkRows(25) tdSql.checkRows(25)
tdSql.checkData(0,0,None) tdSql.checkData(0,0,None)
tdSql.checkData(0,1,None) tdSql.checkData(0,1,None)
tdSql.checkData(1,0,88) tdSql.checkData(1,0,1)
tdSql.checkData(1,1,8) tdSql.checkData(1,1,8)
tdSql.query("select abs(udf1(c1)) , abs(ceil(c1)) from ct1 order by ts;") tdSql.query("select abs(udf1(c1)) , abs(ceil(c1)) from ct1 order by ts;")
tdSql.checkRows(13) tdSql.checkRows(13)
tdSql.checkData(0,0,88) tdSql.checkData(0,0,1)
tdSql.checkData(0,1,8) tdSql.checkData(0,1,8)
tdSql.checkData(1,0,88) tdSql.checkData(1,0,1)
tdSql.checkData(1,1,7) tdSql.checkData(1,1,7)
# bug fix for crash # bug fix for crash
@ -403,9 +403,9 @@ class TDTestCase:
tdSql.query("select c1 ,udf1(c1) , c6 ,udf1(c6) from stb1 where c1 > 8 order by ts") tdSql.query("select c1 ,udf1(c1) , c6 ,udf1(c6) from stb1 where c1 > 8 order by ts")
tdSql.checkRows(3) tdSql.checkRows(3)
tdSql.checkData(0,0,9) tdSql.checkData(0,0,9)
tdSql.checkData(0,1,88) tdSql.checkData(0,1,1)
tdSql.checkData(0,2,-99.990000000) tdSql.checkData(0,2,-99.990000000)
tdSql.checkData(0,3,88) tdSql.checkData(0,3,1)
tdSql.query("select sub1.c1, sub2.c2 from sub1, sub2 where sub1.ts=sub2.ts and sub1.c1 is not null") tdSql.query("select sub1.c1, sub2.c2 from sub1, sub2 where sub1.ts=sub2.ts and sub1.c1 is not null")
tdSql.checkData(0,0,0) tdSql.checkData(0,0,0)
@ -414,20 +414,20 @@ class TDTestCase:
tdSql.checkData(1,1,10) tdSql.checkData(1,1,10)
tdSql.query("select udf1(sub1.c1), udf1(sub2.c2) from sub1, sub2 where sub1.ts=sub2.ts and sub1.c1 is not null") tdSql.query("select udf1(sub1.c1), udf1(sub2.c2) from sub1, sub2 where sub1.ts=sub2.ts and sub1.c1 is not null")
tdSql.checkData(0,0,88) tdSql.checkData(0,0,1)
tdSql.checkData(0,1,88) tdSql.checkData(0,1,1)
tdSql.checkData(1,0,88) tdSql.checkData(1,0,1)
tdSql.checkData(1,1,88) tdSql.checkData(1,1,1)
tdSql.query("select sub1.c1 , udf1(sub1.c1), sub2.c2 ,udf1(sub2.c2) from sub1, sub2 where sub1.ts=sub2.ts and sub1.c1 is not null") tdSql.query("select sub1.c1 , udf1(sub1.c1), sub2.c2 ,udf1(sub2.c2) from sub1, sub2 where sub1.ts=sub2.ts and sub1.c1 is not null")
tdSql.checkData(0,0,0) tdSql.checkData(0,0,0)
tdSql.checkData(0,1,88) tdSql.checkData(0,1,1)
tdSql.checkData(0,2,0) tdSql.checkData(0,2,0)
tdSql.checkData(0,3,88) tdSql.checkData(0,3,1)
tdSql.checkData(1,0,1) tdSql.checkData(1,0,1)
tdSql.checkData(1,1,88) tdSql.checkData(1,1,1)
tdSql.checkData(1,2,10) tdSql.checkData(1,2,10)
tdSql.checkData(1,3,88) tdSql.checkData(1,3,1)
tdSql.query("select udf2(sub1.c1), udf2(sub2.c2) from sub1, sub2 where sub1.ts=sub2.ts and sub1.c1 is not null") tdSql.query("select udf2(sub1.c1), udf2(sub2.c2) from sub1, sub2 where sub1.ts=sub2.ts and sub1.c1 is not null")
tdSql.checkData(0,0,16.881943016) tdSql.checkData(0,0,16.881943016)

View File

@ -190,20 +190,20 @@ class TDTestCase:
tdSql.checkData(0,0,None) tdSql.checkData(0,0,None)
tdSql.checkData(0,1,None) tdSql.checkData(0,1,None)
tdSql.checkData(0,2,1) tdSql.checkData(0,2,1)
tdSql.checkData(0,3,88) tdSql.checkData(0,3,1)
tdSql.checkData(0,4,1.000000000) tdSql.checkData(0,4,1.000000000)
tdSql.checkData(0,5,88) tdSql.checkData(0,5,1)
tdSql.checkData(0,6,"binary1") tdSql.checkData(0,6,"binary1")
tdSql.checkData(0,7,88) tdSql.checkData(0,7,1)
tdSql.checkData(3,0,3) tdSql.checkData(3,0,3)
tdSql.checkData(3,1,88) tdSql.checkData(3,1,1)
tdSql.checkData(3,2,33333) tdSql.checkData(3,2,33333)
tdSql.checkData(3,3,88) tdSql.checkData(3,3,1)
tdSql.checkData(3,4,33.000000000) tdSql.checkData(3,4,33.000000000)
tdSql.checkData(3,5,88) tdSql.checkData(3,5,1)
tdSql.checkData(3,6,"binary1") tdSql.checkData(3,6,"binary1")
tdSql.checkData(3,7,88) tdSql.checkData(3,7,1)
tdSql.checkData(11,0,None) tdSql.checkData(11,0,None)
tdSql.checkData(11,1,None) tdSql.checkData(11,1,None)
@ -212,7 +212,7 @@ class TDTestCase:
tdSql.checkData(11,4,None) tdSql.checkData(11,4,None)
tdSql.checkData(11,5,None) tdSql.checkData(11,5,None)
tdSql.checkData(11,6,"binary1") tdSql.checkData(11,6,"binary1")
tdSql.checkData(11,7,88) tdSql.checkData(11,7,1)
tdSql.query("select c1 , udf1(c1) ,c2 ,udf1(c2), c3 ,udf1(c3), c4 ,udf1(c4) from stb1 order by c1") tdSql.query("select c1 , udf1(c1) ,c2 ,udf1(c2), c3 ,udf1(c3), c4 ,udf1(c4) from stb1 order by c1")
tdSql.checkData(0,0,None) tdSql.checkData(0,0,None)
@ -225,13 +225,13 @@ class TDTestCase:
tdSql.checkData(0,7,None) tdSql.checkData(0,7,None)
tdSql.checkData(20,0,8) tdSql.checkData(20,0,8)
tdSql.checkData(20,1,88) tdSql.checkData(20,1,1)
tdSql.checkData(20,2,88888) tdSql.checkData(20,2,88888)
tdSql.checkData(20,3,88) tdSql.checkData(20,3,1)
tdSql.checkData(20,4,888) tdSql.checkData(20,4,888)
tdSql.checkData(20,5,88) tdSql.checkData(20,5,1)
tdSql.checkData(20,6,88) tdSql.checkData(20,6,88)
tdSql.checkData(20,7,88) tdSql.checkData(20,7,1)
# aggregate functions # aggregate functions
@ -374,14 +374,14 @@ class TDTestCase:
tdSql.checkRows(25) tdSql.checkRows(25)
tdSql.checkData(0,0,None) tdSql.checkData(0,0,None)
tdSql.checkData(0,1,None) tdSql.checkData(0,1,None)
tdSql.checkData(1,0,88) tdSql.checkData(1,0,1)
tdSql.checkData(1,1,8) tdSql.checkData(1,1,8)
tdSql.query("select abs(udf1(c1)) , abs(ceil(c1)) from ct1 order by ts;") tdSql.query("select abs(udf1(c1)) , abs(ceil(c1)) from ct1 order by ts;")
tdSql.checkRows(13) tdSql.checkRows(13)
tdSql.checkData(0,0,88) tdSql.checkData(0,0,1)
tdSql.checkData(0,1,8) tdSql.checkData(0,1,8)
tdSql.checkData(1,0,88) tdSql.checkData(1,0,1)
tdSql.checkData(1,1,7) tdSql.checkData(1,1,7)
# bug fix for crash # bug fix for crash
@ -400,9 +400,9 @@ class TDTestCase:
tdSql.query("select c1 ,udf1(c1) , c6 ,udf1(c6) from stb1 where c1 > 8 order by ts") tdSql.query("select c1 ,udf1(c1) , c6 ,udf1(c6) from stb1 where c1 > 8 order by ts")
tdSql.checkRows(3) tdSql.checkRows(3)
tdSql.checkData(0,0,9) tdSql.checkData(0,0,9)
tdSql.checkData(0,1,88) tdSql.checkData(0,1,1)
tdSql.checkData(0,2,-99.990000000) tdSql.checkData(0,2,-99.990000000)
tdSql.checkData(0,3,88) tdSql.checkData(0,3,1)
tdSql.query("select sub1.c1, sub2.c2 from sub1, sub2 where sub1.ts=sub2.ts and sub1.c1 is not null") tdSql.query("select sub1.c1, sub2.c2 from sub1, sub2 where sub1.ts=sub2.ts and sub1.c1 is not null")
tdSql.checkData(0,0,0) tdSql.checkData(0,0,0)
@ -411,20 +411,20 @@ class TDTestCase:
tdSql.checkData(1,1,10) tdSql.checkData(1,1,10)
tdSql.query("select udf1(sub1.c1), udf1(sub2.c2) from sub1, sub2 where sub1.ts=sub2.ts and sub1.c1 is not null") tdSql.query("select udf1(sub1.c1), udf1(sub2.c2) from sub1, sub2 where sub1.ts=sub2.ts and sub1.c1 is not null")
tdSql.checkData(0,0,88) tdSql.checkData(0,0,1)
tdSql.checkData(0,1,88) tdSql.checkData(0,1,1)
tdSql.checkData(1,0,88) tdSql.checkData(1,0,1)
tdSql.checkData(1,1,88) tdSql.checkData(1,1,1)
tdSql.query("select sub1.c1 , udf1(sub1.c1), sub2.c2 ,udf1(sub2.c2) from sub1, sub2 where sub1.ts=sub2.ts and sub1.c1 is not null") tdSql.query("select sub1.c1 , udf1(sub1.c1), sub2.c2 ,udf1(sub2.c2) from sub1, sub2 where sub1.ts=sub2.ts and sub1.c1 is not null")
tdSql.checkData(0,0,0) tdSql.checkData(0,0,0)
tdSql.checkData(0,1,88) tdSql.checkData(0,1,1)
tdSql.checkData(0,2,0) tdSql.checkData(0,2,0)
tdSql.checkData(0,3,88) tdSql.checkData(0,3,1)
tdSql.checkData(1,0,1) tdSql.checkData(1,0,1)
tdSql.checkData(1,1,88) tdSql.checkData(1,1,1)
tdSql.checkData(1,2,10) tdSql.checkData(1,2,10)
tdSql.checkData(1,3,88) tdSql.checkData(1,3,1)
tdSql.query("select udf2(sub1.c1), udf2(sub2.c2) from sub1, sub2 where sub1.ts=sub2.ts and sub1.c1 is not null") tdSql.query("select udf2(sub1.c1), udf2(sub2.c2) from sub1, sub2 where sub1.ts=sub2.ts and sub1.c1 is not null")
tdSql.checkData(0,0,16.881943016) tdSql.checkData(0,0,16.881943016)
@ -468,12 +468,12 @@ class TDTestCase:
tdSql.checkData(1,0,1) tdSql.checkData(1,0,1)
tdSql.checkData(1,1,1) tdSql.checkData(1,1,1)
tdSql.checkData(1,2,1.110000000) tdSql.checkData(1,2,1.110000000)
tdSql.checkData(1,3,88) tdSql.checkData(1,3,1)
tdSql.query("select c1,c6,udf1(c1,c6) from stb1 order by ts") tdSql.query("select c1,c6,udf1(c1,c6) from stb1 order by ts")
tdSql.checkData(1,0,8) tdSql.checkData(1,0,8)
tdSql.checkData(1,1,88.880000000) tdSql.checkData(1,1,88.880000000)
tdSql.checkData(1,2,88) tdSql.checkData(1,2,1)
tdSql.query("select abs(udf1(c1,c6,c1,c6)) , abs(ceil(c1)) from stb1 where c1 is not null order by ts;") tdSql.query("select abs(udf1(c1,c6,c1,c6)) , abs(ceil(c1)) from stb1 where c1 is not null order by ts;")
tdSql.checkRows(22) tdSql.checkRows(22)