fix interval limit on us/ns db
This commit is contained in:
parent
4186028083
commit
b422c29d4e
|
@ -3499,6 +3499,20 @@ static const char* getPrecisionStr(uint8_t precision) {
|
||||||
return "unknown";
|
return "unknown";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int64_t getPrecisionMultiple(uint8_t precision) {
|
||||||
|
switch (precision) {
|
||||||
|
case TSDB_TIME_PRECISION_MILLI:
|
||||||
|
return 1;
|
||||||
|
case TSDB_TIME_PRECISION_MICRO:
|
||||||
|
return 1000;
|
||||||
|
case TSDB_TIME_PRECISION_NANO:
|
||||||
|
return 1000000;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
static void convertVarDuration(SValueNode* pOffset, uint8_t precision) {
|
static void convertVarDuration(SValueNode* pOffset, uint8_t precision) {
|
||||||
const int64_t factors[3] = {NANOSECOND_PER_MSEC, NANOSECOND_PER_USEC, 1};
|
const int64_t factors[3] = {NANOSECOND_PER_MSEC, NANOSECOND_PER_USEC, 1};
|
||||||
const int8_t units[3] = {TIME_UNIT_MILLISECOND, TIME_UNIT_MICROSECOND, TIME_UNIT_NANOSECOND};
|
const int8_t units[3] = {TIME_UNIT_MILLISECOND, TIME_UNIT_MICROSECOND, TIME_UNIT_NANOSECOND};
|
||||||
|
@ -3521,7 +3535,7 @@ static int32_t checkIntervalWindow(STranslateContext* pCxt, SIntervalWindowNode*
|
||||||
if (pInter->datum.i <= 0 || (!valInter && pInter->datum.i < tsMinIntervalTime)) {
|
if (pInter->datum.i <= 0 || (!valInter && pInter->datum.i < tsMinIntervalTime)) {
|
||||||
return generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_INTER_VALUE_TOO_SMALL, tsMinIntervalTime,
|
return generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_INTER_VALUE_TOO_SMALL, tsMinIntervalTime,
|
||||||
getPrecisionStr(precision));
|
getPrecisionStr(precision));
|
||||||
} else if (pInter->datum.i > maxKeepMS) {
|
} else if (pInter->datum.i / getPrecisionMultiple(precision) > maxKeepMS) {
|
||||||
return generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_INTER_VALUE_TOO_BIG, 1000, "years");
|
return generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_INTER_VALUE_TOO_BIG, 1000, "years");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -114,10 +114,6 @@ TEST(osTimeTests, taosLocalTime) {
|
||||||
ASSERT_EQ(local_time->tm_min, 0);
|
ASSERT_EQ(local_time->tm_min, 0);
|
||||||
ASSERT_EQ(local_time->tm_sec, 0);
|
ASSERT_EQ(local_time->tm_sec, 0);
|
||||||
|
|
||||||
time_t over_timep = 6406301441633558;
|
|
||||||
local_time = taosLocalTime(&over_timep, &result, NULL);
|
|
||||||
ASSERT_EQ(local_time, nullptr);
|
|
||||||
|
|
||||||
time_t neg_timep3 = -78115158887;
|
time_t neg_timep3 = -78115158887;
|
||||||
local_time = taosLocalTime(&neg_timep3, &result, NULL);
|
local_time = taosLocalTime(&neg_timep3, &result, NULL);
|
||||||
ASSERT_EQ(local_time, nullptr);
|
ASSERT_EQ(local_time, nullptr);
|
||||||
|
|
Loading…
Reference in New Issue