enh: replace row format
This commit is contained in:
parent
e90e0ff81c
commit
7e10ec1791
|
@ -523,9 +523,14 @@ static int32_t parseTagValue(SInsertParseContext* pCxt, SVnodeModifOpStmt* pStmt
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void buildCreateTbReq(SVnodeModifOpStmt* pStmt, STag* pTag, SArray* pTagName) {
|
static int32_t buildCreateTbReq(SVnodeModifOpStmt* pStmt, STag* pTag, SArray* pTagName) {
|
||||||
|
pStmt->pCreateTblReq = taosMemoryCalloc(1, sizeof(SVCreateTbReq));
|
||||||
|
if (NULL == pStmt->pCreateTblReq) {
|
||||||
|
return TSDB_CODE_OUT_OF_MEMORY;
|
||||||
|
}
|
||||||
insBuildCreateTbReq(pStmt->pCreateTblReq, pStmt->targetTableName.tname, pTag, pStmt->pTableMeta->suid,
|
insBuildCreateTbReq(pStmt->pCreateTblReq, pStmt->targetTableName.tname, pTag, pStmt->pTableMeta->suid,
|
||||||
pStmt->usingTableName.tname, pTagName, pStmt->pTableMeta->tableInfo.numOfTags);
|
pStmt->usingTableName.tname, pTagName, pStmt->pTableMeta->tableInfo.numOfTags);
|
||||||
|
return TSDB_CODE_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int32_t checkAndTrimValue(SToken* pToken, char* tmpTokenBuf, SMsgBuf* pMsgBuf) {
|
static int32_t checkAndTrimValue(SToken* pToken, char* tmpTokenBuf, SMsgBuf* pMsgBuf) {
|
||||||
|
@ -592,7 +597,7 @@ static int32_t parseTagsClauseImpl(SInsertParseContext* pCxt, SVnodeModifOpStmt*
|
||||||
}
|
}
|
||||||
|
|
||||||
if (TSDB_CODE_SUCCESS == code && !isParseBindParam) {
|
if (TSDB_CODE_SUCCESS == code && !isParseBindParam) {
|
||||||
buildCreateTbReq(pStmt, pTag, pTagName);
|
code = buildCreateTbReq(pStmt, pTag, pTagName);
|
||||||
pTag = NULL;
|
pTag = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1342,8 +1347,10 @@ static int32_t parseInsertTableClauseBottom(SInsertParseContext* pCxt, SVnodeMod
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void destroyBoundColInfo(SBoundColInfo* pInfo) { taosMemoryFreeClear(pInfo->pColIndex); }
|
||||||
|
|
||||||
static void resetEnvPreTable(SInsertParseContext* pCxt, SVnodeModifOpStmt* pStmt) {
|
static void resetEnvPreTable(SInsertParseContext* pCxt, SVnodeModifOpStmt* pStmt) {
|
||||||
// destroyBoundColumnInfo(&pCxt->tags);
|
destroyBoundColInfo(&pCxt->tags);
|
||||||
taosMemoryFreeClear(pStmt->pTableMeta);
|
taosMemoryFreeClear(pStmt->pTableMeta);
|
||||||
tdDestroySVCreateTbReq(pStmt->pCreateTblReq);
|
tdDestroySVCreateTbReq(pStmt->pCreateTblReq);
|
||||||
taosMemoryFreeClear(pStmt->pCreateTblReq);
|
taosMemoryFreeClear(pStmt->pCreateTblReq);
|
||||||
|
@ -1808,6 +1815,6 @@ int32_t parseInsertSql(SParseContext* pCxt, SQuery** pQuery, SCatalogReq* pCatal
|
||||||
QUERY_EXEC_STAGE_SCHEDULE == (*pQuery)->execStage) {
|
QUERY_EXEC_STAGE_SCHEDULE == (*pQuery)->execStage) {
|
||||||
code = setRefreshMate(*pQuery);
|
code = setRefreshMate(*pQuery);
|
||||||
}
|
}
|
||||||
// destroyBoundColumnInfo(&context.tags);
|
destroyBoundColInfo(&context.tags);
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1052,6 +1052,13 @@ int32_t insGetTableDataCxt(SHashObj* pHash, void* id, int32_t idLen, STableMeta*
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void destroyColVal(void* p) {
|
||||||
|
SColVal* pVal = p;
|
||||||
|
if (TSDB_DATA_TYPE_NCHAR == pVal->type) {
|
||||||
|
taosMemoryFree(pVal->value.pData);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void insDestroyTableDataCxt(STableDataCxt* pTableCxt) {
|
void insDestroyTableDataCxt(STableDataCxt* pTableCxt) {
|
||||||
if (NULL == pTableCxt) {
|
if (NULL == pTableCxt) {
|
||||||
return;
|
return;
|
||||||
|
@ -1060,7 +1067,7 @@ void insDestroyTableDataCxt(STableDataCxt* pTableCxt) {
|
||||||
taosMemoryFreeClear(pTableCxt->pMeta);
|
taosMemoryFreeClear(pTableCxt->pMeta);
|
||||||
tDestroyTSchema(pTableCxt->pSchema);
|
tDestroyTSchema(pTableCxt->pSchema);
|
||||||
destroyBoundColInfo(&pTableCxt->boundColsInfo);
|
destroyBoundColInfo(&pTableCxt->boundColsInfo);
|
||||||
taosArrayDestroyEx(pTableCxt->pValues, NULL /*todo*/);
|
taosArrayDestroyEx(pTableCxt->pValues, destroyColVal);
|
||||||
tdDestroySVCreateTbReq(pTableCxt->pCreateTblReq);
|
tdDestroySVCreateTbReq(pTableCxt->pCreateTblReq);
|
||||||
taosMemoryFreeClear(pTableCxt->pCreateTblReq);
|
taosMemoryFreeClear(pTableCxt->pCreateTblReq);
|
||||||
tDestroySSubmitTbData(pTableCxt->pData);
|
tDestroySSubmitTbData(pTableCxt->pData);
|
||||||
|
@ -1180,10 +1187,13 @@ int32_t insMergeTableDataCxt(SHashObj* pTableHash, SArray** pVgDataBlocks) {
|
||||||
STableDataCxt* pTableCxt = *(STableDataCxt**)p;
|
STableDataCxt* pTableCxt = *(STableDataCxt**)p;
|
||||||
code = tRowMergeSort(pTableCxt->pData->aRowP, pTableCxt->pSchema, 0);
|
code = tRowMergeSort(pTableCxt->pData->aRowP, pTableCxt->pSchema, 0);
|
||||||
if (TSDB_CODE_SUCCESS == code) {
|
if (TSDB_CODE_SUCCESS == code) {
|
||||||
|
SVgroupDataCxt* pVgCxt = NULL;
|
||||||
int32_t vgId = pTableCxt->pMeta->vgId;
|
int32_t vgId = pTableCxt->pMeta->vgId;
|
||||||
SVgroupDataCxt* pVgCxt = taosHashGet(pVgroupHash, &vgId, sizeof(vgId));
|
void** p = taosHashGet(pVgroupHash, &vgId, sizeof(vgId));
|
||||||
if (NULL == pVgCxt) {
|
if (NULL == p) {
|
||||||
code = createVgroupDataCxt(pTableCxt, pVgroupHash, pVgroupList, &pVgCxt);
|
code = createVgroupDataCxt(pTableCxt, pVgroupHash, pVgroupList, &pVgCxt);
|
||||||
|
} else {
|
||||||
|
pVgCxt = *(SVgroupDataCxt**)p;
|
||||||
}
|
}
|
||||||
if (TSDB_CODE_SUCCESS == code) {
|
if (TSDB_CODE_SUCCESS == code) {
|
||||||
code = fillVgroupDataCxt(pTableCxt, pVgCxt);
|
code = fillVgroupDataCxt(pTableCxt, pVgCxt);
|
||||||
|
@ -1232,6 +1242,12 @@ static int32_t buildSubmitReq(int32_t vgId, SSubmitReq2* pReq, void** pData, uin
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void destroyVgDataBlocks(void* p) {
|
||||||
|
SVgDataBlocks* pVg = p;
|
||||||
|
taosMemoryFree(pVg->pData);
|
||||||
|
taosMemoryFree(pVg);
|
||||||
|
}
|
||||||
|
|
||||||
int32_t insBuildVgDataBlocks(SHashObj* pVgroupsHashObj, SArray* pVgDataCxtList, SArray** pVgDataBlocks) {
|
int32_t insBuildVgDataBlocks(SHashObj* pVgroupsHashObj, SArray* pVgDataCxtList, SArray** pVgDataBlocks) {
|
||||||
size_t numOfVg = taosArrayGetSize(pVgDataCxtList);
|
size_t numOfVg = taosArrayGetSize(pVgDataCxtList);
|
||||||
SArray* pDataBlocks = taosArrayInit(numOfVg, POINTER_BYTES);
|
SArray* pDataBlocks = taosArrayInit(numOfVg, POINTER_BYTES);
|
||||||
|
@ -1261,7 +1277,7 @@ int32_t insBuildVgDataBlocks(SHashObj* pVgroupsHashObj, SArray* pVgDataCxtList,
|
||||||
if (TSDB_CODE_SUCCESS == code) {
|
if (TSDB_CODE_SUCCESS == code) {
|
||||||
*pVgDataBlocks = pDataBlocks;
|
*pVgDataBlocks = pDataBlocks;
|
||||||
} else {
|
} else {
|
||||||
// todo
|
taosArrayDestroyP(pDataBlocks, destroyVgDataBlocks);
|
||||||
}
|
}
|
||||||
|
|
||||||
return code;
|
return code;
|
||||||
|
|
Loading…
Reference in New Issue