adjust row api
This commit is contained in:
parent
e9241629c3
commit
feaea3d12f
|
@ -87,7 +87,8 @@ int32_t tBufferReserve(SBuffer *pBuffer, int64_t nData, void **ppData);
|
||||||
int32_t tRowBuild(SArray *aColVal, STSchema *pTSchema, SRow **ppRow);
|
int32_t tRowBuild(SArray *aColVal, STSchema *pTSchema, SRow **ppRow);
|
||||||
void tRowGet(SRow *pRow, STSchema *pTSchema, int32_t iCol, SColVal *pColVal);
|
void tRowGet(SRow *pRow, STSchema *pTSchema, int32_t iCol, SColVal *pColVal);
|
||||||
void tRowDestroy(SRow *pRow);
|
void tRowDestroy(SRow *pRow);
|
||||||
int32_t tRowMergeSort(SArray *aRowP, STSchema *pTSchema, int8_t flag);
|
void tRowSort(SArray *aRowP);
|
||||||
|
int32_t tRowMerge(SArray *aRowP, STSchema *pTSchema, int8_t flag);
|
||||||
|
|
||||||
// SRowIter ================================
|
// SRowIter ================================
|
||||||
int32_t tRowIterOpen(SRow *pRow, STSchema *pTSchema, SRowIter **ppIter);
|
int32_t tRowIterOpen(SRow *pRow, STSchema *pTSchema, SRowIter **ppIter);
|
||||||
|
|
|
@ -527,7 +527,7 @@ static int32_t tRowPCmprFn(const void *p1, const void *p2) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
static void tRowPDestroy(SRow **ppRow) { tRowDestroy(*ppRow); }
|
static void tRowPDestroy(SRow **ppRow) { tRowDestroy(*ppRow); }
|
||||||
static int32_t tRowMerge(SArray *aRowP, STSchema *pTSchema, int32_t iStart, int32_t iEnd, int8_t flag) {
|
static int32_t tRowMergeImpl(SArray *aRowP, STSchema *pTSchema, int32_t iStart, int32_t iEnd, int8_t flag) {
|
||||||
int32_t code = 0;
|
int32_t code = 0;
|
||||||
|
|
||||||
int32_t nRow = iEnd - iStart;
|
int32_t nRow = iEnd - iStart;
|
||||||
|
@ -591,12 +591,14 @@ _exit:
|
||||||
if (code) tRowDestroy(pRow);
|
if (code) tRowDestroy(pRow);
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
int32_t tRowMergeSort(SArray *aRowP, STSchema *pTSchema, int8_t flag) {
|
|
||||||
if (aRowP->size <= 1) return 0;
|
|
||||||
|
|
||||||
int32_t code = 0;
|
|
||||||
|
|
||||||
|
void tRowSort(SArray *aRowP) {
|
||||||
|
if (TARRAY_SIZE(aRowP) <= 1) return;
|
||||||
taosArraySort(aRowP, tRowPCmprFn);
|
taosArraySort(aRowP, tRowPCmprFn);
|
||||||
|
}
|
||||||
|
|
||||||
|
int32_t tRowMerge(SArray *aRowP, STSchema *pTSchema, int8_t flag) {
|
||||||
|
int32_t code = 0;
|
||||||
|
|
||||||
int32_t iStart = 0;
|
int32_t iStart = 0;
|
||||||
while (iStart < aRowP->size) {
|
while (iStart < aRowP->size) {
|
||||||
|
@ -612,7 +614,7 @@ int32_t tRowMergeSort(SArray *aRowP, STSchema *pTSchema, int8_t flag) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (iEnd - iStart > 1) {
|
if (iEnd - iStart > 1) {
|
||||||
code = tRowMerge(aRowP, pTSchema, iStart, iEnd, flag);
|
code = tRowMergeImpl(aRowP, pTSchema, iStart, iEnd, flag);
|
||||||
}
|
}
|
||||||
|
|
||||||
// the array is also changing, so the iStart just ++ instead of iEnd
|
// the array is also changing, so the iStart just ++ instead of iEnd
|
||||||
|
|
|
@ -1179,7 +1179,7 @@ int32_t insMergeTableDataCxt(SHashObj* pTableHash, SArray** pVgDataBlocks) {
|
||||||
void* p = taosHashIterate(pTableHash, NULL);
|
void* p = taosHashIterate(pTableHash, NULL);
|
||||||
while (TSDB_CODE_SUCCESS == code && NULL != p) {
|
while (TSDB_CODE_SUCCESS == code && NULL != p) {
|
||||||
STableDataCxt* pTableCxt = *(STableDataCxt**)p;
|
STableDataCxt* pTableCxt = *(STableDataCxt**)p;
|
||||||
code = tRowMergeSort(pTableCxt->pData->aRowP, pTableCxt->pSchema, 0);
|
code = tRowMerge(pTableCxt->pData->aRowP, pTableCxt->pSchema, 0);
|
||||||
if (TSDB_CODE_SUCCESS == code) {
|
if (TSDB_CODE_SUCCESS == code) {
|
||||||
SVgroupDataCxt* pVgCxt = NULL;
|
SVgroupDataCxt* pVgCxt = NULL;
|
||||||
int32_t vgId = pTableCxt->pMeta->vgId;
|
int32_t vgId = pTableCxt->pMeta->vgId;
|
||||||
|
|
Loading…
Reference in New Issue