more code
This commit is contained in:
parent
1443b3757e
commit
bac7da7037
|
@ -2218,13 +2218,13 @@ static void tColDataMergeImpl(SColData *pColData, int32_t iStart, int32_t iEnd /
|
||||||
switch (pColData->flag) {
|
switch (pColData->flag) {
|
||||||
case HAS_NONE:
|
case HAS_NONE:
|
||||||
case HAS_NULL: {
|
case HAS_NULL: {
|
||||||
pColData->nVal = pColData->nVal - (iEnd - iStart - 1);
|
pColData->nVal -= (iEnd - iStart - 1);
|
||||||
} break;
|
} break;
|
||||||
case (HAS_NULL | HAS_NONE): {
|
case (HAS_NULL | HAS_NONE): {
|
||||||
if (GET_BIT1(pColData->pBitMap, iStart) == BIT_FLG_NONE) {
|
if (GET_BIT1(pColData->pBitMap, iStart) == 0) {
|
||||||
for (int32_t i = iStart + 1; i < iEnd; ++i) {
|
for (int32_t i = iStart + 1; i < iEnd; ++i) {
|
||||||
if (GET_BIT1(pColData->pBitMap, i) == BIT_FLG_NULL) {
|
if (GET_BIT1(pColData->pBitMap, i) == 1) {
|
||||||
SET_BIT1(pColData->pBitMap, iStart, BIT_FLG_NULL);
|
SET_BIT1(pColData->pBitMap, iStart, 1);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2233,7 +2233,7 @@ static void tColDataMergeImpl(SColData *pColData, int32_t iStart, int32_t iEnd /
|
||||||
SET_BIT1(pColData->pBitMap, j, GET_BIT1(pColData->pBitMap, i));
|
SET_BIT1(pColData->pBitMap, j, GET_BIT1(pColData->pBitMap, i));
|
||||||
}
|
}
|
||||||
|
|
||||||
pColData->nVal = pColData->nVal - (iEnd - iStart - 1);
|
pColData->nVal -= (iEnd - iStart - 1);
|
||||||
|
|
||||||
uint8_t flag = 0;
|
uint8_t flag = 0;
|
||||||
for (int32_t i = 0; i < pColData->nVal; ++i) {
|
for (int32_t i = 0; i < pColData->nVal; ++i) {
|
||||||
|
@ -2254,7 +2254,7 @@ static void tColDataMergeImpl(SColData *pColData, int32_t iStart, int32_t iEnd /
|
||||||
if (IS_VAR_DATA_TYPE(pColData->type)) {
|
if (IS_VAR_DATA_TYPE(pColData->type)) {
|
||||||
int32_t nDiff = pColData->aOffset[iEnd - 1] - pColData->aOffset[iStart];
|
int32_t nDiff = pColData->aOffset[iEnd - 1] - pColData->aOffset[iStart];
|
||||||
|
|
||||||
memmove(&pColData->pData[pColData->aOffset[iStart]], &pColData->pData[pColData->aOffset[iEnd - 1]],
|
memmove(pColData->pData + pColData->aOffset[iStart], pColData->pData + pColData->aOffset[iEnd - 1],
|
||||||
pColData->nData - pColData->aOffset[iEnd - 1]);
|
pColData->nData - pColData->aOffset[iEnd - 1]);
|
||||||
pColData->nData -= nDiff;
|
pColData->nData -= nDiff;
|
||||||
|
|
||||||
|
@ -2262,13 +2262,13 @@ static void tColDataMergeImpl(SColData *pColData, int32_t iStart, int32_t iEnd /
|
||||||
pColData->aOffset[j] = pColData->aOffset[i] - nDiff;
|
pColData->aOffset[j] = pColData->aOffset[i] - nDiff;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
memmove(&pColData->pData[TYPE_BYTES[pColData->type] * iStart],
|
memmove(pColData->pData + TYPE_BYTES[pColData->type] * iStart,
|
||||||
&pColData->pData[TYPE_BYTES[pColData->type] * (iEnd - 1)],
|
pColData->pData + TYPE_BYTES[pColData->type] * (iEnd - 1),
|
||||||
TYPE_BYTES[pColData->type] * (pColData->nVal - iEnd + 1));
|
TYPE_BYTES[pColData->type] * (pColData->nVal - iEnd + 1));
|
||||||
pColData->nData -= (TYPE_BYTES[pColData->type] * (iEnd - iStart - 1));
|
pColData->nData -= (TYPE_BYTES[pColData->type] * (iEnd - iStart - 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
pColData->nVal = pColData->nVal - (iEnd - iStart - 1);
|
pColData->nVal -= (iEnd - iStart - 1);
|
||||||
} break;
|
} break;
|
||||||
case (HAS_VALUE | HAS_NONE): {
|
case (HAS_VALUE | HAS_NONE): {
|
||||||
uint8_t bv;
|
uint8_t bv;
|
||||||
|
@ -2337,13 +2337,13 @@ static void tColDataMergeImpl(SColData *pColData, int32_t iStart, int32_t iEnd /
|
||||||
SET_BIT1(pColData->pBitMap, j, GET_BIT1(pColData->pBitMap, i));
|
SET_BIT1(pColData->pBitMap, j, GET_BIT1(pColData->pBitMap, i));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
pColData->nVal = pColData->nVal - (iEnd - iStart - 1);
|
pColData->nVal -= (iEnd - iStart - 1);
|
||||||
} break;
|
} break;
|
||||||
case (HAS_VALUE | HAS_NULL): {
|
case (HAS_VALUE | HAS_NULL): {
|
||||||
if (IS_VAR_DATA_TYPE(pColData->type)) {
|
if (IS_VAR_DATA_TYPE(pColData->type)) {
|
||||||
int32_t nDiff = pColData->aOffset[iEnd - 1] - pColData->aOffset[iStart];
|
int32_t nDiff = pColData->aOffset[iEnd - 1] - pColData->aOffset[iStart];
|
||||||
|
|
||||||
memmove(&pColData->pData[pColData->aOffset[iStart]], &pColData->pData[pColData->aOffset[iEnd - 1]],
|
memmove(pColData->pData + pColData->aOffset[iStart], pColData->pData + pColData->aOffset[iEnd - 1],
|
||||||
pColData->nData - pColData->aOffset[iEnd - 1]);
|
pColData->nData - pColData->aOffset[iEnd - 1]);
|
||||||
pColData->nData -= nDiff;
|
pColData->nData -= nDiff;
|
||||||
|
|
||||||
|
@ -2351,8 +2351,8 @@ static void tColDataMergeImpl(SColData *pColData, int32_t iStart, int32_t iEnd /
|
||||||
pColData->aOffset[j] = pColData->aOffset[i] - nDiff;
|
pColData->aOffset[j] = pColData->aOffset[i] - nDiff;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
memmove(&pColData->pData[TYPE_BYTES[pColData->type] * iStart],
|
memmove(pColData->pData + TYPE_BYTES[pColData->type] * iStart,
|
||||||
&pColData->pData[TYPE_BYTES[pColData->type] * (iEnd - 1)],
|
pColData->pData + TYPE_BYTES[pColData->type] * (iEnd - 1),
|
||||||
TYPE_BYTES[pColData->type] * (pColData->nVal - iEnd + 1));
|
TYPE_BYTES[pColData->type] * (pColData->nVal - iEnd + 1));
|
||||||
pColData->nData -= (TYPE_BYTES[pColData->type] * (iEnd - iStart - 1));
|
pColData->nData -= (TYPE_BYTES[pColData->type] * (iEnd - iStart - 1));
|
||||||
}
|
}
|
||||||
|
@ -2361,12 +2361,11 @@ static void tColDataMergeImpl(SColData *pColData, int32_t iStart, int32_t iEnd /
|
||||||
SET_BIT1(pColData->pBitMap, j, GET_BIT1(pColData->pBitMap, i));
|
SET_BIT1(pColData->pBitMap, j, GET_BIT1(pColData->pBitMap, i));
|
||||||
}
|
}
|
||||||
|
|
||||||
pColData->nVal = pColData->nVal - (iEnd - iStart - 1);
|
pColData->nVal -= (iEnd - iStart - 1);
|
||||||
|
|
||||||
uint8_t flag = 0;
|
uint8_t flag = 0;
|
||||||
for (int32_t i = 0; i < pColData->nVal; ++i) {
|
for (int32_t i = 0; i < pColData->nVal; ++i) {
|
||||||
uint8_t bv = GET_BIT1(pColData->pBitMap, i);
|
if (GET_BIT1(pColData->pBitMap, i)) {
|
||||||
if (bv) {
|
|
||||||
flag |= HAS_VALUE;
|
flag |= HAS_VALUE;
|
||||||
} else {
|
} else {
|
||||||
flag |= HAS_NULL;
|
flag |= HAS_NULL;
|
||||||
|
@ -2379,7 +2378,7 @@ static void tColDataMergeImpl(SColData *pColData, int32_t iStart, int32_t iEnd /
|
||||||
case (HAS_VALUE | HAS_NULL | HAS_NONE): {
|
case (HAS_VALUE | HAS_NULL | HAS_NONE): {
|
||||||
// TODO
|
// TODO
|
||||||
ASSERT(0);
|
ASSERT(0);
|
||||||
pColData->nVal = pColData->nVal - (iEnd - iStart - 1);
|
pColData->nVal -= (iEnd - iStart - 1);
|
||||||
} break;
|
} break;
|
||||||
default:
|
default:
|
||||||
ASSERT(0);
|
ASSERT(0);
|
||||||
|
@ -2389,7 +2388,7 @@ static void tColDataMergeImpl(SColData *pColData, int32_t iStart, int32_t iEnd /
|
||||||
static void tColDataMerge(SColData *aColData, int32_t nColData) {
|
static void tColDataMerge(SColData *aColData, int32_t nColData) {
|
||||||
int32_t iStart = 0;
|
int32_t iStart = 0;
|
||||||
for (;;) {
|
for (;;) {
|
||||||
if (iStart >= aColData[0].nVal) break;
|
if (iStart >= aColData[0].nVal - 1) break;
|
||||||
|
|
||||||
int32_t iEnd = iStart + 1;
|
int32_t iEnd = iStart + 1;
|
||||||
while (iEnd < aColData[0].nVal) {
|
while (iEnd < aColData[0].nVal) {
|
||||||
|
|
Loading…
Reference in New Issue