Merge branches 'TEST/3.0/TS-4243' and '3.0' of github.com:taosdata/TDengine into TEST/3.0/TS-4243
This commit is contained in:
commit
8703373bd4
|
@ -1789,8 +1789,11 @@ static void taosCheckAndSetDebugFlag(int32_t *pFlagPtr, char *name, int32_t flag
|
||||||
|
|
||||||
void taosSetGlobalDebugFlag(int32_t flag) { taosSetAllDebugFlag(tsCfg, flag); }
|
void taosSetGlobalDebugFlag(int32_t flag) { taosSetAllDebugFlag(tsCfg, flag); }
|
||||||
|
|
||||||
|
// NOTE: set all command does not change the tmrDebugFlag
|
||||||
static void taosSetAllDebugFlag(SConfig *pCfg, int32_t flag) {
|
static void taosSetAllDebugFlag(SConfig *pCfg, int32_t flag) {
|
||||||
if (flag <= 0) return;
|
if (flag <= 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
SArray *noNeedToSetVars = NULL;
|
SArray *noNeedToSetVars = NULL;
|
||||||
SConfigItem *pItem = cfgGetItem(pCfg, "debugFlag");
|
SConfigItem *pItem = cfgGetItem(pCfg, "debugFlag");
|
||||||
|
@ -1800,7 +1803,6 @@ static void taosSetAllDebugFlag(SConfig *pCfg, int32_t flag) {
|
||||||
}
|
}
|
||||||
|
|
||||||
taosCheckAndSetDebugFlag(&simDebugFlag, "simDebugFlag", flag, noNeedToSetVars);
|
taosCheckAndSetDebugFlag(&simDebugFlag, "simDebugFlag", flag, noNeedToSetVars);
|
||||||
taosCheckAndSetDebugFlag(&tmrDebugFlag, "tmrDebugFlag", flag, noNeedToSetVars);
|
|
||||||
taosCheckAndSetDebugFlag(&uDebugFlag, "uDebugFlag", flag, noNeedToSetVars);
|
taosCheckAndSetDebugFlag(&uDebugFlag, "uDebugFlag", flag, noNeedToSetVars);
|
||||||
taosCheckAndSetDebugFlag(&rpcDebugFlag, "rpcDebugFlag", flag, noNeedToSetVars);
|
taosCheckAndSetDebugFlag(&rpcDebugFlag, "rpcDebugFlag", flag, noNeedToSetVars);
|
||||||
taosCheckAndSetDebugFlag(&qDebugFlag, "qDebugFlag", flag, noNeedToSetVars);
|
taosCheckAndSetDebugFlag(&qDebugFlag, "qDebugFlag", flag, noNeedToSetVars);
|
||||||
|
|
|
@ -392,24 +392,19 @@ static int32_t loadSttStatisticsBlockData(SSttFileReader *pSttFileReader, SSttBl
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pStatisBlkArray->data[k].maxTbid.suid == suid) {
|
if (pStatisBlkArray->data[k].maxTbid.suid == suid) {
|
||||||
|
int32_t size = rows - i;
|
||||||
|
int32_t offset = i * sizeof(int64_t);
|
||||||
|
|
||||||
tsdbInfo("-----before index:%d, uid:%" PRId64 " add record, numInUid:%d, hasPk:%d, numInPk:%d, rows:%d", i, suid,
|
taosArrayAddBatch(pBlockLoadInfo->info.pUid, tBufferGetDataAt(&block.uids, offset), size);
|
||||||
(int)taosArrayGetSize(pBlockLoadInfo->info.pUid), block.numOfPKs,
|
taosArrayAddBatch(pBlockLoadInfo->info.pFirstTs, tBufferGetDataAt(&block.firstKeyTimestamps, offset), size);
|
||||||
(int)taosArrayGetSize(pBlockLoadInfo->info.pFirstKey), rows-i);
|
taosArrayAddBatch(pBlockLoadInfo->info.pLastTs, tBufferGetDataAt(&block.lastKeyTimestamps, offset), size);
|
||||||
|
taosArrayAddBatch(pBlockLoadInfo->info.pCount, tBufferGetDataAt(&block.counts, offset), size);
|
||||||
taosArrayAddBatch(pBlockLoadInfo->info.pUid, tBufferGetDataAt(&block.uids, i * sizeof(int64_t)), rows - i);
|
|
||||||
taosArrayAddBatch(pBlockLoadInfo->info.pFirstTs,
|
|
||||||
tBufferGetDataAt(&block.firstKeyTimestamps, i * sizeof(int64_t)), rows - i);
|
|
||||||
taosArrayAddBatch(pBlockLoadInfo->info.pLastTs, tBufferGetDataAt(&block.lastKeyTimestamps, i * sizeof(int64_t)),
|
|
||||||
rows - i);
|
|
||||||
taosArrayAddBatch(pBlockLoadInfo->info.pCount, tBufferGetDataAt(&block.counts, i * sizeof(int64_t)), rows - i);
|
|
||||||
|
|
||||||
if (block.numOfPKs > 0) {
|
if (block.numOfPKs > 0) {
|
||||||
SValue vFirst = {0}, vLast = {0};
|
SValue vFirst = {0}, vLast = {0};
|
||||||
for (int32_t f = i; f < rows; ++f) {
|
for (int32_t f = i; f < rows; ++f) {
|
||||||
int32_t code = tValueColumnGet(&block.firstKeyPKs[0], f, &vFirst);
|
int32_t code = tValueColumnGet(&block.firstKeyPKs[0], f, &vFirst);
|
||||||
if (code) {
|
if (code) {
|
||||||
ASSERT(0);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -419,21 +414,18 @@ static int32_t loadSttStatisticsBlockData(SSttFileReader *pSttFileReader, SSttBl
|
||||||
// todo add api to clone the original data
|
// todo add api to clone the original data
|
||||||
code = tValueColumnGet(&block.lastKeyPKs[0], f, &vLast);
|
code = tValueColumnGet(&block.lastKeyPKs[0], f, &vLast);
|
||||||
if (code) {
|
if (code) {
|
||||||
ASSERT(0);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
tValueDupPayload(&vLast);
|
tValueDupPayload(&vLast);
|
||||||
taosArrayPush(pBlockLoadInfo->info.pLastKey, &vLast);
|
taosArrayPush(pBlockLoadInfo->info.pLastKey, &vLast);
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
|
SValue vFirst = {0};
|
||||||
tsdbInfo("-----after index:%d, uid:%" PRId64 " add record, numInUid:%d, hasPk:%d, numInPk:%d", i, suid,
|
for(int32_t j = 0; j < size; ++j) {
|
||||||
(int)taosArrayGetSize(pBlockLoadInfo->info.pUid), block.numOfPKs,
|
taosArrayPush(pBlockLoadInfo->info.pFirstKey, &vFirst);
|
||||||
(int)taosArrayGetSize(pBlockLoadInfo->info.pFirstKey));
|
taosArrayPush(pBlockLoadInfo->info.pLastKey, &vFirst);
|
||||||
|
}
|
||||||
if (block.numOfPKs > 0) {
|
|
||||||
ASSERT(taosArrayGetSize(pBlockLoadInfo->info.pLastKey) == taosArrayGetSize(pBlockLoadInfo->info.pFirstTs));
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
STbStatisRecord record = {0};
|
STbStatisRecord record = {0};
|
||||||
|
@ -444,10 +436,6 @@ static int32_t loadSttStatisticsBlockData(SSttFileReader *pSttFileReader, SSttBl
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
tsdbInfo("before index:%d, uid:%" PRId64 " add record, numInUid:%d, hasPk:%d, numInPk:%d", i, suid,
|
|
||||||
(int)taosArrayGetSize(pBlockLoadInfo->info.pUid), record.firstKey.numOfPKs,
|
|
||||||
(int)taosArrayGetSize(pBlockLoadInfo->info.pFirstKey));
|
|
||||||
|
|
||||||
taosArrayPush(pBlockLoadInfo->info.pUid, &record.uid);
|
taosArrayPush(pBlockLoadInfo->info.pUid, &record.uid);
|
||||||
taosArrayPush(pBlockLoadInfo->info.pCount, &record.count);
|
taosArrayPush(pBlockLoadInfo->info.pCount, &record.count);
|
||||||
|
|
||||||
|
@ -457,23 +445,18 @@ static int32_t loadSttStatisticsBlockData(SSttFileReader *pSttFileReader, SSttBl
|
||||||
if (record.firstKey.numOfPKs > 0) {
|
if (record.firstKey.numOfPKs > 0) {
|
||||||
SValue s = record.firstKey.pks[0];
|
SValue s = record.firstKey.pks[0];
|
||||||
tValueDupPayload(&s);
|
tValueDupPayload(&s);
|
||||||
|
|
||||||
taosArrayPush(pBlockLoadInfo->info.pFirstKey, &s);
|
taosArrayPush(pBlockLoadInfo->info.pFirstKey, &s);
|
||||||
|
|
||||||
s = record.lastKey.pks[0];
|
s = record.lastKey.pks[0];
|
||||||
tValueDupPayload(&s);
|
tValueDupPayload(&s);
|
||||||
|
|
||||||
taosArrayPush(pBlockLoadInfo->info.pLastKey, &s);
|
taosArrayPush(pBlockLoadInfo->info.pLastKey, &s);
|
||||||
|
} else {
|
||||||
|
SValue v = {0};
|
||||||
|
taosArrayPush(pBlockLoadInfo->info.pFirstKey, &v);
|
||||||
|
taosArrayPush(pBlockLoadInfo->info.pLastKey, &v);
|
||||||
}
|
}
|
||||||
|
|
||||||
i += 1;
|
i += 1;
|
||||||
tsdbInfo("after index:%d, uid:%" PRId64 " add record, numInUid:%d, hasPk:%d, numInPk:%d", i, suid,
|
|
||||||
(int)taosArrayGetSize(pBlockLoadInfo->info.pUid), record.firstKey.numOfPKs,
|
|
||||||
(int)taosArrayGetSize(pBlockLoadInfo->info.pFirstKey));
|
|
||||||
|
|
||||||
if (record.firstKey.numOfPKs > 0) {
|
|
||||||
ASSERT(taosArrayGetSize(pBlockLoadInfo->info.pLastKey) == taosArrayGetSize(pBlockLoadInfo->info.pFirstTs));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -137,7 +137,21 @@ int32_t initRowKey(SRowKey* pKey, int64_t ts, int32_t numOfPks, int32_t type, in
|
||||||
if (numOfPks > 0) {
|
if (numOfPks > 0) {
|
||||||
pKey->pks[0].type = type;
|
pKey->pks[0].type = type;
|
||||||
if (IS_NUMERIC_TYPE(pKey->pks[0].type)) {
|
if (IS_NUMERIC_TYPE(pKey->pks[0].type)) {
|
||||||
pKey->pks[0].val = asc? INT64_MIN:INT64_MAX;
|
if (asc) {
|
||||||
|
switch(pKey->pks[0].type) {
|
||||||
|
case TSDB_DATA_TYPE_BIGINT:pKey->pks[0].val = INT64_MIN;break;
|
||||||
|
case TSDB_DATA_TYPE_INT:pKey->pks[0].val = INT32_MIN;break;
|
||||||
|
case TSDB_DATA_TYPE_SMALLINT:pKey->pks[0].val = INT16_MIN;break;
|
||||||
|
case TSDB_DATA_TYPE_TINYINT:pKey->pks[0].val = INT8_MIN;break;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
switch(pKey->pks[0].type) {
|
||||||
|
case TSDB_DATA_TYPE_BIGINT:pKey->pks[0].val = INT64_MAX;break;
|
||||||
|
case TSDB_DATA_TYPE_INT:pKey->pks[0].val = INT32_MAX;break;
|
||||||
|
case TSDB_DATA_TYPE_SMALLINT:pKey->pks[0].val = INT16_MAX;break;
|
||||||
|
case TSDB_DATA_TYPE_TINYINT:pKey->pks[0].val = INT8_MAX;break;
|
||||||
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
pKey->pks[0].pData = taosMemoryCalloc(1, len);
|
pKey->pks[0].pData = taosMemoryCalloc(1, len);
|
||||||
pKey->pks[0].nData = 0;
|
pKey->pks[0].nData = 0;
|
||||||
|
|
|
@ -11351,6 +11351,8 @@ static int32_t setQuery(STranslateContext* pCxt, SQuery* pQuery) {
|
||||||
|
|
||||||
if (nodeType(pQuery->pRoot) == QUERY_NODE_SELECT_STMT) {
|
if (nodeType(pQuery->pRoot) == QUERY_NODE_SELECT_STMT) {
|
||||||
pQuery->precision = extractResultTsPrecision((SSelectStmt*)pQuery->pRoot);
|
pQuery->precision = extractResultTsPrecision((SSelectStmt*)pQuery->pRoot);
|
||||||
|
} else if (nodeType(pQuery->pRoot) == QUERY_NODE_SET_OPERATOR) {
|
||||||
|
pQuery->precision = ((SSetOperator*)pQuery->pRoot)->precision;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1174,6 +1174,7 @@
|
||||||
,,y,script,./test.sh -f tsim/query/apercentile.sim
|
,,y,script,./test.sh -f tsim/query/apercentile.sim
|
||||||
,,y,script,./test.sh -f tsim/query/query_count0.sim
|
,,y,script,./test.sh -f tsim/query/query_count0.sim
|
||||||
,,y,script,./test.sh -f tsim/query/query_count_sliding0.sim
|
,,y,script,./test.sh -f tsim/query/query_count_sliding0.sim
|
||||||
|
,,y,script,./test.sh -f tsim/query/union_precision.sim
|
||||||
,,y,script,./test.sh -f tsim/qnode/basic1.sim
|
,,y,script,./test.sh -f tsim/qnode/basic1.sim
|
||||||
,,y,script,./test.sh -f tsim/snode/basic1.sim
|
,,y,script,./test.sh -f tsim/snode/basic1.sim
|
||||||
,,y,script,./test.sh -f tsim/mnode/basic1.sim
|
,,y,script,./test.sh -f tsim/mnode/basic1.sim
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
system sh/stop_dnodes.sh
|
||||||
|
system sh/deploy.sh -n dnode1 -i 1
|
||||||
|
system sh/exec.sh -n dnode1 -s start
|
||||||
|
sql connect
|
||||||
|
|
||||||
|
sql create database tt precision 'us';
|
||||||
|
sql use tt ;
|
||||||
|
sql CREATE TABLE t_test_table ( ts TIMESTAMP, a NCHAR(80), b NCHAR(80), c NCHAR(80) );
|
||||||
|
sql insert into t_test_table values('2024-04-07 14:30:22.823','aa','aa', 'aa');
|
||||||
|
sql select * from t_test_table t union all select * from t_test_table t ;
|
||||||
|
if $rows != 2 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data00 != @24-04-07 14:30:22.823000@ then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
Loading…
Reference in New Issue