diff --git a/src/client/inc/tscUtil.h b/src/client/inc/tscUtil.h index 687d182bb696dd745eb3795ccc23b6284cec0a30..b3674a7bf5bf94806dfd576b4e81af95413bb5bd 100644 --- a/src/client/inc/tscUtil.h +++ b/src/client/inc/tscUtil.h @@ -340,7 +340,7 @@ STableMeta* createSuperTableMeta(STableMetaMsg* pChild); uint32_t tscGetTableMetaSize(STableMeta* pTableMeta); CChildTableMeta* tscCreateChildMeta(STableMeta* pTableMeta); uint32_t tscGetTableMetaMaxSize(); -int32_t tscCreateTableMetaFromSTableMeta(STableMeta* pChild, const char* name, void* buf); +int32_t tscCreateTableMetaFromSTableMeta(STableMeta** pChild, const char* name, size_t *tableMetaCapacity); STableMeta* tscTableMetaDup(STableMeta* pTableMeta); SVgroupsInfo* tscVgroupsInfoDup(SVgroupsInfo* pVgroupsInfo); diff --git a/src/client/src/tscParseInsert.c b/src/client/src/tscParseInsert.c index 65c5de576853e232dc567ca39c9b19791a8fd7c4..ecc29a8d89dc43254c55aa16b30eb91a41cdcfca 100644 --- a/src/client/src/tscParseInsert.c +++ b/src/client/src/tscParseInsert.c @@ -84,8 +84,6 @@ int tsParseTime(SStrToken *pToken, int64_t *time, char **next, char *error, int1 int64_t useconds = 0; char * pTokenEnd = *next; - index = 0; - if (pToken->type == TK_NOW) { useconds = taosGetTimestamp(timePrec); } else if (strncmp(pToken->z, "0", 1) == 0 && pToken->n == 1) { @@ -130,7 +128,8 @@ int tsParseTime(SStrToken *pToken, int64_t *time, char **next, char *error, int1 return tscInvalidOperationMsg(error, "value expected in timestamp", sToken.z); } - if (parseAbsoluteDuration(valueToken.z, valueToken.n, &interval, timePrec) != TSDB_CODE_SUCCESS) { + char unit = 0; + if (parseAbsoluteDuration(valueToken.z, valueToken.n, &interval, &unit, timePrec) != TSDB_CODE_SUCCESS) { return TSDB_CODE_TSC_INVALID_OPERATION; } diff --git a/src/client/src/tscParseLineProtocol.c b/src/client/src/tscParseLineProtocol.c index 7d2823a42edc3ea7616e822d47cfdbf8706f4a56..2a16f1aad6525a25da652f643dc7b7f91debd432 100644 --- a/src/client/src/tscParseLineProtocol.c +++ b/src/client/src/tscParseLineProtocol.c @@ -458,9 +458,9 @@ int32_t loadTableMeta(TAOS* taos, char* tableName, SSmlSTableSchema* schema, SSm schema->tagHash = taosHashInit(8, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, false); schema->fieldHash = taosHashInit(64, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, false); - uint32_t size = tscGetTableMetaMaxSize(); - STableMeta* tableMeta = calloc(1, size); - taosHashGetClone(tscTableMetaMap, fullTableName, strlen(fullTableName), NULL, tableMeta); + size_t size = 0; + STableMeta* tableMeta = NULL; + taosHashGetCloneExt(tscTableMetaMap, fullTableName, strlen(fullTableName), NULL, (void **)&tableMeta, &size); tstrncpy(schema->sTableName, tableName, strlen(tableName)+1); schema->precision = tableMeta->tableInfo.precision; @@ -1417,7 +1417,7 @@ static bool isTimeStamp(char *pVal, uint16_t len, SMLTimeStampType *tsType) { return false; } -static bool convertStrToNumber(TAOS_SML_KV *pVal, char*str) { +static bool convertStrToNumber(TAOS_SML_KV *pVal, char*str, SSmlLinesInfo* info) { errno = 0; uint8_t type = pVal->type; int16_t length = pVal->length; @@ -1436,7 +1436,7 @@ static bool convertStrToNumber(TAOS_SML_KV *pVal, char*str) { } if (errno == ERANGE) { - tscError("Converted number out of range"); + tscError("SML:0x%"PRIx64" Convert number(%s) out of range", info->id, str); return false; } @@ -1518,7 +1518,7 @@ static bool convertStrToNumber(TAOS_SML_KV *pVal, char*str) { } //len does not include '\0' from value. static bool convertSmlValueType(TAOS_SML_KV *pVal, char *value, - uint16_t len) { + uint16_t len, SSmlLinesInfo* info) { if (len <= 0) { return false; } @@ -1528,7 +1528,7 @@ static bool convertSmlValueType(TAOS_SML_KV *pVal, char *value, pVal->type = TSDB_DATA_TYPE_TINYINT; pVal->length = (int16_t)tDataTypes[pVal->type].bytes; value[len - 2] = '\0'; - if (!isValidInteger(value) || !convertStrToNumber(pVal, value)) { + if (!isValidInteger(value) || !convertStrToNumber(pVal, value, info)) { return false; } return true; @@ -1537,7 +1537,7 @@ static bool convertSmlValueType(TAOS_SML_KV *pVal, char *value, pVal->type = TSDB_DATA_TYPE_UTINYINT; pVal->length = (int16_t)tDataTypes[pVal->type].bytes; value[len - 2] = '\0'; - if (!isValidInteger(value) || !convertStrToNumber(pVal, value)) { + if (!isValidInteger(value) || !convertStrToNumber(pVal, value, info)) { return false; } return true; @@ -1546,7 +1546,7 @@ static bool convertSmlValueType(TAOS_SML_KV *pVal, char *value, pVal->type = TSDB_DATA_TYPE_SMALLINT; pVal->length = (int16_t)tDataTypes[pVal->type].bytes; value[len - 3] = '\0'; - if (!isValidInteger(value) || !convertStrToNumber(pVal, value)) { + if (!isValidInteger(value) || !convertStrToNumber(pVal, value, info)) { return false; } return true; @@ -1555,7 +1555,7 @@ static bool convertSmlValueType(TAOS_SML_KV *pVal, char *value, pVal->type = TSDB_DATA_TYPE_USMALLINT; pVal->length = (int16_t)tDataTypes[pVal->type].bytes; value[len - 3] = '\0'; - if (!isValidInteger(value) || !convertStrToNumber(pVal, value)) { + if (!isValidInteger(value) || !convertStrToNumber(pVal, value, info)) { return false; } return true; @@ -1564,7 +1564,7 @@ static bool convertSmlValueType(TAOS_SML_KV *pVal, char *value, pVal->type = TSDB_DATA_TYPE_INT; pVal->length = (int16_t)tDataTypes[pVal->type].bytes; value[len - 3] = '\0'; - if (!isValidInteger(value) || !convertStrToNumber(pVal, value)) { + if (!isValidInteger(value) || !convertStrToNumber(pVal, value, info)) { return false; } return true; @@ -1573,7 +1573,7 @@ static bool convertSmlValueType(TAOS_SML_KV *pVal, char *value, pVal->type = TSDB_DATA_TYPE_UINT; pVal->length = (int16_t)tDataTypes[pVal->type].bytes; value[len - 3] = '\0'; - if (!isValidInteger(value) || !convertStrToNumber(pVal, value)) { + if (!isValidInteger(value) || !convertStrToNumber(pVal, value, info)) { return false; } return true; @@ -1582,7 +1582,7 @@ static bool convertSmlValueType(TAOS_SML_KV *pVal, char *value, pVal->type = TSDB_DATA_TYPE_BIGINT; pVal->length = (int16_t)tDataTypes[pVal->type].bytes; value[len - 3] = '\0'; - if (!isValidInteger(value) || !convertStrToNumber(pVal, value)) { + if (!isValidInteger(value) || !convertStrToNumber(pVal, value, info)) { return false; } return true; @@ -1591,7 +1591,7 @@ static bool convertSmlValueType(TAOS_SML_KV *pVal, char *value, pVal->type = TSDB_DATA_TYPE_UBIGINT; pVal->length = (int16_t)tDataTypes[pVal->type].bytes; value[len - 3] = '\0'; - if (!isValidInteger(value) || !convertStrToNumber(pVal, value)) { + if (!isValidInteger(value) || !convertStrToNumber(pVal, value, info)) { return false; } return true; @@ -1601,7 +1601,7 @@ static bool convertSmlValueType(TAOS_SML_KV *pVal, char *value, pVal->type = TSDB_DATA_TYPE_FLOAT; pVal->length = (int16_t)tDataTypes[pVal->type].bytes; value[len - 3] = '\0'; - if (!isValidFloat(value) || !convertStrToNumber(pVal, value)) { + if (!isValidFloat(value) || !convertStrToNumber(pVal, value, info)) { return false; } return true; @@ -1610,7 +1610,7 @@ static bool convertSmlValueType(TAOS_SML_KV *pVal, char *value, pVal->type = TSDB_DATA_TYPE_DOUBLE; pVal->length = (int16_t)tDataTypes[pVal->type].bytes; value[len - 3] = '\0'; - if (!isValidFloat(value) || !convertStrToNumber(pVal, value)) { + if (!isValidFloat(value) || !convertStrToNumber(pVal, value, info)) { return false; } return true; @@ -1646,7 +1646,7 @@ static bool convertSmlValueType(TAOS_SML_KV *pVal, char *value, if (isValidInteger(value) || isValidFloat(value)) { pVal->type = TSDB_DATA_TYPE_FLOAT; pVal->length = (int16_t)tDataTypes[pVal->type].bytes; - if (!convertStrToNumber(pVal, value)) { + if (!convertStrToNumber(pVal, value, info)) { return false; } return true; @@ -1702,7 +1702,7 @@ static int32_t getTimeStampValue(char *value, uint16_t len, } static int32_t convertSmlTimeStamp(TAOS_SML_KV *pVal, char *value, - uint16_t len) { + uint16_t len, SSmlLinesInfo* info) { int32_t ret; SMLTimeStampType type; int64_t tsVal; @@ -1715,7 +1715,7 @@ static int32_t convertSmlTimeStamp(TAOS_SML_KV *pVal, char *value, if (ret) { return ret; } - tscDebug("Timestamp after conversion:%"PRId64, tsVal); + tscDebug("SML:0x%"PRIx64"Timestamp after conversion:%"PRId64, info->id, tsVal); pVal->type = TSDB_DATA_TYPE_TIMESTAMP; pVal->length = (int16_t)tDataTypes[pVal->type].bytes; @@ -1724,7 +1724,7 @@ static int32_t convertSmlTimeStamp(TAOS_SML_KV *pVal, char *value, return TSDB_CODE_SUCCESS; } -static int32_t parseSmlTimeStamp(TAOS_SML_KV **pTS, const char **index) { +static int32_t parseSmlTimeStamp(TAOS_SML_KV **pTS, const char **index, SSmlLinesInfo* info) { const char *start, *cur; int32_t ret = TSDB_CODE_SUCCESS; int len = 0; @@ -1744,7 +1744,7 @@ static int32_t parseSmlTimeStamp(TAOS_SML_KV **pTS, const char **index) { memcpy(value, start, len); } - ret = convertSmlTimeStamp(*pTS, value, len); + ret = convertSmlTimeStamp(*pTS, value, len, info); if (ret) { free(value); free(*pTS); @@ -1757,7 +1757,7 @@ static int32_t parseSmlTimeStamp(TAOS_SML_KV **pTS, const char **index) { return ret; } -static bool checkDuplicateKey(char *key, SHashObj *pHash) { +static bool checkDuplicateKey(char *key, SHashObj *pHash, SSmlLinesInfo* info) { char *val = NULL; char *cur = key; char keyLower[TSDB_COL_NAME_LEN]; @@ -1771,7 +1771,7 @@ static bool checkDuplicateKey(char *key, SHashObj *pHash) { val = taosHashGet(pHash, keyLower, keyLen); if (val) { - tscError("Duplicate key:%s", keyLower); + tscError("SML:0x%"PRIx64" Duplicate key detected:%s", info->id, keyLower); return true; } @@ -1781,19 +1781,19 @@ static bool checkDuplicateKey(char *key, SHashObj *pHash) { return false; } -static int32_t parseSmlKey(TAOS_SML_KV *pKV, const char **index, SHashObj *pHash) { +static int32_t parseSmlKey(TAOS_SML_KV *pKV, const char **index, SHashObj *pHash, SSmlLinesInfo* info) { const char *cur = *index; char key[TSDB_COL_NAME_LEN + 1]; // +1 to avoid key[len] over write uint16_t len = 0; //key field cannot start with digit if (isdigit(*cur)) { - tscError("Tag key cannnot start with digit\n"); + tscError("SML:0x%"PRIx64" Tag key cannnot start with digit", info->id); return TSDB_CODE_TSC_LINE_SYNTAX_ERROR; } while (*cur != '\0') { if (len > TSDB_COL_NAME_LEN) { - tscDebug("Key field cannot exceeds 65 characters"); + tscError("SML:0x%"PRIx64" Key field cannot exceeds 65 characters", info->id); return TSDB_CODE_TSC_LINE_SYNTAX_ERROR; } //unescaped '=' identifies a tag key @@ -1810,20 +1810,20 @@ static int32_t parseSmlKey(TAOS_SML_KV *pKV, const char **index, SHashObj *pHash } key[len] = '\0'; - if (checkDuplicateKey(key, pHash)) { + if (checkDuplicateKey(key, pHash, info)) { return TSDB_CODE_TSC_LINE_SYNTAX_ERROR; } pKV->key = calloc(len + 1, 1); memcpy(pKV->key, key, len + 1); - //tscDebug("Key:%s|len:%d", pKV->key, len); + //tscDebug("SML:0x%"PRIx64" Key:%s|len:%d", info->id, pKV->key, len); *index = cur + 1; return TSDB_CODE_SUCCESS; } static bool parseSmlValue(TAOS_SML_KV *pKV, const char **index, - bool *is_last_kv) { + bool *is_last_kv, SSmlLinesInfo* info) { const char *start, *cur; char *value = NULL; uint16_t len = 0; @@ -1847,7 +1847,9 @@ static bool parseSmlValue(TAOS_SML_KV *pKV, const char **index, value = calloc(len + 1, 1); memcpy(value, start, len); value[len] = '\0'; - if (!convertSmlValueType(pKV, value, len)) { + if (!convertSmlValueType(pKV, value, len, info)) { + tscError("SML:0x%"PRIx64" Failed to convert sml value string(%s) to any type", + info->id, value); //free previous alocated key field free(pKV->key); pKV->key = NULL; @@ -1861,7 +1863,7 @@ static bool parseSmlValue(TAOS_SML_KV *pKV, const char **index, } static int32_t parseSmlMeasurement(TAOS_SML_DATA_POINT *pSml, const char **index, - uint8_t *has_tags) { + uint8_t *has_tags, SSmlLinesInfo* info) { const char *cur = *index; uint16_t len = 0; @@ -1870,7 +1872,7 @@ static int32_t parseSmlMeasurement(TAOS_SML_DATA_POINT *pSml, const char **index return TSDB_CODE_TSC_OUT_OF_MEMORY; } if (isdigit(*cur)) { - tscError("Measurement field cannnot start with digit"); + tscError("SML:0x%"PRIx64" Measurement field cannnot start with digit", info->id); free(pSml->stableName); pSml->stableName = NULL; return TSDB_CODE_TSC_LINE_SYNTAX_ERROR; @@ -1878,7 +1880,7 @@ static int32_t parseSmlMeasurement(TAOS_SML_DATA_POINT *pSml, const char **index while (*cur != '\0') { if (len > TSDB_TABLE_NAME_LEN) { - tscError("Measurement field cannot exceeds 193 characters"); + tscError("SML:0x%"PRIx64" Measurement field cannot exceeds 193 characters", info->id); free(pSml->stableName); pSml->stableName = NULL; return TSDB_CODE_TSC_LINE_SYNTAX_ERROR; @@ -1902,7 +1904,7 @@ static int32_t parseSmlMeasurement(TAOS_SML_DATA_POINT *pSml, const char **index } pSml->stableName[len] = '\0'; *index = cur + 1; - tscDebug("Stable name in measurement:%s|len:%d", pSml->stableName, len); + tscDebug("SML:0x%"PRIx64" Stable name in measurement:%s|len:%d", info->id, pSml->stableName, len); return TSDB_CODE_SUCCESS; } @@ -1921,7 +1923,8 @@ static int32_t isValidChildTableName(const char *pTbName, int16_t len) { static int32_t parseSmlKvPairs(TAOS_SML_KV **pKVs, int *num_kvs, const char **index, bool isField, - TAOS_SML_DATA_POINT* smlData, SHashObj *pHash) { + TAOS_SML_DATA_POINT* smlData, SHashObj *pHash, + SSmlLinesInfo* info) { const char *cur = *index; int32_t ret = TSDB_CODE_SUCCESS; TAOS_SML_KV *pkv; @@ -1941,14 +1944,14 @@ static int32_t parseSmlKvPairs(TAOS_SML_KV **pKVs, int *num_kvs, } while (*cur != '\0') { - ret = parseSmlKey(pkv, &cur, pHash); + ret = parseSmlKey(pkv, &cur, pHash, info); if (ret) { - tscError("Unable to parse key field"); + tscError("SML:0x%"PRIx64" Unable to parse key", info->id); goto error; } - ret = parseSmlValue(pkv, &cur, &is_last_kv); + ret = parseSmlValue(pkv, &cur, &is_last_kv, info); if (ret) { - tscError("Unable to parse value field"); + tscError("SML:0x%"PRIx64" Unable to parse value", info->id); goto error; } if (!isField && @@ -1966,7 +1969,6 @@ static int32_t parseSmlKvPairs(TAOS_SML_KV **pKVs, int *num_kvs, *num_kvs += 1; } if (is_last_kv) { - //tscDebug("last key-value field detected"); goto done; } @@ -2024,50 +2026,50 @@ static void moveTimeStampToFirstKv(TAOS_SML_DATA_POINT** smlData, TAOS_SML_KV *t free(ts); } -int32_t tscParseLine(const char* sql, TAOS_SML_DATA_POINT* smlData) { +int32_t tscParseLine(const char* sql, TAOS_SML_DATA_POINT* smlData, SSmlLinesInfo* info) { const char* index = sql; int32_t ret = TSDB_CODE_SUCCESS; uint8_t has_tags = 0; TAOS_SML_KV *timestamp = NULL; SHashObj *keyHashTable = taosHashInit(128, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, false); - ret = parseSmlMeasurement(smlData, &index, &has_tags); + ret = parseSmlMeasurement(smlData, &index, &has_tags, info); if (ret) { - tscError("Unable to parse measurement"); + tscError("SML:0x%"PRIx64" Unable to parse measurement", info->id); taosHashCleanup(keyHashTable); return ret; } - tscDebug("Parse measurement finished, has_tags:%d", has_tags); + tscDebug("SML:0x%"PRIx64" Parse measurement finished, has_tags:%d", info->id, has_tags); //Parse Tags if (has_tags) { - ret = parseSmlKvPairs(&smlData->tags, &smlData->tagNum, &index, false, smlData, keyHashTable); + ret = parseSmlKvPairs(&smlData->tags, &smlData->tagNum, &index, false, smlData, keyHashTable, info); if (ret) { - tscError("Unable to parse tag"); + tscError("SML:0x%"PRIx64" Unable to parse tag", info->id); taosHashCleanup(keyHashTable); return ret; } } - tscDebug("Parse tags finished, num of tags:%d", smlData->tagNum); + tscDebug("SML:0x%"PRIx64" Parse tags finished, num of tags:%d", info->id, smlData->tagNum); //Parse fields - ret = parseSmlKvPairs(&smlData->fields, &smlData->fieldNum, &index, true, smlData, keyHashTable); + ret = parseSmlKvPairs(&smlData->fields, &smlData->fieldNum, &index, true, smlData, keyHashTable, info); if (ret) { - tscError("Unable to parse field"); + tscError("SML:0x%"PRIx64" Unable to parse field", info->id); taosHashCleanup(keyHashTable); return ret; } - tscDebug("Parse fields finished, num of fields:%d", smlData->fieldNum); + tscDebug("SML:0x%"PRIx64" Parse fields finished, num of fields:%d", info->id, smlData->fieldNum); taosHashCleanup(keyHashTable); //Parse timestamp - ret = parseSmlTimeStamp(×tamp, &index); + ret = parseSmlTimeStamp(×tamp, &index, info); if (ret) { - tscError("Unable to parse timestamp"); + tscError("SML:0x%"PRIx64" Unable to parse timestamp", info->id); return ret; } moveTimeStampToFirstKv(&smlData, timestamp); - tscDebug("Parse timestamp finished"); + tscDebug("SML:0x%"PRIx64" Parse timestamp finished", info->id); return TSDB_CODE_SUCCESS; } @@ -2104,7 +2106,7 @@ void destroySmlDataPoint(TAOS_SML_DATA_POINT* point) { int32_t tscParseLines(char* lines[], int numLines, SArray* points, SArray* failedLines, SSmlLinesInfo* info) { for (int32_t i = 0; i < numLines; ++i) { TAOS_SML_DATA_POINT point = {0}; - int32_t code = tscParseLine(lines[i], &point); + int32_t code = tscParseLine(lines[i], &point, info); if (code != TSDB_CODE_SUCCESS) { tscError("SML:0x%"PRIx64" data point line parse failed. line %d : %s", info->id, i, lines[i]); destroySmlDataPoint(&point); diff --git a/src/client/src/tscSQLParser.c b/src/client/src/tscSQLParser.c index b3f99785fa116d836168a1eb8b892cebf3f3e1b7..7adc0812ae12bd8711cba5988806a4c7ba740cf5 100644 --- a/src/client/src/tscSQLParser.c +++ b/src/client/src/tscSQLParser.c @@ -1289,35 +1289,31 @@ int32_t parseSlidingClause(SSqlCmd* pCmd, SQueryInfo* pQueryInfo, SStrToken* pSl STableMetaInfo* pTableMetaInfo = tscGetMetaInfo(pQueryInfo, 0); STableComInfo tinfo = tscGetTableInfo(pTableMetaInfo->pTableMeta); + SInterval* pInterval = &pQueryInfo->interval; if (pSliding->n == 0) { - pQueryInfo->interval.slidingUnit = pQueryInfo->interval.intervalUnit; - pQueryInfo->interval.sliding = pQueryInfo->interval.interval; + pInterval->slidingUnit = pInterval->intervalUnit; + pInterval->sliding = pInterval->interval; return TSDB_CODE_SUCCESS; } - if (pQueryInfo->interval.intervalUnit == 'n' || pQueryInfo->interval.intervalUnit == 'y') { + if (pInterval->intervalUnit == 'n' || pInterval->intervalUnit == 'y') { return invalidOperationMsg(tscGetErrorMsgPayload(pCmd), msg3); } - parseAbsoluteDuration(pSliding->z, pSliding->n, &pQueryInfo->interval.sliding, tinfo.precision); + parseAbsoluteDuration(pSliding->z, pSliding->n, &pInterval->sliding, &pInterval->slidingUnit, tinfo.precision); - if (pQueryInfo->interval.sliding < - convertTimePrecision(tsMinSlidingTime, TSDB_TIME_PRECISION_MILLI, tinfo.precision)) { + if (pInterval->sliding < convertTimePrecision(tsMinSlidingTime, TSDB_TIME_PRECISION_MILLI, tinfo.precision)) { return invalidOperationMsg(tscGetErrorMsgPayload(pCmd), msg0); } - if (pQueryInfo->interval.sliding > pQueryInfo->interval.interval) { + if (pInterval->sliding > pInterval->interval) { return invalidOperationMsg(tscGetErrorMsgPayload(pCmd), msg1); } - if ((pQueryInfo->interval.interval != 0) && (pQueryInfo->interval.interval/pQueryInfo->interval.sliding > INTERVAL_SLIDING_FACTOR)) { + if ((pInterval->interval != 0) && (pInterval->interval/pInterval->sliding > INTERVAL_SLIDING_FACTOR)) { return invalidOperationMsg(tscGetErrorMsgPayload(pCmd), msg2); } -// if (pQueryInfo->interval.sliding != pQueryInfo->interval.interval && pSql->pStream == NULL) { -// return invalidOperationMsg(tscGetErrorMsgPayload(pCmd), msg4); -// } - return TSDB_CODE_SUCCESS; } @@ -8093,6 +8089,7 @@ int32_t loadAllTableMeta(SSqlObj* pSql, struct SSqlInfo* pInfo) { SArray* pVgroupList = NULL; SArray* plist = NULL; STableMeta* pTableMeta = NULL; + size_t tableMetaCapacity = 0; SQueryInfo* pQueryInfo = tscGetQueryInfo(pCmd); pCmd->pTableMetaMap = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), false, HASH_NO_LOCK); @@ -8119,18 +8116,14 @@ int32_t loadAllTableMeta(SSqlObj* pSql, struct SSqlInfo* pInfo) { } } - uint32_t maxSize = tscGetTableMetaMaxSize(); char name[TSDB_TABLE_FNAME_LEN] = {0}; - assert(maxSize < 80 * TSDB_MAX_COLUMNS); - if (!pSql->pBuf) { - if (NULL == (pSql->pBuf = tcalloc(1, 80 * TSDB_MAX_COLUMNS))) { - code = TSDB_CODE_TSC_OUT_OF_MEMORY; - goto _end; - } - } - - pTableMeta = calloc(1, maxSize); + //if (!pSql->pBuf) { + // if (NULL == (pSql->pBuf = tcalloc(1, 80 * TSDB_MAX_COLUMNS))) { + // code = TSDB_CODE_TSC_OUT_OF_MEMORY; + // goto _end; + // } + //} plist = taosArrayInit(4, POINTER_BYTES); pVgroupList = taosArrayInit(4, POINTER_BYTES); @@ -8144,16 +8137,16 @@ int32_t loadAllTableMeta(SSqlObj* pSql, struct SSqlInfo* pInfo) { tNameExtractFullName(pname, name); size_t len = strlen(name); - memset(pTableMeta, 0, maxSize); - taosHashGetClone(tscTableMetaMap, name, len, NULL, pTableMeta); + + taosHashGetCloneExt(tscTableMetaMap, name, len, NULL, (void **)&pTableMeta, &tableMetaCapacity); - if (pTableMeta->id.uid > 0) { + if (pTableMeta && pTableMeta->id.uid > 0) { tscDebug("0x%"PRIx64" retrieve table meta %s from local buf", pSql->self, name); // avoid mem leak, may should update pTableMeta void* pVgroupIdList = NULL; if (pTableMeta->tableType == TSDB_CHILD_TABLE) { - code = tscCreateTableMetaFromSTableMeta(pTableMeta, name, pSql->pBuf); + code = tscCreateTableMetaFromSTableMeta((STableMeta **)(&pTableMeta), name, &tableMetaCapacity); // create the child table meta from super table failed, try load it from mnode if (code != TSDB_CODE_SUCCESS) { @@ -8308,7 +8301,8 @@ static int32_t doLoadAllTableMeta(SSqlObj* pSql, SQueryInfo* pQueryInfo, SSqlNod tNameExtractFullName(&pTableMetaInfo->name, fname); STableMetaVgroupInfo* p = taosHashGet(pCmd->pTableMetaMap, fname, strnlen(fname, TSDB_TABLE_FNAME_LEN)); - pTableMetaInfo->pTableMeta = tscTableMetaDup(p->pTableMeta); + pTableMetaInfo->pTableMeta = tscTableMetaDup(p->pTableMeta); + pTableMetaInfo->tableMetaCapacity = tscGetTableMetaSize(pTableMetaInfo->pTableMeta); assert(pTableMetaInfo->pTableMeta != NULL); if (p->vgroupIdList != NULL) { @@ -8408,7 +8402,8 @@ static int32_t doValidateSubquery(SSqlNode* pSqlNode, int32_t index, SSqlObj* pS if (pTableMetaInfo1 == NULL) { return TSDB_CODE_TSC_OUT_OF_MEMORY; } - pTableMetaInfo1->pTableMeta = extractTempTableMetaFromSubquery(pSub); + pTableMetaInfo1->pTableMeta = extractTempTableMetaFromSubquery(pSub); + pTableMetaInfo1->tableMetaCapacity = tscGetTableMetaSize(pTableMetaInfo1->pTableMeta); if (subInfo->aliasName.n > 0) { if (subInfo->aliasName.n >= TSDB_TABLE_FNAME_LEN) { @@ -8775,8 +8770,8 @@ int32_t validateSqlNode(SSqlObj* pSql, SSqlNode* pSqlNode, SQueryInfo* pQueryInf #if 0 SQueryNode* p = qCreateQueryPlan(pQueryInfo); char* s = queryPlanToString(p); + printf("%s\n", s); tfree(s); - qDestroyQueryPlan(p); #endif diff --git a/src/client/src/tscServer.c b/src/client/src/tscServer.c index c951f24ae9ce1d67f25380af6dbe7c611d97067a..3e8dfac1da0cb192282989b9ab1137427365b6d0 100644 --- a/src/client/src/tscServer.c +++ b/src/client/src/tscServer.c @@ -401,10 +401,8 @@ static void doProcessMsgFromServer(SSchedMsg* pSchedMsg) { // single table query error need to be handled here. if ((cmd == TSDB_SQL_SELECT || cmd == TSDB_SQL_UPDATE_TAGS_VAL) && - (((rpcMsg->code == TSDB_CODE_TDB_INVALID_TABLE_ID || - rpcMsg->code == TSDB_CODE_VND_INVALID_VGROUP_ID)) || - rpcMsg->code == TSDB_CODE_RPC_NETWORK_UNAVAIL || - rpcMsg->code == TSDB_CODE_APP_NOT_READY)) { + (((rpcMsg->code == TSDB_CODE_TDB_INVALID_TABLE_ID || rpcMsg->code == TSDB_CODE_VND_INVALID_VGROUP_ID)) || + rpcMsg->code == TSDB_CODE_RPC_NETWORK_UNAVAIL || rpcMsg->code == TSDB_CODE_APP_NOT_READY)) { // 1. super table subquery // 2. nest queries are all not updated the tablemeta and retry parse the sql after cleanup local tablemeta/vgroup id buffer @@ -2842,43 +2840,22 @@ int32_t getMultiTableMetaFromMnode(SSqlObj *pSql, SArray* pNameList, SArray* pVg int32_t tscGetTableMetaImpl(SSqlObj* pSql, STableMetaInfo *pTableMetaInfo, bool autocreate, bool onlyLocal) { assert(tIsValidName(&pTableMetaInfo->name)); - uint32_t size = tscGetTableMetaMaxSize(); - if (pTableMetaInfo->pTableMeta == NULL) { - pTableMetaInfo->pTableMeta = calloc(1, size); - pTableMetaInfo->tableMetaSize = size; - } else if (pTableMetaInfo->tableMetaSize < size) { - char *tmp = realloc(pTableMetaInfo->pTableMeta, size); - if (tmp == NULL) { - return TSDB_CODE_TSC_OUT_OF_MEMORY; - } - pTableMetaInfo->pTableMeta = (STableMeta *)tmp; - } - - memset(pTableMetaInfo->pTableMeta, 0, size); - pTableMetaInfo->tableMetaSize = size; - - pTableMetaInfo->pTableMeta->tableType = -1; - pTableMetaInfo->pTableMeta->tableInfo.numOfColumns = -1; - char name[TSDB_TABLE_FNAME_LEN] = {0}; tNameExtractFullName(&pTableMetaInfo->name, name); size_t len = strlen(name); - taosHashGetClone(tscTableMetaMap, name, len, NULL, pTableMetaInfo->pTableMeta); - - // TODO resize the tableMeta - assert(size < 80 * TSDB_MAX_COLUMNS); - if (!pSql->pBuf) { - if (NULL == (pSql->pBuf = tcalloc(1, 80 * TSDB_MAX_COLUMNS))) { - return TSDB_CODE_TSC_OUT_OF_MEMORY; - } - } + if (pTableMetaInfo->tableMetaCapacity != 0) { + if (pTableMetaInfo->pTableMeta != NULL) { + memset(pTableMetaInfo->pTableMeta, 0, pTableMetaInfo->tableMetaCapacity); + } + } + taosHashGetCloneExt(tscTableMetaMap, name, len, NULL, (void **)&(pTableMetaInfo->pTableMeta), &pTableMetaInfo->tableMetaCapacity); STableMeta* pMeta = pTableMetaInfo->pTableMeta; - if (pMeta->id.uid > 0) { + if (pMeta && pMeta->id.uid > 0) { // in case of child table, here only get the if (pMeta->tableType == TSDB_CHILD_TABLE) { - int32_t code = tscCreateTableMetaFromSTableMeta(pTableMetaInfo->pTableMeta, name, pSql->pBuf); + int32_t code = tscCreateTableMetaFromSTableMeta(&pTableMetaInfo->pTableMeta, name, &pTableMetaInfo->tableMetaCapacity); if (code != TSDB_CODE_SUCCESS) { return getTableMetaFromMnode(pSql, pTableMetaInfo, autocreate); } diff --git a/src/client/src/tscSubquery.c b/src/client/src/tscSubquery.c index 7dcd699db67e54d268d0d829789c445d6fe96fcf..8c0d642ca697065964f552f2c2c3306cd125e5c4 100644 --- a/src/client/src/tscSubquery.c +++ b/src/client/src/tscSubquery.c @@ -1635,6 +1635,8 @@ void tscFetchDatablockForSubquery(SSqlObj* pSql) { continue; } + + SSqlRes* pRes1 = &pSql1->res; if (pRes1->row >= pRes1->numOfRows) { subquerySetState(pSql1, &pSql->subState, i, 0); diff --git a/src/client/src/tscUtil.c b/src/client/src/tscUtil.c index 5c04b4df261848835253750f0d32eb50fd3207c8..5a724af7bf17e4aa09eac880f6c6176db4bdd96d 100644 --- a/src/client/src/tscUtil.c +++ b/src/client/src/tscUtil.c @@ -1657,6 +1657,7 @@ int32_t tscCopyDataBlockToPayload(SSqlObj* pSql, STableDataBlocks* pDataBlock) { pTableMetaInfo->pTableMeta = tscTableMetaDup(pDataBlock->pTableMeta); pTableMetaInfo->tableMetaSize = tscGetTableMetaSize(pDataBlock->pTableMeta); + pTableMetaInfo->tableMetaCapacity = (size_t)(pTableMetaInfo->tableMetaSize); } /* @@ -3414,6 +3415,8 @@ STableMetaInfo* tscAddTableMetaInfo(SQueryInfo* pQueryInfo, SName* name, STableM } else { pTableMetaInfo->tableMetaSize = tscGetTableMetaSize(pTableMeta); } + pTableMetaInfo->tableMetaCapacity = (size_t)(pTableMetaInfo->tableMetaSize); + if (vgroupList != NULL) { pTableMetaInfo->vgroupList = tscVgroupInfoClone(vgroupList); @@ -3645,8 +3648,8 @@ SSqlObj* createSubqueryObj(SSqlObj* pSql, int16_t tableIndex, __async_cb_func_t } if (pQueryInfo->fillType != TSDB_FILL_NONE) { - //just make memory memory sanitizer happy - //refator later + //just make memory memory sanitizer happy + //refactor later pNewQueryInfo->fillVal = calloc(1, pQueryInfo->fieldsInfo.numOfOutput * sizeof(int64_t)); if (pNewQueryInfo->fillVal == NULL) { terrno = TSDB_CODE_TSC_OUT_OF_MEMORY; @@ -4445,24 +4448,36 @@ CChildTableMeta* tscCreateChildMeta(STableMeta* pTableMeta) { return cMeta; } -int32_t tscCreateTableMetaFromSTableMeta(STableMeta* pChild, const char* name, void* buf) { - assert(pChild != NULL && buf != NULL); +int32_t tscCreateTableMetaFromSTableMeta(STableMeta** ppChild, const char* name, size_t *tableMetaCapacity) { + assert(*ppChild != NULL); - STableMeta* p = buf; - taosHashGetClone(tscTableMetaMap, pChild->sTableName, strnlen(pChild->sTableName, TSDB_TABLE_FNAME_LEN), NULL, p); + STableMeta* p = NULL; + size_t sz = 0; + STableMeta* pChild = *ppChild; + + taosHashGetCloneExt(tscTableMetaMap, pChild->sTableName, strnlen(pChild->sTableName, TSDB_TABLE_FNAME_LEN), NULL, (void **)&p, &sz); // tableMeta exists, build child table meta according to the super table meta // the uid need to be checked in addition to the general name of the super table. - if (p->id.uid > 0 && pChild->suid == p->id.uid) { + if (p && p->id.uid > 0 && pChild->suid == p->id.uid) { + + int32_t totalBytes = (p->tableInfo.numOfColumns + p->tableInfo.numOfTags) * sizeof(SSchema); + int32_t tableMetaSize = sizeof(STableMeta) + totalBytes; + if (*tableMetaCapacity < tableMetaSize) { + pChild = realloc(pChild, tableMetaSize); + *tableMetaCapacity = (size_t)tableMetaSize; + } + pChild->sversion = p->sversion; pChild->tversion = p->tversion; - memcpy(&pChild->tableInfo, &p->tableInfo, sizeof(STableComInfo)); - int32_t total = pChild->tableInfo.numOfColumns + pChild->tableInfo.numOfTags; + memcpy(pChild->schema, p->schema, totalBytes); - memcpy(pChild->schema, p->schema, sizeof(SSchema) *total); + *ppChild = pChild; + tfree(p); return TSDB_CODE_SUCCESS; } else { // super table has been removed, current tableMeta is also expired. remove it here + tfree(p); taosHashRemove(tscTableMetaMap, name, strnlen(name, TSDB_TABLE_FNAME_LEN)); return -1; } @@ -4992,4 +5007,4 @@ void tscRemoveTableMetaBuf(STableMetaInfo* pTableMetaInfo, uint64_t id) { taosHashRemove(tscTableMetaMap, fname, len); tscDebug("0x%"PRIx64" remove table meta %s, numOfRemain:%d", id, fname, (int32_t) taosHashGetSize(tscTableMetaMap)); -} \ No newline at end of file +} diff --git a/src/common/inc/tdataformat.h b/src/common/inc/tdataformat.h index 47bd8a72b208fd09ef85511ccc6ef8e82e3f354a..fb6bab0cf29d50f196a18eeff990b1fc62dac9ea 100644 --- a/src/common/inc/tdataformat.h +++ b/src/common/inc/tdataformat.h @@ -325,7 +325,9 @@ typedef struct SDataCol { #define isAllRowsNull(pCol) ((pCol)->len == 0) static FORCE_INLINE void dataColReset(SDataCol *pDataCol) { pDataCol->len = 0; } -void dataColInit(SDataCol *pDataCol, STColumn *pCol, void **pBuf, int maxPoints); +int tdAllocMemForCol(SDataCol *pCol, int maxPoints); + +void dataColInit(SDataCol *pDataCol, STColumn *pCol, int maxPoints); void dataColAppendVal(SDataCol *pCol, const void *value, int numOfRows, int maxPoints); void dataColSetOffset(SDataCol *pCol, int nEle); @@ -358,12 +360,10 @@ typedef struct { int maxRowSize; int maxCols; // max number of columns int maxPoints; // max number of points - int bufSize; int numOfRows; int numOfCols; // Total number of cols int sversion; // TODO: set sversion - void * buf; SDataCol *cols; } SDataCols; diff --git a/src/common/src/tdataformat.c b/src/common/src/tdataformat.c index 8ef3d083c75c58381fc8a71f076e7e04e976d774..3f0ab7f93ead2bbba62e8c75035530614798bd28 100644 --- a/src/common/src/tdataformat.c +++ b/src/common/src/tdataformat.c @@ -22,6 +22,29 @@ static void tdMergeTwoDataCols(SDataCols *target, SDataCols *src1, int *iter1, int limit1, SDataCols *src2, int *iter2, int limit2, int tRows, bool forceSetNull); +//TODO: change caller to use return val +int tdAllocMemForCol(SDataCol *pCol, int maxPoints) { + int spaceNeeded = pCol->bytes * maxPoints; + if(IS_VAR_DATA_TYPE(pCol->type)) { + spaceNeeded += sizeof(VarDataOffsetT) * maxPoints; + } + if(pCol->spaceSize < spaceNeeded) { + void* ptr = realloc(pCol->pData, spaceNeeded); + if(ptr == NULL) { + uDebug("malloc failure, size:%" PRId64 " failed, reason:%s", (int64_t)pCol->spaceSize, + strerror(errno)); + return -1; + } else { + pCol->pData = ptr; + pCol->spaceSize = spaceNeeded; + } + } + if(IS_VAR_DATA_TYPE(pCol->type)) { + pCol->dataOff = POINTER_SHIFT(pCol->pData, pCol->bytes * maxPoints); + } + return 0; +} + /** * Duplicate the schema and return a new object */ @@ -207,24 +230,13 @@ SMemRow tdMemRowDup(SMemRow row) { return trow; } -void dataColInit(SDataCol *pDataCol, STColumn *pCol, void **pBuf, int maxPoints) { +void dataColInit(SDataCol *pDataCol, STColumn *pCol, int maxPoints) { pDataCol->type = colType(pCol); pDataCol->colId = colColId(pCol); pDataCol->bytes = colBytes(pCol); pDataCol->offset = colOffset(pCol) + TD_DATA_ROW_HEAD_SIZE; pDataCol->len = 0; - if (IS_VAR_DATA_TYPE(pDataCol->type)) { - pDataCol->dataOff = (VarDataOffsetT *)(*pBuf); - pDataCol->pData = POINTER_SHIFT(*pBuf, sizeof(VarDataOffsetT) * maxPoints); - pDataCol->spaceSize = pDataCol->bytes * maxPoints; - *pBuf = POINTER_SHIFT(*pBuf, pDataCol->spaceSize + sizeof(VarDataOffsetT) * maxPoints); - } else { - pDataCol->spaceSize = pDataCol->bytes * maxPoints; - pDataCol->dataOff = NULL; - pDataCol->pData = *pBuf; - *pBuf = POINTER_SHIFT(*pBuf, pDataCol->spaceSize); - } } // value from timestamp should be TKEY here instead of TSKEY void dataColAppendVal(SDataCol *pCol, const void *value, int numOfRows, int maxPoints) { @@ -239,6 +251,8 @@ void dataColAppendVal(SDataCol *pCol, const void *value, int numOfRows, int maxP if (numOfRows > 0) { // Find the first not null value, fill all previouse values as NULL dataColSetNEleNull(pCol, numOfRows, maxPoints); + } else { + tdAllocMemForCol(pCol, maxPoints); } } @@ -257,13 +271,14 @@ void dataColAppendVal(SDataCol *pCol, const void *value, int numOfRows, int maxP } bool isNEleNull(SDataCol *pCol, int nEle) { + if(isAllRowsNull(pCol)) return true; for (int i = 0; i < nEle; i++) { if (!isNull(tdGetColDataOfRow(pCol, i), pCol->type)) return false; } return true; } -FORCE_INLINE void dataColSetNullAt(SDataCol *pCol, int index) { +static FORCE_INLINE void dataColSetNullAt(SDataCol *pCol, int index) { if (IS_VAR_DATA_TYPE(pCol->type)) { pCol->dataOff[index] = pCol->len; char *ptr = POINTER_SHIFT(pCol->pData, pCol->len); @@ -276,6 +291,7 @@ FORCE_INLINE void dataColSetNullAt(SDataCol *pCol, int index) { } void dataColSetNEleNull(SDataCol *pCol, int nEle, int maxPoints) { + tdAllocMemForCol(pCol, maxPoints); if (IS_VAR_DATA_TYPE(pCol->type)) { pCol->len = 0; @@ -319,56 +335,63 @@ SDataCols *tdNewDataCols(int maxRowSize, int maxCols, int maxRows) { tdFreeDataCols(pCols); return NULL; } + int i; + for(i = 0; i < maxCols; i++) { + pCols->cols[i].spaceSize = 0; + pCols->cols[i].len = 0; + pCols->cols[i].pData = NULL; + pCols->cols[i].dataOff = NULL; + } pCols->maxCols = maxCols; } pCols->maxRowSize = maxRowSize; - pCols->bufSize = maxRowSize * maxRows; - if (pCols->bufSize > 0) { - pCols->buf = malloc(pCols->bufSize); - if (pCols->buf == NULL) { - uDebug("malloc failure, size:%" PRId64 " failed, reason:%s", (int64_t)sizeof(SDataCol) * maxCols, - strerror(errno)); - tdFreeDataCols(pCols); - return NULL; - } - } return pCols; } int tdInitDataCols(SDataCols *pCols, STSchema *pSchema) { - if (schemaNCols(pSchema) > pCols->maxCols) { + int i; + int oldMaxCols = pCols->maxCols; + if (schemaNCols(pSchema) > oldMaxCols) { pCols->maxCols = schemaNCols(pSchema); pCols->cols = (SDataCol *)realloc(pCols->cols, sizeof(SDataCol) * pCols->maxCols); if (pCols->cols == NULL) return -1; + for(i = oldMaxCols; i < pCols->maxCols; i++) { + pCols->cols[i].pData = NULL; + pCols->cols[i].dataOff = NULL; + pCols->cols[i].spaceSize = 0; + } } if (schemaTLen(pSchema) > pCols->maxRowSize) { pCols->maxRowSize = schemaTLen(pSchema); - pCols->bufSize = schemaTLen(pSchema) * pCols->maxPoints; - pCols->buf = realloc(pCols->buf, pCols->bufSize); - if (pCols->buf == NULL) return -1; } tdResetDataCols(pCols); pCols->numOfCols = schemaNCols(pSchema); - void *ptr = pCols->buf; - for (int i = 0; i < schemaNCols(pSchema); i++) { - dataColInit(pCols->cols + i, schemaColAt(pSchema, i), &ptr, pCols->maxPoints); - ASSERT((char *)ptr - (char *)(pCols->buf) <= pCols->bufSize); + for (i = 0; i < schemaNCols(pSchema); i++) { + dataColInit(pCols->cols + i, schemaColAt(pSchema, i), pCols->maxPoints); } return 0; } SDataCols *tdFreeDataCols(SDataCols *pCols) { + int i; if (pCols) { - tfree(pCols->buf); - tfree(pCols->cols); + if(pCols->cols) { + int maxCols = pCols->maxCols; + for(i = 0; i < maxCols; i++) { + SDataCol *pCol = &pCols->cols[i]; + tfree(pCol->pData); + } + free(pCols->cols); + pCols->cols = NULL; + } free(pCols); } return NULL; @@ -388,21 +411,14 @@ SDataCols *tdDupDataCols(SDataCols *pDataCols, bool keepData) { pRet->cols[i].bytes = pDataCols->cols[i].bytes; pRet->cols[i].offset = pDataCols->cols[i].offset; - pRet->cols[i].spaceSize = pDataCols->cols[i].spaceSize; - pRet->cols[i].pData = (void *)((char *)pRet->buf + ((char *)(pDataCols->cols[i].pData) - (char *)(pDataCols->buf))); - - if (IS_VAR_DATA_TYPE(pRet->cols[i].type)) { - ASSERT(pDataCols->cols[i].dataOff != NULL); - pRet->cols[i].dataOff = - (int32_t *)((char *)pRet->buf + ((char *)(pDataCols->cols[i].dataOff) - (char *)(pDataCols->buf))); - } - if (keepData) { - pRet->cols[i].len = pDataCols->cols[i].len; if (pDataCols->cols[i].len > 0) { + tdAllocMemForCol(&pRet->cols[i], pRet->maxPoints); + pRet->cols[i].len = pDataCols->cols[i].len; memcpy(pRet->cols[i].pData, pDataCols->cols[i].pData, pDataCols->cols[i].len); if (IS_VAR_DATA_TYPE(pRet->cols[i].type)) { - memcpy(pRet->cols[i].dataOff, pDataCols->cols[i].dataOff, sizeof(VarDataOffsetT) * pDataCols->maxPoints); + int dataOffSize = sizeof(VarDataOffsetT) * pDataCols->maxPoints; + memcpy(pRet->cols[i].dataOff, pDataCols->cols[i].dataOff, dataOffSize); } } } @@ -426,40 +442,27 @@ static void tdAppendDataRowToDataCol(SDataRow row, STSchema *pSchema, SDataCols int rcol = 0; int dcol = 0; - if (dataRowDeleted(row)) { - for (; dcol < pCols->numOfCols; dcol++) { - SDataCol *pDataCol = &(pCols->cols[dcol]); - if (dcol == 0) { - dataColAppendVal(pDataCol, dataRowTuple(row), pCols->numOfRows, pCols->maxPoints); - } else { - dataColSetNullAt(pDataCol, pCols->numOfRows); - } + while (dcol < pCols->numOfCols) { + SDataCol *pDataCol = &(pCols->cols[dcol]); + if (rcol >= schemaNCols(pSchema)) { + dataColAppendVal(pDataCol, getNullValue(pDataCol->type), pCols->numOfRows, pCols->maxPoints); + dcol++; + continue; } - } else { - while (dcol < pCols->numOfCols) { - SDataCol *pDataCol = &(pCols->cols[dcol]); - if (rcol >= schemaNCols(pSchema)) { - // dataColSetNullAt(pDataCol, pCols->numOfRows); - dataColAppendVal(pDataCol, getNullValue(pDataCol->type), pCols->numOfRows, pCols->maxPoints); - dcol++; - continue; - } - STColumn *pRowCol = schemaColAt(pSchema, rcol); - if (pRowCol->colId == pDataCol->colId) { - void *value = tdGetRowDataOfCol(row, pRowCol->type, pRowCol->offset + TD_DATA_ROW_HEAD_SIZE); - dataColAppendVal(pDataCol, value, pCols->numOfRows, pCols->maxPoints); - dcol++; - rcol++; - } else if (pRowCol->colId < pDataCol->colId) { - rcol++; - } else { - if(forceSetNull) { - //dataColSetNullAt(pDataCol, pCols->numOfRows); - dataColAppendVal(pDataCol, getNullValue(pDataCol->type), pCols->numOfRows, pCols->maxPoints); - } - dcol++; + STColumn *pRowCol = schemaColAt(pSchema, rcol); + if (pRowCol->colId == pDataCol->colId) { + void *value = tdGetRowDataOfCol(row, pRowCol->type, pRowCol->offset + TD_DATA_ROW_HEAD_SIZE); + dataColAppendVal(pDataCol, value, pCols->numOfRows, pCols->maxPoints); + dcol++; + rcol++; + } else if (pRowCol->colId < pDataCol->colId) { + rcol++; + } else { + if(forceSetNull) { + dataColAppendVal(pDataCol, getNullValue(pDataCol->type), pCols->numOfRows, pCols->maxPoints); } + dcol++; } } pCols->numOfRows++; @@ -471,43 +474,30 @@ static void tdAppendKvRowToDataCol(SKVRow row, STSchema *pSchema, SDataCols *pCo int rcol = 0; int dcol = 0; - if (kvRowDeleted(row)) { - for (; dcol < pCols->numOfCols; dcol++) { - SDataCol *pDataCol = &(pCols->cols[dcol]); - if (dcol == 0) { - dataColAppendVal(pDataCol, kvRowValues(row), pCols->numOfRows, pCols->maxPoints); - } else { - dataColSetNullAt(pDataCol, pCols->numOfRows); - } + int nRowCols = kvRowNCols(row); + + while (dcol < pCols->numOfCols) { + SDataCol *pDataCol = &(pCols->cols[dcol]); + if (rcol >= nRowCols || rcol >= schemaNCols(pSchema)) { + dataColAppendVal(pDataCol, getNullValue(pDataCol->type), pCols->numOfRows, pCols->maxPoints); + ++dcol; + continue; } - } else { - int nRowCols = kvRowNCols(row); - while (dcol < pCols->numOfCols) { - SDataCol *pDataCol = &(pCols->cols[dcol]); - if (rcol >= nRowCols || rcol >= schemaNCols(pSchema)) { - // dataColSetNullAt(pDataCol, pCols->numOfRows); - dataColAppendVal(pDataCol, getNullValue(pDataCol->type), pCols->numOfRows, pCols->maxPoints); - ++dcol; - continue; - } + SColIdx *colIdx = kvRowColIdxAt(row, rcol); - SColIdx *colIdx = kvRowColIdxAt(row, rcol); - - if (colIdx->colId == pDataCol->colId) { - void *value = tdGetKvRowDataOfCol(row, colIdx->offset); - dataColAppendVal(pDataCol, value, pCols->numOfRows, pCols->maxPoints); - ++dcol; - ++rcol; - } else if (colIdx->colId < pDataCol->colId) { - ++rcol; - } else { - if (forceSetNull) { - // dataColSetNullAt(pDataCol, pCols->numOfRows); - dataColAppendVal(pDataCol, getNullValue(pDataCol->type), pCols->numOfRows, pCols->maxPoints); - } - ++dcol; + if (colIdx->colId == pDataCol->colId) { + void *value = tdGetKvRowDataOfCol(row, colIdx->offset); + dataColAppendVal(pDataCol, value, pCols->numOfRows, pCols->maxPoints); + ++dcol; + ++rcol; + } else if (colIdx->colId < pDataCol->colId) { + ++rcol; + } else { + if (forceSetNull) { + dataColAppendVal(pDataCol, getNullValue(pDataCol->type), pCols->numOfRows, pCols->maxPoints); } + ++dcol; } } pCols->numOfRows++; diff --git a/src/os/inc/osTime.h b/src/os/inc/osTime.h index f013a2f7d112c07e2b88b4329ff867e50c25ec0d..dcb0e4c9b630216600c4f8f017b8154e9bb9dac4 100644 --- a/src/os/inc/osTime.h +++ b/src/os/inc/osTime.h @@ -97,7 +97,7 @@ int64_t taosTimeAdd(int64_t t, int64_t duration, char unit, int32_t precision); int64_t taosTimeTruncate(int64_t t, const SInterval* pInterval, int32_t precision); int32_t taosTimeCountInterval(int64_t skey, int64_t ekey, int64_t interval, char unit, int32_t precision); -int32_t parseAbsoluteDuration(char* token, int32_t tokenlen, int64_t* ts, int32_t timePrecision); +int32_t parseAbsoluteDuration(char* token, int32_t tokenlen, int64_t* ts, char* unit, int32_t timePrecision); int32_t parseNatualDuration(const char* token, int32_t tokenLen, int64_t* duration, char* unit, int32_t timePrecision); int32_t taosParseTime(char* timestr, int64_t* time, int32_t len, int32_t timePrec, int8_t dayligth); diff --git a/src/os/src/detail/osTime.c b/src/os/src/detail/osTime.c index 847d484d9e28fd11d1df3c3b2905afcf257174dd..a95d919a83fa09be4e8b51990c56df42ac1affa9 100644 --- a/src/os/src/detail/osTime.c +++ b/src/os/src/detail/osTime.c @@ -397,7 +397,7 @@ static int32_t getDuration(int64_t val, char unit, int64_t* result, int32_t time * n - Months (30 days) * y - Years (365 days) */ -int32_t parseAbsoluteDuration(char* token, int32_t tokenlen, int64_t* duration, int32_t timePrecision) { +int32_t parseAbsoluteDuration(char* token, int32_t tokenlen, int64_t* duration, char* unit, int32_t timePrecision) { errno = 0; char* endPtr = NULL; @@ -408,12 +408,12 @@ int32_t parseAbsoluteDuration(char* token, int32_t tokenlen, int64_t* duration, } /* natual month/year are not allowed in absolute duration */ - char unit = token[tokenlen - 1]; - if (unit == 'n' || unit == 'y') { + *unit = token[tokenlen - 1]; + if (*unit == 'n' || *unit == 'y') { return -1; } - return getDuration(timestamp, unit, duration, timePrecision); + return getDuration(timestamp, *unit, duration, timePrecision); } int32_t parseNatualDuration(const char* token, int32_t tokenLen, int64_t* duration, char* unit, int32_t timePrecision) { diff --git a/src/query/inc/qTableMeta.h b/src/query/inc/qTableMeta.h index 4bb5483a10dc8f1b0904c17b5b3c81973115470d..0dae74ac8224329810064c773ecd478d4a89ad15 100644 --- a/src/query/inc/qTableMeta.h +++ b/src/query/inc/qTableMeta.h @@ -71,7 +71,8 @@ typedef struct STableMeta { typedef struct STableMetaInfo { STableMeta *pTableMeta; // table meta, cached in client side and acquired by name - uint32_t tableMetaSize; + uint32_t tableMetaSize; + size_t tableMetaCapacity; SVgroupsInfo *vgroupList; SArray *pVgroupTables; // SArray diff --git a/src/query/inc/sql.y b/src/query/inc/sql.y index ecdde4f7076b10a98fc36d75ebe4bac3691379bb..96f1e680f17a650b1033c4b77719838d9119e539 100644 --- a/src/query/inc/sql.y +++ b/src/query/inc/sql.y @@ -479,7 +479,7 @@ tagitem(A) ::= PLUS(X) FLOAT(Y). { //////////////////////// The SELECT statement ///////////////////////////////// %type select {SSqlNode*} %destructor select {destroySqlNode($$);} -select(A) ::= SELECT(T) selcollist(W) from(X) where_opt(Y) interval_opt(K) session_option(H) windowstate_option(D) fill_opt(F) sliding_opt(S) groupby_opt(P) having_opt(N) orderby_opt(Z) slimit_opt(G) limit_opt(L). { +select(A) ::= SELECT(T) selcollist(W) from(X) where_opt(Y) interval_opt(K) sliding_opt(S) session_option(H) windowstate_option(D) fill_opt(F)groupby_opt(P) having_opt(N) orderby_opt(Z) slimit_opt(G) limit_opt(L). { A = tSetQuerySqlNode(&T, W, X, Y, P, Z, &K, &H, &D, &S, F, &L, &G, N); } diff --git a/src/query/src/qPlan.c b/src/query/src/qPlan.c index e5b9b68536a5de3e1cc8f11bff2d88ab77491f44..e01f41276fb73e9293ba5e3b379c85600053ed93 100644 --- a/src/query/src/qPlan.c +++ b/src/query/src/qPlan.c @@ -32,8 +32,8 @@ typedef struct SJoinCond { SColumn *colCond[2]; } SJoinCond; -static SQueryNode* createQueryNode(int32_t type, const char* name, SQueryNode** prev, - int32_t numOfPrev, SExprInfo** pExpr, int32_t numOfOutput, SQueryTableInfo* pTableInfo, +static SQueryNode* createQueryNode(int32_t type, const char* name, SQueryNode** prev, int32_t numOfPrev, + SExprInfo** pExpr, int32_t numOfOutput, SQueryTableInfo* pTableInfo, void* pExtInfo) { SQueryNode* pNode = calloc(1, sizeof(SQueryNode)); @@ -112,8 +112,8 @@ static SQueryNode* doAddTableColumnNode(SQueryInfo* pQueryInfo, STableMetaInfo* } STimeWindow* window = &pQueryInfo->window; - SQueryNode* pNode = createQueryNode(QNODE_TABLESCAN, "TableScan", NULL, 0, NULL, 0, - info, window); + SQueryNode* pNode = createQueryNode(QNODE_TABLESCAN, "TableScan", NULL, 0, NULL, 0, info, window); + if (pQueryInfo->projectionQuery) { int32_t numOfOutput = (int32_t) taosArrayGetSize(pExprs); pNode = createQueryNode(QNODE_PROJECT, "Projection", &pNode, 1, pExprs->pData, numOfOutput, info, NULL); @@ -146,39 +146,41 @@ static SQueryNode* doAddTableColumnNode(SQueryInfo* pQueryInfo, STableMetaInfo* } static SQueryNode* doCreateQueryPlanForOneTableImpl(SQueryInfo* pQueryInfo, SQueryNode* pNode, SQueryTableInfo* info, - SArray* pExprs) { - // check for aggregation - if (pQueryInfo->interval.interval > 0) { - int32_t numOfOutput = (int32_t) taosArrayGetSize(pExprs); - - pNode = createQueryNode(QNODE_TIMEWINDOW, "TimeWindowAgg", &pNode, 1, pExprs->pData, numOfOutput, info, - &pQueryInfo->interval); - } else if (pQueryInfo->groupbyColumn) { - int32_t numOfOutput = (int32_t) taosArrayGetSize(pExprs); - pNode = createQueryNode(QNODE_GROUPBY, "Groupby", &pNode, 1, pExprs->pData, numOfOutput, info, - &pQueryInfo->groupbyExpr); - } else if (pQueryInfo->sessionWindow.gap > 0) { - pNode = createQueryNode(QNODE_SESSIONWINDOW, "SessionWindowAgg", &pNode, 1, NULL, 0, info, NULL); - } else if (pQueryInfo->simpleAgg) { - int32_t numOfOutput = (int32_t) taosArrayGetSize(pExprs); - pNode = createQueryNode(QNODE_AGGREGATE, "Aggregate", &pNode, 1, pExprs->pData, numOfOutput, info, NULL); - } - - if (pQueryInfo->havingFieldNum > 0 || pQueryInfo->arithmeticOnAgg) { - int32_t numOfExpr = (int32_t) taosArrayGetSize(pQueryInfo->exprList1); - pNode = - createQueryNode(QNODE_PROJECT, "Projection", &pNode, 1, pQueryInfo->exprList1->pData, numOfExpr, info, NULL); - } + SArray* pExprs) { + // check for aggregation + if (pQueryInfo->interval.interval > 0) { + int32_t numOfOutput = (int32_t)taosArrayGetSize(pExprs); + + pNode = createQueryNode(QNODE_TIMEWINDOW, "TimeWindowAgg", &pNode, 1, pExprs->pData, numOfOutput, info, + &pQueryInfo->interval); + if (pQueryInfo->groupbyExpr.numOfGroupCols != 0) { + pNode = createQueryNode(QNODE_GROUPBY, "Groupby", &pNode, 1, pExprs->pData, numOfOutput, info, &pQueryInfo->groupbyExpr); + } + } else if (pQueryInfo->groupbyColumn) { + int32_t numOfOutput = (int32_t)taosArrayGetSize(pExprs); + pNode = createQueryNode(QNODE_GROUPBY, "Groupby", &pNode, 1, pExprs->pData, numOfOutput, info, + &pQueryInfo->groupbyExpr); + } else if (pQueryInfo->sessionWindow.gap > 0) { + pNode = createQueryNode(QNODE_SESSIONWINDOW, "SessionWindowAgg", &pNode, 1, NULL, 0, info, NULL); + } else if (pQueryInfo->simpleAgg) { + int32_t numOfOutput = (int32_t)taosArrayGetSize(pExprs); + pNode = createQueryNode(QNODE_AGGREGATE, "Aggregate", &pNode, 1, pExprs->pData, numOfOutput, info, NULL); + } - if (pQueryInfo->fillType != TSDB_FILL_NONE) { - SFillEssInfo* pInfo = calloc(1, sizeof(SFillEssInfo)); - pInfo->fillType = pQueryInfo->fillType; - pInfo->val = calloc(pNode->numOfOutput, sizeof(int64_t)); - memcpy(pInfo->val, pQueryInfo->fillVal, pNode->numOfOutput); + if (pQueryInfo->havingFieldNum > 0 || pQueryInfo->arithmeticOnAgg) { + int32_t numOfExpr = (int32_t)taosArrayGetSize(pQueryInfo->exprList1); + pNode = + createQueryNode(QNODE_PROJECT, "Projection", &pNode, 1, pQueryInfo->exprList1->pData, numOfExpr, info, NULL); + } - pNode = createQueryNode(QNODE_FILL, "Fill", &pNode, 1, NULL, 0, info, pInfo); - } + if (pQueryInfo->fillType != TSDB_FILL_NONE) { + SFillEssInfo* pInfo = calloc(1, sizeof(SFillEssInfo)); + pInfo->fillType = pQueryInfo->fillType; + pInfo->val = calloc(pNode->numOfOutput, sizeof(int64_t)); + memcpy(pInfo->val, pQueryInfo->fillVal, pNode->numOfOutput); + pNode = createQueryNode(QNODE_FILL, "Fill", &pNode, 1, NULL, 0, info, pInfo); + } if (pQueryInfo->limit.limit != -1 || pQueryInfo->limit.offset != 0) { pNode = createQueryNode(QNODE_LIMIT, "Limit", &pNode, 1, NULL, 0, info, &pQueryInfo->limit); @@ -330,7 +332,7 @@ static int32_t doPrintPlan(char* buf, SQueryNode* pQueryNode, int32_t level, int switch(pQueryNode->info.type) { case QNODE_TABLESCAN: { STimeWindow* win = (STimeWindow*)pQueryNode->pExtInfo; - len1 = sprintf(buf + len, "%s #0x%" PRIx64 ") time_range: %" PRId64 " - %" PRId64 "\n", + len1 = sprintf(buf + len, "%s #%" PRIu64 ") time_range: %" PRId64 " - %" PRId64 "\n", pQueryNode->tableInfo.tableName, pQueryNode->tableInfo.id.uid, win->skey, win->ekey); len += len1; break; @@ -401,8 +403,8 @@ static int32_t doPrintPlan(char* buf, SQueryNode* pQueryNode, int32_t level, int len += len1; SInterval* pInterval = pQueryNode->pExtInfo; - len1 = sprintf(buf + len, "interval:%" PRId64 "(%c), sliding:%" PRId64 "(%c), offset:%" PRId64 "\n", - pInterval->interval, pInterval->intervalUnit, pInterval->sliding, pInterval->slidingUnit, + len1 = sprintf(buf + len, "interval:%" PRId64 "(%s), sliding:%" PRId64 "(%s), offset:%" PRId64 "\n", + pInterval->interval, TSDB_TIME_PRECISION_MILLI_STR, pInterval->sliding, TSDB_TIME_PRECISION_MILLI_STR, pInterval->offset); len += len1; diff --git a/src/query/src/qSqlParser.c b/src/query/src/qSqlParser.c index 08c55d5d7e5edf71a059635fe61445119b2f19c2..a512c7bf1a2a107998c4555ce9c442e2f501f49c 100644 --- a/src/query/src/qSqlParser.c +++ b/src/query/src/qSqlParser.c @@ -166,7 +166,8 @@ tSqlExpr *tSqlExprCreateIdValue(SStrToken *pToken, int32_t optrType) { // use nanosecond by default // TODO set value after getting database precision if (pToken) { - int32_t ret = parseAbsoluteDuration(pToken->z, pToken->n, &pSqlExpr->value.i64, TSDB_TIME_PRECISION_NANO); + char unit = 0; + int32_t ret = parseAbsoluteDuration(pToken->z, pToken->n, &pSqlExpr->value.i64, &unit, TSDB_TIME_PRECISION_NANO); if (ret != TSDB_CODE_SUCCESS) { terrno = TSDB_CODE_TSC_SQL_SYNTAX_ERROR; } diff --git a/src/query/src/sql.c b/src/query/src/sql.c index 7a9183ac060b255c49def69fcea1c5cbd74c3226..dc5123b7fbbe2b442e8f1c6d8a57b9a6b1d3678c 100644 --- a/src/query/src/sql.c +++ b/src/query/src/sql.c @@ -257,27 +257,27 @@ static const YYACTIONTYPE yy_action[] = { /* 480 */ 208, 211, 205, 212, 213, 217, 218, 219, 216, 202, /* 490 */ 1143, 1082, 1135, 236, 267, 1079, 1078, 237, 338, 151, /* 500 */ 1035, 1046, 47, 1065, 1043, 149, 1064, 1025, 1028, 1044, - /* 510 */ 274, 1048, 153, 170, 157, 1009, 278, 283, 171, 1007, + /* 510 */ 274, 1048, 153, 170, 158, 1009, 278, 285, 171, 1007, /* 520 */ 172, 233, 166, 280, 161, 757, 160, 173, 162, 922, - /* 530 */ 163, 299, 300, 301, 304, 305, 287, 292, 45, 290, + /* 530 */ 163, 299, 300, 301, 304, 305, 282, 292, 45, 290, /* 540 */ 75, 200, 288, 813, 272, 41, 72, 49, 316, 164, /* 550 */ 916, 323, 1142, 110, 1141, 1138, 286, 179, 330, 1134, - /* 560 */ 284, 116, 1133, 1130, 180, 282, 942, 42, 39, 46, - /* 570 */ 201, 904, 279, 126, 48, 902, 128, 129, 900, 899, + /* 560 */ 284, 116, 1133, 1130, 180, 281, 942, 42, 39, 46, + /* 570 */ 201, 904, 279, 126, 303, 902, 128, 129, 900, 899, /* 580 */ 259, 191, 897, 896, 895, 894, 893, 892, 891, 194, - /* 590 */ 196, 888, 886, 884, 882, 198, 879, 199, 303, 81, - /* 600 */ 86, 348, 281, 1066, 121, 340, 341, 342, 343, 344, + /* 590 */ 196, 888, 886, 884, 882, 198, 879, 199, 48, 81, + /* 600 */ 86, 348, 283, 1066, 121, 340, 341, 342, 343, 344, /* 610 */ 223, 345, 346, 356, 855, 243, 298, 260, 261, 854, /* 620 */ 263, 220, 221, 264, 853, 836, 104, 921, 920, 105, - /* 630 */ 835, 268, 273, 10, 293, 734, 275, 84, 30, 87, - /* 640 */ 898, 890, 182, 943, 186, 181, 184, 140, 183, 187, - /* 650 */ 185, 141, 142, 889, 4, 143, 980, 881, 880, 944, - /* 660 */ 759, 165, 167, 168, 155, 169, 762, 156, 2, 990, - /* 670 */ 88, 235, 764, 89, 285, 31, 768, 158, 11, 12, - /* 680 */ 13, 32, 27, 295, 28, 96, 98, 101, 35, 100, + /* 630 */ 835, 268, 273, 10, 293, 734, 275, 84, 30, 898, + /* 640 */ 890, 183, 182, 943, 187, 181, 184, 185, 2, 140, + /* 650 */ 186, 141, 142, 889, 4, 143, 980, 881, 87, 944, + /* 660 */ 759, 165, 167, 168, 169, 880, 155, 157, 768, 156, + /* 670 */ 235, 762, 88, 89, 990, 764, 287, 31, 11, 32, + /* 680 */ 12, 13, 27, 295, 28, 96, 98, 101, 35, 100, /* 690 */ 632, 36, 102, 667, 665, 664, 663, 661, 660, 659, - /* 700 */ 656, 314, 622, 106, 7, 320, 812, 814, 8, 321, - /* 710 */ 109, 111, 68, 69, 115, 704, 703, 38, 117, 700, + /* 700 */ 656, 314, 622, 106, 7, 320, 812, 321, 8, 109, + /* 710 */ 814, 111, 68, 69, 115, 704, 703, 38, 117, 700, /* 720 */ 648, 646, 638, 644, 640, 642, 636, 634, 670, 669, /* 730 */ 668, 666, 662, 658, 657, 190, 620, 585, 583, 859, /* 740 */ 858, 858, 858, 858, 858, 858, 858, 858, 858, 858, @@ -338,24 +338,24 @@ static const YYCODETYPE yy_lookahead[] = { /* 510 */ 246, 199, 199, 250, 199, 246, 269, 199, 199, 199, /* 520 */ 199, 269, 254, 269, 259, 124, 260, 199, 258, 199, /* 530 */ 257, 199, 199, 199, 199, 199, 269, 130, 199, 134, - /* 540 */ 136, 199, 129, 117, 200, 199, 138, 135, 199, 256, - /* 550 */ 199, 199, 199, 199, 199, 199, 128, 199, 199, 199, - /* 560 */ 127, 199, 199, 199, 199, 126, 199, 199, 199, 199, - /* 570 */ 199, 199, 125, 199, 140, 199, 199, 199, 199, 199, + /* 540 */ 136, 199, 128, 117, 200, 199, 138, 135, 199, 256, + /* 550 */ 199, 199, 199, 199, 199, 199, 127, 199, 199, 199, + /* 560 */ 126, 199, 199, 199, 199, 129, 199, 199, 199, 199, + /* 570 */ 199, 199, 125, 199, 89, 199, 199, 199, 199, 199, /* 580 */ 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, - /* 590 */ 199, 199, 199, 199, 199, 199, 199, 199, 89, 200, + /* 590 */ 199, 199, 199, 199, 199, 199, 199, 199, 140, 200, /* 600 */ 200, 113, 200, 200, 96, 95, 51, 92, 94, 55, /* 610 */ 200, 93, 91, 84, 5, 200, 200, 153, 5, 5, /* 620 */ 153, 200, 200, 5, 5, 100, 206, 210, 210, 206, - /* 630 */ 99, 142, 120, 82, 115, 83, 97, 121, 82, 97, - /* 640 */ 200, 200, 217, 219, 215, 218, 216, 201, 213, 212, - /* 650 */ 214, 201, 201, 200, 202, 201, 237, 200, 200, 221, - /* 660 */ 83, 255, 253, 252, 82, 251, 83, 97, 207, 237, - /* 670 */ 82, 1, 83, 82, 82, 97, 83, 82, 131, 131, - /* 680 */ 82, 97, 82, 115, 82, 116, 78, 71, 87, 86, + /* 630 */ 99, 142, 120, 82, 115, 83, 97, 121, 82, 200, + /* 640 */ 200, 213, 217, 219, 212, 218, 216, 214, 207, 201, + /* 650 */ 215, 201, 201, 200, 202, 201, 237, 200, 97, 221, + /* 660 */ 83, 255, 253, 252, 251, 200, 82, 97, 83, 82, + /* 670 */ 1, 83, 82, 82, 237, 83, 82, 97, 131, 97, + /* 680 */ 131, 82, 82, 115, 82, 116, 78, 71, 87, 86, /* 690 */ 5, 87, 86, 9, 5, 5, 5, 5, 5, 5, - /* 700 */ 5, 15, 85, 78, 82, 24, 83, 117, 82, 59, - /* 710 */ 147, 147, 16, 16, 147, 5, 5, 97, 147, 83, + /* 700 */ 5, 15, 85, 78, 82, 24, 83, 59, 82, 147, + /* 710 */ 117, 147, 16, 16, 147, 5, 5, 97, 147, 83, /* 720 */ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, /* 730 */ 5, 5, 5, 5, 5, 97, 85, 61, 60, 0, /* 740 */ 276, 276, 276, 276, 276, 276, 276, 276, 276, 276, @@ -399,9 +399,9 @@ static const unsigned short int yy_shift_ofst[] = { /* 120 */ 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, /* 130 */ 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, /* 140 */ 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, - /* 150 */ 143, 444, 444, 444, 401, 401, 401, 444, 401, 444, - /* 160 */ 404, 408, 407, 412, 405, 413, 428, 433, 439, 447, - /* 170 */ 434, 444, 444, 444, 509, 509, 488, 12, 12, 444, + /* 150 */ 143, 444, 444, 444, 401, 401, 401, 401, 444, 444, + /* 160 */ 404, 408, 407, 412, 405, 414, 429, 434, 436, 447, + /* 170 */ 458, 444, 444, 444, 485, 485, 488, 12, 12, 444, /* 180 */ 444, 508, 510, 555, 515, 514, 554, 518, 521, 488, /* 190 */ 13, 444, 529, 529, 444, 529, 444, 529, 444, 444, /* 200 */ 753, 753, 54, 81, 81, 108, 81, 134, 188, 205, @@ -411,12 +411,12 @@ static const unsigned short int yy_shift_ofst[] = { /* 240 */ 345, 347, 348, 343, 350, 357, 431, 375, 426, 366, /* 250 */ 118, 308, 314, 459, 460, 324, 327, 361, 331, 373, /* 260 */ 609, 464, 613, 614, 467, 618, 619, 525, 531, 489, - /* 270 */ 512, 519, 551, 516, 552, 556, 539, 542, 577, 582, - /* 280 */ 583, 570, 588, 589, 591, 670, 592, 593, 595, 578, - /* 290 */ 547, 584, 548, 598, 519, 600, 568, 602, 569, 608, + /* 270 */ 512, 519, 551, 516, 552, 556, 539, 561, 577, 584, + /* 280 */ 585, 587, 588, 570, 590, 592, 591, 669, 594, 580, + /* 290 */ 547, 582, 549, 599, 519, 600, 568, 602, 569, 608, /* 300 */ 601, 603, 616, 685, 604, 606, 684, 689, 690, 691, - /* 310 */ 692, 693, 694, 695, 617, 686, 625, 622, 623, 590, - /* 320 */ 626, 681, 650, 696, 563, 564, 620, 620, 620, 620, + /* 310 */ 692, 693, 694, 695, 617, 686, 625, 622, 623, 593, + /* 320 */ 626, 681, 648, 696, 562, 564, 620, 620, 620, 620, /* 330 */ 697, 567, 571, 620, 620, 620, 710, 711, 636, 620, /* 340 */ 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, /* 350 */ 725, 726, 727, 728, 729, 638, 651, 730, 731, 676, @@ -424,7 +424,7 @@ static const unsigned short int yy_shift_ofst[] = { }; #define YY_REDUCE_COUNT (201) #define YY_REDUCE_MIN (-265) -#define YY_REDUCE_MAX (461) +#define YY_REDUCE_MAX (465) static const short yy_reduce_ofst[] = { /* 0 */ -27, -33, -33, -193, -193, -76, -203, -199, -175, -184, /* 10 */ -130, -134, 93, 24, 67, 119, 126, 135, 142, 148, @@ -441,12 +441,12 @@ static const short yy_reduce_ofst[] = { /* 120 */ 365, 367, 368, 369, 370, 371, 372, 374, 376, 377, /* 130 */ 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, /* 140 */ 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, - /* 150 */ 398, 344, 399, 400, 247, 252, 254, 402, 267, 403, + /* 150 */ 398, 344, 399, 400, 247, 252, 254, 267, 402, 403, /* 160 */ 246, 266, 265, 270, 273, 293, 406, 268, 409, 411, - /* 170 */ 414, 410, 415, 416, 417, 418, 419, 420, 423, 421, - /* 180 */ 422, 424, 427, 425, 435, 430, 436, 429, 437, 432, - /* 190 */ 438, 440, 446, 450, 441, 451, 453, 454, 457, 458, - /* 200 */ 461, 452, + /* 170 */ 413, 410, 415, 416, 417, 418, 419, 420, 423, 421, + /* 180 */ 422, 424, 427, 425, 428, 430, 433, 435, 432, 437, + /* 190 */ 438, 439, 448, 450, 440, 451, 453, 454, 457, 465, + /* 200 */ 441, 452, }; static const YYACTIONTYPE yy_default[] = { /* 0 */ 856, 979, 918, 989, 905, 915, 1126, 1126, 1126, 856, @@ -464,8 +464,8 @@ static const YYACTIONTYPE yy_default[] = { /* 120 */ 856, 856, 856, 856, 856, 856, 903, 856, 901, 856, /* 130 */ 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, /* 140 */ 856, 856, 856, 856, 887, 856, 856, 856, 856, 856, - /* 150 */ 856, 878, 878, 878, 856, 856, 856, 878, 856, 878, - /* 160 */ 1076, 1080, 1062, 1074, 1070, 1061, 1057, 1055, 1053, 1052, + /* 150 */ 856, 878, 878, 878, 856, 856, 856, 856, 878, 878, + /* 160 */ 1076, 1080, 1062, 1074, 1070, 1057, 1055, 1053, 1061, 1052, /* 170 */ 1084, 878, 878, 878, 923, 923, 919, 915, 915, 878, /* 180 */ 878, 941, 939, 937, 929, 935, 931, 933, 927, 906, /* 190 */ 856, 878, 913, 913, 878, 913, 878, 913, 878, 878, @@ -1039,10 +1039,10 @@ static const char *const yyTokenName[] = { /* 250 */ "from", /* 251 */ "where_opt", /* 252 */ "interval_opt", - /* 253 */ "session_option", - /* 254 */ "windowstate_option", - /* 255 */ "fill_opt", - /* 256 */ "sliding_opt", + /* 253 */ "sliding_opt", + /* 254 */ "session_option", + /* 255 */ "windowstate_option", + /* 256 */ "fill_opt", /* 257 */ "groupby_opt", /* 258 */ "having_opt", /* 259 */ "orderby_opt", @@ -1235,7 +1235,7 @@ static const char *const yyRuleName[] = { /* 163 */ "tagitem ::= MINUS FLOAT", /* 164 */ "tagitem ::= PLUS INTEGER", /* 165 */ "tagitem ::= PLUS FLOAT", - /* 166 */ "select ::= SELECT selcollist from where_opt interval_opt session_option windowstate_option fill_opt sliding_opt groupby_opt having_opt orderby_opt slimit_opt limit_opt", + /* 166 */ "select ::= SELECT selcollist from where_opt interval_opt sliding_opt session_option windowstate_option fill_opt groupby_opt having_opt orderby_opt slimit_opt limit_opt", /* 167 */ "select ::= LP select RP", /* 168 */ "union ::= select", /* 169 */ "union ::= union UNION ALL select", @@ -1490,7 +1490,7 @@ tSqlExprListDestroy((yypminor->yy525)); case 243: /* columnlist */ case 244: /* tagitemlist */ case 245: /* tagNamelist */ - case 255: /* fill_opt */ + case 256: /* fill_opt */ case 257: /* groupby_opt */ case 259: /* orderby_opt */ case 270: /* sortlist */ @@ -1991,7 +1991,7 @@ static const struct { { 248, -2 }, /* (163) tagitem ::= MINUS FLOAT */ { 248, -2 }, /* (164) tagitem ::= PLUS INTEGER */ { 248, -2 }, /* (165) tagitem ::= PLUS FLOAT */ - { 246, -14 }, /* (166) select ::= SELECT selcollist from where_opt interval_opt session_option windowstate_option fill_opt sliding_opt groupby_opt having_opt orderby_opt slimit_opt limit_opt */ + { 246, -14 }, /* (166) select ::= SELECT selcollist from where_opt interval_opt sliding_opt session_option windowstate_option fill_opt groupby_opt having_opt orderby_opt slimit_opt limit_opt */ { 246, -3 }, /* (167) select ::= LP select RP */ { 262, -1 }, /* (168) union ::= select */ { 262, -4 }, /* (169) union ::= union UNION ALL select */ @@ -2019,15 +2019,15 @@ static const struct { { 252, -4 }, /* (191) interval_opt ::= INTERVAL LP tmvar RP */ { 252, -6 }, /* (192) interval_opt ::= INTERVAL LP tmvar COMMA tmvar RP */ { 252, 0 }, /* (193) interval_opt ::= */ - { 253, 0 }, /* (194) session_option ::= */ - { 253, -7 }, /* (195) session_option ::= SESSION LP ids cpxName COMMA tmvar RP */ - { 254, 0 }, /* (196) windowstate_option ::= */ - { 254, -4 }, /* (197) windowstate_option ::= STATE_WINDOW LP ids RP */ - { 255, 0 }, /* (198) fill_opt ::= */ - { 255, -6 }, /* (199) fill_opt ::= FILL LP ID COMMA tagitemlist RP */ - { 255, -4 }, /* (200) fill_opt ::= FILL LP ID RP */ - { 256, -4 }, /* (201) sliding_opt ::= SLIDING LP tmvar RP */ - { 256, 0 }, /* (202) sliding_opt ::= */ + { 254, 0 }, /* (194) session_option ::= */ + { 254, -7 }, /* (195) session_option ::= SESSION LP ids cpxName COMMA tmvar RP */ + { 255, 0 }, /* (196) windowstate_option ::= */ + { 255, -4 }, /* (197) windowstate_option ::= STATE_WINDOW LP ids RP */ + { 256, 0 }, /* (198) fill_opt ::= */ + { 256, -6 }, /* (199) fill_opt ::= FILL LP ID COMMA tagitemlist RP */ + { 256, -4 }, /* (200) fill_opt ::= FILL LP ID RP */ + { 253, -4 }, /* (201) sliding_opt ::= SLIDING LP tmvar RP */ + { 253, 0 }, /* (202) sliding_opt ::= */ { 259, 0 }, /* (203) orderby_opt ::= */ { 259, -3 }, /* (204) orderby_opt ::= ORDER BY sortlist */ { 270, -4 }, /* (205) sortlist ::= sortlist COMMA item sortorder */ @@ -2723,9 +2723,9 @@ static void yy_reduce( } yymsp[-1].minor.yy506 = yylhsminor.yy506; break; - case 166: /* select ::= SELECT selcollist from where_opt interval_opt session_option windowstate_option fill_opt sliding_opt groupby_opt having_opt orderby_opt slimit_opt limit_opt */ + case 166: /* select ::= SELECT selcollist from where_opt interval_opt sliding_opt session_option windowstate_option fill_opt groupby_opt having_opt orderby_opt slimit_opt limit_opt */ { - yylhsminor.yy464 = tSetQuerySqlNode(&yymsp[-13].minor.yy0, yymsp[-12].minor.yy525, yymsp[-11].minor.yy412, yymsp[-10].minor.yy370, yymsp[-4].minor.yy525, yymsp[-2].minor.yy525, &yymsp[-9].minor.yy520, &yymsp[-8].minor.yy259, &yymsp[-7].minor.yy144, &yymsp[-5].minor.yy0, yymsp[-6].minor.yy525, &yymsp[0].minor.yy126, &yymsp[-1].minor.yy126, yymsp[-3].minor.yy370); + yylhsminor.yy464 = tSetQuerySqlNode(&yymsp[-13].minor.yy0, yymsp[-12].minor.yy525, yymsp[-11].minor.yy412, yymsp[-10].minor.yy370, yymsp[-4].minor.yy525, yymsp[-2].minor.yy525, &yymsp[-9].minor.yy520, &yymsp[-7].minor.yy259, &yymsp[-6].minor.yy144, &yymsp[-8].minor.yy0, yymsp[-5].minor.yy525, &yymsp[0].minor.yy126, &yymsp[-1].minor.yy126, yymsp[-3].minor.yy370); } yymsp[-13].minor.yy464 = yylhsminor.yy464; break; diff --git a/src/tsdb/inc/tsdbRowMergeBuf.h b/src/tsdb/inc/tsdbRowMergeBuf.h index 302bf25750fc08367a2840fa9c483919c828fcb5..cefa9b27fbd2a6116e2d7180f102440af9595e93 100644 --- a/src/tsdb/inc/tsdbRowMergeBuf.h +++ b/src/tsdb/inc/tsdbRowMergeBuf.h @@ -29,7 +29,9 @@ typedef void* SMergeBuf; SDataRow tsdbMergeTwoRows(SMergeBuf *pBuf, SMemRow row1, SMemRow row2, STSchema *pSchema1, STSchema *pSchema2); static FORCE_INLINE int tsdbMergeBufMakeSureRoom(SMergeBuf *pBuf, STSchema* pSchema1, STSchema* pSchema2) { - return tsdbMakeRoom(pBuf, MAX(dataRowMaxBytesFromSchema(pSchema1), dataRowMaxBytesFromSchema(pSchema2))); + size_t len1 = dataRowMaxBytesFromSchema(pSchema1); + size_t len2 = dataRowMaxBytesFromSchema(pSchema2); + return tsdbMakeRoom(pBuf, MAX(len1, len2)); } static FORCE_INLINE void tsdbFreeMergeBuf(SMergeBuf buf) { diff --git a/src/tsdb/src/tsdbMeta.c b/src/tsdb/src/tsdbMeta.c index f233500ee9d036148657125abcd09eae53a88185..619b32b3d92cc27f93855e3c5ffe42d327bc4695 100644 --- a/src/tsdb/src/tsdbMeta.c +++ b/src/tsdb/src/tsdbMeta.c @@ -1035,6 +1035,8 @@ static void tsdbRemoveTableFromMeta(STsdbRepo *pRepo, STable *pTable, bool rmFro } } } + pMeta->maxCols = maxCols; + pMeta->maxRowBytes = maxRowBytes; if (lock) tsdbUnlockRepoMeta(pRepo); tsdbDebug("vgId:%d table %s uid %" PRIu64 " is removed from meta", REPO_ID(pRepo), TABLE_CHAR_NAME(pTable), TABLE_UID(pTable)); diff --git a/src/tsdb/src/tsdbRead.c b/src/tsdb/src/tsdbRead.c index 2294dd33802c07a00ed4f2ce6f9acae7c31ff1ea..b5374ccaed76353e8bf22c25bdc3cb7a09b501f6 100644 --- a/src/tsdb/src/tsdbRead.c +++ b/src/tsdb/src/tsdbRead.c @@ -1234,7 +1234,6 @@ static int32_t doCopyRowsFromFileBlock(STsdbQueryHandle* pQueryHandle, int32_t c static void moveDataToFront(STsdbQueryHandle* pQueryHandle, int32_t numOfRows, int32_t numOfCols); static void doCheckGeneratedBlockRange(STsdbQueryHandle* pQueryHandle); static void copyAllRemainRowsFromFileBlock(STsdbQueryHandle* pQueryHandle, STableCheckInfo* pCheckInfo, SDataBlockInfo* pBlockInfo, int32_t endPos); -static TSKEY extractFirstTraverseKey(STableCheckInfo* pCheckInfo, int32_t order, int32_t update); static int32_t handleDataMergeIfNeeded(STsdbQueryHandle* pQueryHandle, SBlock* pBlock, STableCheckInfo* pCheckInfo){ SQueryFilePos* cur = &pQueryHandle->cur; @@ -1244,7 +1243,6 @@ static int32_t handleDataMergeIfNeeded(STsdbQueryHandle* pQueryHandle, SBlock* p int32_t code = TSDB_CODE_SUCCESS; /*bool hasData = */ initTableMemIterator(pQueryHandle, pCheckInfo); - assert(cur->pos >= 0 && cur->pos <= binfo.rows); key = extractFirstTraverseKey(pCheckInfo, pQueryHandle->order, pCfg->update); @@ -1255,7 +1253,6 @@ static int32_t handleDataMergeIfNeeded(STsdbQueryHandle* pQueryHandle, SBlock* p tsdbDebug("%p no data in mem, 0x%"PRIx64, pQueryHandle, pQueryHandle->qId); } - if ((ASCENDING_TRAVERSE(pQueryHandle->order) && (key != TSKEY_INITIAL_VAL && key <= binfo.window.ekey)) || (!ASCENDING_TRAVERSE(pQueryHandle->order) && (key != TSKEY_INITIAL_VAL && key >= binfo.window.skey))) { @@ -2708,7 +2705,7 @@ static bool loadBlockOfActiveTable(STsdbQueryHandle* pQueryHandle) { } if (exists) { - tsdbRetrieveDataBlock((TsdbQueryHandleT) pQueryHandle, NULL); + tsdbRetrieveDataBlock((TsdbQueryHandleT*) pQueryHandle, NULL); if (pQueryHandle->currentLoadExternalRows && pQueryHandle->window.skey == pQueryHandle->window.ekey) { SColumnInfoData* pColInfo = taosArrayGet(pQueryHandle->pColumns, 0); assert(*(int64_t*)pColInfo->pData == pQueryHandle->window.skey); diff --git a/src/tsdb/src/tsdbReadImpl.c b/src/tsdb/src/tsdbReadImpl.c index 666a2d357144431093855479f30a4feefbb9ab3b..711c32535bb00bae55d7faafadc115a22c76a949 100644 --- a/src/tsdb/src/tsdbReadImpl.c +++ b/src/tsdb/src/tsdbReadImpl.c @@ -518,6 +518,8 @@ static int tsdbCheckAndDecodeColumnData(SDataCol *pDataCol, void *content, int32 return -1; } + tdAllocMemForCol(pDataCol, maxPoints); + // Decode the data if (comp) { // Need to decompress diff --git a/src/util/inc/hash.h b/src/util/inc/hash.h index a53aa602c1e309ef0c25e370ae084b5a33e4144c..6c4145810b9819e60a9cb979a8ab42795df3cf00 100644 --- a/src/util/inc/hash.h +++ b/src/util/inc/hash.h @@ -127,6 +127,16 @@ void *taosHashGet(SHashObj *pHashObj, const void *key, size_t keyLen); */ void* taosHashGetClone(SHashObj *pHashObj, const void *key, size_t keyLen, void (*fp)(void *), void* d); +/** + * @param pHashObj + * @param key + * @param keyLen + * @param fp + * @param d + * @param sz + * @return + */ +void* taosHashGetCloneExt(SHashObj *pHashObj, const void *key, size_t keyLen, void (*fp)(void *), void** d, size_t *sz); /** * remove item with the specified key * @param pHashObj diff --git a/src/util/src/hash.c b/src/util/src/hash.c index 2e18f36a17f9b3112c4d1747afa37944a1e93d28..6118aa7bef8b426a909cee19b6ee2aba2ed6dfc4 100644 --- a/src/util/src/hash.c +++ b/src/util/src/hash.c @@ -18,6 +18,8 @@ #include "tulog.h" #include "taosdef.h" +#define EXT_SIZE 1024 + #define HASH_NEED_RESIZE(_h) ((_h)->size >= (_h)->capacity * HASH_DEFAULT_LOAD_FACTOR) #define DO_FREE_HASH_NODE(_n) \ @@ -296,6 +298,68 @@ int32_t taosHashPut(SHashObj *pHashObj, const void *key, size_t keyLen, void *da void *taosHashGet(SHashObj *pHashObj, const void *key, size_t keyLen) { return taosHashGetClone(pHashObj, key, keyLen, NULL, NULL); } +//TODO(yihaoDeng), merge with taosHashGetClone +void* taosHashGetCloneExt(SHashObj *pHashObj, const void *key, size_t keyLen, void (*fp)(void *), void** d, size_t *sz) { + if (taosHashTableEmpty(pHashObj) || keyLen == 0 || key == NULL) { + return NULL; + } + + uint32_t hashVal = (*pHashObj->hashFp)(key, (uint32_t)keyLen); + + // only add the read lock to disable the resize process + __rd_lock(&pHashObj->lock, pHashObj->type); + + int32_t slot = HASH_INDEX(hashVal, pHashObj->capacity); + SHashEntry *pe = pHashObj->hashList[slot]; + + // no data, return directly + if (atomic_load_32(&pe->num) == 0) { + __rd_unlock(&pHashObj->lock, pHashObj->type); + return NULL; + } + + char *data = NULL; + + // lock entry + if (pHashObj->type == HASH_ENTRY_LOCK) { + taosRLockLatch(&pe->latch); + } + + if (pe->num > 0) { + assert(pe->next != NULL); + } else { + assert(pe->next == NULL); + } + + SHashNode *pNode = doSearchInEntryList(pHashObj, pe, key, keyLen, hashVal); + if (pNode != NULL) { + if (fp != NULL) { + fp(GET_HASH_NODE_DATA(pNode)); + } + + if (*d == NULL) { + *sz = pNode->dataLen + EXT_SIZE; + *d = calloc(1, *sz); + } else if (*sz < pNode->dataLen){ + *sz = pNode->dataLen + EXT_SIZE; + *d = realloc(*d, *sz); + } + memcpy((char *)(*d), GET_HASH_NODE_DATA(pNode), pNode->dataLen); + // just make runtime happy + if ((*sz) - pNode->dataLen > 0) { + memset((char *)(*d) + pNode->dataLen, 0, (*sz) - pNode->dataLen); + } + + data = GET_HASH_NODE_DATA(pNode); + } + + if (pHashObj->type == HASH_ENTRY_LOCK) { + taosRUnLockLatch(&pe->latch); + } + + __rd_unlock(&pHashObj->lock, pHashObj->type); + return data; +} void* taosHashGetClone(SHashObj *pHashObj, const void *key, size_t keyLen, void (*fp)(void *), void* d) { if (taosHashTableEmpty(pHashObj) || keyLen == 0 || key == NULL) { diff --git a/src/vnode/inc/vnodeInt.h b/src/vnode/inc/vnodeInt.h index ef05cf4a4063625d8e2810503e541fd32a7f8f62..4864b79dc4ee7c718ad7c023277793f21e74446d 100644 --- a/src/vnode/inc/vnodeInt.h +++ b/src/vnode/inc/vnodeInt.h @@ -26,6 +26,7 @@ extern "C" { #include "vnode.h" extern int32_t vDebugFlag; +extern int32_t vNumOfExistedQHandle; // current initialized and existed query handle in current dnode #define vFatal(...) { if (vDebugFlag & DEBUG_FATAL) { taosPrintLog("VND FATAL ", 255, __VA_ARGS__); }} #define vError(...) { if (vDebugFlag & DEBUG_ERROR) { taosPrintLog("VND ERROR ", 255, __VA_ARGS__); }} diff --git a/src/vnode/src/vnodeRead.c b/src/vnode/src/vnodeRead.c index 6bc009209be5788146e6d3f65439a266d7ce0522..64f87ba5caddbb8b9cf90c2a13fa4029a9821ab0 100644 --- a/src/vnode/src/vnodeRead.c +++ b/src/vnode/src/vnodeRead.c @@ -21,6 +21,8 @@ #include "query.h" #include "vnodeStatus.h" +int32_t vNumOfExistedQHandle; // current initialized and existed query handle in current dnode + static int32_t (*vnodeProcessReadMsgFp[TSDB_MSG_TYPE_MAX])(SVnodeObj *pVnode, SVReadMsg *pRead); static int32_t vnodeProcessQueryMsg(SVnodeObj *pVnode, SVReadMsg *pRead); static int32_t vnodeProcessFetchMsg(SVnodeObj *pVnode, SVReadMsg *pRead); @@ -247,7 +249,8 @@ static int32_t vnodeProcessQueryMsg(SVnodeObj *pVnode, SVReadMsg *pRead) { if (handle == NULL) { // failed to register qhandle pRsp->code = terrno; terrno = 0; - vError("vgId:%d, QInfo:0x%"PRIx64 "-%p register qhandle failed, return to app, code:%s", pVnode->vgId, qId, (void *)pQInfo, + + vError("vgId:%d, QInfo:0x%"PRIx64 "-%p register qhandle failed, return to app, code:%s,", pVnode->vgId, qId, (void *)pQInfo, tstrerror(pRsp->code)); qDestroyQueryInfo(pQInfo); // destroy it directly return pRsp->code; @@ -260,10 +263,12 @@ static int32_t vnodeProcessQueryMsg(SVnodeObj *pVnode, SVReadMsg *pRead) { vnodeNotifyCurrentQhandle(pRead->rpcHandle, qId, *handle, pVnode->vgId) != TSDB_CODE_SUCCESS) { vError("vgId:%d, QInfo:0x%"PRIx64 "-%p, query discarded since link is broken, %p", pVnode->vgId, qId, *handle, pRead->rpcHandle); + pRsp->code = TSDB_CODE_RPC_NETWORK_UNAVAIL; qReleaseQInfo(pVnode->qMgmt, (void **)&handle, true); return pRsp->code; } + } else { assert(pQInfo == NULL); } @@ -277,6 +282,9 @@ static int32_t vnodeProcessQueryMsg(SVnodeObj *pVnode, SVReadMsg *pRead) { return pRsp->code; } } + + int32_t remain = atomic_add_fetch_32(&vNumOfExistedQHandle, 1); + vTrace("vgId:%d, new qhandle created, total qhandle:%d", pVnode->vgId, remain); } else { assert(pCont != NULL); void **qhandle = (void **)pRead->qhandle; @@ -318,8 +326,14 @@ static int32_t vnodeProcessQueryMsg(SVnodeObj *pVnode, SVReadMsg *pRead) { // NOTE: if the qhandle is not put into vread queue or query is completed, free the qhandle. // If the building of result is not required, simply free it. Otherwise, mandatorily free the qhandle if (freehandle || (!buildRes)) { + if (freehandle) { + int32_t remain = atomic_sub_fetch_32(&vNumOfExistedQHandle, 1); + vTrace("vgId:%d, QInfo:%p, start to free qhandle, remain qhandle:%d", pVnode->vgId, *qhandle, remain); + } + qReleaseQInfo(pVnode->qMgmt, (void **)&qhandle, freehandle); } + } } @@ -357,7 +371,10 @@ static int32_t vnodeProcessFetchMsg(SVnodeObj *pVnode, SVReadMsg *pRead) { // kill current query and free corresponding resources. if (pRetrieve->free == 1) { - vWarn("vgId:%d, QInfo:%"PRIx64 "-%p, retrieve msg received to kill query and free qhandle", pVnode->vgId, pRetrieve->qId, *handle); + int32_t remain = atomic_sub_fetch_32(&vNumOfExistedQHandle, 1); + vWarn("vgId:%d, QInfo:%"PRIx64 "-%p, retrieve msg received to kill query and free qhandle, remain qhandle:%d", pVnode->vgId, pRetrieve->qId, + *handle, remain); + qKillQuery(*handle); qReleaseQInfo(pVnode->qMgmt, (void **)&handle, true); @@ -368,7 +385,10 @@ static int32_t vnodeProcessFetchMsg(SVnodeObj *pVnode, SVReadMsg *pRead) { // register the qhandle to connect to quit query immediate if connection is broken if (vnodeNotifyCurrentQhandle(pRead->rpcHandle, pRetrieve->qId, *handle, pVnode->vgId) != TSDB_CODE_SUCCESS) { - vError("vgId:%d, QInfo:%"PRIu64 "-%p, retrieve discarded since link is broken, conn:%p", pVnode->vgId, pRetrieve->qhandle, *handle, pRead->rpcHandle); + int32_t remain = atomic_sub_fetch_32(&vNumOfExistedQHandle, 1); + vError("vgId:%d, QInfo:%"PRIu64 "-%p, retrieve discarded since link is broken, conn:%p, remain qhandle:%d", pVnode->vgId, pRetrieve->qhandle, + *handle, pRead->rpcHandle, remain); + code = TSDB_CODE_RPC_NETWORK_UNAVAIL; qKillQuery(*handle); qReleaseQInfo(pVnode->qMgmt, (void **)&handle, true); @@ -390,7 +410,6 @@ static int32_t vnodeProcessFetchMsg(SVnodeObj *pVnode, SVReadMsg *pRead) { if (!tsRetrieveBlockingModel) { if (!buildRes) { assert(pRead->rpcHandle != NULL); - qReleaseQInfo(pVnode->qMgmt, (void **)&handle, false); return TSDB_CODE_QRY_NOT_READY; } @@ -403,6 +422,8 @@ static int32_t vnodeProcessFetchMsg(SVnodeObj *pVnode, SVReadMsg *pRead) { // If qhandle is not added into vread queue, the query should be completed already or paused with error. // Here free qhandle immediately if (freeHandle) { + int32_t remain = atomic_sub_fetch_32(&vNumOfExistedQHandle, 1); + vTrace("vgId:%d, QInfo:%p, start to free qhandle, remain qhandle:%d", pVnode->vgId, *handle, remain); qReleaseQInfo(pVnode->qMgmt, (void **)&handle, true); } diff --git a/tests/pytest/fulltest.sh b/tests/pytest/fulltest.sh index d3e9bcf2e05f35dcc093bfb0b2d8713162da31db..783ee98da3edc96513da0d0c2333dc09da13d9df 100755 --- a/tests/pytest/fulltest.sh +++ b/tests/pytest/fulltest.sh @@ -148,6 +148,9 @@ python3 ./test.py -f import_merge/importTPORestart.py python3 ./test.py -f import_merge/importTRestart.py python3 ./test.py -f import_merge/importInsertThenImport.py python3 ./test.py -f import_merge/importCSV.py +python3 ./test.py -f import_merge/import_update_0.py +python3 ./test.py -f import_merge/import_update_1.py +python3 ./test.py -f import_merge/import_update_2.py #======================p1-end=============== #======================p2-start=============== # tools @@ -376,6 +379,7 @@ python3 test.py -f alter/alter_cacheLastRow.py python3 ./test.py -f query/querySession.py python3 test.py -f alter/alter_create_exception.py python3 ./test.py -f insert/flushwhiledrop.py +python3 ./test.py -f insert/schemalessInsert.py #======================p4-end=============== python3 test.py -f tools/taosdemoAllTest/pytest.py diff --git a/tests/pytest/import_merge/import_update_0.py b/tests/pytest/import_merge/import_update_0.py new file mode 100644 index 0000000000000000000000000000000000000000..6466deb3704223178c4786bbdaa64d493455fed8 --- /dev/null +++ b/tests/pytest/import_merge/import_update_0.py @@ -0,0 +1,1913 @@ +################################################################### +# Copyright (c) 2016 by TAOS Technologies, Inc. +# All rights reserved. +# +# This file is proprietary and confidential to TAOS Technologies. +# No part of this file may be reproduced, stored, transmitted, +# disclosed or used in any form or by any means other than as +# expressly provided by the written permission from Jianhui Tao +# +################################################################### + +# -*- coding: utf-8 -*- + +import sys +import taos +from util.log import tdLog +from util.cases import tdCases +from util.sql import tdSql +from util.dnodes import * +import random +import time + + +class TDTestCase: + def init(self, conn, logSql): + tdLog.debug("start to execute %s" % __file__) + tdSql.init(conn.cursor(), logSql) + + self.ts = 1600000000000 + self.num = 50 + self.num4096 = 5 + + def getBuildPath(self): + selfPath = os.path.dirname(os.path.realpath(__file__)) + + if ("community" in selfPath): + projPath = selfPath[:selfPath.find("community")] + else: + projPath = selfPath[:selfPath.find("tests")] + + for root, dirs, files in os.walk(projPath): + if ("taosd" in files): + rootRealPath = os.path.dirname(os.path.realpath(root)) + if ("packaging" not in rootRealPath): + buildPath = root[:len(root)-len("/build/bin")] + break + return buildPath + + def run(self): + tdSql.prepare() + # test case for https://jira.taosdata.com:18080/browse/TD-5062 + + startTime = time.time() + + tdSql.execute('''drop database if exists test_updata_0 ;''') + # update 0 不更新 ; update 1 覆盖更新 ;update 2 合并更新 + tdLog.info("========== test database updata = 0 ==========") + tdSql.execute('''create database test_updata_0 update 0 minrows 10 maxrows 200 ;''') + tdSql.execute('''use test_updata_0;''') + tdSql.execute('''create stable stable_1 + (ts timestamp , q_int int , q_bigint bigint , q_smallint smallint , q_tinyint tinyint, + q_bool bool , q_binary binary(10) , q_nchar nchar(10) , q_float float , q_double double , q_ts timestamp) + tags(loc nchar(20) , t_int int);''') + tdSql.execute('''create table table_1 using stable_1 tags('table_1' , '1' )''') + tdSql.execute('''create table table_2 using stable_1 tags('table_2' , '2' )''') + tdSql.execute('''create table table_3 using stable_1 tags('table_3' , '3' )''') + + #regular table + tdSql.execute('''create table regular_table_1 + (ts timestamp , q_int int , q_bigint bigint , q_smallint smallint , q_tinyint tinyint, + q_bool bool , q_binary binary(10) , q_nchar nchar(10) , q_float float , q_double double , q_ts timestamp) ;''') + tdSql.execute('''create table regular_table_2 + (ts timestamp , q_int int , q_bigint bigint , q_smallint smallint , q_tinyint tinyint, + q_bool bool , q_binary binary(10) , q_nchar nchar(10) , q_float float , q_double double , q_ts timestamp) ;''') + tdSql.execute('''create table regular_table_3 + (ts timestamp , q_int int , q_bigint bigint , q_smallint smallint , q_tinyint tinyint, + q_bool bool , q_binary binary(10) , q_nchar nchar(10) , q_float float , q_double double , q_ts timestamp) ;''') + + + tdLog.info("========== test1.1 : insert data , check data==========") + tdLog.info("========== regular_table ==========") + tdSql.execute('''insert into regular_table_1 values( %d , 0, 0, 0, 0, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 200)) + sql = '''select * from regular_table_1 where ts = %d ;''' %(self.ts - 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-0') + tdSql.checkData(0,7,'nchar-0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + + tdSql.execute('''insert into regular_table_1 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts + 200)) + sql = '''select * from regular_table_1 where ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdSql.execute('''insert into regular_table_1 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts - 500)) + sql = '''select * from regular_table_1 where ts = %d ;''' %(self.ts - 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdSql.execute('''insert into regular_table_1 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts + 500)) + sql = '''select * from regular_table_1 where ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdLog.info("========== stable ==========") + tdSql.execute('''insert into table_1 values( %d , 0, 0, 0, 0, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 200)) + sql = '''select * from table_1 where ts = %d ;''' %(self.ts - 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-0') + tdSql.checkData(0,7,'nchar-0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + sql = '''select * from stable_1 where ts = %d ;''' %(self.ts - 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-0') + tdSql.checkData(0,7,'nchar-0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + + tdSql.execute('''insert into table_1 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts + 200)) + sql = '''select * from table_1 where ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + sql = '''select * from stable_1 where ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdSql.execute('''insert into table_1 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts - 500)) + sql = '''select * from table_1 where ts = %d ;''' %(self.ts - 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + sql = '''select * from stable_1 where ts = %d ;''' %(self.ts - 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdSql.execute('''insert into table_1 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts + 500)) + sql = '''select * from table_1 where ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + sql = '''select * from stable_1 where ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + + tdLog.info("========== 4096 regular_table ==========") + sql = "create table regular_table_4096_1 (ts timestamp, " + for i in range(500): + sql += "int_%d int, " % (i + 1) + for i in range(500,1000): + sql += "smallint_%d smallint, " % (i + 1) + for i in range(1000,1500): + sql += "tinyint_%d tinyint, " % (i + 1) + for i in range(1500,2000): + sql += "double_%d double, " % (i + 1) + for i in range(2000,2500): + sql += "float_%d float, " % (i + 1) + for i in range(2500,3000): + sql += "bool_%d bool, " % (i + 1) + for i in range(3000,3500): + sql += "bigint_%d bigint, " % (i + 1) + for i in range(3500,3800): + sql += "nchar_%d nchar(4), " % (i + 1) + for i in range(3800,4090): + sql += "binary_%d binary(10), " % (i + 1) + for i in range(4090,4094): + sql += "timestamp_%d timestamp, " % (i + 1) + sql += "col4095 binary(22))" + tdLog.info(len(sql)) + tdSql.execute(sql) + + for i in range(self.num4096): + sql = "insert into regular_table_4096_1 values(%d, " + for j in range(4090): + str = "'%s', " % 'NULL' + sql += str + for j in range(4090,4094): + str = "%s, " % (self.ts + j) + sql += str + sql += "'%s')" % (self.ts + i) + tdSql.execute(sql % (self.ts + i)) + tdSql.query('''select * from regular_table_4096_1 where ts = %d ;''' %(self.ts)) + tdSql.checkCols(4096) + tdSql.checkData(0,1,None) + tdSql.checkData(0,501,None) + tdSql.checkData(0,1001,None) + tdSql.checkData(0,1501,None) + tdSql.checkData(0,2001,None) + tdSql.checkData(0,2501,None) + tdSql.checkData(0,3001,None) + tdSql.checkData(0,3501,'NULL') + tdSql.checkData(0,3801,'NULL') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.090') + tdSql.checkData(0,4095,'1600000000000') + + sql = '''insert into regular_table_4096_1 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4095 ) + values('2020-09-10 20:26:40.000' , 1 , 501 , 101 , 1501 , 2001 , 1 , 3001 , '3501' , '3801' ,'2020-09-10 20:26:44.090','1500000000000');''' + tdSql.execute(sql) + tdSql.query("select * from regular_table_4096_1 where ts ='2020-09-10 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-10 20:26:44.090') + tdSql.checkData(0,4095,'1500000000000') + + tdLog.info("========== 4096 stable ==========") + sql = "create stable stable_4096_1 (ts timestamp, " + for i in range(500): + sql += "int_%d int, " % (i + 1) + for i in range(500,1000): + sql += "smallint_%d smallint, " % (i + 1) + for i in range(1000,1500): + sql += "tinyint_%d tinyint, " % (i + 1) + for i in range(1500,2000): + sql += "double_%d double, " % (i + 1) + for i in range(2000,2500): + sql += "float_%d float, " % (i + 1) + for i in range(2500,3000): + sql += "bool_%d bool, " % (i + 1) + for i in range(3000,3500): + sql += "bigint_%d bigint, " % (i + 1) + for i in range(3500,3800): + sql += "nchar_%d nchar(4), " % (i + 1) + for i in range(3800,4090): + sql += "binary_%d binary(10), " % (i + 1) + for i in range(4090,4092): + sql += "timestamp_%d timestamp, " % (i + 1) + sql += " col4093 binary(22)) " + sql += " tags (loc nchar(20),tag_1 int) " + tdLog.info(len(sql)) + tdSql.execute(sql) + + sql = " create table table_4096_1 using stable_4096_1 tags ('table_4096_1',1); " + tdSql.execute(sql) + + for i in range(self.num4096): + sql = "insert into table_4096_1 values(%d, " + for j in range(4090): + str = "'%s', " % 'NULL' + sql += str + for j in range(4090,4092): + str = "%s, " % (self.ts + j) + sql += str + sql += "'%s')" % (self.ts + i) + tdSql.execute(sql % (self.ts + i)) + tdSql.query('''select * from table_4096_1 where ts = %d ;''' %(self.ts)) + tdSql.checkCols(4094) + tdSql.checkData(0,1,None) + tdSql.checkData(0,501,None) + tdSql.checkData(0,1001,None) + tdSql.checkData(0,1501,None) + tdSql.checkData(0,2001,None) + tdSql.checkData(0,2501,None) + tdSql.checkData(0,3001,None) + tdSql.checkData(0,3501,'NULL') + tdSql.checkData(0,3801,'NULL') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.090') + tdSql.checkData(0,4093,'1600000000000') + tdSql.query('''select * from stable_4096_1 where ts = %d ;''' %(self.ts)) + tdSql.checkCols(4096) + tdSql.checkData(0,1,None) + tdSql.checkData(0,501,None) + tdSql.checkData(0,1001,None) + tdSql.checkData(0,1501,None) + tdSql.checkData(0,2001,None) + tdSql.checkData(0,2501,None) + tdSql.checkData(0,3001,None) + tdSql.checkData(0,3501,'NULL') + tdSql.checkData(0,3801,'NULL') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.090') + tdSql.checkData(0,4093,'1600000000000') + + sql = '''insert into table_4096_1 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4093 ) + values('2020-09-10 20:26:40.000' , 1 , 501 , 101 , 1501 , 2001 , 1 , 3001 , '3501' , '3801' ,'2020-09-10 20:26:44.090','1500000000000');''' + tdSql.execute(sql) + tdSql.query("select * from table_4096_1 where ts ='2020-09-10 20:26:40.000';") + tdSql.checkCols(4094) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-10 20:26:44.090') + tdSql.checkData(0,4093,'1500000000000') + tdSql.query("select * from stable_4096_1 where ts ='2020-09-10 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-10 20:26:44.090') + tdSql.checkData(0,4093,'1500000000000') + + # minrows 10 maxrows 200 + for i in range(self.num): + tdSql.execute('''insert into regular_table_1 values(%d, %d, %d, %d, %d, 0, 'binary.%s', 'nchar.%s', %f, %f, %d)''' + % (self.ts -100 + i, i, i, i, i, i, i, i, i, self.ts -100 + i)) + tdSql.execute('''insert into regular_table_1 values(%d, %d, %d, %d, %d, false, 'binary%s', 'nchar%s', %f, %f, %d)''' + % (self.ts + i, random.randint(-2147483647, 2147483647), + random.randint(-9223372036854775807, 9223372036854775807), random.randint(-32767, 32767), + random.randint(-127, 127), random.randint(-100, 100), random.randint(-10000, 10000), + random.uniform(-100000,100000), random.uniform(-1000000000,1000000000), self.ts + i)) + + tdSql.execute('''insert into table_1 values(%d, %d, %d, %d, %d, 0, 'binary.%s', 'nchar.%s', %f, %f, %d)''' + % (self.ts -100 + i, i, i, i, i, i, i, i, i, self.ts -100 + i)) + tdSql.execute('''insert into table_1 values(%d, %d, %d, %d, %d, false, 'binary%s', 'nchar%s', %f, %f, %d)''' + % (self.ts + i, random.randint(-2147483647, 2147483647), + random.randint(-9223372036854775807, 9223372036854775807), random.randint(-32767, 32767), + random.randint(-127, 127), random.randint(-100, 100), random.randint(-10000, 10000), + random.uniform(-100000,100000), random.uniform(-1000000000,1000000000), self.ts + i)) + + tdLog.info("========== regular_table ==========") + tdSql.execute('''insert into regular_table_1 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts - 200)) + sql = '''select * from regular_table_1 where ts = %d ;''' %(self.ts - 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-0') + tdSql.checkData(0,7,'nchar-0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + + tdSql.execute('''insert into regular_table_1 values( %d , 0, 0, 0, 0, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 200)) + sql = '''select * from regular_table_1 where ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdSql.error('''insert into regular_table_1 values( %d , -2147483648, -9223372036854775807, -32767, -127, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into regular_table_1 values( %d , -2147483647, -9223372036854775808, -32767, -127, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into regular_table_1 values( %d , -2147483647, -9223372036854775807, -32768, -127, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into regular_table_1 values( %d , -2147483647, -9223372036854775807, -32767, -128, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into regular_table_1 values( %d , -2147483647, -9223372036854775807, -32767, -127, 0, 'binary-0123', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into regular_table_1 values( %d , -2147483647, -9223372036854775807, -32767, -127, 0, 'binary-0', 'nchar-01234', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + + tdSql.execute('''insert into regular_table_1 values( %d , -2147483647, -9223372036854775807, -32767, -127, 0, 'binary-012', 'nchar-0123', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + sql = '''select * from regular_table_1 where ts = %d ;''' %(self.ts - 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdSql.error('''insert into regular_table_1 values( %d , 2147483648, 9223372036854775807, 32767, 127, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into regular_table_1 values( %d , 2147483647, 9223372036854775808, 32767, 127, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into regular_table_1 values( %d , 2147483647, 9223372036854775807, 32768, 127, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into regular_table_1 values( %d , 2147483647, 9223372036854775807, 32767, 128, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into regular_table_1 values( %d , 2147483647, 9223372036854775807, 32767, 127, 0, 'binary+0123', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into regular_table_1 values( %d , 2147483647, 9223372036854775807, 32767, 127, 0, 'binary+0', 'nchar+01234', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + + tdSql.execute('''insert into regular_table_1 values( %d , 2147483647, 9223372036854775807, 32767, 127, 0, 'binary+012', 'nchar+0123', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + sql = '''select * from regular_table_1 where ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdLog.info("========== stable ==========") + tdSql.execute('''insert into table_1 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts - 200)) + sql = '''select * from table_1 where ts = %d ;''' %(self.ts - 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-0') + tdSql.checkData(0,7,'nchar-0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + sql = '''select * from stable_1 where ts = %d ;''' %(self.ts - 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-0') + tdSql.checkData(0,7,'nchar-0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + + tdSql.execute('''insert into table_1 values( %d , 0, 0, 0, 0, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 200)) + sql = '''select * from table_1 where ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + sql = '''select * from stable_1 where ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdSql.error('''insert into table_1 values( %d , -2147483648, -9223372036854775807, -32767, -127, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into table_1 values( %d , -2147483647, -9223372036854775808, -32767, -127, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into table_1 values( %d , -2147483647, -9223372036854775807, -32768, -127, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into table_1 values( %d , -2147483647, -9223372036854775807, -32767, -128, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into table_1 values( %d , -2147483647, -9223372036854775807, -32767, -127, 0, 'binary-0123', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into table_1 values( %d , -2147483647, -9223372036854775807, -32767, -127, 0, 'binary-0', 'nchar-01234', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + + tdSql.execute('''insert into table_1 values( %d , -2147483647, -9223372036854775807, -32767, -127, 0, 'binary-012', 'nchar-0123', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + sql = '''select * from table_1 where ts = %d ;''' %(self.ts - 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + sql = '''select * from stable_1 where ts = %d ;''' %(self.ts - 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdSql.error('''insert into table_1 values( %d , 2147483648, 9223372036854775807, 32767, 127, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into table_1 values( %d , 2147483647, 9223372036854775808, 32767, 127, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into table_1 values( %d , 2147483647, 9223372036854775807, 32768, 127, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into table_1 values( %d , 2147483647, 9223372036854775807, 32767, 128, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into table_1 values( %d , 2147483647, 9223372036854775807, 32767, 127, 0, 'binary+0123', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into table_1 values( %d , 2147483647, 9223372036854775807, 32767, 127, 0, 'binary+0', 'nchar+01234', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + + tdSql.execute('''insert into table_1 values( %d , 2147483647, 9223372036854775807, 32767, 127, 0, 'binary+012', 'nchar+0123', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + sql = '''select * from table_1 where ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + sql = '''select * from stable_1 where ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdLog.info("========== 4096 regular_table ==========") + sql = '''insert into regular_table_4096_1 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4095 ) + values('2020-09-13 20:26:40.000' , 1 , 501 , 101 , 1501 , 2001 , 1 , 3001 , '3501' , '3801' ,'2020-09-13 20:26:44.090','1600000000000');''' + tdSql.execute(sql) + tdSql.query("select * from regular_table_4096_1 where ts ='2020-09-13 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,None) + tdSql.checkData(0,501,None) + tdSql.checkData(0,1001,None) + tdSql.checkData(0,1501,None) + tdSql.checkData(0,2001,None) + tdSql.checkData(0,2501,None) + tdSql.checkData(0,3001,None) + tdSql.checkData(0,3501,'NULL') + tdSql.checkData(0,3801,'NULL') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.090') + tdSql.checkData(0,4095,'1600000000000') + + sql = '''insert into regular_table_4096_1 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4095 ) + values('2020-09-10 20:26:40.000' , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL);''' + tdSql.execute(sql) + tdSql.query("select * from regular_table_4096_1 where ts ='2020-09-10 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-10 20:26:44.090') + tdSql.checkData(0,4095,'1500000000000') + + tdLog.info("========== 4096 stable ==========") + sql = '''insert into table_4096_1 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4093 ) + values('2020-09-13 20:26:40.000' , 1 , 501 , 101 , 1501 , 2001 , 1 , 3001 , '3501' , '3801' ,'2020-09-13 20:26:44.090','1600000000000');''' + tdSql.execute(sql) + tdSql.query("select * from table_4096_1 where ts ='2020-09-13 20:26:40.000';") + tdSql.checkCols(4094) + tdSql.checkData(0,1,None) + tdSql.checkData(0,501,None) + tdSql.checkData(0,1001,None) + tdSql.checkData(0,1501,None) + tdSql.checkData(0,2001,None) + tdSql.checkData(0,2501,None) + tdSql.checkData(0,3001,None) + tdSql.checkData(0,3501,'NULL') + tdSql.checkData(0,3801,'NULL') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.090') + tdSql.checkData(0,4093,'1600000000000') + tdSql.query("select * from stable_4096_1 where ts ='2020-09-13 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,None) + tdSql.checkData(0,501,None) + tdSql.checkData(0,1001,None) + tdSql.checkData(0,1501,None) + tdSql.checkData(0,2001,None) + tdSql.checkData(0,2501,None) + tdSql.checkData(0,3001,None) + tdSql.checkData(0,3501,'NULL') + tdSql.checkData(0,3801,'NULL') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.090') + tdSql.checkData(0,4093,'1600000000000') + + sql = '''insert into table_4096_1 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4093 ) + values('2020-09-10 20:26:40.000' , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL);''' + tdSql.execute(sql) + tdSql.query("select * from table_4096_1 where ts ='2020-09-10 20:26:40.000';") + tdSql.checkCols(4094) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-10 20:26:44.090') + tdSql.checkData(0,4093,'1500000000000') + tdSql.query("select * from stable_4096_1 where ts ='2020-09-10 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-10 20:26:44.090') + tdSql.checkData(0,4093,'1500000000000') + + + tdLog.info("========== test1.2 : insert data , taosdemo force data dropping disk , check data==========") + tdLog.info("========== regular_table ==========") + tdSql.execute('''insert into regular_table_2 values( %d , 0, 0, 0, 0, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 200)) + sql = '''select * from regular_table_2 where ts = %d ;''' %(self.ts - 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-0') + tdSql.checkData(0,7,'nchar-0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + + tdSql.execute('''insert into regular_table_2 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts + 200)) + sql = '''select * from regular_table_2 where ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdSql.execute('''insert into regular_table_2 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts - 500)) + sql = '''select * from regular_table_2 where ts = %d ;''' %(self.ts - 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdSql.execute('''insert into regular_table_2 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts + 500)) + sql = '''select * from regular_table_2 where ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + + tdLog.info("========== stable ==========") + tdSql.execute('''insert into table_2 values( %d , 0, 0, 0, 0, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 200)) + sql = '''select * from table_2 where ts = %d ;''' %(self.ts - 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-0') + tdSql.checkData(0,7,'nchar-0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + sql = '''select * from stable_1 where loc = 'table_2' and ts = %d ;''' %(self.ts - 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-0') + tdSql.checkData(0,7,'nchar-0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + + tdSql.execute('''insert into table_2 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts + 200)) + sql = '''select * from table_2 where ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + sql = '''select * from stable_1 where loc = 'table_2' and ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdSql.execute('''insert into table_2 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts - 500)) + sql = '''select * from table_2 where ts = %d ;''' %(self.ts - 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + sql = '''select * from stable_1 where loc = 'table_2' and ts = %d ;''' %(self.ts - 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdSql.execute('''insert into table_2 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts + 500)) + sql = '''select * from table_2 where ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + sql = '''select * from stable_1 where loc = 'table_2' and ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + + tdLog.info("========== 4096 regular_table ==========") + sql = "create table regular_table_4096_2 (ts timestamp, " + for i in range(500): + sql += "int_%d int, " % (i + 1) + for i in range(500,1000): + sql += "smallint_%d smallint, " % (i + 1) + for i in range(1000,1500): + sql += "tinyint_%d tinyint, " % (i + 1) + for i in range(1500,2000): + sql += "double_%d double, " % (i + 1) + for i in range(2000,2500): + sql += "float_%d float, " % (i + 1) + for i in range(2500,3000): + sql += "bool_%d bool, " % (i + 1) + for i in range(3000,3500): + sql += "bigint_%d bigint, " % (i + 1) + for i in range(3500,3800): + sql += "nchar_%d nchar(4), " % (i + 1) + for i in range(3800,4090): + sql += "binary_%d binary(10), " % (i + 1) + for i in range(4090,4094): + sql += "timestamp_%d timestamp, " % (i + 1) + sql += "col4095 binary(22))" + tdLog.info(len(sql)) + tdSql.execute(sql) + + for i in range(self.num4096): + sql = "insert into regular_table_4096_2 values(%d, " + for j in range(4090): + str = "'%s', " % 'NULL' + sql += str + for j in range(4090,4094): + str = "%s, " % (self.ts + j) + sql += str + sql += "'%s')" % (self.ts + i) + tdSql.execute(sql % (self.ts + i)) + tdSql.query('''select * from regular_table_4096_2 where ts = %d ;''' %(self.ts)) + tdSql.checkCols(4096) + tdSql.checkData(0,1,None) + tdSql.checkData(0,501,None) + tdSql.checkData(0,1001,None) + tdSql.checkData(0,1501,None) + tdSql.checkData(0,2001,None) + tdSql.checkData(0,2501,None) + tdSql.checkData(0,3001,None) + tdSql.checkData(0,3501,'NULL') + tdSql.checkData(0,3801,'NULL') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.090') + tdSql.checkData(0,4095,'1600000000000') + + sql = '''insert into regular_table_4096_2 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4095 ) + values('2020-09-10 20:26:40.000' , 1 , 501 , 101 , 1501 , 2001 , 1 , 3001 , '3501' , '3801' ,'2020-09-10 20:26:44.090','1500000000000');''' + tdSql.execute(sql) + tdSql.query("select * from regular_table_4096_2 where ts ='2020-09-10 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-10 20:26:44.090') + tdSql.checkData(0,4095,'1500000000000') + + tdLog.info("========== 4096 stable ==========") + sql = "create stable stable_4096_2 (ts timestamp, " + for i in range(500): + sql += "int_%d int, " % (i + 1) + for i in range(500,1000): + sql += "smallint_%d smallint, " % (i + 1) + for i in range(1000,1500): + sql += "tinyint_%d tinyint, " % (i + 1) + for i in range(1500,2000): + sql += "double_%d double, " % (i + 1) + for i in range(2000,2500): + sql += "float_%d float, " % (i + 1) + for i in range(2500,3000): + sql += "bool_%d bool, " % (i + 1) + for i in range(3000,3500): + sql += "bigint_%d bigint, " % (i + 1) + for i in range(3500,3800): + sql += "nchar_%d nchar(4), " % (i + 1) + for i in range(3800,4090): + sql += "binary_%d binary(10), " % (i + 1) + for i in range(4090,4092): + sql += "timestamp_%d timestamp, " % (i + 1) + sql += " col4093 binary(22)) " + sql += " tags (loc nchar(20),tag_1 int) " + tdLog.info(len(sql)) + tdSql.execute(sql) + + sql = " create table table_4096_2 using stable_4096_2 tags ('table_4096_2',1); " + tdSql.execute(sql) + + for i in range(self.num4096): + sql = "insert into table_4096_2 values(%d, " + for j in range(4090): + str = "'%s', " % 'NULL' + sql += str + for j in range(4090,4092): + str = "%s, " % (self.ts + j) + sql += str + sql += "'%s')" % (self.ts + i) + tdSql.execute(sql % (self.ts + i)) + tdSql.query('''select * from table_4096_2 where ts = %d ;''' %(self.ts)) + tdSql.checkCols(4094) + tdSql.checkData(0,1,None) + tdSql.checkData(0,501,None) + tdSql.checkData(0,1001,None) + tdSql.checkData(0,1501,None) + tdSql.checkData(0,2001,None) + tdSql.checkData(0,2501,None) + tdSql.checkData(0,3001,None) + tdSql.checkData(0,3501,'NULL') + tdSql.checkData(0,3801,'NULL') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.090') + tdSql.checkData(0,4093,'1600000000000') + tdSql.query('''select * from stable_4096_2 where ts = %d ;''' %(self.ts)) + tdSql.checkCols(4096) + tdSql.checkData(0,1,None) + tdSql.checkData(0,501,None) + tdSql.checkData(0,1001,None) + tdSql.checkData(0,1501,None) + tdSql.checkData(0,2001,None) + tdSql.checkData(0,2501,None) + tdSql.checkData(0,3001,None) + tdSql.checkData(0,3501,'NULL') + tdSql.checkData(0,3801,'NULL') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.090') + tdSql.checkData(0,4093,'1600000000000') + + sql = '''insert into table_4096_2 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4093 ) + values('2020-09-10 20:26:40.000' , 1 , 501 , 101 , 1501 , 2001 , 1 , 3001 , '3501' , '3801' ,'2020-09-10 20:26:44.090','1500000000000');''' + tdSql.execute(sql) + tdSql.query("select * from table_4096_2 where ts ='2020-09-10 20:26:40.000';") + tdSql.checkCols(4094) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-10 20:26:44.090') + tdSql.checkData(0,4093,'1500000000000') + tdSql.query("select * from stable_4096_2 where ts ='2020-09-10 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-10 20:26:44.090') + tdSql.checkData(0,4093,'1500000000000') + + + # taosdemo force data dropping disk + buildPath = self.getBuildPath() + if (buildPath == ""): + tdLog.exit("taosd not found!") + else: + tdLog.info("taosd found in %s" % buildPath) + binPath = buildPath+ "/build/bin/" + os.system("%staosdemo -N -d taosdemo -t 100 -n 100 -l 1000 -y" % binPath) + + tdSql.execute('''insert into table_2 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts - 200)) + sql = '''select * from table_2 where ts = %d ;''' %(self.ts - 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-0') + tdSql.checkData(0,7,'nchar-0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + sql = '''select * from stable_1 where loc = 'table_2' and ts = %d ;''' %(self.ts - 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-0') + tdSql.checkData(0,7,'nchar-0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + + tdSql.execute('''insert into table_2 values( %d , 0, 0, 0, 0, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 200)) + sql = '''select * from table_2 where ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + sql = '''select * from stable_1 where loc = 'table_2' and ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdSql.error('''insert into table_2 values( %d , -2147483648, -9223372036854775807, -32767, -127, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into table_2 values( %d , -2147483647, -9223372036854775808, -32767, -127, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into table_2 values( %d , -2147483647, -9223372036854775807, -32768, -127, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into table_2 values( %d , -2147483647, -9223372036854775807, -32767, -128, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into table_2 values( %d , -2147483647, -9223372036854775807, -32767, -127, 0, 'binary-0123', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into table_2 values( %d , -2147483647, -9223372036854775807, -32767, -127, 0, 'binary-0', 'nchar-01234', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + + tdSql.execute('''insert into table_2 values( %d , -2147483647, -9223372036854775807, -32767, -127, 0, 'binary-012', 'nchar-0123', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + sql = '''select * from table_2 where ts = %d ;''' %(self.ts - 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + sql = '''select * from stable_1 where loc = 'table_2' and ts = %d ;''' %(self.ts - 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdSql.error('''insert into table_2 values( %d , 2147483648, 9223372036854775807, 32767, 127, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into table_2 values( %d , 2147483647, 9223372036854775808, 32767, 127, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into table_2 values( %d , 2147483647, 9223372036854775807, 32768, 127, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into table_2 values( %d , 2147483647, 9223372036854775807, 32767, 128, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into table_2 values( %d , 2147483647, 9223372036854775807, 32767, 127, 0, 'binary+0123', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into table_2 values( %d , 2147483647, 9223372036854775807, 32767, 127, 0, 'binary+0', 'nchar+01234', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + + tdSql.execute('''insert into table_2 values( %d , 2147483647, 9223372036854775807, 32767, 127, 0, 'binary+012', 'nchar+0123', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + sql = '''select * from table_2 where ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + sql = '''select * from stable_1 where loc = 'table_2' and ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdLog.info("========== 4096 regular_table ==========") + sql = '''insert into regular_table_4096_2 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4095 ) + values('2020-09-13 20:26:40.000' , 1 , 501 , 101 , 1501 , 2001 , 1 , 3001 , '3501' , '3801' ,'2020-09-13 20:26:44.090','1600000000000');''' + tdSql.execute(sql) + tdSql.query("select * from regular_table_4096_2 where ts ='2020-09-13 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,None) + tdSql.checkData(0,501,None) + tdSql.checkData(0,1001,None) + tdSql.checkData(0,1501,None) + tdSql.checkData(0,2001,None) + tdSql.checkData(0,2501,None) + tdSql.checkData(0,3001,None) + tdSql.checkData(0,3501,'NULL') + tdSql.checkData(0,3801,'NULL') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.090') + tdSql.checkData(0,4095,'1600000000000') + + sql = '''insert into regular_table_4096_2 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4095 ) + values('2020-09-10 20:26:40.000' , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL);''' + tdSql.execute(sql) + tdSql.query("select * from regular_table_4096_2 where ts ='2020-09-10 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-10 20:26:44.090') + tdSql.checkData(0,4095,'1500000000000') + + tdLog.info("========== 4096 stable ==========") + sql = '''insert into table_4096_2 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4093 ) + values('2020-09-13 20:26:40.000' , 1 , 501 , 101 , 1501 , 2001 , 1 , 3001 , '3501' , '3801' ,'2020-09-13 20:26:44.090','1600000000000');''' + tdSql.execute(sql) + tdSql.query("select * from table_4096_2 where ts ='2020-09-13 20:26:40.000';") + tdSql.checkCols(4094) + tdSql.checkData(0,1,None) + tdSql.checkData(0,501,None) + tdSql.checkData(0,1001,None) + tdSql.checkData(0,1501,None) + tdSql.checkData(0,2001,None) + tdSql.checkData(0,2501,None) + tdSql.checkData(0,3001,None) + tdSql.checkData(0,3501,'NULL') + tdSql.checkData(0,3801,'NULL') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.090') + tdSql.checkData(0,4093,'1600000000000') + tdSql.query("select * from stable_4096_2 where ts ='2020-09-13 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,None) + tdSql.checkData(0,501,None) + tdSql.checkData(0,1001,None) + tdSql.checkData(0,1501,None) + tdSql.checkData(0,2001,None) + tdSql.checkData(0,2501,None) + tdSql.checkData(0,3001,None) + tdSql.checkData(0,3501,'NULL') + tdSql.checkData(0,3801,'NULL') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.090') + tdSql.checkData(0,4093,'1600000000000') + + sql = '''insert into table_4096_2 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4093 ) + values('2020-09-10 20:26:40.000' , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL);''' + tdSql.execute(sql) + tdSql.query("select * from table_4096_2 where ts ='2020-09-10 20:26:40.000';") + tdSql.checkCols(4094) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-10 20:26:44.090') + tdSql.checkData(0,4093,'1500000000000') + tdSql.query("select * from stable_4096_2 where ts ='2020-09-10 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-10 20:26:44.090') + tdSql.checkData(0,4093,'1500000000000') + + tdLog.info("========== test1.3 : insert data , tdDnodes restart force data dropping disk , check data==========") + tdLog.info("========== regular_table ==========") + tdSql.execute('''insert into regular_table_3 values( %d , 0, 0, 0, 0, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 200)) + sql = '''select * from regular_table_3 where ts = %d ;''' %(self.ts - 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-0') + tdSql.checkData(0,7,'nchar-0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + + tdSql.execute('''insert into regular_table_3 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts + 200)) + sql = '''select * from regular_table_3 where ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdSql.execute('''insert into regular_table_3 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts - 500)) + sql = '''select * from regular_table_3 where ts = %d ;''' %(self.ts - 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdSql.execute('''insert into regular_table_3 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts + 500)) + sql = '''select * from regular_table_3 where ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdLog.info("========== stable ==========") + tdSql.execute('''insert into table_3 values( %d , 0, 0, 0, 0, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 200)) + sql = '''select * from table_3 where ts = %d ;''' %(self.ts - 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-0') + tdSql.checkData(0,7,'nchar-0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + sql = '''select * from stable_1 where loc = 'table_3' and ts = %d ;''' %(self.ts - 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-0') + tdSql.checkData(0,7,'nchar-0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + + tdSql.execute('''insert into table_3 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts + 200)) + sql = '''select * from table_3 where ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + sql = '''select * from stable_1 where loc = 'table_3' and ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdSql.execute('''insert into table_3 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts - 500)) + sql = '''select * from table_3 where ts = %d ;''' %(self.ts - 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + sql = '''select * from stable_1 where loc = 'table_3' and ts = %d ;''' %(self.ts - 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdSql.execute('''insert into table_3 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts + 500)) + sql = '''select * from table_3 where ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + sql = '''select * from stable_1 where loc = 'table_3' and ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + + tdLog.info("========== 4096 regular_table ==========") + sql = "create table regular_table_4096_3 (ts timestamp, " + for i in range(500): + sql += "int_%d int, " % (i + 1) + for i in range(500,1000): + sql += "smallint_%d smallint, " % (i + 1) + for i in range(1000,1500): + sql += "tinyint_%d tinyint, " % (i + 1) + for i in range(1500,2000): + sql += "double_%d double, " % (i + 1) + for i in range(2000,2500): + sql += "float_%d float, " % (i + 1) + for i in range(2500,3000): + sql += "bool_%d bool, " % (i + 1) + for i in range(3000,3500): + sql += "bigint_%d bigint, " % (i + 1) + for i in range(3500,3800): + sql += "nchar_%d nchar(4), " % (i + 1) + for i in range(3800,4090): + sql += "binary_%d binary(10), " % (i + 1) + for i in range(4090,4094): + sql += "timestamp_%d timestamp, " % (i + 1) + sql += "col4095 binary(22))" + tdLog.info(len(sql)) + tdSql.execute(sql) + + for i in range(self.num4096): + sql = "insert into regular_table_4096_3 values(%d, " + for j in range(4090): + str = "'%s', " % 'NULL' + sql += str + for j in range(4090,4094): + str = "%s, " % (self.ts + j) + sql += str + sql += "'%s')" % (self.ts + i) + tdSql.execute(sql % (self.ts + i)) + tdSql.query('''select * from regular_table_4096_3 where ts = %d ;''' %(self.ts)) + tdSql.checkCols(4096) + tdSql.checkData(0,1,None) + tdSql.checkData(0,501,None) + tdSql.checkData(0,1001,None) + tdSql.checkData(0,1501,None) + tdSql.checkData(0,2001,None) + tdSql.checkData(0,2501,None) + tdSql.checkData(0,3001,None) + tdSql.checkData(0,3501,'NULL') + tdSql.checkData(0,3801,'NULL') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.090') + tdSql.checkData(0,4095,'1600000000000') + + sql = '''insert into regular_table_4096_3 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4095 ) + values('2020-09-10 20:26:40.000' , 1 , 501 , 101 , 1501 , 2001 , 1 , 3001 , '3501' , '3801' ,'2020-09-10 20:26:44.090','1500000000000');''' + tdSql.execute(sql) + tdSql.query("select * from regular_table_4096_3 where ts ='2020-09-10 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-10 20:26:44.090') + tdSql.checkData(0,4095,'1500000000000') + + tdLog.info("========== 4096 stable ==========") + sql = "create stable stable_4096_3 (ts timestamp, " + for i in range(500): + sql += "int_%d int, " % (i + 1) + for i in range(500,1000): + sql += "smallint_%d smallint, " % (i + 1) + for i in range(1000,1500): + sql += "tinyint_%d tinyint, " % (i + 1) + for i in range(1500,2000): + sql += "double_%d double, " % (i + 1) + for i in range(2000,2500): + sql += "float_%d float, " % (i + 1) + for i in range(2500,3000): + sql += "bool_%d bool, " % (i + 1) + for i in range(3000,3500): + sql += "bigint_%d bigint, " % (i + 1) + for i in range(3500,3800): + sql += "nchar_%d nchar(4), " % (i + 1) + for i in range(3800,4090): + sql += "binary_%d binary(10), " % (i + 1) + for i in range(4090,4092): + sql += "timestamp_%d timestamp, " % (i + 1) + sql += " col4093 binary(22)) " + sql += " tags (loc nchar(20),tag_1 int) " + tdLog.info(len(sql)) + tdSql.execute(sql) + + sql = " create table table_4096_3 using stable_4096_3 tags ('table_4096_3',1); " + tdSql.execute(sql) + + for i in range(self.num4096): + sql = "insert into table_4096_3 values(%d, " + for j in range(4090): + str = "'%s', " % 'NULL' + sql += str + for j in range(4090,4092): + str = "%s, " % (self.ts + j) + sql += str + sql += "'%s')" % (self.ts + i) + tdSql.execute(sql % (self.ts + i)) + tdSql.query('''select * from table_4096_3 where ts = %d ;''' %(self.ts)) + tdSql.checkCols(4094) + tdSql.checkData(0,1,None) + tdSql.checkData(0,501,None) + tdSql.checkData(0,1001,None) + tdSql.checkData(0,1501,None) + tdSql.checkData(0,2001,None) + tdSql.checkData(0,2501,None) + tdSql.checkData(0,3001,None) + tdSql.checkData(0,3501,'NULL') + tdSql.checkData(0,3801,'NULL') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.090') + tdSql.checkData(0,4093,'1600000000000') + tdSql.query('''select * from stable_4096_3 where ts = %d ;''' %(self.ts)) + tdSql.checkCols(4096) + tdSql.checkData(0,1,None) + tdSql.checkData(0,501,None) + tdSql.checkData(0,1001,None) + tdSql.checkData(0,1501,None) + tdSql.checkData(0,2001,None) + tdSql.checkData(0,2501,None) + tdSql.checkData(0,3001,None) + tdSql.checkData(0,3501,'NULL') + tdSql.checkData(0,3801,'NULL') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.090') + tdSql.checkData(0,4093,'1600000000000') + + sql = '''insert into table_4096_3 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4093 ) + values('2020-09-10 20:26:40.000' , 1 , 501 , 101 , 1501 , 2001 , 1 , 3001 , '3501' , '3801' ,'2020-09-10 20:26:44.090','1500000000000');''' + tdSql.execute(sql) + tdSql.query("select * from table_4096_3 where ts ='2020-09-10 20:26:40.000';") + tdSql.checkCols(4094) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-10 20:26:44.090') + tdSql.checkData(0,4093,'1500000000000') + tdSql.query("select * from stable_4096_3 where ts ='2020-09-10 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-10 20:26:44.090') + tdSql.checkData(0,4093,'1500000000000') + + # tdDnodes restart force data dropping disk + tdDnodes.stop(1) + tdDnodes.start(1) + + tdLog.info("========== regular_table ==========") + tdSql.execute('''insert into regular_table_3 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts - 200)) + sql = '''select * from regular_table_3 where ts = %d ;''' %(self.ts - 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-0') + tdSql.checkData(0,7,'nchar-0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + + tdSql.execute('''insert into regular_table_3 values( %d , 0, 0, 0, 0, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 200)) + sql = '''select * from regular_table_3 where ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdSql.error('''insert into regular_table_3 values( %d , -2147483648, -9223372036854775807, -32767, -127, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into regular_table_3 values( %d , -2147483647, -9223372036854775808, -32767, -127, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into regular_table_3 values( %d , -2147483647, -9223372036854775807, -32768, -127, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into regular_table_3 values( %d , -2147483647, -9223372036854775807, -32767, -128, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into regular_table_3 values( %d , -2147483647, -9223372036854775807, -32767, -127, 0, 'binary-0123', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into regular_table_3 values( %d , -2147483647, -9223372036854775807, -32767, -127, 0, 'binary-0', 'nchar-01234', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + + tdSql.execute('''insert into regular_table_3 values( %d , -2147483647, -9223372036854775807, -32767, -127, 0, 'binary-012', 'nchar-0123', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + sql = '''select * from regular_table_3 where ts = %d ;''' %(self.ts - 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdSql.error('''insert into regular_table_3 values( %d , 2147483648, 9223372036854775807, 32767, 127, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into regular_table_3 values( %d , 2147483647, 9223372036854775808, 32767, 127, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into regular_table_3 values( %d , 2147483647, 9223372036854775807, 32768, 127, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into regular_table_3 values( %d , 2147483647, 9223372036854775807, 32767, 128, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into regular_table_3 values( %d , 2147483647, 9223372036854775807, 32767, 127, 0, 'binary+0123', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into regular_table_3 values( %d , 2147483647, 9223372036854775807, 32767, 127, 0, 'binary+0', 'nchar+01234', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + + tdSql.execute('''insert into regular_table_3 values( %d , 2147483647, 9223372036854775807, 32767, 127, 0, 'binary+012', 'nchar+0123', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + sql = '''select * from regular_table_3 where ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdLog.info("========== stable ==========") + tdSql.execute('''insert into table_3 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts - 200)) + sql = '''select * from table_3 where ts = %d ;''' %(self.ts - 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-0') + tdSql.checkData(0,7,'nchar-0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + sql = '''select * from stable_1 where loc = 'table_3' and ts = %d ;''' %(self.ts - 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-0') + tdSql.checkData(0,7,'nchar-0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + + tdSql.execute('''insert into table_3 values( %d , 0, 0, 0, 0, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 200)) + sql = '''select * from table_3 where ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + sql = '''select * from stable_1 where loc = 'table_3' and ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdSql.error('''insert into table_3 values( %d , -2147483648, -9223372036854775807, -32767, -127, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into table_3 values( %d , -2147483647, -9223372036854775808, -32767, -127, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into table_3 values( %d , -2147483647, -9223372036854775807, -32768, -127, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into table_3 values( %d , -2147483647, -9223372036854775807, -32767, -128, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into table_3 values( %d , -2147483647, -9223372036854775807, -32767, -127, 0, 'binary-0123', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into table_3 values( %d , -2147483647, -9223372036854775807, -32767, -127, 0, 'binary-0', 'nchar-01234', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + + tdSql.execute('''insert into table_3 values( %d , -2147483647, -9223372036854775807, -32767, -127, 0, 'binary-012', 'nchar-0123', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + sql = '''select * from table_3 where ts = %d ;''' %(self.ts - 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + sql = '''select * from stable_1 where loc = 'table_3' and ts = %d ;''' %(self.ts - 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdSql.error('''insert into table_3 values( %d , 2147483648, 9223372036854775807, 32767, 127, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into table_3 values( %d , 2147483647, 9223372036854775808, 32767, 127, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into table_3 values( %d , 2147483647, 9223372036854775807, 32768, 127, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into table_3 values( %d , 2147483647, 9223372036854775807, 32767, 128, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into table_3 values( %d , 2147483647, 9223372036854775807, 32767, 127, 0, 'binary+0123', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into table_3 values( %d , 2147483647, 9223372036854775807, 32767, 127, 0, 'binary+0', 'nchar+01234', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + + tdSql.execute('''insert into table_3 values( %d , 2147483647, 9223372036854775807, 32767, 127, 0, 'binary+012', 'nchar+0123', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + sql = '''select * from table_3 where ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + sql = '''select * from stable_1 where loc = 'table_3' and ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + + tdLog.info("========== 4096 regular_table ==========") + sql = '''insert into regular_table_4096_3 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4095 ) + values('2020-09-13 20:26:40.000' , 1 , 501 , 101 , 1501 , 2001 , 1 , 3001 , '3501' , '3801' ,'2020-09-13 20:26:44.090','1600000000000');''' + tdSql.execute(sql) + tdSql.query("select * from regular_table_4096_3 where ts ='2020-09-13 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,None) + tdSql.checkData(0,501,None) + tdSql.checkData(0,1001,None) + tdSql.checkData(0,1501,None) + tdSql.checkData(0,2001,None) + tdSql.checkData(0,2501,None) + tdSql.checkData(0,3001,None) + tdSql.checkData(0,3501,'NULL') + tdSql.checkData(0,3801,'NULL') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.090') + tdSql.checkData(0,4095,'1600000000000') + + sql = '''insert into regular_table_4096_3 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4095 ) + values('2020-09-10 20:26:40.000' , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL);''' + tdSql.execute(sql) + tdSql.query("select * from regular_table_4096_3 where ts ='2020-09-10 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-10 20:26:44.090') + tdSql.checkData(0,4095,'1500000000000') + + tdLog.info("========== 4096 stable ==========") + sql = '''insert into table_4096_3 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4093 ) + values('2020-09-13 20:26:40.000' , 1 , 501 , 101 , 1501 , 2001 , 1 , 3001 , '3501' , '3801' ,'2020-09-13 20:26:44.090','1600000000000');''' + tdSql.execute(sql) + tdSql.query("select * from table_4096_3 where ts ='2020-09-13 20:26:40.000';") + tdSql.checkCols(4094) + tdSql.checkData(0,1,None) + tdSql.checkData(0,501,None) + tdSql.checkData(0,1001,None) + tdSql.checkData(0,1501,None) + tdSql.checkData(0,2001,None) + tdSql.checkData(0,2501,None) + tdSql.checkData(0,3001,None) + tdSql.checkData(0,3501,'NULL') + tdSql.checkData(0,3801,'NULL') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.090') + tdSql.checkData(0,4093,'1600000000000') + tdSql.query("select * from stable_4096_3 where ts ='2020-09-13 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,None) + tdSql.checkData(0,501,None) + tdSql.checkData(0,1001,None) + tdSql.checkData(0,1501,None) + tdSql.checkData(0,2001,None) + tdSql.checkData(0,2501,None) + tdSql.checkData(0,3001,None) + tdSql.checkData(0,3501,'NULL') + tdSql.checkData(0,3801,'NULL') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.090') + tdSql.checkData(0,4093,'1600000000000') + + sql = '''insert into table_4096_3 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4093 ) + values('2020-09-10 20:26:40.000' , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL);''' + tdSql.execute(sql) + tdSql.query("select * from table_4096_3 where ts ='2020-09-10 20:26:40.000';") + tdSql.checkCols(4094) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-10 20:26:44.090') + tdSql.checkData(0,4093,'1500000000000') + tdSql.query("select * from stable_4096_3 where ts ='2020-09-10 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-10 20:26:44.090') + tdSql.checkData(0,4093,'1500000000000') + + endTime = time.time() + print("total time %ds" % (endTime - startTime)) + + + def stop(self): + tdSql.close() + tdLog.success("%s successfully executed" % __file__) + + +tdCases.addWindows(__file__, TDTestCase()) +tdCases.addLinux(__file__, TDTestCase()) \ No newline at end of file diff --git a/tests/pytest/import_merge/import_update_1.py b/tests/pytest/import_merge/import_update_1.py new file mode 100644 index 0000000000000000000000000000000000000000..f3137033420f831eec25f75039beeefbf2803537 --- /dev/null +++ b/tests/pytest/import_merge/import_update_1.py @@ -0,0 +1,1913 @@ +################################################################### +# Copyright (c) 2016 by TAOS Technologies, Inc. +# All rights reserved. +# +# This file is proprietary and confidential to TAOS Technologies. +# No part of this file may be reproduced, stored, transmitted, +# disclosed or used in any form or by any means other than as +# expressly provided by the written permission from Jianhui Tao +# +################################################################### + +# -*- coding: utf-8 -*- + +import sys +import taos +from util.log import tdLog +from util.cases import tdCases +from util.sql import tdSql +from util.dnodes import * +import random +import time + + +class TDTestCase: + def init(self, conn, logSql): + tdLog.debug("start to execute %s" % __file__) + tdSql.init(conn.cursor(), logSql) + + self.ts = 1600000000000 + self.num = 50 + self.num4096 = 5 + + def getBuildPath(self): + selfPath = os.path.dirname(os.path.realpath(__file__)) + + if ("community" in selfPath): + projPath = selfPath[:selfPath.find("community")] + else: + projPath = selfPath[:selfPath.find("tests")] + + for root, dirs, files in os.walk(projPath): + if ("taosd" in files): + rootRealPath = os.path.dirname(os.path.realpath(root)) + if ("packaging" not in rootRealPath): + buildPath = root[:len(root)-len("/build/bin")] + break + return buildPath + + def run(self): + tdSql.prepare() + # test case for https://jira.taosdata.com:18080/browse/TD-5062 + + startTime = time.time() + + tdSql.execute('''drop database if exists test_updata_1 ;''') + # update 0 不更新 ; update 1 覆盖更新 ;update 2 合并更新 + tdLog.info("========== test database updata = 1 ==========") + tdSql.execute('''create database test_updata_1 update 1 minrows 10 maxrows 200 ;''') + tdSql.execute('''use test_updata_1;''') + tdSql.execute('''create stable stable_1 + (ts timestamp , q_int int , q_bigint bigint , q_smallint smallint , q_tinyint tinyint, + q_bool bool , q_binary binary(10) , q_nchar nchar(10) , q_float float , q_double double , q_ts timestamp) + tags(loc nchar(20) , t_int int);''') + tdSql.execute('''create table table_1 using stable_1 tags('table_1' , '1' )''') + tdSql.execute('''create table table_2 using stable_1 tags('table_2' , '2' )''') + tdSql.execute('''create table table_3 using stable_1 tags('table_3' , '3' )''') + + #regular table + tdSql.execute('''create table regular_table_1 + (ts timestamp , q_int int , q_bigint bigint , q_smallint smallint , q_tinyint tinyint, + q_bool bool , q_binary binary(10) , q_nchar nchar(10) , q_float float , q_double double , q_ts timestamp) ;''') + tdSql.execute('''create table regular_table_2 + (ts timestamp , q_int int , q_bigint bigint , q_smallint smallint , q_tinyint tinyint, + q_bool bool , q_binary binary(10) , q_nchar nchar(10) , q_float float , q_double double , q_ts timestamp) ;''') + tdSql.execute('''create table regular_table_3 + (ts timestamp , q_int int , q_bigint bigint , q_smallint smallint , q_tinyint tinyint, + q_bool bool , q_binary binary(10) , q_nchar nchar(10) , q_float float , q_double double , q_ts timestamp) ;''') + + + tdLog.info("========== test1.1 : insert data , check data==========") + tdLog.info("========== regular_table ==========") + tdSql.execute('''insert into regular_table_1 values( %d , 0, 0, 0, 0, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 200)) + sql = '''select * from regular_table_1 where ts = %d ;''' %(self.ts - 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-0') + tdSql.checkData(0,7,'nchar-0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + + tdSql.execute('''insert into regular_table_1 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts + 200)) + sql = '''select * from regular_table_1 where ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdSql.execute('''insert into regular_table_1 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts - 500)) + sql = '''select * from regular_table_1 where ts = %d ;''' %(self.ts - 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdSql.execute('''insert into regular_table_1 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts + 500)) + sql = '''select * from regular_table_1 where ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdLog.info("========== stable ==========") + tdSql.execute('''insert into table_1 values( %d , 0, 0, 0, 0, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 200)) + sql = '''select * from table_1 where ts = %d ;''' %(self.ts - 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-0') + tdSql.checkData(0,7,'nchar-0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + sql = '''select * from stable_1 where ts = %d ;''' %(self.ts - 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-0') + tdSql.checkData(0,7,'nchar-0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + + tdSql.execute('''insert into table_1 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts + 200)) + sql = '''select * from table_1 where ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + sql = '''select * from stable_1 where ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdSql.execute('''insert into table_1 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts - 500)) + sql = '''select * from table_1 where ts = %d ;''' %(self.ts - 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + sql = '''select * from stable_1 where ts = %d ;''' %(self.ts - 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdSql.execute('''insert into table_1 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts + 500)) + sql = '''select * from table_1 where ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + sql = '''select * from stable_1 where ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + + tdLog.info("========== 4096 regular_table ==========") + sql = "create table regular_table_4096_1 (ts timestamp, " + for i in range(500): + sql += "int_%d int, " % (i + 1) + for i in range(500,1000): + sql += "smallint_%d smallint, " % (i + 1) + for i in range(1000,1500): + sql += "tinyint_%d tinyint, " % (i + 1) + for i in range(1500,2000): + sql += "double_%d double, " % (i + 1) + for i in range(2000,2500): + sql += "float_%d float, " % (i + 1) + for i in range(2500,3000): + sql += "bool_%d bool, " % (i + 1) + for i in range(3000,3500): + sql += "bigint_%d bigint, " % (i + 1) + for i in range(3500,3800): + sql += "nchar_%d nchar(4), " % (i + 1) + for i in range(3800,4090): + sql += "binary_%d binary(10), " % (i + 1) + for i in range(4090,4094): + sql += "timestamp_%d timestamp, " % (i + 1) + sql += "col4095 binary(22))" + tdLog.info(len(sql)) + tdSql.execute(sql) + + for i in range(self.num4096): + sql = "insert into regular_table_4096_1 values(%d, " + for j in range(4090): + str = "'%s', " % 'NULL' + sql += str + for j in range(4090,4094): + str = "%s, " % (self.ts + j) + sql += str + sql += "'%s')" % (self.ts + i) + tdSql.execute(sql % (self.ts + i)) + tdSql.query('''select * from regular_table_4096_1 where ts = %d ;''' %(self.ts)) + tdSql.checkCols(4096) + tdSql.checkData(0,1,None) + tdSql.checkData(0,501,None) + tdSql.checkData(0,1001,None) + tdSql.checkData(0,1501,None) + tdSql.checkData(0,2001,None) + tdSql.checkData(0,2501,None) + tdSql.checkData(0,3001,None) + tdSql.checkData(0,3501,'NULL') + tdSql.checkData(0,3801,'NULL') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.090') + tdSql.checkData(0,4095,'1600000000000') + + sql = '''insert into regular_table_4096_1 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4095 ) + values('2020-09-10 20:26:40.000' , 1 , 501 , 101 , 1501 , 2001 , 1 , 3001 , '3501' , '3801' ,'2020-09-10 20:26:44.090','1500000000000');''' + tdSql.execute(sql) + tdSql.query("select * from regular_table_4096_1 where ts ='2020-09-10 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-10 20:26:44.090') + tdSql.checkData(0,4095,'1500000000000') + + tdLog.info("========== 4096 stable ==========") + sql = "create stable stable_4096_1 (ts timestamp, " + for i in range(500): + sql += "int_%d int, " % (i + 1) + for i in range(500,1000): + sql += "smallint_%d smallint, " % (i + 1) + for i in range(1000,1500): + sql += "tinyint_%d tinyint, " % (i + 1) + for i in range(1500,2000): + sql += "double_%d double, " % (i + 1) + for i in range(2000,2500): + sql += "float_%d float, " % (i + 1) + for i in range(2500,3000): + sql += "bool_%d bool, " % (i + 1) + for i in range(3000,3500): + sql += "bigint_%d bigint, " % (i + 1) + for i in range(3500,3800): + sql += "nchar_%d nchar(4), " % (i + 1) + for i in range(3800,4090): + sql += "binary_%d binary(10), " % (i + 1) + for i in range(4090,4092): + sql += "timestamp_%d timestamp, " % (i + 1) + sql += " col4093 binary(22)) " + sql += " tags (loc nchar(20),tag_1 int) " + tdLog.info(len(sql)) + tdSql.execute(sql) + + sql = " create table table_4096_1 using stable_4096_1 tags ('table_4096_1',1); " + tdSql.execute(sql) + + for i in range(self.num4096): + sql = "insert into table_4096_1 values(%d, " + for j in range(4090): + str = "'%s', " % 'NULL' + sql += str + for j in range(4090,4092): + str = "%s, " % (self.ts + j) + sql += str + sql += "'%s')" % (self.ts + i) + tdSql.execute(sql % (self.ts + i)) + tdSql.query('''select * from table_4096_1 where ts = %d ;''' %(self.ts)) + tdSql.checkCols(4094) + tdSql.checkData(0,1,None) + tdSql.checkData(0,501,None) + tdSql.checkData(0,1001,None) + tdSql.checkData(0,1501,None) + tdSql.checkData(0,2001,None) + tdSql.checkData(0,2501,None) + tdSql.checkData(0,3001,None) + tdSql.checkData(0,3501,'NULL') + tdSql.checkData(0,3801,'NULL') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.090') + tdSql.checkData(0,4093,'1600000000000') + tdSql.query('''select * from stable_4096_1 where ts = %d ;''' %(self.ts)) + tdSql.checkCols(4096) + tdSql.checkData(0,1,None) + tdSql.checkData(0,501,None) + tdSql.checkData(0,1001,None) + tdSql.checkData(0,1501,None) + tdSql.checkData(0,2001,None) + tdSql.checkData(0,2501,None) + tdSql.checkData(0,3001,None) + tdSql.checkData(0,3501,'NULL') + tdSql.checkData(0,3801,'NULL') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.090') + tdSql.checkData(0,4093,'1600000000000') + + sql = '''insert into table_4096_1 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4093 ) + values('2020-09-10 20:26:40.000' , 1 , 501 , 101 , 1501 , 2001 , 1 , 3001 , '3501' , '3801' ,'2020-09-10 20:26:44.090','1500000000000');''' + tdSql.execute(sql) + tdSql.query("select * from table_4096_1 where ts ='2020-09-10 20:26:40.000';") + tdSql.checkCols(4094) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-10 20:26:44.090') + tdSql.checkData(0,4093,'1500000000000') + tdSql.query("select * from stable_4096_1 where ts ='2020-09-10 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-10 20:26:44.090') + tdSql.checkData(0,4093,'1500000000000') + + # minrows 10 maxrows 200 + for i in range(self.num): + tdSql.execute('''insert into regular_table_1 values(%d, %d, %d, %d, %d, 0, 'binary.%s', 'nchar.%s', %f, %f, %d)''' + % (self.ts -100 + i, i, i, i, i, i, i, i, i, self.ts -100 + i)) + tdSql.execute('''insert into regular_table_1 values(%d, %d, %d, %d, %d, false, 'binary%s', 'nchar%s', %f, %f, %d)''' + % (self.ts + i, random.randint(-2147483647, 2147483647), + random.randint(-9223372036854775807, 9223372036854775807), random.randint(-32767, 32767), + random.randint(-127, 127), random.randint(-100, 100), random.randint(-10000, 10000), + random.uniform(-100000,100000), random.uniform(-1000000000,1000000000), self.ts + i)) + + tdSql.execute('''insert into table_1 values(%d, %d, %d, %d, %d, 0, 'binary.%s', 'nchar.%s', %f, %f, %d)''' + % (self.ts -100 + i, i, i, i, i, i, i, i, i, self.ts -100 + i)) + tdSql.execute('''insert into table_1 values(%d, %d, %d, %d, %d, false, 'binary%s', 'nchar%s', %f, %f, %d)''' + % (self.ts + i, random.randint(-2147483647, 2147483647), + random.randint(-9223372036854775807, 9223372036854775807), random.randint(-32767, 32767), + random.randint(-127, 127), random.randint(-100, 100), random.randint(-10000, 10000), + random.uniform(-100000,100000), random.uniform(-1000000000,1000000000), self.ts + i)) + + tdLog.info("========== regular_table ==========") + tdSql.execute('''insert into regular_table_1 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts - 200)) + sql = '''select * from regular_table_1 where ts = %d ;''' %(self.ts - 200) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdSql.execute('''insert into regular_table_1 values( %d , 0, 0, 0, 0, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 200)) + sql = '''select * from regular_table_1 where ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary+0') + tdSql.checkData(0,7,'nchar+0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + + tdSql.error('''insert into regular_table_1 values( %d , -2147483648, -9223372036854775807, -32767, -127, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into regular_table_1 values( %d , -2147483647, -9223372036854775808, -32767, -127, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into regular_table_1 values( %d , -2147483647, -9223372036854775807, -32768, -127, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into regular_table_1 values( %d , -2147483647, -9223372036854775807, -32767, -128, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into regular_table_1 values( %d , -2147483647, -9223372036854775807, -32767, -127, 0, 'binary-0123', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into regular_table_1 values( %d , -2147483647, -9223372036854775807, -32767, -127, 0, 'binary-0', 'nchar-01234', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + + tdSql.execute('''insert into regular_table_1 values( %d , -2147483647, -9223372036854775807, -32767, -127, 0, 'binary-012', 'nchar-0123', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + sql = '''select * from regular_table_1 where ts = %d ;''' %(self.ts - 500) + tdSql.query(sql) + tdSql.checkData(0,1,-2147483647) + tdSql.checkData(0,2,-9223372036854775807) + tdSql.checkData(0,3,-32767) + tdSql.checkData(0,4,-127) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-012') + tdSql.checkData(0,7,'nchar-0123') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + + tdSql.error('''insert into regular_table_1 values( %d , 2147483648, 9223372036854775807, 32767, 127, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into regular_table_1 values( %d , 2147483647, 9223372036854775808, 32767, 127, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into regular_table_1 values( %d , 2147483647, 9223372036854775807, 32768, 127, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into regular_table_1 values( %d , 2147483647, 9223372036854775807, 32767, 128, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into regular_table_1 values( %d , 2147483647, 9223372036854775807, 32767, 127, 0, 'binary+0123', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into regular_table_1 values( %d , 2147483647, 9223372036854775807, 32767, 127, 0, 'binary+0', 'nchar+01234', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + + tdSql.execute('''insert into regular_table_1 values( %d , 2147483647, 9223372036854775807, 32767, 127, 0, 'binary+012', 'nchar+0123', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + sql = '''select * from regular_table_1 where ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,2147483647) + tdSql.checkData(0,2,9223372036854775807) + tdSql.checkData(0,3,32767) + tdSql.checkData(0,4,127) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary+012') + tdSql.checkData(0,7,'nchar+0123') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + + tdLog.info("========== stable ==========") + tdSql.execute('''insert into table_1 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts - 200)) + sql = '''select * from table_1 where ts = %d ;''' %(self.ts - 200) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + sql = '''select * from stable_1 where ts = %d ;''' %(self.ts - 200) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdSql.execute('''insert into table_1 values( %d , 0, 0, 0, 0, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 200)) + sql = '''select * from table_1 where ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary+0') + tdSql.checkData(0,7,'nchar+0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + sql = '''select * from stable_1 where ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary+0') + tdSql.checkData(0,7,'nchar+0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + + tdSql.error('''insert into table_1 values( %d , -2147483648, -9223372036854775807, -32767, -127, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into table_1 values( %d , -2147483647, -9223372036854775808, -32767, -127, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into table_1 values( %d , -2147483647, -9223372036854775807, -32768, -127, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into table_1 values( %d , -2147483647, -9223372036854775807, -32767, -128, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into table_1 values( %d , -2147483647, -9223372036854775807, -32767, -127, 0, 'binary-0123', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into table_1 values( %d , -2147483647, -9223372036854775807, -32767, -127, 0, 'binary-0', 'nchar-01234', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + + tdSql.execute('''insert into table_1 values( %d , -2147483647, -9223372036854775807, -32767, -127, 0, 'binary-012', 'nchar-0123', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + sql = '''select * from table_1 where ts = %d ;''' %(self.ts - 500) + tdSql.query(sql) + tdSql.checkData(0,1,-2147483647) + tdSql.checkData(0,2,-9223372036854775807) + tdSql.checkData(0,3,-32767) + tdSql.checkData(0,4,-127) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-012') + tdSql.checkData(0,7,'nchar-0123') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + sql = '''select * from stable_1 where ts = %d ;''' %(self.ts - 500) + tdSql.query(sql) + tdSql.checkData(0,1,-2147483647) + tdSql.checkData(0,2,-9223372036854775807) + tdSql.checkData(0,3,-32767) + tdSql.checkData(0,4,-127) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-012') + tdSql.checkData(0,7,'nchar-0123') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + + tdSql.error('''insert into table_1 values( %d , 2147483648, 9223372036854775807, 32767, 127, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into table_1 values( %d , 2147483647, 9223372036854775808, 32767, 127, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into table_1 values( %d , 2147483647, 9223372036854775807, 32768, 127, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into table_1 values( %d , 2147483647, 9223372036854775807, 32767, 128, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into table_1 values( %d , 2147483647, 9223372036854775807, 32767, 127, 0, 'binary+0123', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into table_1 values( %d , 2147483647, 9223372036854775807, 32767, 127, 0, 'binary+0', 'nchar+01234', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + + tdSql.execute('''insert into table_1 values( %d , 2147483647, 9223372036854775807, 32767, 127, 0, 'binary+012', 'nchar+0123', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + sql = '''select * from table_1 where ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,2147483647) + tdSql.checkData(0,2,9223372036854775807) + tdSql.checkData(0,3,32767) + tdSql.checkData(0,4,127) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary+012') + tdSql.checkData(0,7,'nchar+0123') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + sql = '''select * from stable_1 where ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,2147483647) + tdSql.checkData(0,2,9223372036854775807) + tdSql.checkData(0,3,32767) + tdSql.checkData(0,4,127) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary+012') + tdSql.checkData(0,7,'nchar+0123') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + + tdLog.info("========== 4096 regular_table ==========") + sql = '''insert into regular_table_4096_1 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4095 ) + values('2020-09-13 20:26:40.000' , 1 , 501 , 101 , 1501 , 2001 , 1 , 3001 , '3501' , '3801' ,'2020-09-13 20:26:44.090','1600000000000');''' + tdSql.execute(sql) + tdSql.query("select * from regular_table_4096_1 where ts ='2020-09-13 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-10 20:26:44.090') + tdSql.checkData(0,4095,'1600000000000') + + sql = '''insert into regular_table_4096_1 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4095 ) + values('2020-09-10 20:26:40.000' , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL);''' + tdSql.execute(sql) + tdSql.query("select * from regular_table_4096_1 where ts ='2020-09-10 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,None) + tdSql.checkData(0,501,None) + tdSql.checkData(0,1001,None) + tdSql.checkData(0,1501,None) + tdSql.checkData(0,2001,None) + tdSql.checkData(0,2501,None) + tdSql.checkData(0,3001,None) + tdSql.checkData(0,3501,None) + tdSql.checkData(0,3801,None) + tdSql.checkData(0,4091,None) + tdSql.checkData(0,4095,None) + + tdLog.info("========== 4096 stable ==========") + sql = '''insert into table_4096_1 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4093 ) + values('2020-09-13 20:26:40.000' , 1 , 501 , 101 , 1501 , 2001 , 1 , 3001 , '3501' , '3801' ,'2020-09-13 20:26:44.090','1600000000000');''' + tdSql.execute(sql) + tdSql.query("select * from table_4096_1 where ts ='2020-09-13 20:26:40.000';") + tdSql.checkCols(4094) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-10 20:26:44.090') + tdSql.checkData(0,4093,'1600000000000') + tdSql.query("select * from stable_4096_1 where ts ='2020-09-13 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-10 20:26:44.090') + tdSql.checkData(0,4093,'1600000000000') + + sql = '''insert into table_4096_1 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4093 ) + values('2020-09-10 20:26:40.000' , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL);''' + tdSql.execute(sql) + tdSql.query("select * from table_4096_1 where ts ='2020-09-10 20:26:40.000';") + tdSql.checkCols(4094) + tdSql.checkData(0,1,None) + tdSql.checkData(0,501,None) + tdSql.checkData(0,1001,None) + tdSql.checkData(0,1501,None) + tdSql.checkData(0,2001,None) + tdSql.checkData(0,2501,None) + tdSql.checkData(0,3001,None) + tdSql.checkData(0,3501,None) + tdSql.checkData(0,3801,None) + tdSql.checkData(0,4091,None) + tdSql.checkData(0,4093,None) + tdSql.query("select * from stable_4096_1 where ts ='2020-09-10 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,None) + tdSql.checkData(0,501,None) + tdSql.checkData(0,1001,None) + tdSql.checkData(0,1501,None) + tdSql.checkData(0,2001,None) + tdSql.checkData(0,2501,None) + tdSql.checkData(0,3001,None) + tdSql.checkData(0,3501,None) + tdSql.checkData(0,3801,None) + tdSql.checkData(0,4091,None) + tdSql.checkData(0,4093,None) + + + tdLog.info("========== test1.2 : insert data , taosdemo force data dropping disk , check data==========") + tdLog.info("========== regular_table ==========") + tdSql.execute('''insert into regular_table_2 values( %d , 0, 0, 0, 0, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 200)) + sql = '''select * from regular_table_2 where ts = %d ;''' %(self.ts - 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-0') + tdSql.checkData(0,7,'nchar-0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + + tdSql.execute('''insert into regular_table_2 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts + 200)) + sql = '''select * from regular_table_2 where ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdSql.execute('''insert into regular_table_2 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts - 500)) + sql = '''select * from regular_table_2 where ts = %d ;''' %(self.ts - 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdSql.execute('''insert into regular_table_2 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts + 500)) + sql = '''select * from regular_table_2 where ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + + tdLog.info("========== stable ==========") + tdSql.execute('''insert into table_2 values( %d , 0, 0, 0, 0, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 200)) + sql = '''select * from table_2 where ts = %d ;''' %(self.ts - 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-0') + tdSql.checkData(0,7,'nchar-0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + sql = '''select * from stable_1 where loc = 'table_2' and ts = %d ;''' %(self.ts - 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-0') + tdSql.checkData(0,7,'nchar-0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + + tdSql.execute('''insert into table_2 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts + 200)) + sql = '''select * from table_2 where ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + sql = '''select * from stable_1 where loc = 'table_2' and ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdSql.execute('''insert into table_2 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts - 500)) + sql = '''select * from table_2 where ts = %d ;''' %(self.ts - 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + sql = '''select * from stable_1 where loc = 'table_2' and ts = %d ;''' %(self.ts - 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdSql.execute('''insert into table_2 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts + 500)) + sql = '''select * from table_2 where ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + sql = '''select * from stable_1 where loc = 'table_2' and ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + + tdLog.info("========== 4096 regular_table ==========") + sql = "create table regular_table_4096_2 (ts timestamp, " + for i in range(500): + sql += "int_%d int, " % (i + 1) + for i in range(500,1000): + sql += "smallint_%d smallint, " % (i + 1) + for i in range(1000,1500): + sql += "tinyint_%d tinyint, " % (i + 1) + for i in range(1500,2000): + sql += "double_%d double, " % (i + 1) + for i in range(2000,2500): + sql += "float_%d float, " % (i + 1) + for i in range(2500,3000): + sql += "bool_%d bool, " % (i + 1) + for i in range(3000,3500): + sql += "bigint_%d bigint, " % (i + 1) + for i in range(3500,3800): + sql += "nchar_%d nchar(4), " % (i + 1) + for i in range(3800,4090): + sql += "binary_%d binary(10), " % (i + 1) + for i in range(4090,4094): + sql += "timestamp_%d timestamp, " % (i + 1) + sql += "col4095 binary(22))" + tdLog.info(len(sql)) + tdSql.execute(sql) + + for i in range(self.num4096): + sql = "insert into regular_table_4096_2 values(%d, " + for j in range(4090): + str = "'%s', " % 'NULL' + sql += str + for j in range(4090,4094): + str = "%s, " % (self.ts + j) + sql += str + sql += "'%s')" % (self.ts + i) + tdSql.execute(sql % (self.ts + i)) + tdSql.query('''select * from regular_table_4096_2 where ts = %d ;''' %(self.ts)) + tdSql.checkCols(4096) + tdSql.checkData(0,1,None) + tdSql.checkData(0,501,None) + tdSql.checkData(0,1001,None) + tdSql.checkData(0,1501,None) + tdSql.checkData(0,2001,None) + tdSql.checkData(0,2501,None) + tdSql.checkData(0,3001,None) + tdSql.checkData(0,3501,'NULL') + tdSql.checkData(0,3801,'NULL') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.090') + tdSql.checkData(0,4095,'1600000000000') + + sql = '''insert into regular_table_4096_2 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4095 ) + values('2020-09-10 20:26:40.000' , 1 , 501 , 101 , 1501 , 2001 , 1 , 3001 , '3501' , '3801' ,'2020-09-10 20:26:44.090','1500000000000');''' + tdSql.execute(sql) + tdSql.query("select * from regular_table_4096_2 where ts ='2020-09-10 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-10 20:26:44.090') + tdSql.checkData(0,4095,'1500000000000') + + tdLog.info("========== 4096 stable ==========") + sql = "create stable stable_4096_2 (ts timestamp, " + for i in range(500): + sql += "int_%d int, " % (i + 1) + for i in range(500,1000): + sql += "smallint_%d smallint, " % (i + 1) + for i in range(1000,1500): + sql += "tinyint_%d tinyint, " % (i + 1) + for i in range(1500,2000): + sql += "double_%d double, " % (i + 1) + for i in range(2000,2500): + sql += "float_%d float, " % (i + 1) + for i in range(2500,3000): + sql += "bool_%d bool, " % (i + 1) + for i in range(3000,3500): + sql += "bigint_%d bigint, " % (i + 1) + for i in range(3500,3800): + sql += "nchar_%d nchar(4), " % (i + 1) + for i in range(3800,4090): + sql += "binary_%d binary(10), " % (i + 1) + for i in range(4090,4092): + sql += "timestamp_%d timestamp, " % (i + 1) + sql += " col4093 binary(22)) " + sql += " tags (loc nchar(20),tag_1 int) " + tdLog.info(len(sql)) + tdSql.execute(sql) + + sql = " create table table_4096_2 using stable_4096_2 tags ('table_4096_2',1); " + tdSql.execute(sql) + + for i in range(self.num4096): + sql = "insert into table_4096_2 values(%d, " + for j in range(4090): + str = "'%s', " % 'NULL' + sql += str + for j in range(4090,4092): + str = "%s, " % (self.ts + j) + sql += str + sql += "'%s')" % (self.ts + i) + tdSql.execute(sql % (self.ts + i)) + tdSql.query('''select * from table_4096_2 where ts = %d ;''' %(self.ts)) + tdSql.checkCols(4094) + tdSql.checkData(0,1,None) + tdSql.checkData(0,501,None) + tdSql.checkData(0,1001,None) + tdSql.checkData(0,1501,None) + tdSql.checkData(0,2001,None) + tdSql.checkData(0,2501,None) + tdSql.checkData(0,3001,None) + tdSql.checkData(0,3501,'NULL') + tdSql.checkData(0,3801,'NULL') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.090') + tdSql.checkData(0,4093,'1600000000000') + tdSql.query('''select * from stable_4096_2 where ts = %d ;''' %(self.ts)) + tdSql.checkCols(4096) + tdSql.checkData(0,1,None) + tdSql.checkData(0,501,None) + tdSql.checkData(0,1001,None) + tdSql.checkData(0,1501,None) + tdSql.checkData(0,2001,None) + tdSql.checkData(0,2501,None) + tdSql.checkData(0,3001,None) + tdSql.checkData(0,3501,'NULL') + tdSql.checkData(0,3801,'NULL') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.090') + tdSql.checkData(0,4093,'1600000000000') + + sql = '''insert into table_4096_2 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4093 ) + values('2020-09-10 20:26:40.000' , 1 , 501 , 101 , 1501 , 2001 , 1 , 3001 , '3501' , '3801' ,'2020-09-10 20:26:44.090','1500000000000');''' + tdSql.execute(sql) + tdSql.query("select * from table_4096_2 where ts ='2020-09-10 20:26:40.000';") + tdSql.checkCols(4094) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-10 20:26:44.090') + tdSql.checkData(0,4093,'1500000000000') + tdSql.query("select * from stable_4096_2 where ts ='2020-09-10 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-10 20:26:44.090') + tdSql.checkData(0,4093,'1500000000000') + + + # taosdemo force data dropping disk + buildPath = self.getBuildPath() + if (buildPath == ""): + tdLog.exit("taosd not found!") + else: + tdLog.info("taosd found in %s" % buildPath) + binPath = buildPath+ "/build/bin/" + os.system("%staosdemo -N -d taosdemo -t 100 -n 100 -l 1000 -y" % binPath) + + tdSql.execute('''insert into table_2 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts - 200)) + sql = '''select * from table_2 where ts = %d ;''' %(self.ts - 200) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + sql = '''select * from stable_1 where loc = 'table_2' and ts = %d ;''' %(self.ts - 200) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdSql.execute('''insert into table_2 values( %d , 0, 0, 0, 0, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 200)) + sql = '''select * from table_2 where ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary+0') + tdSql.checkData(0,7,'nchar+0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + sql = '''select * from stable_1 where loc = 'table_2' and ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary+0') + tdSql.checkData(0,7,'nchar+0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + + tdSql.error('''insert into table_2 values( %d , -2147483648, -9223372036854775807, -32767, -127, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into table_2 values( %d , -2147483647, -9223372036854775808, -32767, -127, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into table_2 values( %d , -2147483647, -9223372036854775807, -32768, -127, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into table_2 values( %d , -2147483647, -9223372036854775807, -32767, -128, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into table_2 values( %d , -2147483647, -9223372036854775807, -32767, -127, 0, 'binary-0123', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into table_2 values( %d , -2147483647, -9223372036854775807, -32767, -127, 0, 'binary-0', 'nchar-01234', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + + tdSql.execute('''insert into table_2 values( %d , -2147483647, -9223372036854775807, -32767, -127, 0, 'binary-012', 'nchar-0123', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + sql = '''select * from table_2 where ts = %d ;''' %(self.ts - 500) + tdSql.query(sql) + tdSql.checkData(0,1,-2147483647) + tdSql.checkData(0,2,-9223372036854775807) + tdSql.checkData(0,3,-32767) + tdSql.checkData(0,4,-127) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-012') + tdSql.checkData(0,7,'nchar-0123') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:44.090') + sql = '''select * from stable_1 where loc = 'table_2' and ts = %d ;''' %(self.ts - 500) + tdSql.query(sql) + tdSql.checkData(0,1,-2147483647) + tdSql.checkData(0,2,-9223372036854775807) + tdSql.checkData(0,3,-32767) + tdSql.checkData(0,4,-127) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-012') + tdSql.checkData(0,7,'nchar-0123') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:44.090') + + tdSql.error('''insert into table_2 values( %d , 2147483648, 9223372036854775807, 32767, 127, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into table_2 values( %d , 2147483647, 9223372036854775808, 32767, 127, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into table_2 values( %d , 2147483647, 9223372036854775807, 32768, 127, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into table_2 values( %d , 2147483647, 9223372036854775807, 32767, 128, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into table_2 values( %d , 2147483647, 9223372036854775807, 32767, 127, 0, 'binary+0123', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into table_2 values( %d , 2147483647, 9223372036854775807, 32767, 127, 0, 'binary+0', 'nchar+01234', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + + tdSql.execute('''insert into table_2 values( %d , 2147483647, 9223372036854775807, 32767, 127, 0, 'binary+012', 'nchar+0123', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + sql = '''select * from table_2 where ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,2147483647) + tdSql.checkData(0,2,9223372036854775807) + tdSql.checkData(0,3,32767) + tdSql.checkData(0,4,127) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary+012') + tdSql.checkData(0,7,'nchar+0123') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:44.090') + sql = '''select * from stable_1 where loc = 'table_2' and ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,2147483647) + tdSql.checkData(0,2,9223372036854775807) + tdSql.checkData(0,3,32767) + tdSql.checkData(0,4,127) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary+012') + tdSql.checkData(0,7,'nchar+0123') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:44.090') + + tdLog.info("========== 4096 regular_table ==========") + sql = '''insert into regular_table_4096_2 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4095 ) + values('2020-09-13 20:26:40.000' , 1 , 501 , 101 , 1501 , 2001 , 1 , 3001 , '3501' , '3801' ,'2020-09-13 20:26:44.090','1600000000000');''' + tdSql.execute(sql) + tdSql.query("select * from regular_table_4096_2 where ts ='2020-09-13 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-10 20:26:44.090') + tdSql.checkData(0,4095,'1600000000000') + + sql = '''insert into regular_table_4096_2 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4095 ) + values('2020-09-10 20:26:40.000' , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL);''' + tdSql.execute(sql) + tdSql.query("select * from regular_table_4096_2 where ts ='2020-09-10 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,None) + tdSql.checkData(0,501,None) + tdSql.checkData(0,1001,None) + tdSql.checkData(0,1501,None) + tdSql.checkData(0,2001,None) + tdSql.checkData(0,2501,None) + tdSql.checkData(0,3001,None) + tdSql.checkData(0,3501,None) + tdSql.checkData(0,3801,None) + tdSql.checkData(0,4091,None) + tdSql.checkData(0,4095,None) + + tdLog.info("========== 4096 stable ==========") + sql = '''insert into table_4096_2 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4093 ) + values('2020-09-13 20:26:40.000' , 1 , 501 , 101 , 1501 , 2001 , 1 , 3001 , '3501' , '3801' ,'2020-09-13 20:26:44.090','1600000000000');''' + tdSql.execute(sql) + tdSql.query("select * from table_4096_2 where ts ='2020-09-13 20:26:40.000';") + tdSql.checkCols(4094) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.090') + tdSql.checkData(0,4093,'1600000000000') + tdSql.query("select * from stable_4096_2 where ts ='2020-09-13 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.090') + tdSql.checkData(0,4093,'1600000000000') + + sql = '''insert into table_4096_2 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4093 ) + values('2020-09-10 20:26:40.000' , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL);''' + tdSql.execute(sql) + tdSql.query("select * from table_4096_2 where ts ='2020-09-10 20:26:40.000';") + tdSql.checkCols(4094) + tdSql.checkData(0,1,None) + tdSql.checkData(0,501,None) + tdSql.checkData(0,1001,None) + tdSql.checkData(0,1501,None) + tdSql.checkData(0,2001,None) + tdSql.checkData(0,2501,None) + tdSql.checkData(0,3001,None) + tdSql.checkData(0,3501,None) + tdSql.checkData(0,3801,None) + tdSql.checkData(0,4091,None) + tdSql.checkData(0,4093,None) + tdSql.query("select * from stable_4096_2 where ts ='2020-09-10 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,None) + tdSql.checkData(0,501,None) + tdSql.checkData(0,1001,None) + tdSql.checkData(0,1501,None) + tdSql.checkData(0,2001,None) + tdSql.checkData(0,2501,None) + tdSql.checkData(0,3001,None) + tdSql.checkData(0,3501,None) + tdSql.checkData(0,3801,None) + tdSql.checkData(0,4091,None) + tdSql.checkData(0,4093,None) + + tdLog.info("========== test1.3 : insert data , tdDnodes restart force data dropping disk , check data==========") + tdLog.info("========== regular_table ==========") + tdSql.execute('''insert into regular_table_3 values( %d , 0, 0, 0, 0, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 200)) + sql = '''select * from regular_table_3 where ts = %d ;''' %(self.ts - 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-0') + tdSql.checkData(0,7,'nchar-0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + + tdSql.execute('''insert into regular_table_3 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts + 200)) + sql = '''select * from regular_table_3 where ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdSql.execute('''insert into regular_table_3 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts - 500)) + sql = '''select * from regular_table_3 where ts = %d ;''' %(self.ts - 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdSql.execute('''insert into regular_table_3 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts + 500)) + sql = '''select * from regular_table_3 where ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdLog.info("========== stable ==========") + tdSql.execute('''insert into table_3 values( %d , 0, 0, 0, 0, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 200)) + sql = '''select * from table_3 where ts = %d ;''' %(self.ts - 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-0') + tdSql.checkData(0,7,'nchar-0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + sql = '''select * from stable_1 where loc = 'table_3' and ts = %d ;''' %(self.ts - 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-0') + tdSql.checkData(0,7,'nchar-0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + + tdSql.execute('''insert into table_3 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts + 200)) + sql = '''select * from table_3 where ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + sql = '''select * from stable_1 where loc = 'table_3' and ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdSql.execute('''insert into table_3 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts - 500)) + sql = '''select * from table_3 where ts = %d ;''' %(self.ts - 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + sql = '''select * from stable_1 where loc = 'table_3' and ts = %d ;''' %(self.ts - 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdSql.execute('''insert into table_3 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts + 500)) + sql = '''select * from table_3 where ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + sql = '''select * from stable_1 where loc = 'table_3' and ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + + tdLog.info("========== 4096 regular_table ==========") + sql = "create table regular_table_4096_3 (ts timestamp, " + for i in range(500): + sql += "int_%d int, " % (i + 1) + for i in range(500,1000): + sql += "smallint_%d smallint, " % (i + 1) + for i in range(1000,1500): + sql += "tinyint_%d tinyint, " % (i + 1) + for i in range(1500,2000): + sql += "double_%d double, " % (i + 1) + for i in range(2000,2500): + sql += "float_%d float, " % (i + 1) + for i in range(2500,3000): + sql += "bool_%d bool, " % (i + 1) + for i in range(3000,3500): + sql += "bigint_%d bigint, " % (i + 1) + for i in range(3500,3800): + sql += "nchar_%d nchar(4), " % (i + 1) + for i in range(3800,4090): + sql += "binary_%d binary(10), " % (i + 1) + for i in range(4090,4094): + sql += "timestamp_%d timestamp, " % (i + 1) + sql += "col4095 binary(22))" + tdLog.info(len(sql)) + tdSql.execute(sql) + + for i in range(self.num4096): + sql = "insert into regular_table_4096_3 values(%d, " + for j in range(4090): + str = "'%s', " % 'NULL' + sql += str + for j in range(4090,4094): + str = "%s, " % (self.ts + j) + sql += str + sql += "'%s')" % (self.ts + i) + tdSql.execute(sql % (self.ts + i)) + tdSql.query('''select * from regular_table_4096_3 where ts = %d ;''' %(self.ts)) + tdSql.checkCols(4096) + tdSql.checkData(0,1,None) + tdSql.checkData(0,501,None) + tdSql.checkData(0,1001,None) + tdSql.checkData(0,1501,None) + tdSql.checkData(0,2001,None) + tdSql.checkData(0,2501,None) + tdSql.checkData(0,3001,None) + tdSql.checkData(0,3501,'NULL') + tdSql.checkData(0,3801,'NULL') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.090') + tdSql.checkData(0,4095,'1600000000000') + + sql = '''insert into regular_table_4096_3 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4095 ) + values('2020-09-10 20:26:40.000' , 1 , 501 , 101 , 1501 , 2001 , 1 , 3001 , '3501' , '3801' ,'2020-09-10 20:26:44.090','1500000000000');''' + tdSql.execute(sql) + tdSql.query("select * from regular_table_4096_3 where ts ='2020-09-10 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-10 20:26:44.090') + tdSql.checkData(0,4095,'1500000000000') + + tdLog.info("========== 4096 stable ==========") + sql = "create stable stable_4096_3 (ts timestamp, " + for i in range(500): + sql += "int_%d int, " % (i + 1) + for i in range(500,1000): + sql += "smallint_%d smallint, " % (i + 1) + for i in range(1000,1500): + sql += "tinyint_%d tinyint, " % (i + 1) + for i in range(1500,2000): + sql += "double_%d double, " % (i + 1) + for i in range(2000,2500): + sql += "float_%d float, " % (i + 1) + for i in range(2500,3000): + sql += "bool_%d bool, " % (i + 1) + for i in range(3000,3500): + sql += "bigint_%d bigint, " % (i + 1) + for i in range(3500,3800): + sql += "nchar_%d nchar(4), " % (i + 1) + for i in range(3800,4090): + sql += "binary_%d binary(10), " % (i + 1) + for i in range(4090,4092): + sql += "timestamp_%d timestamp, " % (i + 1) + sql += " col4093 binary(22)) " + sql += " tags (loc nchar(20),tag_1 int) " + tdLog.info(len(sql)) + tdSql.execute(sql) + + sql = " create table table_4096_3 using stable_4096_3 tags ('table_4096_3',1); " + tdSql.execute(sql) + + for i in range(self.num4096): + sql = "insert into table_4096_3 values(%d, " + for j in range(4090): + str = "'%s', " % 'NULL' + sql += str + for j in range(4090,4092): + str = "%s, " % (self.ts + j) + sql += str + sql += "'%s')" % (self.ts + i) + tdSql.execute(sql % (self.ts + i)) + tdSql.query('''select * from table_4096_3 where ts = %d ;''' %(self.ts)) + tdSql.checkCols(4094) + tdSql.checkData(0,1,None) + tdSql.checkData(0,501,None) + tdSql.checkData(0,1001,None) + tdSql.checkData(0,1501,None) + tdSql.checkData(0,2001,None) + tdSql.checkData(0,2501,None) + tdSql.checkData(0,3001,None) + tdSql.checkData(0,3501,'NULL') + tdSql.checkData(0,3801,'NULL') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.090') + tdSql.checkData(0,4093,'1600000000000') + tdSql.query('''select * from stable_4096_3 where ts = %d ;''' %(self.ts)) + tdSql.checkCols(4096) + tdSql.checkData(0,1,None) + tdSql.checkData(0,501,None) + tdSql.checkData(0,1001,None) + tdSql.checkData(0,1501,None) + tdSql.checkData(0,2001,None) + tdSql.checkData(0,2501,None) + tdSql.checkData(0,3001,None) + tdSql.checkData(0,3501,'NULL') + tdSql.checkData(0,3801,'NULL') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.090') + tdSql.checkData(0,4093,'1600000000000') + + sql = '''insert into table_4096_3 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4093 ) + values('2020-09-10 20:26:40.000' , 1 , 501 , 101 , 1501 , 2001 , 1 , 3001 , '3501' , '3801' ,'2020-09-10 20:26:44.090','1500000000000');''' + tdSql.execute(sql) + tdSql.query("select * from table_4096_3 where ts ='2020-09-10 20:26:40.000';") + tdSql.checkCols(4094) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-10 20:26:44.090') + tdSql.checkData(0,4093,'1500000000000') + tdSql.query("select * from stable_4096_3 where ts ='2020-09-10 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-10 20:26:44.090') + tdSql.checkData(0,4093,'1500000000000') + + # tdDnodes restart force data dropping disk + tdDnodes.stop(1) + tdDnodes.start(1) + + tdLog.info("========== regular_table ==========") + tdSql.execute('''insert into regular_table_3 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts - 200)) + sql = '''select * from regular_table_3 where ts = %d ;''' %(self.ts - 200) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdSql.execute('''insert into regular_table_3 values( %d , 0, 0, 0, 0, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 200)) + sql = '''select * from regular_table_3 where ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary+0') + tdSql.checkData(0,7,'nchar+0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + + tdSql.error('''insert into regular_table_3 values( %d , -2147483648, -9223372036854775807, -32767, -127, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into regular_table_3 values( %d , -2147483647, -9223372036854775808, -32767, -127, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into regular_table_3 values( %d , -2147483647, -9223372036854775807, -32768, -127, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into regular_table_3 values( %d , -2147483647, -9223372036854775807, -32767, -128, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into regular_table_3 values( %d , -2147483647, -9223372036854775807, -32767, -127, 0, 'binary-0123', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into regular_table_3 values( %d , -2147483647, -9223372036854775807, -32767, -127, 0, 'binary-0', 'nchar-01234', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + + tdSql.execute('''insert into regular_table_3 values( %d , -2147483647, -9223372036854775807, -32767, -127, 0, 'binary-012', 'nchar-0123', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + sql = '''select * from regular_table_3 where ts = %d ;''' %(self.ts - 500) + tdSql.query(sql) + tdSql.checkData(0,1,-2147483647) + tdSql.checkData(0,2,-9223372036854775807) + tdSql.checkData(0,3,-32767) + tdSql.checkData(0,4,-127) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-012') + tdSql.checkData(0,7,'nchar-0123') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:44.090') + + tdSql.error('''insert into regular_table_3 values( %d , 2147483648, 9223372036854775807, 32767, 127, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into regular_table_3 values( %d , 2147483647, 9223372036854775808, 32767, 127, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into regular_table_3 values( %d , 2147483647, 9223372036854775807, 32768, 127, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into regular_table_3 values( %d , 2147483647, 9223372036854775807, 32767, 128, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into regular_table_3 values( %d , 2147483647, 9223372036854775807, 32767, 127, 0, 'binary+0123', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into regular_table_3 values( %d , 2147483647, 9223372036854775807, 32767, 127, 0, 'binary+0', 'nchar+01234', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + + tdSql.execute('''insert into regular_table_3 values( %d , 2147483647, 9223372036854775807, 32767, 127, 0, 'binary+012', 'nchar+0123', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + sql = '''select * from regular_table_3 where ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,2147483647) + tdSql.checkData(0,2,9223372036854775807) + tdSql.checkData(0,3,32767) + tdSql.checkData(0,4,127) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary+012') + tdSql.checkData(0,7,'nchar+0123') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:44.090') + + tdLog.info("========== stable ==========") + tdSql.execute('''insert into table_3 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts - 200)) + sql = '''select * from table_3 where ts = %d ;''' %(self.ts - 200) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + sql = '''select * from stable_1 where loc = 'table_3' and ts = %d ;''' %(self.ts - 200) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdSql.execute('''insert into table_3 values( %d , 0, 0, 0, 0, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 200)) + sql = '''select * from table_3 where ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary+0') + tdSql.checkData(0,7,'nchar+0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + sql = '''select * from stable_1 where loc = 'table_3' and ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary+0') + tdSql.checkData(0,7,'nchar+0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + + tdSql.error('''insert into table_3 values( %d , -2147483648, -9223372036854775807, -32767, -127, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into table_3 values( %d , -2147483647, -9223372036854775808, -32767, -127, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into table_3 values( %d , -2147483647, -9223372036854775807, -32768, -127, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into table_3 values( %d , -2147483647, -9223372036854775807, -32767, -128, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into table_3 values( %d , -2147483647, -9223372036854775807, -32767, -127, 0, 'binary-0123', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into table_3 values( %d , -2147483647, -9223372036854775807, -32767, -127, 0, 'binary-0', 'nchar-01234', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + + tdSql.execute('''insert into table_3 values( %d , -2147483647, -9223372036854775807, -32767, -127, 0, 'binary-012', 'nchar-0123', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + sql = '''select * from table_3 where ts = %d ;''' %(self.ts - 500) + tdSql.query(sql) + tdSql.checkData(0,1,-2147483647) + tdSql.checkData(0,2,-9223372036854775807) + tdSql.checkData(0,3,-32767) + tdSql.checkData(0,4,-127) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-012') + tdSql.checkData(0,7,'nchar-0123') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:44.090') + sql = '''select * from stable_1 where loc = 'table_3' and ts = %d ;''' %(self.ts - 500) + tdSql.query(sql) + tdSql.checkData(0,1,-2147483647) + tdSql.checkData(0,2,-9223372036854775807) + tdSql.checkData(0,3,-32767) + tdSql.checkData(0,4,-127) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-012') + tdSql.checkData(0,7,'nchar-0123') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:44.090') + + tdSql.error('''insert into table_3 values( %d , 2147483648, 9223372036854775807, 32767, 127, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into table_3 values( %d , 2147483647, 9223372036854775808, 32767, 127, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into table_3 values( %d , 2147483647, 9223372036854775807, 32768, 127, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into table_3 values( %d , 2147483647, 9223372036854775807, 32767, 128, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into table_3 values( %d , 2147483647, 9223372036854775807, 32767, 127, 0, 'binary+0123', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into table_3 values( %d , 2147483647, 9223372036854775807, 32767, 127, 0, 'binary+0', 'nchar+01234', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + + tdSql.execute('''insert into table_3 values( %d , 2147483647, 9223372036854775807, 32767, 127, 0, 'binary+012', 'nchar+0123', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + sql = '''select * from table_3 where ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,2147483647) + tdSql.checkData(0,2,9223372036854775807) + tdSql.checkData(0,3,32767) + tdSql.checkData(0,4,127) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary+012') + tdSql.checkData(0,7,'nchar+0123') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:44.090') + sql = '''select * from stable_1 where loc = 'table_3' and ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,2147483647) + tdSql.checkData(0,2,9223372036854775807) + tdSql.checkData(0,3,32767) + tdSql.checkData(0,4,127) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary+012') + tdSql.checkData(0,7,'nchar+0123') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:44.090') + + + tdLog.info("========== 4096 regular_table ==========") + sql = '''insert into regular_table_4096_3 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4095 ) + values('2020-09-13 20:26:40.000' , 1 , 501 , 101 , 1501 , 2001 , 1 , 3001 , '3501' , '3801' ,'2020-09-13 20:26:44.090','1600000000000');''' + tdSql.execute(sql) + tdSql.query("select * from regular_table_4096_3 where ts ='2020-09-13 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.090') + tdSql.checkData(0,4095,'1600000000000') + + sql = '''insert into regular_table_4096_3 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4095 ) + values('2020-09-10 20:26:40.000' , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL);''' + tdSql.execute(sql) + tdSql.query("select * from regular_table_4096_3 where ts ='2020-09-10 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,None) + tdSql.checkData(0,501,None) + tdSql.checkData(0,1001,None) + tdSql.checkData(0,1501,None) + tdSql.checkData(0,2001,None) + tdSql.checkData(0,2501,None) + tdSql.checkData(0,3001,None) + tdSql.checkData(0,3501,None) + tdSql.checkData(0,3801,None) + tdSql.checkData(0,4091,None) + tdSql.checkData(0,4095,None) + + tdLog.info("========== 4096 stable ==========") + sql = '''insert into table_4096_3 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4093 ) + values('2020-09-13 20:26:40.000' , 1 , 501 , 101 , 1501 , 2001 , 1 , 3001 , '3501' , '3801' ,'2020-09-13 20:26:44.090','1600000000000');''' + tdSql.execute(sql) + tdSql.query("select * from table_4096_3 where ts ='2020-09-13 20:26:40.000';") + tdSql.checkCols(4094) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.090') + tdSql.checkData(0,4093,'1600000000000') + tdSql.query("select * from stable_4096_3 where ts ='2020-09-13 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.090') + tdSql.checkData(0,4093,'1600000000000') + + sql = '''insert into table_4096_3 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4093 ) + values('2020-09-10 20:26:40.000' , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL);''' + tdSql.execute(sql) + tdSql.query("select * from table_4096_3 where ts ='2020-09-10 20:26:40.000';") + tdSql.checkCols(4094) + tdSql.checkData(0,1,None) + tdSql.checkData(0,501,None) + tdSql.checkData(0,1001,None) + tdSql.checkData(0,1501,None) + tdSql.checkData(0,2001,None) + tdSql.checkData(0,2501,None) + tdSql.checkData(0,3001,None) + tdSql.checkData(0,3501,None) + tdSql.checkData(0,3801,None) + tdSql.checkData(0,4091,None) + tdSql.checkData(0,4093,None) + tdSql.query("select * from stable_4096_3 where ts ='2020-09-10 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,None) + tdSql.checkData(0,501,None) + tdSql.checkData(0,1001,None) + tdSql.checkData(0,1501,None) + tdSql.checkData(0,2001,None) + tdSql.checkData(0,2501,None) + tdSql.checkData(0,3001,None) + tdSql.checkData(0,3501,None) + tdSql.checkData(0,3801,None) + tdSql.checkData(0,4091,None) + tdSql.checkData(0,4093,None) + + endTime = time.time() + print("total time %ds" % (endTime - startTime)) + + + def stop(self): + tdSql.close() + tdLog.success("%s successfully executed" % __file__) + + +tdCases.addWindows(__file__, TDTestCase()) +tdCases.addLinux(__file__, TDTestCase()) \ No newline at end of file diff --git a/tests/pytest/import_merge/import_update_2.py b/tests/pytest/import_merge/import_update_2.py new file mode 100644 index 0000000000000000000000000000000000000000..ff2f8a5e5cf6acd93b53f131c4551a285feffb2d --- /dev/null +++ b/tests/pytest/import_merge/import_update_2.py @@ -0,0 +1,2273 @@ +################################################################### +# Copyright (c) 2016 by TAOS Technologies, Inc. +# All rights reserved. +# +# This file is proprietary and confidential to TAOS Technologies. +# No part of this file may be reproduced, stored, transmitted, +# disclosed or used in any form or by any means other than as +# expressly provided by the written permission from Jianhui Tao +# +################################################################### + +# -*- coding: utf-8 -*- + +import sys +import taos +from util.log import tdLog +from util.cases import tdCases +from util.sql import tdSql +from util.dnodes import * +import random +import time + + +class TDTestCase: + def init(self, conn, logSql): + tdLog.debug("start to execute %s" % __file__) + tdSql.init(conn.cursor(), logSql) + + self.ts = 1600000000000 + self.num = 50 + self.num4096 = 5 + + def getBuildPath(self): + selfPath = os.path.dirname(os.path.realpath(__file__)) + + if ("community" in selfPath): + projPath = selfPath[:selfPath.find("community")] + else: + projPath = selfPath[:selfPath.find("tests")] + + for root, dirs, files in os.walk(projPath): + if ("taosd" in files): + rootRealPath = os.path.dirname(os.path.realpath(root)) + if ("packaging" not in rootRealPath): + buildPath = root[:len(root)-len("/build/bin")] + break + return buildPath + + def run(self): + tdSql.prepare() + # test case for https://jira.taosdata.com:18080/browse/TD-5062 + + startTime = time.time() + + tdSql.execute('''drop database if exists test_updata_2 ;''') + # update 0 不更新 ; update 1 覆盖更新 ;update 2 合并更新 + tdLog.info("========== test database updata = 2 ==========") + tdSql.execute('''create database test_updata_2 update 2 minrows 10 maxrows 200 ;''') + tdSql.execute('''use test_updata_2;''') + tdSql.execute('''create stable stable_1 + (ts timestamp , q_int int , q_bigint bigint , q_smallint smallint , q_tinyint tinyint, + q_bool bool , q_binary binary(10) , q_nchar nchar(10) , q_float float , q_double double , q_ts timestamp) + tags(loc nchar(20) , t_int int);''') + tdSql.execute('''create table table_1 using stable_1 tags('table_1' , '1' )''') + tdSql.execute('''create table table_2 using stable_1 tags('table_2' , '2' )''') + tdSql.execute('''create table table_3 using stable_1 tags('table_3' , '3' )''') + + #regular table + tdSql.execute('''create table regular_table_1 + (ts timestamp , q_int int , q_bigint bigint , q_smallint smallint , q_tinyint tinyint, + q_bool bool , q_binary binary(10) , q_nchar nchar(10) , q_float float , q_double double , q_ts timestamp) ;''') + tdSql.execute('''create table regular_table_2 + (ts timestamp , q_int int , q_bigint bigint , q_smallint smallint , q_tinyint tinyint, + q_bool bool , q_binary binary(10) , q_nchar nchar(10) , q_float float , q_double double , q_ts timestamp) ;''') + tdSql.execute('''create table regular_table_3 + (ts timestamp , q_int int , q_bigint bigint , q_smallint smallint , q_tinyint tinyint, + q_bool bool , q_binary binary(10) , q_nchar nchar(10) , q_float float , q_double double , q_ts timestamp) ;''') + + + tdLog.info("========== test1.1 : insert data , check data==========") + tdLog.info("========== regular_table ==========") + tdSql.execute('''insert into regular_table_1 values( %d , 0, 0, 0, 0, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 200)) + sql = '''select * from regular_table_1 where ts = %d ;''' %(self.ts - 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-0') + tdSql.checkData(0,7,'nchar-0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + + tdSql.execute('''insert into regular_table_1 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts + 200)) + sql = '''select * from regular_table_1 where ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdSql.execute('''insert into regular_table_1 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts - 500)) + sql = '''select * from regular_table_1 where ts = %d ;''' %(self.ts - 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdSql.execute('''insert into regular_table_1 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts + 500)) + sql = '''select * from regular_table_1 where ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdLog.info("========== stable ==========") + tdSql.execute('''insert into table_1 values( %d , 0, 0, 0, 0, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 200)) + sql = '''select * from table_1 where ts = %d ;''' %(self.ts - 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-0') + tdSql.checkData(0,7,'nchar-0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + sql = '''select * from stable_1 where ts = %d ;''' %(self.ts - 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-0') + tdSql.checkData(0,7,'nchar-0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + + tdSql.execute('''insert into table_1 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts + 200)) + sql = '''select * from table_1 where ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + sql = '''select * from stable_1 where ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdSql.execute('''insert into table_1 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts - 500)) + sql = '''select * from table_1 where ts = %d ;''' %(self.ts - 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + sql = '''select * from stable_1 where ts = %d ;''' %(self.ts - 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdSql.execute('''insert into table_1 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts + 500)) + sql = '''select * from table_1 where ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + sql = '''select * from stable_1 where ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + + tdLog.info("========== 4096 regular_table ==========") + sql = "create table regular_table_4096_1 (ts timestamp, " + for i in range(500): + sql += "int_%d int, " % (i + 1) + for i in range(500,1000): + sql += "smallint_%d smallint, " % (i + 1) + for i in range(1000,1500): + sql += "tinyint_%d tinyint, " % (i + 1) + for i in range(1500,2000): + sql += "double_%d double, " % (i + 1) + for i in range(2000,2500): + sql += "float_%d float, " % (i + 1) + for i in range(2500,3000): + sql += "bool_%d bool, " % (i + 1) + for i in range(3000,3500): + sql += "bigint_%d bigint, " % (i + 1) + for i in range(3500,3800): + sql += "nchar_%d nchar(4), " % (i + 1) + for i in range(3800,4090): + sql += "binary_%d binary(10), " % (i + 1) + for i in range(4090,4094): + sql += "timestamp_%d timestamp, " % (i + 1) + sql += "col4095 binary(22))" + tdLog.info(len(sql)) + tdSql.execute(sql) + + for i in range(self.num4096): + sql = "insert into regular_table_4096_1 values(%d, " + for j in range(4090): + str = "'%s', " % 'NULL' + sql += str + for j in range(4090,4094): + str = "%s, " % (self.ts + j) + sql += str + sql += "'%s')" % (self.ts + i) + tdSql.execute(sql % (self.ts + i)) + tdSql.query('''select * from regular_table_4096_1 where ts = %d ;''' %(self.ts)) + tdSql.checkCols(4096) + tdSql.checkData(0,1,None) + tdSql.checkData(0,501,None) + tdSql.checkData(0,1001,None) + tdSql.checkData(0,1501,None) + tdSql.checkData(0,2001,None) + tdSql.checkData(0,2501,None) + tdSql.checkData(0,3001,None) + tdSql.checkData(0,3501,'NULL') + tdSql.checkData(0,3801,'NULL') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.090') + tdSql.checkData(0,4095,'1600000000000') + + sql = '''insert into regular_table_4096_1 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4095 ) + values('2020-09-10 20:26:40.000' , 1 , 501 , 101 , 1501 , 2001 , 1 , 3001 , '3501' , '3801' ,'2020-09-10 20:26:44.090','1500000000000');''' + tdSql.execute(sql) + tdSql.query("select * from regular_table_4096_1 where ts ='2020-09-10 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-10 20:26:44.090') + tdSql.checkData(0,4095,'1500000000000') + + tdLog.info("========== 4096 stable ==========") + sql = "create stable stable_4096_1 (ts timestamp, " + for i in range(500): + sql += "int_%d int, " % (i + 1) + for i in range(500,1000): + sql += "smallint_%d smallint, " % (i + 1) + for i in range(1000,1500): + sql += "tinyint_%d tinyint, " % (i + 1) + for i in range(1500,2000): + sql += "double_%d double, " % (i + 1) + for i in range(2000,2500): + sql += "float_%d float, " % (i + 1) + for i in range(2500,3000): + sql += "bool_%d bool, " % (i + 1) + for i in range(3000,3500): + sql += "bigint_%d bigint, " % (i + 1) + for i in range(3500,3800): + sql += "nchar_%d nchar(4), " % (i + 1) + for i in range(3800,4090): + sql += "binary_%d binary(10), " % (i + 1) + for i in range(4090,4092): + sql += "timestamp_%d timestamp, " % (i + 1) + sql += " col4093 binary(22)) " + sql += " tags (loc nchar(20),tag_1 int) " + tdLog.info(len(sql)) + tdSql.execute(sql) + + sql = " create table table_4096_1 using stable_4096_1 tags ('table_4096_1',1); " + tdSql.execute(sql) + + for i in range(self.num4096): + sql = "insert into table_4096_1 values(%d, " + for j in range(4090): + str = "'%s', " % 'NULL' + sql += str + for j in range(4090,4092): + str = "%s, " % (self.ts + j) + sql += str + sql += "'%s')" % (self.ts + i) + tdSql.execute(sql % (self.ts + i)) + tdSql.query('''select * from table_4096_1 where ts = %d ;''' %(self.ts)) + tdSql.checkCols(4094) + tdSql.checkData(0,1,None) + tdSql.checkData(0,501,None) + tdSql.checkData(0,1001,None) + tdSql.checkData(0,1501,None) + tdSql.checkData(0,2001,None) + tdSql.checkData(0,2501,None) + tdSql.checkData(0,3001,None) + tdSql.checkData(0,3501,'NULL') + tdSql.checkData(0,3801,'NULL') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.090') + tdSql.checkData(0,4093,'1600000000000') + tdSql.query('''select * from stable_4096_1 where ts = %d ;''' %(self.ts)) + tdSql.checkCols(4096) + tdSql.checkData(0,1,None) + tdSql.checkData(0,501,None) + tdSql.checkData(0,1001,None) + tdSql.checkData(0,1501,None) + tdSql.checkData(0,2001,None) + tdSql.checkData(0,2501,None) + tdSql.checkData(0,3001,None) + tdSql.checkData(0,3501,'NULL') + tdSql.checkData(0,3801,'NULL') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.090') + tdSql.checkData(0,4093,'1600000000000') + + sql = '''insert into table_4096_1 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4093 ) + values('2020-09-10 20:26:40.000' , 1 , 501 , 101 , 1501 , 2001 , 1 , 3001 , '3501' , '3801' ,'2020-09-10 20:26:44.090','1500000000000');''' + tdSql.execute(sql) + tdSql.query("select * from table_4096_1 where ts ='2020-09-10 20:26:40.000';") + tdSql.checkCols(4094) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-10 20:26:44.090') + tdSql.checkData(0,4093,'1500000000000') + tdSql.query("select * from stable_4096_1 where ts ='2020-09-10 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-10 20:26:44.090') + tdSql.checkData(0,4093,'1500000000000') + + # minrows 10 maxrows 200 + for i in range(self.num): + tdSql.execute('''insert into regular_table_1 values(%d, %d, %d, %d, %d, 0, 'binary.%s', 'nchar.%s', %f, %f, %d)''' + % (self.ts -100 + i, i, i, i, i, i, i, i, i, self.ts -100 + i)) + tdSql.execute('''insert into regular_table_1 values(%d, %d, %d, %d, %d, false, 'binary%s', 'nchar%s', %f, %f, %d)''' + % (self.ts + i, random.randint(-2147483647, 2147483647), + random.randint(-9223372036854775807, 9223372036854775807), random.randint(-32767, 32767), + random.randint(-127, 127), random.randint(-100, 100), random.randint(-10000, 10000), + random.uniform(-100000,100000), random.uniform(-1000000000,1000000000), self.ts + i)) + + tdSql.execute('''insert into table_1 values(%d, %d, %d, %d, %d, 0, 'binary.%s', 'nchar.%s', %f, %f, %d)''' + % (self.ts -100 + i, i, i, i, i, i, i, i, i, self.ts -100 + i)) + tdSql.execute('''insert into table_1 values(%d, %d, %d, %d, %d, false, 'binary%s', 'nchar%s', %f, %f, %d)''' + % (self.ts + i, random.randint(-2147483647, 2147483647), + random.randint(-9223372036854775807, 9223372036854775807), random.randint(-32767, 32767), + random.randint(-127, 127), random.randint(-100, 100), random.randint(-10000, 10000), + random.uniform(-100000,100000), random.uniform(-1000000000,1000000000), self.ts + i)) + + tdLog.info("========== regular_table ==========") + tdSql.execute('''insert into regular_table_1 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts - 200)) + sql = '''select * from regular_table_1 where ts = %d ;''' %(self.ts - 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-0') + tdSql.checkData(0,7,'nchar-0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + + tdSql.execute('''insert into regular_table_1 values( %d , 0, 0, 0, 0, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 200)) + sql = '''select * from regular_table_1 where ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary+0') + tdSql.checkData(0,7,'nchar+0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + tdSql.execute('''insert into regular_table_1 values( %d , 1, 1, 1, 1, 1, 'binary+1', 'nchar+1', 1.000000, 1.000000, 1600000001000);''' %(self.ts + 200)) + sql = '''select * from regular_table_1 where ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,1) + tdSql.checkData(0,2,1) + tdSql.checkData(0,3,1) + tdSql.checkData(0,4,1) + tdSql.checkData(0,5,'True') + tdSql.checkData(0,6,'binary+1') + tdSql.checkData(0,7,'nchar+1') + tdSql.checkData(0,8,1) + tdSql.checkData(0,9,1) + tdSql.checkData(0,10,'2020-09-13 20:26:41.000') + + tdSql.error('''insert into regular_table_1 values( %d , -2147483648, -9223372036854775807, -32767, -127, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into regular_table_1 values( %d , -2147483647, -9223372036854775808, -32767, -127, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into regular_table_1 values( %d , -2147483647, -9223372036854775807, -32768, -127, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into regular_table_1 values( %d , -2147483647, -9223372036854775807, -32767, -128, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into regular_table_1 values( %d , -2147483647, -9223372036854775807, -32767, -127, 0, 'binary-0123', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into regular_table_1 values( %d , -2147483647, -9223372036854775807, -32767, -127, 0, 'binary-0', 'nchar-01234', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + + tdSql.execute('''insert into regular_table_1 values( %d , -2147483647, -9223372036854775807, -32767, -127, 0, 'binary-012', 'nchar-0123', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + sql = '''select * from regular_table_1 where ts = %d ;''' %(self.ts - 500) + tdSql.query(sql) + tdSql.checkData(0,1,-2147483647) + tdSql.checkData(0,2,-9223372036854775807) + tdSql.checkData(0,3,-32767) + tdSql.checkData(0,4,-127) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-012') + tdSql.checkData(0,7,'nchar-0123') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + + tdSql.error('''insert into regular_table_1 values( %d , 2147483648, 9223372036854775807, 32767, 127, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into regular_table_1 values( %d , 2147483647, 9223372036854775808, 32767, 127, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into regular_table_1 values( %d , 2147483647, 9223372036854775807, 32768, 127, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into regular_table_1 values( %d , 2147483647, 9223372036854775807, 32767, 128, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into regular_table_1 values( %d , 2147483647, 9223372036854775807, 32767, 127, 0, 'binary+0123', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into regular_table_1 values( %d , 2147483647, 9223372036854775807, 32767, 127, 0, 'binary+0', 'nchar+01234', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + + tdSql.execute('''insert into regular_table_1 values( %d , 2147483647, 9223372036854775807, 32767, 127, 0, 'binary+012', 'nchar+0123', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + sql = '''select * from regular_table_1 where ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,2147483647) + tdSql.checkData(0,2,9223372036854775807) + tdSql.checkData(0,3,32767) + tdSql.checkData(0,4,127) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary+012') + tdSql.checkData(0,7,'nchar+0123') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + tdSql.execute('''insert into regular_table_1 values( %d , -2147483647, -9223372036854775807, -32767, -127, 0, 'binary-012', 'nchar-0123', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + sql = '''select * from regular_table_1 where ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,-2147483647) + tdSql.checkData(0,2,-9223372036854775807) + tdSql.checkData(0,3,-32767) + tdSql.checkData(0,4,-127) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-012') + tdSql.checkData(0,7,'nchar-0123') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + + tdLog.info("========== stable ==========") + tdSql.execute('''insert into table_1 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts - 200)) + sql = '''select * from table_1 where ts = %d ;''' %(self.ts - 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-0') + tdSql.checkData(0,7,'nchar-0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + sql = '''select * from stable_1 where ts = %d ;''' %(self.ts - 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-0') + tdSql.checkData(0,7,'nchar-0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + + tdSql.execute('''insert into table_1 values( %d , 0, 0, 0, 0, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 200)) + sql = '''select * from table_1 where ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary+0') + tdSql.checkData(0,7,'nchar+0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + sql = '''select * from stable_1 where ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary+0') + tdSql.checkData(0,7,'nchar+0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + + tdSql.execute('''insert into table_1 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts + 200)) + sql = '''select * from table_1 where ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary+0') + tdSql.checkData(0,7,'nchar+0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + sql = '''select * from stable_1 where ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary+0') + tdSql.checkData(0,7,'nchar+0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + + tdSql.error('''insert into table_1 values( %d , -2147483648, -9223372036854775807, -32767, -127, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into table_1 values( %d , -2147483647, -9223372036854775808, -32767, -127, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into table_1 values( %d , -2147483647, -9223372036854775807, -32768, -127, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into table_1 values( %d , -2147483647, -9223372036854775807, -32767, -128, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into table_1 values( %d , -2147483647, -9223372036854775807, -32767, -127, 0, 'binary-0123', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into table_1 values( %d , -2147483647, -9223372036854775807, -32767, -127, 0, 'binary-0', 'nchar-01234', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + + tdSql.execute('''insert into table_1 values( %d , -2147483647, -9223372036854775807, -32767, -127, 0, 'binary-012', 'nchar-0123', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + sql = '''select * from table_1 where ts = %d ;''' %(self.ts - 500) + tdSql.query(sql) + tdSql.checkData(0,1,-2147483647) + tdSql.checkData(0,2,-9223372036854775807) + tdSql.checkData(0,3,-32767) + tdSql.checkData(0,4,-127) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-012') + tdSql.checkData(0,7,'nchar-0123') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + sql = '''select * from stable_1 where ts = %d ;''' %(self.ts - 500) + tdSql.query(sql) + tdSql.checkData(0,1,-2147483647) + tdSql.checkData(0,2,-9223372036854775807) + tdSql.checkData(0,3,-32767) + tdSql.checkData(0,4,-127) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-012') + tdSql.checkData(0,7,'nchar-0123') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + + tdSql.error('''insert into table_1 values( %d , 2147483648, 9223372036854775807, 32767, 127, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into table_1 values( %d , 2147483647, 9223372036854775808, 32767, 127, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into table_1 values( %d , 2147483647, 9223372036854775807, 32768, 127, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into table_1 values( %d , 2147483647, 9223372036854775807, 32767, 128, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into table_1 values( %d , 2147483647, 9223372036854775807, 32767, 127, 0, 'binary+0123', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into table_1 values( %d , 2147483647, 9223372036854775807, 32767, 127, 0, 'binary+0', 'nchar+01234', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + + tdSql.execute('''insert into table_1 values( %d , 2147483647, 9223372036854775807, 32767, 127, 0, 'binary+012', 'nchar+0123', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + sql = '''select * from table_1 where ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,2147483647) + tdSql.checkData(0,2,9223372036854775807) + tdSql.checkData(0,3,32767) + tdSql.checkData(0,4,127) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary+012') + tdSql.checkData(0,7,'nchar+0123') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + sql = '''select * from stable_1 where ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,2147483647) + tdSql.checkData(0,2,9223372036854775807) + tdSql.checkData(0,3,32767) + tdSql.checkData(0,4,127) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary+012') + tdSql.checkData(0,7,'nchar+0123') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + tdSql.execute('''insert into table_1 values( %d , -2147483647, -9223372036854775807, -32767, -127, 0, 'binary-012', 'nchar-0123', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + sql = '''select * from table_1 where ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,-2147483647) + tdSql.checkData(0,2,-9223372036854775807) + tdSql.checkData(0,3,-32767) + tdSql.checkData(0,4,-127) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-012') + tdSql.checkData(0,7,'nchar-0123') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + sql = '''select * from stable_1 where ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,-2147483647) + tdSql.checkData(0,2,-9223372036854775807) + tdSql.checkData(0,3,-32767) + tdSql.checkData(0,4,-127) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-012') + tdSql.checkData(0,7,'nchar-0123') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + + tdLog.info("========== 4096 regular_table ==========") + sql = '''insert into regular_table_4096_1 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4095 ) + values('2020-09-13 20:26:40.000' , 1 , 501 , 101 , 1501 , 2001 , 1 , 3001 , '3501' , '3801' ,'2020-09-13 20:26:44.090','1600000000000');''' + tdSql.execute(sql) + tdSql.query("select * from regular_table_4096_1 where ts ='2020-09-13 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.090') + tdSql.checkData(0,4095,'1600000000000') + + sql = '''insert into regular_table_4096_1 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4095 ) + values('2020-09-10 20:26:40.000' , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL);''' + tdSql.execute(sql) + tdSql.query("select * from regular_table_4096_1 where ts ='2020-09-10 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-10 20:26:44.090') + tdSql.checkData(0,4095,'1500000000000') + + sql = '''insert into regular_table_4096_1 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4095 ) + values('2020-09-13 20:26:40.000' , 2 , 502 , 102 , 1502 , 2002 , 0 , 3002 , '3502' , '3802' ,'2020-09-13 20:26:44.092','1600000002000');''' + tdSql.execute(sql) + tdSql.query("select * from regular_table_4096_1 where ts ='2020-09-13 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,2) + tdSql.checkData(0,501,502) + tdSql.checkData(0,1001,102) + tdSql.checkData(0,1501,1502) + tdSql.checkData(0,2001,2002) + tdSql.checkData(0,2501,'False') + tdSql.checkData(0,3001,3002) + tdSql.checkData(0,3501,'3502') + tdSql.checkData(0,3801,'3802') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.092') + tdSql.checkData(0,4095,'1600000002000') + + tdLog.info("========== 4096 stable ==========") + sql = '''insert into table_4096_1 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4093 ) + values('2020-09-13 20:26:40.000' , 1 , 501 , 101 , 1501 , 2001 , 1 , 3001 , '3501' , '3801' ,'2020-09-13 20:26:44.090','1600000000000');''' + tdSql.execute(sql) + tdSql.query("select * from table_4096_1 where ts ='2020-09-13 20:26:40.000';") + tdSql.checkCols(4094) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.090') + tdSql.checkData(0,4093,'1600000000000') + tdSql.query("select * from stable_4096_1 where ts ='2020-09-13 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.090') + tdSql.checkData(0,4093,'1600000000000') + + sql = '''insert into table_4096_1 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4093 ) + values('2020-09-10 20:26:40.000' , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL);''' + tdSql.execute(sql) + tdSql.query("select * from table_4096_1 where ts ='2020-09-10 20:26:40.000';") + tdSql.checkCols(4094) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-10 20:26:44.090') + tdSql.checkData(0,4093,'1500000000000') + tdSql.query("select * from stable_4096_1 where ts ='2020-09-10 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-10 20:26:44.090') + tdSql.checkData(0,4093,'1500000000000') + + sql = '''insert into table_4096_1 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4093 ) + values('2020-09-13 20:26:40.000' , 2 , 502 , 102 , 1502 , 2002 , 0 , 3002 , '3502' , '3802' ,'2020-09-13 20:26:44.092','1600000002000');''' + tdSql.execute(sql) + tdSql.query("select * from table_4096_1 where ts ='2020-09-13 20:26:40.000';") + tdSql.checkCols(4094) + tdSql.checkData(0,1,2) + tdSql.checkData(0,501,502) + tdSql.checkData(0,1001,102) + tdSql.checkData(0,1501,1502) + tdSql.checkData(0,2001,2002) + tdSql.checkData(0,2501,'False') + tdSql.checkData(0,3001,3002) + tdSql.checkData(0,3501,'3502') + tdSql.checkData(0,3801,'3802') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.092') + tdSql.checkData(0,4093,'1600000002000') + tdSql.query("select * from stable_4096_1 where ts ='2020-09-13 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,2) + tdSql.checkData(0,501,502) + tdSql.checkData(0,1001,102) + tdSql.checkData(0,1501,1502) + tdSql.checkData(0,2001,2002) + tdSql.checkData(0,2501,'False') + tdSql.checkData(0,3001,3002) + tdSql.checkData(0,3501,'3502') + tdSql.checkData(0,3801,'3802') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.092') + tdSql.checkData(0,4093,'1600000002000') + + + tdLog.info("========== test1.2 : insert data , taosdemo force data dropping disk , check data==========") + tdLog.info("========== regular_table ==========") + tdSql.execute('''insert into regular_table_2 values( %d , 0, 0, 0, 0, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 200)) + sql = '''select * from regular_table_2 where ts = %d ;''' %(self.ts - 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-0') + tdSql.checkData(0,7,'nchar-0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + + tdSql.execute('''insert into regular_table_2 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts + 200)) + sql = '''select * from regular_table_2 where ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdSql.execute('''insert into regular_table_2 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts - 500)) + sql = '''select * from regular_table_2 where ts = %d ;''' %(self.ts - 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdSql.execute('''insert into regular_table_2 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts + 500)) + sql = '''select * from regular_table_2 where ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + + tdLog.info("========== stable ==========") + tdSql.execute('''insert into table_2 values( %d , 0, 0, 0, 0, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 200)) + sql = '''select * from table_2 where ts = %d ;''' %(self.ts - 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-0') + tdSql.checkData(0,7,'nchar-0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + sql = '''select * from stable_1 where loc = 'table_2' and ts = %d ;''' %(self.ts - 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-0') + tdSql.checkData(0,7,'nchar-0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + + tdSql.execute('''insert into table_2 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts + 200)) + sql = '''select * from table_2 where ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + sql = '''select * from stable_1 where loc = 'table_2' and ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdSql.execute('''insert into table_2 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts - 500)) + sql = '''select * from table_2 where ts = %d ;''' %(self.ts - 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + sql = '''select * from stable_1 where loc = 'table_2' and ts = %d ;''' %(self.ts - 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdSql.execute('''insert into table_2 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts + 500)) + sql = '''select * from table_2 where ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + sql = '''select * from stable_1 where loc = 'table_2' and ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + + tdLog.info("========== 4096 regular_table ==========") + sql = "create table regular_table_4096_2 (ts timestamp, " + for i in range(500): + sql += "int_%d int, " % (i + 1) + for i in range(500,1000): + sql += "smallint_%d smallint, " % (i + 1) + for i in range(1000,1500): + sql += "tinyint_%d tinyint, " % (i + 1) + for i in range(1500,2000): + sql += "double_%d double, " % (i + 1) + for i in range(2000,2500): + sql += "float_%d float, " % (i + 1) + for i in range(2500,3000): + sql += "bool_%d bool, " % (i + 1) + for i in range(3000,3500): + sql += "bigint_%d bigint, " % (i + 1) + for i in range(3500,3800): + sql += "nchar_%d nchar(4), " % (i + 1) + for i in range(3800,4090): + sql += "binary_%d binary(10), " % (i + 1) + for i in range(4090,4094): + sql += "timestamp_%d timestamp, " % (i + 1) + sql += "col4095 binary(22))" + tdLog.info(len(sql)) + tdSql.execute(sql) + + for i in range(self.num4096): + sql = "insert into regular_table_4096_2 values(%d, " + for j in range(4090): + str = "'%s', " % 'NULL' + sql += str + for j in range(4090,4094): + str = "%s, " % (self.ts + j) + sql += str + sql += "'%s')" % (self.ts + i) + tdSql.execute(sql % (self.ts + i)) + tdSql.query('''select * from regular_table_4096_2 where ts = %d ;''' %(self.ts)) + tdSql.checkCols(4096) + tdSql.checkData(0,1,None) + tdSql.checkData(0,501,None) + tdSql.checkData(0,1001,None) + tdSql.checkData(0,1501,None) + tdSql.checkData(0,2001,None) + tdSql.checkData(0,2501,None) + tdSql.checkData(0,3001,None) + tdSql.checkData(0,3501,'NULL') + tdSql.checkData(0,3801,'NULL') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.090') + tdSql.checkData(0,4095,'1600000000000') + + sql = '''insert into regular_table_4096_2 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4095 ) + values('2020-09-10 20:26:40.000' , 1 , 501 , 101 , 1501 , 2001 , 1 , 3001 , '3501' , '3801' ,'2020-09-10 20:26:44.090','1500000000000');''' + tdSql.execute(sql) + tdSql.query("select * from regular_table_4096_2 where ts ='2020-09-10 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-10 20:26:44.090') + tdSql.checkData(0,4095,'1500000000000') + + tdLog.info("========== 4096 stable ==========") + sql = "create stable stable_4096_2 (ts timestamp, " + for i in range(500): + sql += "int_%d int, " % (i + 1) + for i in range(500,1000): + sql += "smallint_%d smallint, " % (i + 1) + for i in range(1000,1500): + sql += "tinyint_%d tinyint, " % (i + 1) + for i in range(1500,2000): + sql += "double_%d double, " % (i + 1) + for i in range(2000,2500): + sql += "float_%d float, " % (i + 1) + for i in range(2500,3000): + sql += "bool_%d bool, " % (i + 1) + for i in range(3000,3500): + sql += "bigint_%d bigint, " % (i + 1) + for i in range(3500,3800): + sql += "nchar_%d nchar(4), " % (i + 1) + for i in range(3800,4090): + sql += "binary_%d binary(10), " % (i + 1) + for i in range(4090,4092): + sql += "timestamp_%d timestamp, " % (i + 1) + sql += " col4093 binary(22)) " + sql += " tags (loc nchar(20),tag_1 int) " + tdLog.info(len(sql)) + tdSql.execute(sql) + + sql = " create table table_4096_2 using stable_4096_2 tags ('table_4096_2',1); " + tdSql.execute(sql) + + for i in range(self.num4096): + sql = "insert into table_4096_2 values(%d, " + for j in range(4090): + str = "'%s', " % 'NULL' + sql += str + for j in range(4090,4092): + str = "%s, " % (self.ts + j) + sql += str + sql += "'%s')" % (self.ts + i) + tdSql.execute(sql % (self.ts + i)) + tdSql.query('''select * from table_4096_2 where ts = %d ;''' %(self.ts)) + tdSql.checkCols(4094) + tdSql.checkData(0,1,None) + tdSql.checkData(0,501,None) + tdSql.checkData(0,1001,None) + tdSql.checkData(0,1501,None) + tdSql.checkData(0,2001,None) + tdSql.checkData(0,2501,None) + tdSql.checkData(0,3001,None) + tdSql.checkData(0,3501,'NULL') + tdSql.checkData(0,3801,'NULL') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.090') + tdSql.checkData(0,4093,'1600000000000') + tdSql.query('''select * from stable_4096_2 where ts = %d ;''' %(self.ts)) + tdSql.checkCols(4096) + tdSql.checkData(0,1,None) + tdSql.checkData(0,501,None) + tdSql.checkData(0,1001,None) + tdSql.checkData(0,1501,None) + tdSql.checkData(0,2001,None) + tdSql.checkData(0,2501,None) + tdSql.checkData(0,3001,None) + tdSql.checkData(0,3501,'NULL') + tdSql.checkData(0,3801,'NULL') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.090') + tdSql.checkData(0,4093,'1600000000000') + + sql = '''insert into table_4096_2 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4093 ) + values('2020-09-10 20:26:40.000' , 1 , 501 , 101 , 1501 , 2001 , 1 , 3001 , '3501' , '3801' ,'2020-09-10 20:26:44.090','1500000000000');''' + tdSql.execute(sql) + tdSql.query("select * from table_4096_2 where ts ='2020-09-10 20:26:40.000';") + tdSql.checkCols(4094) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-10 20:26:44.090') + tdSql.checkData(0,4093,'1500000000000') + tdSql.query("select * from stable_4096_2 where ts ='2020-09-10 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-10 20:26:44.090') + tdSql.checkData(0,4093,'1500000000000') + + + # taosdemo force data dropping disk + buildPath = self.getBuildPath() + if (buildPath == ""): + tdLog.exit("taosd not found!") + else: + tdLog.info("taosd found in %s" % buildPath) + binPath = buildPath+ "/build/bin/" + os.system("%staosdemo -N -d taosdemo -t 100 -n 100 -l 1000 -y" % binPath) + + tdLog.info("========== stable ==========") + tdSql.execute('''insert into table_2 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts - 200)) + sql = '''select * from table_2 where ts = %d ;''' %(self.ts - 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-0') + tdSql.checkData(0,7,'nchar-0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + sql = '''select * from stable_1 where loc = 'table_2' and ts = %d ;''' %(self.ts - 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-0') + tdSql.checkData(0,7,'nchar-0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + + tdSql.execute('''insert into table_2 values( %d , 0, 0, 0, 0, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 200)) + sql = '''select * from table_2 where ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary+0') + tdSql.checkData(0,7,'nchar+0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + sql = '''select * from stable_1 where loc = 'table_2' and ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary+0') + tdSql.checkData(0,7,'nchar+0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + + tdSql.execute('''insert into table_2 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts + 200)) + sql = '''select * from table_1 where ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary+0') + tdSql.checkData(0,7,'nchar+0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + sql = '''select * from stable_1 where loc = 'table_2' and ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary+0') + tdSql.checkData(0,7,'nchar+0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + + + tdSql.error('''insert into table_2 values( %d , -2147483648, -9223372036854775807, -32767, -127, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into table_2 values( %d , -2147483647, -9223372036854775808, -32767, -127, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into table_2 values( %d , -2147483647, -9223372036854775807, -32768, -127, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into table_2 values( %d , -2147483647, -9223372036854775807, -32767, -128, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into table_2 values( %d , -2147483647, -9223372036854775807, -32767, -127, 0, 'binary-0123', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into table_2 values( %d , -2147483647, -9223372036854775807, -32767, -127, 0, 'binary-0', 'nchar-01234', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + + tdSql.execute('''insert into table_2 values( %d , -2147483647, -9223372036854775807, -32767, -127, 0, 'binary-012', 'nchar-0123', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + sql = '''select * from table_2 where ts = %d ;''' %(self.ts - 500) + tdSql.query(sql) + tdSql.checkData(0,1,-2147483647) + tdSql.checkData(0,2,-9223372036854775807) + tdSql.checkData(0,3,-32767) + tdSql.checkData(0,4,-127) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-012') + tdSql.checkData(0,7,'nchar-0123') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:44.090') + sql = '''select * from stable_1 where loc = 'table_2' and ts = %d ;''' %(self.ts - 500) + tdSql.query(sql) + tdSql.checkData(0,1,-2147483647) + tdSql.checkData(0,2,-9223372036854775807) + tdSql.checkData(0,3,-32767) + tdSql.checkData(0,4,-127) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-012') + tdSql.checkData(0,7,'nchar-0123') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:44.090') + + tdSql.error('''insert into table_2 values( %d , 2147483648, 9223372036854775807, 32767, 127, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into table_2 values( %d , 2147483647, 9223372036854775808, 32767, 127, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into table_2 values( %d , 2147483647, 9223372036854775807, 32768, 127, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into table_2 values( %d , 2147483647, 9223372036854775807, 32767, 128, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into table_2 values( %d , 2147483647, 9223372036854775807, 32767, 127, 0, 'binary+0123', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into table_2 values( %d , 2147483647, 9223372036854775807, 32767, 127, 0, 'binary+0', 'nchar+01234', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + + tdSql.execute('''insert into table_2 values( %d , 2147483647, 9223372036854775807, 32767, 127, 0, 'binary+012', 'nchar+0123', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + sql = '''select * from table_2 where ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,2147483647) + tdSql.checkData(0,2,9223372036854775807) + tdSql.checkData(0,3,32767) + tdSql.checkData(0,4,127) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary+012') + tdSql.checkData(0,7,'nchar+0123') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:44.090') + sql = '''select * from stable_1 where loc = 'table_2' and ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,2147483647) + tdSql.checkData(0,2,9223372036854775807) + tdSql.checkData(0,3,32767) + tdSql.checkData(0,4,127) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary+012') + tdSql.checkData(0,7,'nchar+0123') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:44.090') + tdSql.execute('''insert into table_2 values( %d , -2147483647, -9223372036854775807, -32767, -127, 0, 'binary-012', 'nchar-0123', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + sql = '''select * from table_1 where ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,-2147483647) + tdSql.checkData(0,2,-9223372036854775807) + tdSql.checkData(0,3,-32767) + tdSql.checkData(0,4,-127) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-012') + tdSql.checkData(0,7,'nchar-0123') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + sql = '''select * from stable_1 where loc = 'table_2' and ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,-2147483647) + tdSql.checkData(0,2,-9223372036854775807) + tdSql.checkData(0,3,-32767) + tdSql.checkData(0,4,-127) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-012') + tdSql.checkData(0,7,'nchar-0123') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + + + tdLog.info("========== 4096 regular_table ==========") + sql = '''insert into regular_table_4096_2 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4095 ) + values('2020-09-13 20:26:40.000' , 1 , 501 , 101 , 1501 , 2001 , 1 , 3001 , '3501' , '3801' ,'2020-09-13 20:26:44.090','1600000000000');''' + tdSql.execute(sql) + tdSql.query("select * from regular_table_4096_2 where ts ='2020-09-13 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.090') + tdSql.checkData(0,4095,'1600000000000') + + sql = '''insert into regular_table_4096_2 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4095 ) + values('2020-09-10 20:26:40.000' , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL);''' + tdSql.execute(sql) + tdSql.query("select * from regular_table_4096_2 where ts ='2020-09-10 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-10 20:26:44.090') + tdSql.checkData(0,4095,'1500000000000') + + sql = '''insert into regular_table_4096_2 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4095 ) + values('2020-09-13 20:26:40.000' , 2 , 502 , 102 , 1502 , 2002 , 0 , 3002 , '3502' , '3802' ,'2020-09-13 20:26:44.092','1600000002000');''' + tdSql.execute(sql) + tdSql.query("select * from regular_table_4096_2 where ts ='2020-09-13 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,2) + tdSql.checkData(0,501,502) + tdSql.checkData(0,1001,102) + tdSql.checkData(0,1501,1502) + tdSql.checkData(0,2001,2002) + tdSql.checkData(0,2501,'False') + tdSql.checkData(0,3001,3002) + tdSql.checkData(0,3501,'3502') + tdSql.checkData(0,3801,'3802') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.092') + tdSql.checkData(0,4095,'1600000002000') + + + tdLog.info("========== 4096 stable ==========") + sql = '''insert into table_4096_2 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4093 ) + values('2020-09-13 20:26:40.000' , 1 , 501 , 101 , 1501 , 2001 , 1 , 3001 , '3501' , '3801' ,'2020-09-13 20:26:44.090','1600000000000');''' + tdSql.execute(sql) + tdSql.query("select * from table_4096_2 where ts ='2020-09-13 20:26:40.000';") + tdSql.checkCols(4094) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.090') + tdSql.checkData(0,4093,'1600000000000') + tdSql.query("select * from stable_4096_2 where ts ='2020-09-13 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.090') + tdSql.checkData(0,4093,'1600000000000') + + sql = '''insert into table_4096_2 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4093 ) + values('2020-09-10 20:26:40.000' , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL);''' + tdSql.execute(sql) + tdSql.query("select * from table_4096_2 where ts ='2020-09-10 20:26:40.000';") + tdSql.checkCols(4094) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-10 20:26:44.090') + tdSql.checkData(0,4093,'1500000000000') + tdSql.query("select * from stable_4096_2 where ts ='2020-09-10 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-10 20:26:44.090') + tdSql.checkData(0,4093,'1500000000000') + + sql = '''insert into table_4096_2 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4093 ) + values('2020-09-13 20:26:40.000' , 2 , 502 , 102 , 1502 , 2002 , 0 , 3002 , '3502' , '3802' ,'2020-09-13 20:26:44.092','1600000002000');''' + tdSql.execute(sql) + tdSql.query("select * from table_4096_2 where ts ='2020-09-13 20:26:40.000';") + tdSql.checkCols(4094) + tdSql.checkData(0,1,2) + tdSql.checkData(0,501,502) + tdSql.checkData(0,1001,102) + tdSql.checkData(0,1501,1502) + tdSql.checkData(0,2001,2002) + tdSql.checkData(0,2501,'False') + tdSql.checkData(0,3001,3002) + tdSql.checkData(0,3501,'3502') + tdSql.checkData(0,3801,'3802') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.092') + tdSql.checkData(0,4093,'1600000002000') + tdSql.query("select * from stable_4096_2 where ts ='2020-09-13 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,2) + tdSql.checkData(0,501,502) + tdSql.checkData(0,1001,102) + tdSql.checkData(0,1501,1502) + tdSql.checkData(0,2001,2002) + tdSql.checkData(0,2501,'False') + tdSql.checkData(0,3001,3002) + tdSql.checkData(0,3501,'3502') + tdSql.checkData(0,3801,'3802') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.092') + tdSql.checkData(0,4093,'1600000002000') + + + tdLog.info("========== test1.3 : insert data , tdDnodes restart force data dropping disk , check data==========") + tdLog.info("========== regular_table ==========") + tdSql.execute('''insert into regular_table_3 values( %d , 0, 0, 0, 0, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 200)) + sql = '''select * from regular_table_3 where ts = %d ;''' %(self.ts - 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-0') + tdSql.checkData(0,7,'nchar-0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + + tdSql.execute('''insert into regular_table_3 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts + 200)) + sql = '''select * from regular_table_3 where ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdSql.execute('''insert into regular_table_3 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts - 500)) + sql = '''select * from regular_table_3 where ts = %d ;''' %(self.ts - 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdSql.execute('''insert into regular_table_3 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts + 500)) + sql = '''select * from regular_table_3 where ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdLog.info("========== stable ==========") + tdSql.execute('''insert into table_3 values( %d , 0, 0, 0, 0, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 200)) + sql = '''select * from table_3 where ts = %d ;''' %(self.ts - 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-0') + tdSql.checkData(0,7,'nchar-0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + sql = '''select * from stable_1 where loc = 'table_3' and ts = %d ;''' %(self.ts - 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-0') + tdSql.checkData(0,7,'nchar-0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + + tdSql.execute('''insert into table_3 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts + 200)) + sql = '''select * from table_3 where ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + sql = '''select * from stable_1 where loc = 'table_3' and ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdSql.execute('''insert into table_3 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts - 500)) + sql = '''select * from table_3 where ts = %d ;''' %(self.ts - 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + sql = '''select * from stable_1 where loc = 'table_3' and ts = %d ;''' %(self.ts - 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + tdSql.execute('''insert into table_3 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts + 500)) + sql = '''select * from table_3 where ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + sql = '''select * from stable_1 where loc = 'table_3' and ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,None) + tdSql.checkData(0,2,None) + tdSql.checkData(0,3,None) + tdSql.checkData(0,4,None) + tdSql.checkData(0,5,None) + tdSql.checkData(0,6,None) + tdSql.checkData(0,7,None) + tdSql.checkData(0,8,None) + tdSql.checkData(0,9,None) + tdSql.checkData(0,10,None) + + + tdLog.info("========== 4096 regular_table ==========") + sql = "create table regular_table_4096_3 (ts timestamp, " + for i in range(500): + sql += "int_%d int, " % (i + 1) + for i in range(500,1000): + sql += "smallint_%d smallint, " % (i + 1) + for i in range(1000,1500): + sql += "tinyint_%d tinyint, " % (i + 1) + for i in range(1500,2000): + sql += "double_%d double, " % (i + 1) + for i in range(2000,2500): + sql += "float_%d float, " % (i + 1) + for i in range(2500,3000): + sql += "bool_%d bool, " % (i + 1) + for i in range(3000,3500): + sql += "bigint_%d bigint, " % (i + 1) + for i in range(3500,3800): + sql += "nchar_%d nchar(4), " % (i + 1) + for i in range(3800,4090): + sql += "binary_%d binary(10), " % (i + 1) + for i in range(4090,4094): + sql += "timestamp_%d timestamp, " % (i + 1) + sql += "col4095 binary(22))" + tdLog.info(len(sql)) + tdSql.execute(sql) + + for i in range(self.num4096): + sql = "insert into regular_table_4096_3 values(%d, " + for j in range(4090): + str = "'%s', " % 'NULL' + sql += str + for j in range(4090,4094): + str = "%s, " % (self.ts + j) + sql += str + sql += "'%s')" % (self.ts + i) + tdSql.execute(sql % (self.ts + i)) + tdSql.query('''select * from regular_table_4096_3 where ts = %d ;''' %(self.ts)) + tdSql.checkCols(4096) + tdSql.checkData(0,1,None) + tdSql.checkData(0,501,None) + tdSql.checkData(0,1001,None) + tdSql.checkData(0,1501,None) + tdSql.checkData(0,2001,None) + tdSql.checkData(0,2501,None) + tdSql.checkData(0,3001,None) + tdSql.checkData(0,3501,'NULL') + tdSql.checkData(0,3801,'NULL') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.090') + tdSql.checkData(0,4095,'1600000000000') + + sql = '''insert into regular_table_4096_3 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4095 ) + values('2020-09-10 20:26:40.000' , 1 , 501 , 101 , 1501 , 2001 , 1 , 3001 , '3501' , '3801' ,'2020-09-10 20:26:44.090','1500000000000');''' + tdSql.execute(sql) + tdSql.query("select * from regular_table_4096_3 where ts ='2020-09-10 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-10 20:26:44.090') + tdSql.checkData(0,4095,'1500000000000') + + tdLog.info("========== 4096 stable ==========") + sql = "create stable stable_4096_3 (ts timestamp, " + for i in range(500): + sql += "int_%d int, " % (i + 1) + for i in range(500,1000): + sql += "smallint_%d smallint, " % (i + 1) + for i in range(1000,1500): + sql += "tinyint_%d tinyint, " % (i + 1) + for i in range(1500,2000): + sql += "double_%d double, " % (i + 1) + for i in range(2000,2500): + sql += "float_%d float, " % (i + 1) + for i in range(2500,3000): + sql += "bool_%d bool, " % (i + 1) + for i in range(3000,3500): + sql += "bigint_%d bigint, " % (i + 1) + for i in range(3500,3800): + sql += "nchar_%d nchar(4), " % (i + 1) + for i in range(3800,4090): + sql += "binary_%d binary(10), " % (i + 1) + for i in range(4090,4092): + sql += "timestamp_%d timestamp, " % (i + 1) + sql += " col4093 binary(22)) " + sql += " tags (loc nchar(20),tag_1 int) " + tdLog.info(len(sql)) + tdSql.execute(sql) + + sql = " create table table_4096_3 using stable_4096_3 tags ('table_4096_3',1); " + tdSql.execute(sql) + + for i in range(self.num4096): + sql = "insert into table_4096_3 values(%d, " + for j in range(4090): + str = "'%s', " % 'NULL' + sql += str + for j in range(4090,4092): + str = "%s, " % (self.ts + j) + sql += str + sql += "'%s')" % (self.ts + i) + tdSql.execute(sql % (self.ts + i)) + tdSql.query('''select * from table_4096_3 where ts = %d ;''' %(self.ts)) + tdSql.checkCols(4094) + tdSql.checkData(0,1,None) + tdSql.checkData(0,501,None) + tdSql.checkData(0,1001,None) + tdSql.checkData(0,1501,None) + tdSql.checkData(0,2001,None) + tdSql.checkData(0,2501,None) + tdSql.checkData(0,3001,None) + tdSql.checkData(0,3501,'NULL') + tdSql.checkData(0,3801,'NULL') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.090') + tdSql.checkData(0,4093,'1600000000000') + tdSql.query('''select * from stable_4096_3 where ts = %d ;''' %(self.ts)) + tdSql.checkCols(4096) + tdSql.checkData(0,1,None) + tdSql.checkData(0,501,None) + tdSql.checkData(0,1001,None) + tdSql.checkData(0,1501,None) + tdSql.checkData(0,2001,None) + tdSql.checkData(0,2501,None) + tdSql.checkData(0,3001,None) + tdSql.checkData(0,3501,'NULL') + tdSql.checkData(0,3801,'NULL') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.090') + tdSql.checkData(0,4093,'1600000000000') + + sql = '''insert into table_4096_3 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4093 ) + values('2020-09-10 20:26:40.000' , 1 , 501 , 101 , 1501 , 2001 , 1 , 3001 , '3501' , '3801' ,'2020-09-10 20:26:44.090','1500000000000');''' + tdSql.execute(sql) + tdSql.query("select * from table_4096_3 where ts ='2020-09-10 20:26:40.000';") + tdSql.checkCols(4094) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-10 20:26:44.090') + tdSql.checkData(0,4093,'1500000000000') + tdSql.query("select * from stable_4096_3 where ts ='2020-09-10 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-10 20:26:44.090') + tdSql.checkData(0,4093,'1500000000000') + + # tdDnodes restart force data dropping disk + tdDnodes.stop(1) + tdDnodes.start(1) + + tdLog.info("========== regular_table ==========") + tdSql.execute('''insert into regular_table_3 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts - 200)) + sql = '''select * from regular_table_3 where ts = %d ;''' %(self.ts - 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-0') + tdSql.checkData(0,7,'nchar-0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + + tdSql.execute('''insert into regular_table_3 values( %d , 0, 0, 0, 0, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 200)) + sql = '''select * from regular_table_3 where ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary+0') + tdSql.checkData(0,7,'nchar+0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + tdSql.execute('''insert into regular_table_3 values( %d , 1, 1, 1, 1, 1, 'binary+1', 'nchar+1', 1.000000, 1.000000, 1600000001000);''' %(self.ts + 200)) + sql = '''select * from regular_table_3 where ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,1) + tdSql.checkData(0,2,1) + tdSql.checkData(0,3,1) + tdSql.checkData(0,4,1) + tdSql.checkData(0,5,'True') + tdSql.checkData(0,6,'binary+1') + tdSql.checkData(0,7,'nchar+1') + tdSql.checkData(0,8,1) + tdSql.checkData(0,9,1) + tdSql.checkData(0,10,'2020-09-13 20:26:41.000') + + tdSql.error('''insert into regular_table_3 values( %d , -2147483648, -9223372036854775807, -32767, -127, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into regular_table_3 values( %d , -2147483647, -9223372036854775808, -32767, -127, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into regular_table_3 values( %d , -2147483647, -9223372036854775807, -32768, -127, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into regular_table_3 values( %d , -2147483647, -9223372036854775807, -32767, -128, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into regular_table_3 values( %d , -2147483647, -9223372036854775807, -32767, -127, 0, 'binary-0123', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into regular_table_3 values( %d , -2147483647, -9223372036854775807, -32767, -127, 0, 'binary-0', 'nchar-01234', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + + tdSql.execute('''insert into regular_table_3 values( %d , -2147483647, -9223372036854775807, -32767, -127, 0, 'binary-012', 'nchar-0123', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + sql = '''select * from regular_table_3 where ts = %d ;''' %(self.ts - 500) + tdSql.query(sql) + tdSql.checkData(0,1,-2147483647) + tdSql.checkData(0,2,-9223372036854775807) + tdSql.checkData(0,3,-32767) + tdSql.checkData(0,4,-127) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-012') + tdSql.checkData(0,7,'nchar-0123') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:44.090') + + tdSql.error('''insert into regular_table_3 values( %d , 2147483648, 9223372036854775807, 32767, 127, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into regular_table_3 values( %d , 2147483647, 9223372036854775808, 32767, 127, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into regular_table_3 values( %d , 2147483647, 9223372036854775807, 32768, 127, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into regular_table_3 values( %d , 2147483647, 9223372036854775807, 32767, 128, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into regular_table_3 values( %d , 2147483647, 9223372036854775807, 32767, 127, 0, 'binary+0123', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into regular_table_3 values( %d , 2147483647, 9223372036854775807, 32767, 127, 0, 'binary+0', 'nchar+01234', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + + tdSql.execute('''insert into regular_table_3 values( %d , 2147483647, 9223372036854775807, 32767, 127, 0, 'binary+012', 'nchar+0123', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + sql = '''select * from regular_table_3 where ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,2147483647) + tdSql.checkData(0,2,9223372036854775807) + tdSql.checkData(0,3,32767) + tdSql.checkData(0,4,127) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary+012') + tdSql.checkData(0,7,'nchar+0123') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:44.090') + tdSql.execute('''insert into regular_table_3 values( %d , -2147483647, -9223372036854775807, -32767, -127, 0, 'binary-012', 'nchar-0123', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + sql = '''select * from regular_table_3 where ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,-2147483647) + tdSql.checkData(0,2,-9223372036854775807) + tdSql.checkData(0,3,-32767) + tdSql.checkData(0,4,-127) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-012') + tdSql.checkData(0,7,'nchar-0123') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + + tdLog.info("========== stable ==========") + tdSql.execute('''insert into table_3 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts - 200)) + sql = '''select * from table_3 where ts = %d ;''' %(self.ts - 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-0') + tdSql.checkData(0,7,'nchar-0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + sql = '''select * from stable_1 where loc = 'table_3' and ts = %d ;''' %(self.ts - 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-0') + tdSql.checkData(0,7,'nchar-0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + + tdSql.execute('''insert into table_3 values( %d , 0, 0, 0, 0, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 200)) + sql = '''select * from table_3 where ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary+0') + tdSql.checkData(0,7,'nchar+0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + sql = '''select * from stable_1 where loc = 'table_3' and ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary+0') + tdSql.checkData(0,7,'nchar+0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + + tdSql.execute('''insert into table_3 values( %d , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);''' %(self.ts + 200)) + sql = '''select * from table_3 where ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary+0') + tdSql.checkData(0,7,'nchar+0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + sql = '''select * from stable_1 where loc = 'table_3' and ts = %d ;''' %(self.ts + 200) + tdSql.query(sql) + tdSql.checkData(0,1,0) + tdSql.checkData(0,2,0) + tdSql.checkData(0,3,0) + tdSql.checkData(0,4,0) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary+0') + tdSql.checkData(0,7,'nchar+0') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + + tdSql.error('''insert into table_3 values( %d , -2147483648, -9223372036854775807, -32767, -127, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into table_3 values( %d , -2147483647, -9223372036854775808, -32767, -127, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into table_3 values( %d , -2147483647, -9223372036854775807, -32768, -127, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into table_3 values( %d , -2147483647, -9223372036854775807, -32767, -128, 0, 'binary-0', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into table_3 values( %d , -2147483647, -9223372036854775807, -32767, -127, 0, 'binary-0123', 'nchar-0', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + tdSql.error('''insert into table_3 values( %d , -2147483647, -9223372036854775807, -32767, -127, 0, 'binary-0', 'nchar-01234', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + + tdSql.execute('''insert into table_3 values( %d , -2147483647, -9223372036854775807, -32767, -127, 0, 'binary-012', 'nchar-0123', 0.000000, 0.000000, 1600000000000);''' %(self.ts - 500)) + sql = '''select * from table_3 where ts = %d ;''' %(self.ts - 500) + tdSql.query(sql) + tdSql.checkData(0,1,-2147483647) + tdSql.checkData(0,2,-9223372036854775807) + tdSql.checkData(0,3,-32767) + tdSql.checkData(0,4,-127) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-012') + tdSql.checkData(0,7,'nchar-0123') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:44.090') + sql = '''select * from stable_1 where loc = 'table_3' and ts = %d ;''' %(self.ts - 500) + tdSql.query(sql) + tdSql.checkData(0,1,-2147483647) + tdSql.checkData(0,2,-9223372036854775807) + tdSql.checkData(0,3,-32767) + tdSql.checkData(0,4,-127) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-012') + tdSql.checkData(0,7,'nchar-0123') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:44.090') + + tdSql.error('''insert into table_3 values( %d , 2147483648, 9223372036854775807, 32767, 127, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into table_3 values( %d , 2147483647, 9223372036854775808, 32767, 127, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into table_3 values( %d , 2147483647, 9223372036854775807, 32768, 127, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into table_3 values( %d , 2147483647, 9223372036854775807, 32767, 128, 0, 'binary+0', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into table_3 values( %d , 2147483647, 9223372036854775807, 32767, 127, 0, 'binary+0123', 'nchar+0', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + tdSql.error('''insert into table_3 values( %d , 2147483647, 9223372036854775807, 32767, 127, 0, 'binary+0', 'nchar+01234', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + + tdSql.execute('''insert into table_3 values( %d , 2147483647, 9223372036854775807, 32767, 127, 0, 'binary+012', 'nchar+0123', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + sql = '''select * from table_3 where ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,2147483647) + tdSql.checkData(0,2,9223372036854775807) + tdSql.checkData(0,3,32767) + tdSql.checkData(0,4,127) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary+012') + tdSql.checkData(0,7,'nchar+0123') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:44.090') + sql = '''select * from stable_1 where loc = 'table_3' and ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,2147483647) + tdSql.checkData(0,2,9223372036854775807) + tdSql.checkData(0,3,32767) + tdSql.checkData(0,4,127) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary+012') + tdSql.checkData(0,7,'nchar+0123') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:44.090') + tdSql.execute('''insert into table_3 values( %d , -2147483647, -9223372036854775807, -32767, -127, 0, 'binary-012', 'nchar-0123', 0.000000, 0.000000, 1600000000000);''' %(self.ts + 500)) + sql = '''select * from table_3 where ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,-2147483647) + tdSql.checkData(0,2,-9223372036854775807) + tdSql.checkData(0,3,-32767) + tdSql.checkData(0,4,-127) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-012') + tdSql.checkData(0,7,'nchar-0123') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + sql = '''select * from stable_1 where loc = 'table_3' and ts = %d ;''' %(self.ts + 500) + tdSql.query(sql) + tdSql.checkData(0,1,-2147483647) + tdSql.checkData(0,2,-9223372036854775807) + tdSql.checkData(0,3,-32767) + tdSql.checkData(0,4,-127) + tdSql.checkData(0,5,'False') + tdSql.checkData(0,6,'binary-012') + tdSql.checkData(0,7,'nchar-0123') + tdSql.checkData(0,8,0) + tdSql.checkData(0,9,0) + tdSql.checkData(0,10,'2020-09-13 20:26:40.000') + + + + tdLog.info("========== 4096 regular_table ==========") + sql = '''insert into regular_table_4096_3 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4095 ) + values('2020-09-13 20:26:40.000' , 1 , 501 , 101 , 1501 , 2001 , 1 , 3001 , '3501' , '3801' ,'2020-09-13 20:26:44.090','1600000000000');''' + tdSql.execute(sql) + tdSql.query("select * from regular_table_4096_3 where ts ='2020-09-13 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.090') + tdSql.checkData(0,4095,'1600000000000') + + sql = '''insert into regular_table_4096_3 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4095 ) + values('2020-09-10 20:26:40.000' , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL);''' + tdSql.execute(sql) + tdSql.query("select * from regular_table_4096_3 where ts ='2020-09-10 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-10 20:26:44.090') + tdSql.checkData(0,4095,'1500000000000') + + sql = '''insert into regular_table_4096_3 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4095 ) + values('2020-09-13 20:26:40.000' , 2 , 502 , 102 , 1502 , 2002 , 0 , 3002 , '3502' , '3802' ,'2020-09-13 20:26:44.092','1600000002000');''' + tdSql.execute(sql) + tdSql.query("select * from regular_table_4096_3 where ts ='2020-09-13 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,2) + tdSql.checkData(0,501,502) + tdSql.checkData(0,1001,102) + tdSql.checkData(0,1501,1502) + tdSql.checkData(0,2001,2002) + tdSql.checkData(0,2501,'False') + tdSql.checkData(0,3001,3002) + tdSql.checkData(0,3501,'3502') + tdSql.checkData(0,3801,'3802') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.092') + tdSql.checkData(0,4095,'1600000002000') + + + tdLog.info("========== 4096 stable ==========") + sql = '''insert into table_4096_3 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4093 ) + values('2020-09-13 20:26:40.000' , 1 , 501 , 101 , 1501 , 2001 , 1 , 3001 , '3501' , '3801' ,'2020-09-13 20:26:44.090','1600000000000');''' + tdSql.execute(sql) + tdSql.query("select * from table_4096_3 where ts ='2020-09-13 20:26:40.000';") + tdSql.checkCols(4094) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.090') + tdSql.checkData(0,4093,'1600000000000') + tdSql.query("select * from stable_4096_3 where ts ='2020-09-13 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.090') + tdSql.checkData(0,4093,'1600000000000') + + sql = '''insert into table_4096_3 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4093 ) + values('2020-09-10 20:26:40.000' , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL , NULL);''' + tdSql.execute(sql) + tdSql.query("select * from table_4096_3 where ts ='2020-09-10 20:26:40.000';") + tdSql.checkCols(4094) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-10 20:26:44.090') + tdSql.checkData(0,4093,'1500000000000') + tdSql.query("select * from stable_4096_3 where ts ='2020-09-10 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,1) + tdSql.checkData(0,501,501) + tdSql.checkData(0,1001,101) + tdSql.checkData(0,1501,1501) + tdSql.checkData(0,2001,2001) + tdSql.checkData(0,2501,'True') + tdSql.checkData(0,3001,3001) + tdSql.checkData(0,3501,'3501') + tdSql.checkData(0,3801,'3801') + tdSql.checkData(0,4091,'2020-09-10 20:26:44.090') + tdSql.checkData(0,4093,'1500000000000') + + sql = '''insert into table_4096_3 (ts , int_1,smallint_501 , tinyint_1001 , double_1501 , float_2001 , bool_2501 , + bigint_3001 , nchar_3501 , binary_3801 , timestamp_4091 , col4093 ) + values('2020-09-13 20:26:40.000' , 2 , 502 , 102 , 1502 , 2002 , 0 , 3002 , '3502' , '3802' ,'2020-09-13 20:26:44.092','1600000002000');''' + tdSql.execute(sql) + tdSql.query("select * from table_4096_3 where ts ='2020-09-13 20:26:40.000';") + tdSql.checkCols(4094) + tdSql.checkData(0,1,2) + tdSql.checkData(0,501,502) + tdSql.checkData(0,1001,102) + tdSql.checkData(0,1501,1502) + tdSql.checkData(0,2001,2002) + tdSql.checkData(0,2501,'False') + tdSql.checkData(0,3001,3002) + tdSql.checkData(0,3501,'3502') + tdSql.checkData(0,3801,'3802') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.092') + tdSql.checkData(0,4093,'1600000002000') + tdSql.query("select * from stable_4096_3 where ts ='2020-09-13 20:26:40.000';") + tdSql.checkCols(4096) + tdSql.checkData(0,1,2) + tdSql.checkData(0,501,502) + tdSql.checkData(0,1001,102) + tdSql.checkData(0,1501,1502) + tdSql.checkData(0,2001,2002) + tdSql.checkData(0,2501,'False') + tdSql.checkData(0,3001,3002) + tdSql.checkData(0,3501,'3502') + tdSql.checkData(0,3801,'3802') + tdSql.checkData(0,4091,'2020-09-13 20:26:44.092') + tdSql.checkData(0,4093,'1600000002000') + + + endTime = time.time() + print("total time %ds" % (endTime - startTime)) + + + def stop(self): + tdSql.close() + tdLog.success("%s successfully executed" % __file__) + + +tdCases.addWindows(__file__, TDTestCase()) +tdCases.addLinux(__file__, TDTestCase()) \ No newline at end of file diff --git a/tests/pytest/insert/schemalessInsert.py b/tests/pytest/insert/schemalessInsert.py new file mode 100644 index 0000000000000000000000000000000000000000..5c93095a1ee414a1559f48595a3e2e412463e829 --- /dev/null +++ b/tests/pytest/insert/schemalessInsert.py @@ -0,0 +1,1234 @@ +################################################################### +# Copyright (c) 2021 by TAOS Technologies, Inc. +# All rights reserved. +# +# This file is proprietary and confidential to TAOS Technologies. +# No part of this file may be reproduced, stored, transmitted, +# disclosed or used in any form or by any means other than as +# expressly provided by the written permission from Jianhui Tao +# +################################################################### + +# -*- coding: utf-8 -*- + +import random +import string +import time +from copy import deepcopy +import numpy as np +from util.log import * +from util.cases import * +from util.sql import * +import threading + + +class TDTestCase: + def init(self, conn, logSql): + tdLog.debug("start to execute %s" % __file__) + tdSql.init(conn.cursor(), logSql) + self._conn = conn + + def createDb(self, name="test", db_update_tag=0): + if db_update_tag == 0: + tdSql.execute(f"drop database if exists {name}") + tdSql.execute(f"create database if not exists {name} precision 'us'") + else: + tdSql.execute(f"drop database if exists {name}") + tdSql.execute(f"create database if not exists {name} precision 'us' update 1") + tdSql.execute(f'use {name}') + + def getLongName(self, len, mode = "mixed"): + """ + generate long name + mode could be numbers/letters/mixed + """ + if mode is "numbers": + chars = ''.join(random.choice(string.digits) for i in range(len)) + elif mode is "letters": + chars = ''.join(random.choice(string.ascii_letters.lower()) for i in range(len)) + else: + chars = ''.join(random.choice(string.ascii_letters.lower() + string.digits) for i in range(len)) + return chars + + def timeTrans(self, time_value): + if time_value.endswith("ns"): + ts = int(''.join(list(filter(str.isdigit, time_value))))/1000000000 + elif time_value.endswith("us") or time_value.isdigit() and int(time_value) != 0: + ts = int(''.join(list(filter(str.isdigit, time_value))))/1000000 + elif time_value.endswith("ms"): + ts = int(''.join(list(filter(str.isdigit, time_value))))/1000 + elif time_value.endswith("s") and list(time_value)[-1] not in "num": + ts = int(''.join(list(filter(str.isdigit, time_value))))/1 + elif int(time_value) == 0: + ts = time.time() + else: + print("input ts maybe not right format") + ulsec = repr(ts).split('.')[1][:6] + if len(ulsec) < 6 and int(ulsec) != 0: + ulsec = int(ulsec) * (10 ** (6 - len(ulsec))) + elif int(ulsec) == 0: + ulsec *= 6 + # * follow two rows added for tsCheckCase + td_ts = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(ts)) + return td_ts + #td_ts = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(ts)) + td_ts = time.strftime("%Y-%m-%d %H:%M:%S.{}".format(ulsec), time.localtime(ts)) + return td_ts + #return repr(datetime.datetime.strptime(td_ts, "%Y-%m-%d %H:%M:%S.%f")) + + def dateToTs(self, datetime_input): + return int(time.mktime(time.strptime(datetime_input, "%Y-%m-%d %H:%M:%S.%f"))) + + def getTdTypeValue(self, value): + if value.endswith("i8"): + td_type = "TINYINT" + td_tag_value = ''.join(list(value)[:-2]) + elif value.endswith("i16"): + td_type = "SMALLINT" + td_tag_value = ''.join(list(value)[:-3]) + elif value.endswith("i32"): + td_type = "INT" + td_tag_value = ''.join(list(value)[:-3]) + elif value.endswith("i64"): + td_type = "BIGINT" + td_tag_value = ''.join(list(value)[:-3]) + elif value.endswith("u64"): + td_type = "BIGINT UNSIGNED" + td_tag_value = ''.join(list(value)[:-3]) + elif value.endswith("f32"): + td_type = "FLOAT" + td_tag_value = ''.join(list(value)[:-3]) + td_tag_value = '{}'.format(np.float32(td_tag_value)) + elif value.endswith("f64"): + td_type = "DOUBLE" + td_tag_value = ''.join(list(value)[:-3]) + elif value.startswith('L"'): + td_type = "NCHAR" + td_tag_value = ''.join(list(value)[2:-1]) + elif value.startswith('"') and value.endswith('"'): + td_type = "BINARY" + td_tag_value = ''.join(list(value)[1:-1]) + elif value.lower() == "t" or value == "true" or value == "True": + td_type = "BOOL" + td_tag_value = "True" + elif value.lower() == "f" or value == "false" or value == "False": + td_type = "BOOL" + td_tag_value = "False" + else: + td_type = "FLOAT" + td_tag_value = value + return td_type, td_tag_value + + def typeTrans(self, type_list): + type_num_list = [] + for tp in type_list: + if tp.upper() == "TIMESTAMP": + type_num_list.append(9) + elif tp.upper() == "BOOL": + type_num_list.append(1) + elif tp.upper() == "TINYINT": + type_num_list.append(2) + elif tp.upper() == "SMALLINT": + type_num_list.append(3) + elif tp.upper() == "INT": + type_num_list.append(4) + elif tp.upper() == "BIGINT": + type_num_list.append(5) + elif tp.upper() == "FLOAT": + type_num_list.append(6) + elif tp.upper() == "DOUBLE": + type_num_list.append(7) + elif tp.upper() == "BINARY": + type_num_list.append(8) + elif tp.upper() == "NCHAR": + type_num_list.append(10) + elif tp.upper() == "BIGINT UNSIGNED": + type_num_list.append(14) + return type_num_list + + def inputHandle(self, input_sql): + input_sql_split_list = input_sql.split(" ") + + stb_tag_list = input_sql_split_list[0].split(',') + stb_col_list = input_sql_split_list[1].split(',') + ts_value = self.timeTrans(input_sql_split_list[2]) + + stb_name = stb_tag_list[0] + stb_tag_list.pop(0) + + tag_name_list = [] + tag_value_list = [] + td_tag_value_list = [] + td_tag_type_list = [] + + col_name_list = [] + col_value_list = [] + td_col_value_list = [] + td_col_type_list = [] + + for elm in stb_tag_list: + if "id=" in elm.lower(): + tb_name = elm.split('=')[1] + else: + tag_name_list.append(elm.split("=")[0]) + tag_value_list.append(elm.split("=")[1]) + tb_name = "" + td_tag_value_list.append(self.getTdTypeValue(elm.split("=")[1])[1]) + td_tag_type_list.append(self.getTdTypeValue(elm.split("=")[1])[0]) + + for elm in stb_col_list: + col_name_list.append(elm.split("=")[0]) + col_value_list.append(elm.split("=")[1]) + td_col_value_list.append(self.getTdTypeValue(elm.split("=")[1])[1]) + td_col_type_list.append(self.getTdTypeValue(elm.split("=")[1])[0]) + + final_field_list = [] + final_field_list.extend(col_name_list) + final_field_list.extend(tag_name_list) + + final_type_list = [] + final_type_list.append("TIMESTAMP") + final_type_list.extend(td_col_type_list) + final_type_list.extend(td_tag_type_list) + final_type_list = self.typeTrans(final_type_list) + + final_value_list = [] + final_value_list.append(ts_value) + final_value_list.extend(td_col_value_list) + final_value_list.extend(td_tag_value_list) + return final_value_list, final_field_list, final_type_list, stb_name, tb_name + + def genFullTypeSql(self, stb_name="", tb_name="", t0="", t1="127i8", t2="32767i16", t3="2147483647i32", + t4="9223372036854775807i64", t5="11.12345f32", t6="22.123456789f64", t7="\"binaryTagValue\"", + t8="L\"ncharTagValue\"", c0="", c1="127i8", c2="32767i16", c3="2147483647i32", + c4="9223372036854775807i64", c5="11.12345f32", c6="22.123456789f64", c7="\"binaryColValue\"", + c8="L\"ncharColValue\"", c9="7u64", ts="1626006833639000000ns", + id_noexist_tag=None, id_change_tag=None, id_upper_tag=None, id_double_tag=None, + ct_add_tag=None, ct_am_tag=None, ct_ma_tag=None, ct_min_tag=None): + if stb_name == "": + stb_name = self.getLongName(len=6, mode="letters") + if tb_name == "": + tb_name = f'{stb_name}_{random.randint(0, 65535)}_{random.randint(0, 65535)}' + if t0 == "": + t0 = random.choice(["f", "F", "false", "False", "t", "T", "true", "True"]) + if c0 == "": + c0 = random.choice(["f", "F", "false", "False", "t", "T", "true", "True"]) + #sql_seq = f'{stb_name},id=\"{tb_name}\",t0={t0},t1=127i8,t2=32767i16,t3=125.22f64,t4=11.321f32,t5=11.12345f32,t6=22.123456789f64,t7=\"binaryTagValue\",t8=L\"ncharTagValue\" c0={bool_value},c1=127i8,c2=32767i16,c3=2147483647i32,c4=9223372036854775807i64,c5=11.12345f32,c6=22.123456789f64,c7=\"binaryValue\",c8=L\"ncharValue\" 1626006833639000000ns' + if id_upper_tag is not None: + id = "ID" + else: + id = "id" + sql_seq = f'{stb_name},{id}=\"{tb_name}\",t0={t0},t1={t1},t2={t2},t3={t3},t4={t4},t5={t5},t6={t6},t7={t7},t8={t8} c0={c0},c1={c1},c2={c2},c3={c3},c4={c4},c5={c5},c6={c6},c7={c7},c8={c8},c9={c9} {ts}' + if id_noexist_tag is not None: + sql_seq = f'{stb_name},t0={t0},t1={t1},t2={t2},t3={t3},t4={t4},t5={t5},t6={t6},t7={t7},t8={t8} c0={c0},c1={c1},c2={c2},c3={c3},c4={c4},c5={c5},c6={c6},c7={c7},c8={c8},c9={c9} {ts}' + if ct_add_tag is not None: + sql_seq = f'{stb_name},t0={t0},t1={t1},t2={t2},t3={t3},t4={t4},t5={t5},t6={t6},t7={t7},t8={t8},t9={t8} c0={c0},c1={c1},c2={c2},c3={c3},c4={c4},c5={c5},c6={c6},c7={c7},c8={c8},c9={c9} {ts}' + if id_change_tag is not None: + sql_seq = f'{stb_name},t0={t0},t1={t1},{id}=\"{tb_name}\",t2={t2},t3={t3},t4={t4},t5={t5},t6={t6},t7={t7},t8={t8} c0={c0},c1={c1},c2={c2},c3={c3},c4={c4},c5={c5},c6={c6},c7={c7},c8={c8},c9={c9} {ts}' + if id_double_tag is not None: + sql_seq = f'{stb_name},{id}=\"{tb_name}_1\",t0={t0},t1={t1},{id}=\"{tb_name}_2\",t2={t2},t3={t3},t4={t4},t5={t5},t6={t6},t7={t7},t8={t8} c0={c0},c1={c1},c2={c2},c3={c3},c4={c4},c5={c5},c6={c6},c7={c7},c8={c8},c9={c9} {ts}' + if ct_add_tag is not None: + sql_seq = f'{stb_name},{id}=\"{tb_name}\",t0={t0},t1={t1},t2={t2},t3={t3},t4={t4},t5={t5},t6={t6},t7={t7},t8={t8},t11={t1},t10={t8} c0={c0},c1={c1},c2={c2},c3={c3},c4={c4},c5={c5},c6={c6},c7={c7},c8={c8},c9={c9},c11={c8},c10={t0} {ts}' + if ct_am_tag is not None: + sql_seq = f'{stb_name},{id}=\"{tb_name}\",t0={t0},t1={t1},t2={t2},t3={t3},t4={t4},t5={t5},t6={t6} c0={c0},c1={c1},c2={c2},c3={c3},c4={c4},c5={c5},c6={c6},c7={c7},c8={c8},c9={c9},c11={c8},c10={t0} {ts}' + if id_noexist_tag is not None: + sql_seq = f'{stb_name},t0={t0},t1={t1},t2={t2},t3={t3},t4={t4},t5={t5},t6={t6} c0={c0},c1={c1},c2={c2},c3={c3},c4={c4},c5={c5},c6={c6},c7={c7},c8={c8},c9={c9},c11={c8},c10={t0} {ts}' + if ct_ma_tag is not None: + sql_seq = f'{stb_name},{id}=\"{tb_name}\",t0={t0},t1={t1},t2={t2},t3={t3},t4={t4},t5={t5},t6={t6},t7={t7},t8={t8},t11={t1},t10={t8} c0={c0},c1={c1},c2={c2},c3={c3},c4={c4},c5={c5},c6={c6} {ts}' + if id_noexist_tag is not None: + sql_seq = f'{stb_name},t0={t0},t1={t1},t2={t2},t3={t3},t4={t4},t5={t5},t6={t6},t7={t7},t8={t8},t11={t1},t10={t8} c0={c0},c1={c1},c2={c2},c3={c3},c4={c4},c5={c5},c6={c6} {ts}' + if ct_min_tag is not None: + sql_seq = f'{stb_name},{id}=\"{tb_name}\",t0={t0},t1={t1},t2={t2},t3={t3},t4={t4},t5={t5},t6={t6} c0={c0},c1={c1},c2={c2},c3={c3},c4={c4},c5={c5},c6={c6} {ts}' + return sql_seq, stb_name + + def genMulTagColStr(self, genType, count): + """ + genType must be tag/col + """ + tag_str = "" + col_str = "" + if genType == "tag": + for i in range(0, count): + if i < (count-1): + tag_str += f't{i}=f,' + else: + tag_str += f't{i}=f ' + return tag_str + if genType == "col": + for i in range(0, count): + if i < (count-1): + col_str += f'c{i}=t,' + else: + col_str += f'c{i}=t ' + return col_str + + def genLongSql(self, tag_count, col_count): + stb_name = self.getLongName(7, mode="letters") + tb_name = f'{stb_name}_1' + tag_str = self.genMulTagColStr("tag", tag_count) + col_str = self.genMulTagColStr("col", col_count) + ts = "1626006833640000000ns" + long_sql = stb_name + ',' + f'id=\"{tb_name}\"' + ',' + tag_str + col_str + ts + return long_sql, stb_name + + def getNoIdTbName(self, stb_name): + query_sql = f"select tbname from {stb_name}" + tb_name = self.resHandle(query_sql, True)[0][0] + return tb_name + + def resHandle(self, query_sql, query_tag): + tdSql.execute('reset query cache') + row_info = tdSql.query(query_sql, query_tag) + col_info = tdSql.getColNameList(query_sql, query_tag) + res_row_list = [] + sub_list = [] + for row_mem in row_info: + for i in row_mem: + sub_list.append(str(i)) + res_row_list.append(sub_list) + res_field_list_without_ts = col_info[0][1:] + res_type_list = col_info[1] + return res_row_list, res_field_list_without_ts, res_type_list + + def resCmp(self, input_sql, stb_name, query_sql="select * from", condition="", ts=None, id=True, none_check_tag=None): + expect_list = self.inputHandle(input_sql) + self._conn.insertLines([input_sql]) + query_sql = f"{query_sql} {stb_name} {condition}" + res_row_list, res_field_list_without_ts, res_type_list = self.resHandle(query_sql, True) + if ts == 0: + res_ts = self.dateToTs(res_row_list[0][0]) + current_time = time.time() + if current_time - res_ts < 60: + tdSql.checkEqual(res_row_list[0][1:], expect_list[0][1:]) + else: + print("timeout") + tdSql.checkEqual(res_row_list[0], expect_list[0]) + else: + if none_check_tag is not None: + none_index_list = [i for i,x in enumerate(res_row_list[0]) if x=="None"] + none_index_list.reverse() + for j in none_index_list: + res_row_list[0].pop(j) + expect_list[0].pop(j) + tdSql.checkEqual(res_row_list[0], expect_list[0]) + tdSql.checkEqual(res_field_list_without_ts, expect_list[1]) + tdSql.checkEqual(res_type_list, expect_list[2]) + + def cleanStb(self): + query_sql = "show stables" + res_row_list = tdSql.query(query_sql, True) + stb_list = map(lambda x: x[0], res_row_list) + for stb in stb_list: + tdSql.execute(f'drop table if exists {stb}') + + def initCheckCase(self): + """ + normal tags and cols, one for every elm + """ + self.cleanStb() + input_sql, stb_name = self.genFullTypeSql() + self.resCmp(input_sql, stb_name) + + def boolTypeCheckCase(self): + """ + check all normal type + """ + self.cleanStb() + full_type_list = ["f", "F", "false", "False", "t", "T", "true", "True"] + for t_type in full_type_list: + input_sql, stb_name = self.genFullTypeSql(c0=t_type, t0=t_type) + self.resCmp(input_sql, stb_name) + + def symbolsCheckCase(self): + """ + check symbols = `~!@#$%^&*()_-+={[}]\|:;'\",<.>/? + """ + ''' + please test : + binary_symbols = '\"abcd`~!@#$%^&*()_-{[}]|:;<.>?lfjal"\'\'"\"' + ''' + self.cleanStb() + binary_symbols = '\"abcd`~!@#$%^&*()_-{[}]|:;<.>?lfjal"\"' + nchar_symbols = f'L{binary_symbols}' + input_sql, stb_name = self.genFullTypeSql(c7=binary_symbols, c8=nchar_symbols, t7=binary_symbols, t8=nchar_symbols) + self.resCmp(input_sql, stb_name) + + def tsCheckCase(self): + """ + test ts list --> ["1626006833639000000ns", "1626006833639019us", "1626006833640ms", "1626006834s", "1626006822639022"] + # ! us级时间戳都为0时,数据库中查询显示,但python接口拿到的结果不显示 .000000的情况请确认,目前修改时间处理代码可以通过 + """ + self.cleanStb() + ts_list = ["1626006833639000000ns", "1626006833639019us", "1626006833640ms", "1626006834s", "1626006822639022", 0] + for ts in ts_list: + input_sql, stb_name = self.genFullTypeSql(ts=ts) + self.resCmp(input_sql, stb_name, ts=ts) + + def idSeqCheckCase(self): + """ + check id.index in tags + eg: t0=**,id=**,t1=** + """ + self.cleanStb() + input_sql, stb_name = self.genFullTypeSql(id_change_tag=True) + self.resCmp(input_sql, stb_name) + + def idUpperCheckCase(self): + """ + check id param + eg: id and ID + """ + self.cleanStb() + input_sql, stb_name = self.genFullTypeSql(id_upper_tag=True) + self.resCmp(input_sql, stb_name) + input_sql, stb_name = self.genFullTypeSql(id_change_tag=True, id_upper_tag=True) + self.resCmp(input_sql, stb_name) + + def noIdCheckCase(self): + """ + id not exist + """ + self.cleanStb() + input_sql, stb_name = self.genFullTypeSql(id_noexist_tag=True) + self.resCmp(input_sql, stb_name) + query_sql = f"select tbname from {stb_name}" + res_row_list = self.resHandle(query_sql, True)[0] + if len(res_row_list[0][0]) > 0: + tdSql.checkColNameList(res_row_list, res_row_list) + else: + tdSql.checkColNameList(res_row_list, "please check noIdCheckCase") + + def maxColTagCheckCase(self): + """ + max tag count is 128 + max col count is ?? + """ + for input_sql in [self.genLongSql(128, 1)[0], self.genLongSql(1, 4094)[0]]: + self.cleanStb() + code = self._conn.insertLines([input_sql]) + tdSql.checkEqual(code, 0) + for input_sql in [self.genLongSql(129, 1)[0], self.genLongSql(1, 4095)[0]]: + self.cleanStb() + code = self._conn.insertLines([input_sql]) + tdSql.checkNotEqual(code, 0) + + def idIllegalNameCheckCase(self): + """ + test illegal id name + mix "`~!@#$¥%^&*()-+={}|[]、「」【】\:;《》<>?" + """ + self.cleanStb() + rstr = list("`~!@#$¥%^&*()-+={}|[]、「」【】\:;《》<>?") + for i in rstr: + input_sql = self.genFullTypeSql(tb_name=f"\"aaa{i}bbb\"")[0] + code = self._conn.insertLines([input_sql]) + tdSql.checkNotEqual(code, 0) + + def idStartWithNumCheckCase(self): + """ + id is start with num + """ + self.cleanStb() + input_sql = self.genFullTypeSql(tb_name=f"\"1aaabbb\"")[0] + code = self._conn.insertLines([input_sql]) + tdSql.checkNotEqual(code, 0) + + def nowTsCheckCase(self): + """ + check now unsupported + """ + self.cleanStb() + input_sql = self.genFullTypeSql(ts="now")[0] + code = self._conn.insertLines([input_sql]) + tdSql.checkNotEqual(code, 0) + + def dateFormatTsCheckCase(self): + """ + check date format ts unsupported + """ + self.cleanStb() + input_sql = self.genFullTypeSql(ts="2021-07-21\ 19:01:46.920")[0] + code = self._conn.insertLines([input_sql]) + tdSql.checkNotEqual(code, 0) + + def illegalTsCheckCase(self): + """ + check ts format like 16260068336390us19 + """ + self.cleanStb() + input_sql = self.genFullTypeSql(ts="16260068336390us19")[0] + code = self._conn.insertLines([input_sql]) + tdSql.checkNotEqual(code, 0) + + def tagValueLengthCheckCase(self): + """ + check full type tag value limit + """ + self.cleanStb() + # i8 + for t1 in ["-127i8", "127i8"]: + input_sql, stb_name = self.genFullTypeSql(t1=t1) + self.resCmp(input_sql, stb_name) + for t1 in ["-128i8", "128i8"]: + input_sql = self.genFullTypeSql(t1=t1)[0] + code = self._conn.insertLines([input_sql]) + tdSql.checkNotEqual(code, 0) + + #i16 + for t2 in ["-32767i16", "32767i16"]: + input_sql, stb_name = self.genFullTypeSql(t2=t2) + self.resCmp(input_sql, stb_name) + for t2 in ["-32768i16", "32768i16"]: + input_sql = self.genFullTypeSql(t2=t2)[0] + code = self._conn.insertLines([input_sql]) + tdSql.checkNotEqual(code, 0) + + #i32 + for t3 in ["-2147483647i32", "2147483647i32"]: + input_sql, stb_name = self.genFullTypeSql(t3=t3) + self.resCmp(input_sql, stb_name) + for t3 in ["-2147483648i32", "2147483648i32"]: + input_sql = self.genFullTypeSql(t3=t3)[0] + code = self._conn.insertLines([input_sql]) + tdSql.checkNotEqual(code, 0) + + #i64 + for t4 in ["-9223372036854775807i64", "9223372036854775807i64"]: + input_sql, stb_name = self.genFullTypeSql(t4=t4) + self.resCmp(input_sql, stb_name) + for t4 in ["-9223372036854775808i64", "9223372036854775808i64"]: + input_sql = self.genFullTypeSql(t4=t4)[0] + code = self._conn.insertLines([input_sql]) + tdSql.checkNotEqual(code, 0) + + # f32 + for t5 in [f"{-3.4028234663852885981170418348451692544*(10**38)}f32", f"{3.4028234663852885981170418348451692544*(10**38)}f32"]: + input_sql, stb_name = self.genFullTypeSql(t5=t5) + self.resCmp(input_sql, stb_name) + # * limit set to 4028234664*(10**38) + for t5 in [f"{-3.4028234664*(10**38)}f32", f"{3.4028234664*(10**38)}f32"]: + input_sql = self.genFullTypeSql(t5=t5)[0] + code = self._conn.insertLines([input_sql]) + tdSql.checkNotEqual(code, 0) + + # f64 + for t6 in [f'{-1.79769*(10**308)}f64', f'{-1.79769*(10**308)}f64']: + input_sql, stb_name = self.genFullTypeSql(t6=t6) + self.resCmp(input_sql, stb_name) + # * limit set to 1.797693134862316*(10**308) + for c6 in [f'{-1.797693134862316*(10**308)}f64', f'{-1.797693134862316*(10**308)}f64']: + input_sql = self.genFullTypeSql(c6=c6)[0] + code = self._conn.insertLines([input_sql]) + tdSql.checkNotEqual(code, 0) + + # binary + stb_name = self.getLongName(7, "letters") + input_sql = f'{stb_name},t0=t,t1="{self.getLongName(16374, "letters")}" c0=f 1626006833639000000ns' + code = self._conn.insertLines([input_sql]) + tdSql.checkEqual(code, 0) + input_sql = f'{stb_name},t0=t,t1="{self.getLongName(16375, "letters")}" c0=f 1626006833639000000ns' + code = self._conn.insertLines([input_sql]) + tdSql.checkNotEqual(code, 0) + + # nchar + # * legal nchar could not be larger than 16374/4 + stb_name = self.getLongName(7, "letters") + input_sql = f'{stb_name},t0=t,t1=L"{self.getLongName(4093, "letters")}" c0=f 1626006833639000000ns' + code = self._conn.insertLines([input_sql]) + tdSql.checkEqual(code, 0) + input_sql = f'{stb_name},t0=t,t1=L"{self.getLongName(4094, "letters")}" c0=f 1626006833639000000ns' + code = self._conn.insertLines([input_sql]) + tdSql.checkNotEqual(code, 0) + + def colValueLengthCheckCase(self): + """ + check full type col value limit + """ + self.cleanStb() + # i8 + for c1 in ["-127i8", "127i8"]: + input_sql, stb_name = self.genFullTypeSql(c1=c1) + self.resCmp(input_sql, stb_name) + + for c1 in ["-128i8", "128i8"]: + input_sql = self.genFullTypeSql(c1=c1)[0] + code = self._conn.insertLines([input_sql]) + tdSql.checkNotEqual(code, 0) + # i16 + for c2 in ["-32767i16"]: + input_sql, stb_name = self.genFullTypeSql(c2=c2) + self.resCmp(input_sql, stb_name) + for c2 in ["-32768i16", "32768i16"]: + input_sql = self.genFullTypeSql(c2=c2)[0] + code = self._conn.insertLines([input_sql]) + tdSql.checkNotEqual(code, 0) + + # i32 + for c3 in ["-2147483647i32"]: + input_sql, stb_name = self.genFullTypeSql(c3=c3) + self.resCmp(input_sql, stb_name) + for c3 in ["-2147483648i32", "2147483648i32"]: + input_sql = self.genFullTypeSql(c3=c3)[0] + code = self._conn.insertLines([input_sql]) + tdSql.checkNotEqual(code, 0) + + # i64 + for c4 in ["-9223372036854775807i64"]: + input_sql, stb_name = self.genFullTypeSql(c4=c4) + self.resCmp(input_sql, stb_name) + for c4 in ["-9223372036854775808i64", "9223372036854775808i64"]: + input_sql = self.genFullTypeSql(c4=c4)[0] + code = self._conn.insertLines([input_sql]) + tdSql.checkNotEqual(code, 0) + + # f32 + for c5 in [f"{-3.4028234663852885981170418348451692544*(10**38)}f32", f"{3.4028234663852885981170418348451692544*(10**38)}f32"]: + input_sql, stb_name = self.genFullTypeSql(c5=c5) + self.resCmp(input_sql, stb_name) + # * limit set to 4028234664*(10**38) + for c5 in [f"{-3.4028234664*(10**38)}f32", f"{3.4028234664*(10**38)}f32"]: + input_sql = self.genFullTypeSql(c5=c5)[0] + code = self._conn.insertLines([input_sql]) + tdSql.checkNotEqual(code, 0) + + # f64 + for c6 in [f'{-1.79769313486231570814527423731704356798070567525844996598917476803157260780*(10**308)}f64', f'{-1.79769313486231570814527423731704356798070567525844996598917476803157260780*(10**308)}f64']: + input_sql, stb_name = self.genFullTypeSql(c6=c6) + self.resCmp(input_sql, stb_name) + # * limit set to 1.797693134862316*(10**308) + for c6 in [f'{-1.797693134862316*(10**308)}f64', f'{-1.797693134862316*(10**308)}f64']: + input_sql = self.genFullTypeSql(c6=c6)[0] + code = self._conn.insertLines([input_sql]) + tdSql.checkNotEqual(code, 0) + + # # binary + stb_name = self.getLongName(7, "letters") + input_sql = f'{stb_name},t0=t c0=f,c1="{self.getLongName(16374, "letters")}" 1626006833639000000ns' + code = self._conn.insertLines([input_sql]) + tdSql.checkEqual(code, 0) + input_sql = f'{stb_name},t0=t c0=f,c1="{self.getLongName(16375, "letters")}" 1626006833639000000ns' + code = self._conn.insertLines([input_sql]) + tdSql.checkNotEqual(code, 0) + + # nchar + # * legal nchar could not be larger than 16374/4 + stb_name = self.getLongName(7, "letters") + input_sql = f'{stb_name},t0=t c0=f,c1=L"{self.getLongName(4093, "letters")}" 1626006833639000000ns' + code = self._conn.insertLines([input_sql]) + tdSql.checkEqual(code, 0) + input_sql = f'{stb_name},t0=t c0=f,c1=L"{self.getLongName(4094, "letters")}" 1626006833639000000ns' + code = self._conn.insertLines([input_sql]) + tdSql.checkNotEqual(code, 0) + + def tagColIllegalValueCheckCase(self): + + """ + test illegal tag col value + """ + self.cleanStb() + # bool + for i in ["TrUe", "tRue", "trUe", "truE", "FalsE", "fAlse", "faLse", "falSe", "falsE"]: + input_sql1 = self.genFullTypeSql(t0=i)[0] + code = self._conn.insertLines([input_sql1]) + tdSql.checkNotEqual(code, 0) + input_sql2 = self.genFullTypeSql(c0=i)[0] + code = self._conn.insertLines([input_sql2]) + tdSql.checkNotEqual(code, 0) + + # i8 i16 i32 i64 f32 f64 + for input_sql in [ + self.genFullTypeSql(t1="1s2i8")[0], + self.genFullTypeSql(t2="1s2i16")[0], + self.genFullTypeSql(t3="1s2i32")[0], + self.genFullTypeSql(t4="1s2i64")[0], + self.genFullTypeSql(t5="11.1s45f32")[0], + self.genFullTypeSql(t6="11.1s45f64")[0], + self.genFullTypeSql(c1="1s2i8")[0], + self.genFullTypeSql(c2="1s2i16")[0], + self.genFullTypeSql(c3="1s2i32")[0], + self.genFullTypeSql(c4="1s2i64")[0], + self.genFullTypeSql(c5="11.1s45f32")[0], + self.genFullTypeSql(c6="11.1s45f64")[0], + self.genFullTypeSql(c9="1s1u64")[0] + ]: + code = self._conn.insertLines([input_sql]) + tdSql.checkNotEqual(code, 0) + + # check binary and nchar blank + stb_name = self.getLongName(7, "letters") + input_sql1 = f'{stb_name},t0=t c0=f,c1="abc aaa" 1626006833639000000ns' + input_sql2 = f'{stb_name},t0=t c0=f,c1=L"abc aaa" 1626006833639000000ns' + input_sql3 = f'{stb_name},t0=t,t1="abc aaa" c0=f 1626006833639000000ns' + input_sql4 = f'{stb_name},t0=t,t1=L"abc aaa" c0=f 1626006833639000000ns' + for input_sql in [input_sql1, input_sql2, input_sql3, input_sql4]: + code = self._conn.insertLines([input_sql]) + tdSql.checkNotEqual(code, 0) + + # check accepted binary and nchar symbols + # # * ~!@#$¥%^&*()-+={}|[]、「」:; + for symbol in list('~!@#$¥%^&*()-+={}|[]、「」:;'): + input_sql1 = f'{stb_name},t0=t c0=f,c1="abc{symbol}aaa" 1626006833639000000ns' + input_sql2 = f'{stb_name},t0=t,t1="abc{symbol}aaa" c0=f 1626006833639000000ns' + code = self._conn.insertLines([input_sql1]) + tdSql.checkEqual(code, 0) + code = self._conn.insertLines([input_sql2]) + tdSql.checkEqual(code, 0) + + + def duplicateIdTagColInsertCheckCase(self): + """ + check duplicate Id Tag Col + """ + self.cleanStb() + input_sql_id = self.genFullTypeSql(id_double_tag=True)[0] + code = self._conn.insertLines([input_sql_id]) + tdSql.checkNotEqual(code, 0) + + input_sql = self.genFullTypeSql()[0] + input_sql_tag = input_sql.replace("t5", "t6") + code = self._conn.insertLines([input_sql_tag]) + tdSql.checkNotEqual(code, 0) + + input_sql = self.genFullTypeSql()[0] + input_sql_col = input_sql.replace("c5", "c6") + code = self._conn.insertLines([input_sql_col]) + tdSql.checkNotEqual(code, 0) + + input_sql = self.genFullTypeSql()[0] + input_sql_col = input_sql.replace("c5", "C6") + code = self._conn.insertLines([input_sql_col]) + tdSql.checkNotEqual(code, 0) + + ##### stb exist ##### + def noIdStbExistCheckCase(self): + """ + case no id when stb exist + """ + self.cleanStb() + input_sql, stb_name = self.genFullTypeSql(t0="f", c0="f") + self.resCmp(input_sql, stb_name) + input_sql, stb_name = self.genFullTypeSql(stb_name=stb_name, id_noexist_tag=True, t0="f", c0="f") + self.resCmp(input_sql, stb_name, condition='where tbname like "t_%"') + tdSql.query(f"select * from {stb_name}") + tdSql.checkRows(2) + # TODO cover other case + + def duplicateInsertExistCheckCase(self): + """ + check duplicate insert when stb exist + """ + self.cleanStb() + input_sql, stb_name = self.genFullTypeSql() + self.resCmp(input_sql, stb_name) + code = self._conn.insertLines([input_sql]) + tdSql.checkEqual(code, 0) + self.resCmp(input_sql, stb_name) + + def tagColBinaryNcharLengthCheckCase(self): + """ + check length increase + """ + self.cleanStb() + input_sql, stb_name = self.genFullTypeSql() + self.resCmp(input_sql, stb_name) + tb_name = self.getLongName(5, "letters") + input_sql, stb_name = self.genFullTypeSql(stb_name=stb_name, tb_name=tb_name,t7="\"binaryTagValuebinaryTagValue\"", t8="L\"ncharTagValuencharTagValue\"", c7="\"binaryTagValuebinaryTagValue\"", c8="L\"ncharTagValuencharTagValue\"") + self.resCmp(input_sql, stb_name, condition=f'where tbname like "{tb_name}"') + + def tagColAddDupIDCheckCase(self): + """ + check column and tag count add, stb and tb duplicate + * tag: alter table ... + * col: when update==0 and ts is same, unchange + * so this case tag&&value will be added, + * col is added without value when update==0 + * col is added with value when update==1 + """ + self.cleanStb() + tb_name = self.getLongName(7, "letters") + for db_update_tag in [0, 1]: + if db_update_tag == 1 : + self.createDb("test_update", db_update_tag=db_update_tag) + input_sql, stb_name = self.genFullTypeSql(tb_name=tb_name, t0="f", c0="f") + self.resCmp(input_sql, stb_name) + self.genFullTypeSql(stb_name=stb_name, tb_name=tb_name, t0="f", c0="f", ct_add_tag=True) + if db_update_tag == 1 : + self.resCmp(input_sql, stb_name, condition=f'where tbname like "{tb_name}"') + else: + self.resCmp(input_sql, stb_name, condition=f'where tbname like "{tb_name}"', none_check_tag=True) + + def tagColAddCheckCase(self): + """ + check column and tag count add + """ + self.cleanStb() + tb_name = self.getLongName(7, "letters") + input_sql, stb_name = self.genFullTypeSql(tb_name=tb_name, t0="f", c0="f") + self.resCmp(input_sql, stb_name) + tb_name_1 = self.getLongName(7, "letters") + input_sql, stb_name = self.genFullTypeSql(stb_name=stb_name, tb_name=tb_name_1, t0="f", c0="f", ct_add_tag=True) + self.resCmp(input_sql, stb_name, condition=f'where tbname like "{tb_name_1}"') + res_row_list = self.resHandle(f"select c10,c11,t10,t11 from {tb_name}", True)[0] + tdSql.checkEqual(res_row_list[0], ['None', 'None', 'None', 'None']) + self.resCmp(input_sql, stb_name, condition=f'where tbname like "{tb_name}"', none_check_tag=True) + + def tagMd5Check(self): + """ + condition: stb not change + insert two table, keep tag unchange, change col + """ + self.cleanStb() + input_sql, stb_name = self.genFullTypeSql(t0="f", c0="f", id_noexist_tag=True) + self.resCmp(input_sql, stb_name) + tb_name1 = self.getNoIdTbName(stb_name) + input_sql, stb_name = self.genFullTypeSql(stb_name=stb_name, t0="f", c0="f", id_noexist_tag=True) + self.resCmp(input_sql, stb_name) + tb_name2 = self.getNoIdTbName(stb_name) + tdSql.query(f"select * from {stb_name}") + tdSql.checkRows(1) + tdSql.checkEqual(tb_name1, tb_name2) + input_sql, stb_name = self.genFullTypeSql(stb_name=stb_name, t0="f", c0="f", id_noexist_tag=True, ct_add_tag=True) + self._conn.insertLines([input_sql]) + tb_name3 = self.getNoIdTbName(stb_name) + tdSql.query(f"select * from {stb_name}") + tdSql.checkRows(2) + tdSql.checkNotEqual(tb_name1, tb_name3) + + # * tag binary max is 16384, col+ts binary max 49151 + def tagColBinaryMaxLengthCheckCase(self): + """ + every binary and nchar must be length+2 + """ + self.cleanStb() + stb_name = self.getLongName(7, "letters") + tb_name = f'{stb_name}_1' + input_sql = f'{stb_name},id="{tb_name}",t0=t c0=f 1626006833639000000ns' + code = self._conn.insertLines([input_sql]) + + # * every binary and nchar must be length+2, so here is two tag, max length could not larger than 16384-2*2 + input_sql = f'{stb_name},t0=t,t1="{self.getLongName(16374, "letters")}",t2="{self.getLongName(5, "letters")}" c0=f 1626006833639000000ns' + code = self._conn.insertLines([input_sql]) + tdSql.checkEqual(code, 0) + tdSql.query(f"select * from {stb_name}") + tdSql.checkRows(2) + input_sql = f'{stb_name},t0=t,t1="{self.getLongName(16374, "letters")}",t2="{self.getLongName(6, "letters")}" c0=f 1626006833639000000ns' + code = self._conn.insertLines([input_sql]) + tdSql.checkNotEqual(code, 0) + tdSql.query(f"select * from {stb_name}") + tdSql.checkRows(2) + + # # * check col,col+ts max in describe ---> 16143 + input_sql = f'{stb_name},t0=t c0=f,c1="{self.getLongName(16374, "letters")}",c2="{self.getLongName(16374, "letters")}",c3="{self.getLongName(16374, "letters")}",c4="{self.getLongName(12, "letters")}" 1626006833639000000ns' + code = self._conn.insertLines([input_sql]) + tdSql.checkEqual(code, 0) + tdSql.query(f"select * from {stb_name}") + tdSql.checkRows(3) + input_sql = f'{stb_name},t0=t c0=f,c1="{self.getLongName(16374, "letters")}",c2="{self.getLongName(16374, "letters")}",c3="{self.getLongName(16374, "letters")}",c4="{self.getLongName(13, "letters")}" 1626006833639000000ns' + code = self._conn.insertLines([input_sql]) + tdSql.checkNotEqual(code, 0) + tdSql.query(f"select * from {stb_name}") + tdSql.checkRows(3) + + # * tag nchar max is 16374/4, col+ts nchar max 49151 + def tagColNcharMaxLengthCheckCase(self): + """ + check nchar length limit + """ + self.cleanStb() + stb_name = self.getLongName(7, "letters") + tb_name = f'{stb_name}_1' + input_sql = f'{stb_name},id="{tb_name}",t0=t c0=f 1626006833639000000ns' + code = self._conn.insertLines([input_sql]) + + # * legal nchar could not be larger than 16374/4 + input_sql = f'{stb_name},t0=t,t1=L"{self.getLongName(4093, "letters")}",t2=L"{self.getLongName(1, "letters")}" c0=f 1626006833639000000ns' + code = self._conn.insertLines([input_sql]) + tdSql.checkEqual(code, 0) + tdSql.query(f"select * from {stb_name}") + tdSql.checkRows(2) + input_sql = f'{stb_name},t0=t,t1=L"{self.getLongName(4093, "letters")}",t2=L"{self.getLongName(2, "letters")}" c0=f 1626006833639000000ns' + code = self._conn.insertLines([input_sql]) + tdSql.checkNotEqual(code, 0) + tdSql.query(f"select * from {stb_name}") + tdSql.checkRows(2) + + input_sql = f'{stb_name},t0=t c0=f,c1=L"{self.getLongName(4093, "letters")}",c2=L"{self.getLongName(4093, "letters")}",c3=L"{self.getLongName(4093, "letters")}",c4=L"{self.getLongName(4, "letters")}" 1626006833639000000ns' + code = self._conn.insertLines([input_sql]) + tdSql.checkEqual(code, 0) + tdSql.query(f"select * from {stb_name}") + tdSql.checkRows(3) + input_sql = f'{stb_name},t0=t c0=f,c1=L"{self.getLongName(4093, "letters")}",c2=L"{self.getLongName(4093, "letters")}",c3=L"{self.getLongName(4093, "letters")}",c4=L"{self.getLongName(5, "letters")}" 1626006833639000000ns' + code = self._conn.insertLines([input_sql]) + tdSql.checkNotEqual(code, 0) + tdSql.query(f"select * from {stb_name}") + tdSql.checkRows(3) + + def batchInsertCheckCase(self): + """ + test batch insert + """ + self.cleanStb() + stb_name = self.getLongName(8, "letters") + tdSql.execute(f'create stable {stb_name}(ts timestamp, f int) tags(t1 bigint)') + lines = ["st123456,t1=3i64,t2=4f64,t3=\"t3\" c1=3i64,c3=L\"passit\",c2=false,c4=4f64 1626006833639000000ns", + "st123456,t1=4i64,t3=\"t4\",t2=5f64,t4=5f64 c1=3i64,c3=L\"passitagin\",c2=true,c4=5f64,c5=5f64 1626006833640000000ns", + f"{stb_name},t2=5f64,t3=L\"ste\" c1=true,c2=4i64,c3=\"iam\" 1626056811823316532ns", + "stf567890,t1=4i64,t3=\"t4\",t2=5f64,t4=5f64 c1=3i64,c3=L\"passitagin\",c2=true,c4=5f64,c5=5f64,c6=7u64 1626006933640000000ns", + "st123456,t1=4i64,t2=5f64,t3=\"t4\" c1=3i64,c3=L\"passitagain\",c2=true,c4=5f64 1626006833642000000ns", + f"{stb_name},t2=5f64,t3=L\"ste2\" c3=\"iamszhou\",c4=false 1626056811843316532ns", + f"{stb_name},t2=5f64,t3=L\"ste2\" c3=\"iamszhou\",c4=false,c5=32i8,c6=64i16,c7=32i32,c8=88.88f32 1626056812843316532ns", + "st123456,t1=4i64,t3=\"t4\",t2=5f64,t4=5f64 c1=3i64,c3=L\"passitagin\",c2=true,c4=5f64,c5=5f64,c6=7u64 1626006933640000000ns", + "st123456,t1=4i64,t3=\"t4\",t2=5f64,t4=5f64 c1=3i64,c3=L\"passitagin_stf\",c2=false,c5=5f64,c6=7u64 1626006933641000000ns" + ] + code = self._conn.insertLines(lines) + tdSql.checkEqual(code, 0) + + def multiInsertCheckCase(self, count): + """ + test multi insert + """ + self.cleanStb() + sql_list = [] + stb_name = self.getLongName(8, "letters") + tdSql.execute(f'create stable {stb_name}(ts timestamp, f int) tags(t1 bigint)') + for i in range(count): + input_sql = self.genFullTypeSql(stb_name=stb_name, t7=f'"{self.getLongName(8, "letters")}"', c7=f'"{self.getLongName(8, "letters")}"', id_noexist_tag=True)[0] + sql_list.append(input_sql) + code = self._conn.insertLines(sql_list) + tdSql.checkEqual(code, 0) + + def batchErrorInsertCheckCase(self): + """ + test batch error insert + """ + self.cleanStb() + stb_name = self.getLongName(8, "letters") + lines = ["st123456,t1=3i64,t2=4f64,t3=\"t3\" c1=3i64,c3=L\"passit\",c2=false,c4=4f64 1626006833639000000ns", + f"{stb_name},t2=5f64,t3=L\"ste\" c1=tRue,c2=4i64,c3=\"iam\" 1626056811823316532ns"] + code = self._conn.insertLines(lines) + tdSql.checkNotEqual(code, 0) + + def genSqlList(self, count=5, stb_name="", tb_name=""): + """ + stb --> supertable + tb --> table + ts --> timestamp, same default + col --> column, same default + tag --> tag, same default + d --> different + s --> same + a --> add + m --> minus + """ + d_stb_d_tb_list = list() + s_stb_s_tb_list = list() + s_stb_s_tb_a_col_a_tag_list = list() + s_stb_s_tb_m_col_m_tag_list = list() + s_stb_d_tb_list = list() + s_stb_d_tb_a_col_m_tag_list = list() + s_stb_d_tb_a_tag_m_col_list = list() + s_stb_s_tb_d_ts_list = list() + s_stb_s_tb_d_ts_a_col_m_tag_list = list() + s_stb_s_tb_d_ts_a_tag_m_col_list = list() + s_stb_d_tb_d_ts_list = list() + s_stb_d_tb_d_ts_a_col_m_tag_list = list() + s_stb_d_tb_d_ts_a_tag_m_col_list = list() + for i in range(count): + d_stb_d_tb_list.append(self.genFullTypeSql(t0="f", c0="f")) + s_stb_s_tb_list.append(self.genFullTypeSql(stb_name=stb_name, tb_name=tb_name, t7=f'"{self.getLongName(8, "letters")}"', c7=f'"{self.getLongName(8, "letters")}"')) + s_stb_s_tb_a_col_a_tag_list.append(self.genFullTypeSql(stb_name=stb_name, tb_name=tb_name, t7=f'"{self.getLongName(8, "letters")}"', c7=f'"{self.getLongName(8, "letters")}"', ct_add_tag=True)) + s_stb_s_tb_m_col_m_tag_list.append(self.genFullTypeSql(stb_name=stb_name, tb_name=tb_name, t7=f'"{self.getLongName(8, "letters")}"', c7=f'"{self.getLongName(8, "letters")}"', ct_min_tag=True)) + s_stb_d_tb_list.append(self.genFullTypeSql(stb_name=stb_name, t7=f'"{self.getLongName(8, "letters")}"', c7=f'"{self.getLongName(8, "letters")}"', id_noexist_tag=True)) + s_stb_d_tb_a_col_m_tag_list.append(self.genFullTypeSql(stb_name=stb_name, t7=f'"{self.getLongName(8, "letters")}"', c7=f'"{self.getLongName(8, "letters")}"', id_noexist_tag=True, ct_am_tag=True)) + s_stb_d_tb_a_tag_m_col_list.append(self.genFullTypeSql(stb_name=stb_name, t7=f'"{self.getLongName(8, "letters")}"', c7=f'"{self.getLongName(8, "letters")}"', id_noexist_tag=True, ct_ma_tag=True)) + s_stb_s_tb_d_ts_list.append(self.genFullTypeSql(stb_name=stb_name, tb_name=tb_name, t7=f'"{self.getLongName(8, "letters")}"', c7=f'"{self.getLongName(8, "letters")}"', ts=0)) + s_stb_s_tb_d_ts_a_col_m_tag_list.append(self.genFullTypeSql(stb_name=stb_name, tb_name=tb_name, t7=f'"{self.getLongName(8, "letters")}"', c7=f'"{self.getLongName(8, "letters")}"', ts=0, ct_am_tag=True)) + s_stb_s_tb_d_ts_a_tag_m_col_list.append(self.genFullTypeSql(stb_name=stb_name, tb_name=tb_name, t7=f'"{self.getLongName(8, "letters")}"', c7=f'"{self.getLongName(8, "letters")}"', ts=0, ct_ma_tag=True)) + s_stb_d_tb_d_ts_list.append(self.genFullTypeSql(stb_name=stb_name, t7=f'"{self.getLongName(8, "letters")}"', c7=f'"{self.getLongName(8, "letters")}"', id_noexist_tag=True, ts=0)) + s_stb_d_tb_d_ts_a_col_m_tag_list.append(self.genFullTypeSql(stb_name=stb_name, t7=f'"{self.getLongName(8, "letters")}"', c7=f'"{self.getLongName(8, "letters")}"', id_noexist_tag=True, ts=0, ct_am_tag=True)) + s_stb_d_tb_d_ts_a_tag_m_col_list.append(self.genFullTypeSql(stb_name=stb_name, t7=f'"{self.getLongName(8, "letters")}"', c7=f'"{self.getLongName(8, "letters")}"', id_noexist_tag=True, ts=0, ct_ma_tag=True)) + + return d_stb_d_tb_list, s_stb_s_tb_list, s_stb_s_tb_a_col_a_tag_list, s_stb_s_tb_m_col_m_tag_list, \ + s_stb_d_tb_list, s_stb_d_tb_a_col_m_tag_list, s_stb_d_tb_a_tag_m_col_list, s_stb_s_tb_d_ts_list, \ + s_stb_s_tb_d_ts_a_col_m_tag_list, s_stb_s_tb_d_ts_a_tag_m_col_list, s_stb_d_tb_d_ts_list, \ + s_stb_d_tb_d_ts_a_col_m_tag_list, s_stb_d_tb_d_ts_a_tag_m_col_list + + + def genMultiThreadSeq(self, sql_list): + tlist = list() + for insert_sql in sql_list: + t = threading.Thread(target=self._conn.insertLines,args=([insert_sql[0]],)) + tlist.append(t) + return tlist + + def multiThreadRun(self, tlist): + for t in tlist: + t.start() + for t in tlist: + t.join() + + def stbInsertMultiThreadCheckCase(self): + """ + thread input different stb + """ + self.cleanStb() + input_sql = self.genSqlList()[0] + self.multiThreadRun(self.genMultiThreadSeq(input_sql)) + tdSql.query(f"show tables;") + tdSql.checkRows(5) + + def sStbStbDdataInsertMultiThreadCheckCase(self): + """ + thread input same stb tb, different data, result keep first data + """ + self.cleanStb() + tb_name = self.getLongName(7, "letters") + input_sql, stb_name = self.genFullTypeSql(tb_name=tb_name) + self.resCmp(input_sql, stb_name) + s_stb_s_tb_list = self.genSqlList(stb_name=stb_name, tb_name=tb_name)[1] + self.multiThreadRun(self.genMultiThreadSeq(s_stb_s_tb_list)) + tdSql.query(f"show tables;") + tdSql.checkRows(1) + expected_tb_name = self.getNoIdTbName(stb_name)[0] + tdSql.checkEqual(tb_name, expected_tb_name) + tdSql.query(f"select * from {stb_name};") + tdSql.checkRows(1) + + def sStbStbDdataAtcInsertMultiThreadCheckCase(self): + """ + thread input same stb tb, different data, add columes and tags, result keep first data + """ + self.cleanStb() + tb_name = self.getLongName(7, "letters") + input_sql, stb_name = self.genFullTypeSql(tb_name=tb_name) + self.resCmp(input_sql, stb_name) + s_stb_s_tb_a_col_a_tag_list = self.genSqlList(stb_name=stb_name, tb_name=tb_name)[2] + self.multiThreadRun(self.genMultiThreadSeq(s_stb_s_tb_a_col_a_tag_list)) + tdSql.query(f"show tables;") + tdSql.checkRows(1) + expected_tb_name = self.getNoIdTbName(stb_name)[0] + tdSql.checkEqual(tb_name, expected_tb_name) + tdSql.query(f"select * from {stb_name};") + tdSql.checkRows(1) + + def sStbStbDdataMtcInsertMultiThreadCheckCase(self): + """ + thread input same stb tb, different data, minus columes and tags, result keep first data + """ + self.cleanStb() + tb_name = self.getLongName(7, "letters") + input_sql, stb_name = self.genFullTypeSql(tb_name=tb_name) + self.resCmp(input_sql, stb_name) + s_stb_s_tb_m_col_m_tag_list = self.genSqlList(stb_name=stb_name, tb_name=tb_name)[3] + self.multiThreadRun(self.genMultiThreadSeq(s_stb_s_tb_m_col_m_tag_list)) + tdSql.query(f"show tables;") + tdSql.checkRows(1) + expected_tb_name = self.getNoIdTbName(stb_name)[0] + tdSql.checkEqual(tb_name, expected_tb_name) + tdSql.query(f"select * from {stb_name};") + tdSql.checkRows(1) + + def sStbDtbDdataInsertMultiThreadCheckCase(self): + """ + thread input same stb, different tb, different data + """ + self.cleanStb() + input_sql, stb_name = self.genFullTypeSql() + self.resCmp(input_sql, stb_name) + s_stb_d_tb_list = self.genSqlList(stb_name=stb_name)[4] + self.multiThreadRun(self.genMultiThreadSeq(s_stb_d_tb_list)) + tdSql.query(f"show tables;") + tdSql.checkRows(6) + + def sStbDtbDdataAcMtInsertMultiThreadCheckCase(self): + """ + #! concurrency conflict + """ + """ + thread input same stb, different tb, different data, add col, mul tag + """ + self.cleanStb() + input_sql, stb_name = self.genFullTypeSql() + self.resCmp(input_sql, stb_name) + s_stb_d_tb_a_col_m_tag_list = self.genSqlList(stb_name=stb_name)[5] + self.multiThreadRun(self.genMultiThreadSeq(s_stb_d_tb_a_col_m_tag_list)) + tdSql.query(f"show tables;") + tdSql.checkRows(6) + + def sStbDtbDdataAtMcInsertMultiThreadCheckCase(self): + """ + #! concurrency conflict + """ + """ + thread input same stb, different tb, different data, add tag, mul col + """ + self.cleanStb() + input_sql, stb_name = self.genFullTypeSql() + self.resCmp(input_sql, stb_name) + s_stb_d_tb_a_tag_m_col_list = self.genSqlList(stb_name=stb_name)[6] + self.multiThreadRun(self.genMultiThreadSeq(s_stb_d_tb_a_tag_m_col_list)) + tdSql.query(f"show tables;") + tdSql.checkRows(6) + + def sStbStbDdataDtsInsertMultiThreadCheckCase(self): + """ + thread input same stb tb, different ts + """ + self.cleanStb() + tb_name = self.getLongName(7, "letters") + input_sql, stb_name = self.genFullTypeSql(tb_name=tb_name) + self.resCmp(input_sql, stb_name) + s_stb_s_tb_d_ts_list = self.genSqlList(stb_name=stb_name, tb_name=tb_name)[7] + self.multiThreadRun(self.genMultiThreadSeq(s_stb_s_tb_d_ts_list)) + tdSql.query(f"show tables;") + tdSql.checkRows(1) + tdSql.query(f"select * from {stb_name}") + tdSql.checkRows(6) + + def sStbStbDdataDtsAcMtInsertMultiThreadCheckCase(self): + """ + thread input same stb tb, different ts, add col, mul tag + """ + self.cleanStb() + tb_name = self.getLongName(7, "letters") + input_sql, stb_name = self.genFullTypeSql(tb_name=tb_name) + self.resCmp(input_sql, stb_name) + s_stb_s_tb_d_ts_a_col_m_tag_list = self.genSqlList(stb_name=stb_name, tb_name=tb_name)[8] + self.multiThreadRun(self.genMultiThreadSeq(s_stb_s_tb_d_ts_a_col_m_tag_list)) + tdSql.query(f"show tables;") + tdSql.checkRows(1) + tdSql.query(f"select * from {stb_name}") + tdSql.checkRows(6) + tdSql.query(f"select * from {stb_name} where t8 is not NULL") + tdSql.checkRows(6) + tdSql.query(f"select * from {tb_name} where c11 is not NULL;") + tdSql.checkRows(5) + + def sStbStbDdataDtsAtMcInsertMultiThreadCheckCase(self): + """ + thread input same stb tb, different ts, add tag, mul col + """ + self.cleanStb() + tb_name = self.getLongName(7, "letters") + input_sql, stb_name = self.genFullTypeSql(tb_name=tb_name) + self.resCmp(input_sql, stb_name) + s_stb_s_tb_d_ts_a_tag_m_col_list = self.genSqlList(stb_name=stb_name, tb_name=tb_name)[9] + self.multiThreadRun(self.genMultiThreadSeq(s_stb_s_tb_d_ts_a_tag_m_col_list)) + tdSql.query(f"show tables;") + tdSql.checkRows(1) + tdSql.query(f"select * from {stb_name}") + tdSql.checkRows(6) + for c in ["c7", "c8", "c9"]: + tdSql.query(f"select * from {stb_name} where {c} is NULL") + tdSql.checkRows(5) + for t in ["t10", "t11"]: + tdSql.query(f"select * from {stb_name} where {t} is not NULL;") + tdSql.checkRows(6) + + def sStbDtbDdataDtsInsertMultiThreadCheckCase(self): + """ + thread input same stb, different tb, data, ts + """ + self.cleanStb() + input_sql, stb_name = self.genFullTypeSql() + self.resCmp(input_sql, stb_name) + s_stb_d_tb_d_ts_list = self.genSqlList(stb_name=stb_name)[10] + self.multiThreadRun(self.genMultiThreadSeq(s_stb_d_tb_d_ts_list)) + tdSql.query(f"show tables;") + tdSql.checkRows(6) + + def sStbDtbDdataDtsAcMtInsertMultiThreadCheckCase(self): + """ + # ! concurrency conflict + """ + """ + thread input same stb, different tb, data, ts, add col, mul tag + """ + self.cleanStb() + input_sql, stb_name = self.genFullTypeSql() + self.resCmp(input_sql, stb_name) + s_stb_d_tb_d_ts_a_col_m_tag_list = self.genSqlList(stb_name=stb_name)[11] + self.multiThreadRun(self.genMultiThreadSeq(s_stb_d_tb_d_ts_a_col_m_tag_list)) + tdSql.query(f"show tables;") + tdSql.checkRows(6) + + def test(self): + input_sql1 = "rfasta,id=\"rfasta_1\",t0=true,t1=127i8,t2=32767i16,t3=2147483647i32,t4=9223372036854775807i64,t5=11.12345f32,t6=22.123456789f64,t7=\"ddzhiksj\",t8=L\"ncharTagValue\" c0=True,c1=127i8,c2=32767i16,c3=2147483647i32,c4=9223372036854775807i64,c5=11.12345f32,c6=22.123456789f64,c7=\"bnhwlgvj\",c8=L\"ncharTagValue\",c9=7u64 1626006933640000000ns" + input_sql2 = "rfasta,id=\"rfasta_1\",t0=true,t1=127i8,t2=32767i16,t3=2147483647i32,t4=9223372036854775807i64,t5=11.12345f32,t6=22.123456789f64 c0=True,c1=127i8,c2=32767i16,c3=2147483647i32,c4=9223372036854775807i64,c5=11.12345f32,c6=22.123456789f64 1626006933640000000ns" + code = self._conn.insertLines([input_sql1]) + code = self._conn.insertLines([input_sql2]) + print(code) + # self._conn.insertLines([input_sql2]) + # input_sql3 = f'abcd,id="cc¥Ec",t0=True,t1=127i8,t2=32767i16,t3=2147483647i32,t4=9223372036854775807i64,t5=11.12345f32,t6=22.123456789f64,t7="ndsfdrum",t8=L"ncharTagValue" c0=f,c1=127i8,c2=32767i16,c3=2147483647i32,c4=9223372036854775807i64,c5=11.12345f32,c6=22.123456789f64,c7="igwoehkm",c8=L"ncharColValue",c9=7u64 0' + # print(input_sql3) + # input_sql4 = 'hmemeb,id="kilrcrldgf",t0=F,t1=127i8,t2=32767i16,t3=2147483647i32,t4=9223372036854775807i64,t5=11.12345f32,t6=22.123456789f64,t7="fysodjql",t8=L"ncharTagValue" c0=True,c1=127i8,c2=32767i16,c3=2147483647i32,c4=9223372036854775807i64,c5=11.12345f32,c6=22.123456789f64,c7="waszbfvc",c8=L"ncharColValue",c9=7u64 0' + # code = self._conn.insertLines([input_sql3]) + # print(code) + # self._conn.insertLines([input_sql4]) + + def runAll(self): + self.initCheckCase() + self.boolTypeCheckCase() + self.symbolsCheckCase() + self.tsCheckCase() + self.idSeqCheckCase() + self.idUpperCheckCase() + self.noIdCheckCase() + self.maxColTagCheckCase() + self.idIllegalNameCheckCase() + self.idStartWithNumCheckCase() + self.nowTsCheckCase() + self.dateFormatTsCheckCase() + self.illegalTsCheckCase() + self.tagValueLengthCheckCase() + self.colValueLengthCheckCase() + self.tagColIllegalValueCheckCase() + self.duplicateIdTagColInsertCheckCase() + self.noIdStbExistCheckCase() + self.duplicateInsertExistCheckCase() + self.tagColBinaryNcharLengthCheckCase() + self.tagColAddDupIDCheckCase() + self.tagColAddCheckCase() + self.tagMd5Check() + self.tagColBinaryMaxLengthCheckCase() + # self.tagColNcharMaxLengthCheckCase() + self.batchInsertCheckCase() + self.multiInsertCheckCase(1000) + self.batchErrorInsertCheckCase() + # MultiThreads + self.stbInsertMultiThreadCheckCase() + self.sStbStbDdataInsertMultiThreadCheckCase() + self.sStbStbDdataAtcInsertMultiThreadCheckCase() + self.sStbStbDdataMtcInsertMultiThreadCheckCase() + self.sStbDtbDdataInsertMultiThreadCheckCase() + + # # ! concurrency conflict + # self.sStbDtbDdataAcMtInsertMultiThreadCheckCase() + # self.sStbDtbDdataAtMcInsertMultiThreadCheckCase() + + self.sStbStbDdataDtsInsertMultiThreadCheckCase() + + # # ! concurrency conflict + # self.sStbStbDdataDtsAcMtInsertMultiThreadCheckCase() + # self.sStbStbDdataDtsAtMcInsertMultiThreadCheckCase() + + self.sStbDtbDdataDtsInsertMultiThreadCheckCase() + + # ! concurrency conflict + # self.sStbDtbDdataDtsAcMtInsertMultiThreadCheckCase() + + + + def run(self): + print("running {}".format(__file__)) + self.createDb() + self.runAll() + # self.tagColIllegalValueCheckCase() + # self.test() + + def stop(self): + tdSql.close() + tdLog.success("%s successfully executed" % __file__) + +tdCases.addWindows(__file__, TDTestCase()) +tdCases.addLinux(__file__, TDTestCase()) diff --git a/tests/pytest/util/sql.py b/tests/pytest/util/sql.py index 4a0455220637d0b2b99430008a62727a6ee70e30..b42af27d063aa9c8b08ac58374878a7153912142 100644 --- a/tests/pytest/util/sql.py +++ b/tests/pytest/util/sql.py @@ -65,7 +65,7 @@ class TDSql: self.queryResult = None tdLog.info("sql:%s, expect error occured" % (sql)) - def query(self, sql): + def query(self, sql, row_tag=None): self.sql = sql try: self.cursor.execute(sql) @@ -77,21 +77,27 @@ class TDSql: args = (caller.filename, caller.lineno, sql, repr(e)) tdLog.notice("%s(%d) failed: sql:%s, %s" % args) raise Exception(repr(e)) + if row_tag: + return self.queryResult return self.queryRows - def getColNameList(self, sql): + def getColNameList(self, sql, col_tag=None): self.sql = sql try: col_name_list = [] + col_type_list = [] self.cursor.execute(sql) self.queryCols = self.cursor.description for query_col in self.queryCols: col_name_list.append(query_col[0]) + col_type_list.append(query_col[1]) except Exception as e: caller = inspect.getframeinfo(inspect.stack()[1][0]) args = (caller.filename, caller.lineno, sql, repr(e)) tdLog.notice("%s(%d) failed: sql:%s, %s" % args) raise Exception(repr(e)) + if col_tag: + return col_name_list, col_type_list return col_name_list def waitedQuery(self, sql, expectRows, timeout): @@ -245,6 +251,22 @@ class TDSql: args = (caller.filename, caller.lineno, self.sql, col_name_list, expect_col_name_list) tdLog.exit("%s(%d) failed: sql:%s, col_name_list:%s != expect_col_name_list:%s" % args) + def checkEqual(self, elm, expect_elm): + if elm == expect_elm: + tdLog.info("sql:%s, elm:%s == expect_elm:%s" % (self.sql, elm, expect_elm)) + else: + caller = inspect.getframeinfo(inspect.stack()[1][0]) + args = (caller.filename, caller.lineno, self.sql, elm, expect_elm) + tdLog.exit("%s(%d) failed: sql:%s, elm:%s != expect_elm:%s" % args) + + def checkNotEqual(self, elm, expect_elm): + if elm != expect_elm: + tdLog.info("sql:%s, elm:%s != expect_elm:%s" % (self.sql, elm, expect_elm)) + else: + caller = inspect.getframeinfo(inspect.stack()[1][0]) + args = (caller.filename, caller.lineno, self.sql, elm, expect_elm) + tdLog.exit("%s(%d) failed: sql:%s, elm:%s == expect_elm:%s" % args) + def taosdStatus(self, state): tdLog.sleep(5) pstate = 0 diff --git a/tests/script/general/field/2.sim b/tests/script/general/field/2.sim index dc39e5ad602276e52bda3cce0e823a3deb3f124d..cc6889fd75441c9fa4913f8219ebc1b50710b0cb 100644 --- a/tests/script/general/field/2.sim +++ b/tests/script/general/field/2.sim @@ -30,7 +30,7 @@ while $i < 5 $x = 0 while $x < $rowNum $ms = $x . m - sql insert into $tb values (now + $ms , 0, 0 ) + sql insert into $tb values (1626739200000 + $ms , 0, 0 ) $x = $x + 1 endw $i = $i + 1 @@ -41,7 +41,7 @@ while $i < 10 $x = 0 while $x < $rowNum $ms = $x . m - sql insert into $tb values (now + $ms , 1, 1 ) + sql insert into $tb values (1626739200000 + $ms , 1, 1 ) $x = $x + 1 endw $i = $i + 1 @@ -116,103 +116,104 @@ if $rows != 100 then endi print =============== step4 -sql select * from $mt where ts > now + 4m and tbcol = 1 +# sql select * from $mt where ts > 1626739440001 and tbcol = 1 +sql select * from $mt where ts > 1626739440001 and tbcol = 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol <> 1 +sql select * from $mt where ts > 1626739440001 and tbcol <> 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol = 0 +sql select * from $mt where ts < 1626739440001 and tbcol = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol <> 0 +sql select * from $mt where ts < 1626739440001 and tbcol <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol <> 0 +sql select * from $mt where ts >= 1626739440001 and ts < 1626739500001 and tbcol <> 0 if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol <> 0 and ts < now + 5m +sql select * from $mt where ts >= 1626739440001 and tbcol <> 0 and ts < 1626739500001 if $rows != 5 then return -1 endi print =============== step5 -sql select * from $mt where ts > now + 4m and tbcol2 = 1 +sql select * from $mt where ts > 1626739440001 and tbcol2 = 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol2 <> 1 +sql select * from $mt where ts > 1626739440001 and tbcol2 <> 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol2 = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol2 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol2 <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol2 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol2 = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol2 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol2 <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol2 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol2 <> 0 +sql select * from $mt where ts >= 1626739440001 and ts < 1626739500001 and tbcol2 <> 0 if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol2 <> 0 and ts < now + 5m +sql select * from $mt where ts >= 1626739440001 and tbcol2 <> 0 and ts < 1626739500001 if $rows != 5 then return -1 endi print =============== step6 -sql select * from $mt where ts > now + 4m and tbcol2 = 1 and tbcol = 1 +sql select * from $mt where ts > 1626739440001 and tbcol2 = 1 and tbcol = 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol2 <> 1 and tbcol <> 1 +sql select * from $mt where ts > 1626739440001 and tbcol2 <> 1 and tbcol <> 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol2 = 0 and tbcol = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol2 = 0 and tbcol = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol2 <> 0 and tbcol <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol2 <> 0 and tbcol <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol2 = 0 and tbcol = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol2 = 0 and tbcol = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol2 <> 0 and tbcol <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol2 <> 0 and tbcol <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol2 <> 0 and tbcol <> 0 +sql select * from $mt where ts >= 1626739440001 and ts < 1626739500001 and tbcol2 <> 0 and tbcol <> 0 if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol2 <> 0 and ts < now + 5m and ts < now + 5m and tbcol <> 0 +sql select * from $mt where ts >= 1626739440001 and tbcol2 <> 0 and ts < 1626739500001 and ts < 1626739500001 and tbcol <> 0 if $rows != 5 then return -1 endi @@ -246,7 +247,7 @@ if $data00 != 100 then endi print =============== step9 -sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where ts < now + 4m +sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where ts <= 1626739440001 print $data00 $data01 $data02 $data03 $data04 $data05 $data06 if $data00 != 50 then return -1 @@ -272,7 +273,7 @@ if $data00 != 100 then endi print =============== step11 -sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where ts < now + 4m and tbcol = 1 group by tgcol +sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where ts <= 1626739440001 and tbcol = 1 group by tgcol print $data00 $data01 $data02 $data03 $data04 $data05 $data06 if $data00 != 25 then return -1 diff --git a/tests/script/general/field/3.sim b/tests/script/general/field/3.sim index b45e3a005b4af41494ef24cf93b130d2b41c8dc1..cb3c6621ac3723b09fba489d894657a457e12af1 100644 --- a/tests/script/general/field/3.sim +++ b/tests/script/general/field/3.sim @@ -30,7 +30,7 @@ while $i < 5 $x = 0 while $x < $rowNum $ms = $x . m - sql insert into $tb values (now + $ms , 0, 0, 0 ) + sql insert into $tb values (1626739200000 + $ms , 0, 0, 0 ) $x = $x + 1 endw $i = $i + 1 @@ -41,7 +41,7 @@ while $i < 10 $x = 0 while $x < $rowNum $ms = $x . m - sql insert into $tb values (now + $ms , 1, 1, 1 ) + sql insert into $tb values (1626739200000 + $ms , 1, 1, 1 ) $x = $x + 1 endw $i = $i + 1 @@ -53,19 +53,19 @@ if $rows != $totalNum then return -1 endi -sql select * from $mt where ts < now + 4m +sql select * from $mt where ts <= 1626739440001 if $rows != 50 then return -1 endi -sql select * from $mt where ts > now + 4m +sql select * from $mt where ts > 1626739440001 if $rows != 150 then return -1 endi -sql select * from $mt where ts = now + 4m +sql select * from $mt where ts = 1626739440001 if $rows != 0 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m +sql select * from $mt where ts >= 1626739440001 and ts < 1626739500001 if $rows != 10 then return -1 endi @@ -141,239 +141,239 @@ if $rows != 100 then endi print =============== step6 -sql select * from $mt where ts > now + 4m and tbcol1 = 1 +sql select * from $mt where ts > 1626739440001 and tbcol1 = 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol1 <> 1 +sql select * from $mt where ts > 1626739440001 and tbcol1 <> 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol1 = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol1 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol1 <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol1 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol1 = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol1 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol1 <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol1 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol1 <> 0 +sql select * from $mt where ts >= 1626739440001 and ts < 1626739500001 and tbcol1 <> 0 if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol1 <> 0 and ts < now + 5m +sql select * from $mt where ts >= 1626739440001 and tbcol1 <> 0 and ts < 1626739500001 if $rows != 5 then return -1 endi print =============== step7 -sql select * from $mt where ts > now + 4m and tbcol2 = 1 +sql select * from $mt where ts > 1626739440001 and tbcol2 = 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol2 <> 1 +sql select * from $mt where ts > 1626739440001 and tbcol2 <> 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol2 = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol2 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol2 <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol2 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol2 = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol2 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol2 <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol2 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol2 <> 0 +sql select * from $mt where ts >= 1626739440001 and ts < 1626739500001 and tbcol2 <> 0 if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol2 <> 0 and ts < now + 5m +sql select * from $mt where ts >= 1626739440001 and tbcol2 <> 0 and ts < 1626739500001 if $rows != 5 then return -1 endi print =============== step8 -sql select * from $mt where ts > now + 4m and tbcol3 = 1 +sql select * from $mt where ts > 1626739440001 and tbcol3 = 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol3 <> 1 +sql select * from $mt where ts > 1626739440001 and tbcol3 <> 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol3 = 0 +sql select * from $mt where ts < 1626739440001 and tbcol3 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol3 <> 0 +sql select * from $mt where ts < 1626739440001 and tbcol3 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol3 = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol3 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol3 <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol3 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol3 <> 0 +sql select * from $mt where ts >= 1626739440001 and ts < 1626739500001 and tbcol3 <> 0 if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol3 <> 0 and ts < now + 5m +sql select * from $mt where ts >= 1626739440001 and tbcol3 <> 0 and ts < 1626739500001 if $rows != 5 then return -1 endi print =============== step9 -sql select * from $mt where ts > now + 4m and tbcol2 = 1 and tbcol1 = 1 +sql select * from $mt where ts > 1626739440001 and tbcol2 = 1 and tbcol1 = 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol2 <> 1 and tbcol1 <> 1 +sql select * from $mt where ts > 1626739440001 and tbcol2 <> 1 and tbcol1 <> 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol2 = 0 and tbcol1 = 0 +sql select * from $mt where ts < 1626739440001 and tbcol2 = 0 and tbcol1 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol2 <> 0 and tbcol1 <> 0 +sql select * from $mt where ts < 1626739440001 and tbcol2 <> 0 and tbcol1 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol2 = 0 and tbcol1 = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol2 = 0 and tbcol1 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol2 <> 0 and tbcol1 <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol2 <> 0 and tbcol1 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol2 <> 0 and tbcol1 <> 0 +sql select * from $mt where ts > 1626739440001 and ts < 1626739500001 and tbcol2 <> 0 and tbcol1 <> 0 if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol2 <> 0 and ts < now + 5m and ts < now + 5m and tbcol1 <> 0 +sql select * from $mt where ts > 1626739440001 and tbcol2 <> 0 and ts < 1626739500001 and ts < 1626739500001 and tbcol1 <> 0 if $rows != 5 then return -1 endi print =============== step10 -sql select * from $mt where ts > now + 4m and tbcol3 = 1 and tbcol1 = 1 +sql select * from $mt where ts > 1626739440001 and tbcol3 = 1 and tbcol1 = 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol3 <> 1 and tbcol1 <> 1 +sql select * from $mt where ts > 1626739440001 and tbcol3 <> 1 and tbcol1 <> 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol3 = 0 and tbcol1 = 0 +sql select * from $mt where ts < 1626739440001 and tbcol3 = 0 and tbcol1 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol3 <> 0 and tbcol1 <> 0 +sql select * from $mt where ts < 1626739440001 and tbcol3 <> 0 and tbcol1 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol3 = 0 and tbcol1 = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol3 = 0 and tbcol1 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol3 <> 0 and tbcol1 <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol3 <> 0 and tbcol1 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol3 <> 0 and tbcol1 <> 0 +sql select * from $mt where ts > 1626739440001 and ts < 1626739500001 and tbcol3 <> 0 and tbcol1 <> 0 if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol3 <> 0 and ts < now + 5m and ts < now + 5m and tbcol1 <> 0 +sql select * from $mt where ts > 1626739440001 and tbcol3 <> 0 and ts < 1626739500001 and ts < 1626739500001 and tbcol1 <> 0 if $rows != 5 then return -1 endi print =============== step11 -sql select * from $mt where ts > now + 4m and tbcol3 = 1 and tbcol2 = 1 +sql select * from $mt where ts > 1626739440001 and tbcol3 = 1 and tbcol2 = 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol3 <> 1 and tbcol2 <> 1 +sql select * from $mt where ts > 1626739440001 and tbcol3 <> 1 and tbcol2 <> 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol3 = 0 and tbcol2 = 0 +sql select * from $mt where ts < 1626739440001 and tbcol3 = 0 and tbcol2 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol3 <> 0 and tbcol2 <> 0 +sql select * from $mt where ts < 1626739440001 and tbcol3 <> 0 and tbcol2 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol3 = 0 and tbcol2 = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol3 = 0 and tbcol2 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol3 <> 0 and tbcol2 <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol3 <> 0 and tbcol2 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol3 <> 0 and tbcol2 <> 0 +sql select * from $mt where ts >= 1626739440001 and ts < 1626739500001 and tbcol3 <> 0 and tbcol2 <> 0 if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol3 <> 0 and ts < now + 5m and ts < now + 5m and tbcol2 <> 0 +sql select * from $mt where ts >= 1626739440001 and tbcol3 <> 0 and ts < 1626739500001 and ts < 1626739500001 and tbcol2 <> 0 if $rows != 5 then return -1 endi print =============== step12 -sql select * from $mt where ts > now + 4m and tbcol1 = 1 and tbcol2 = 1 and tbcol3 = 1 +sql select * from $mt where ts > 1626739440001 and tbcol1 = 1 and tbcol2 = 1 and tbcol3 = 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol1 <> 1 and tbcol2 <> 1 and tbcol3 <> 1 +sql select * from $mt where ts > 1626739440001 and tbcol1 <> 1 and tbcol2 <> 1 and tbcol3 <> 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol1 = 0 and tbcol2 = 0 and tbcol3 = 0 +sql select * from $mt where ts < 1626739440001 and tbcol1 = 0 and tbcol2 = 0 and tbcol3 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol1 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 +sql select * from $mt where ts < 1626739440001 and tbcol1 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol1 = 0 and tbcol2 = 0 and tbcol3 = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol1 = 0 and tbcol2 = 0 and tbcol3 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol1 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol1 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol1 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 +sql select * from $mt where ts >= 1626739440001 and ts < 1626739500001 and tbcol1 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol1 <> 0 and ts < now + 5m and ts < now + 5m and tbcol2 <> 0 and tbcol3 <> 0 +sql select * from $mt where ts >= 1626739440001 and tbcol1 <> 0 and ts < 1626739500001 and ts < 1626739500001 and tbcol2 <> 0 and tbcol3 <> 0 if $rows != 5 then return -1 endi @@ -405,25 +405,25 @@ if $data00 != 100 then endi print =============== step15 -sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < now + 4m +sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts <= 1626739440001 print $data00 $data01 $data02 $data03 $data04 $data05 $data06 if $data00 != 50 then return -1 endi -sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < now + 4m and tbcol1 = 1 +sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < 1626739440001 and tbcol1 = 1 print $data00 $data01 $data02 $data03 $data04 $data05 $data06 if $data00 != 25 then return -1 endi -sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < now + 4m and tbcol1 = 1 and tbcol2 = 1 +sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < 1626739440001 and tbcol1 = 1 and tbcol2 = 1 print $data00 $data01 $data02 $data03 $data04 $data05 $data06 if $data00 != 25 then return -1 endi -sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < now + 4m and tbcol1 = 1 and tbcol2 = 1 and tbcol3 = 1 +sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < 1626739440001 and tbcol1 = 1 and tbcol2 = 1 and tbcol3 = 1 print $data00 $data01 $data02 $data03 $data04 $data05 $data06 if $data00 != 25 then return -1 @@ -468,25 +468,25 @@ if $data00 != 100 then endi print =============== step18 -sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < now + 4m group by tgcol2 +sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < 1626739440001 group by tgcol2 print $data00 $data01 $data02 $data03 $data04 $data05 $data06 if $data00 != 25 then return -1 endi -sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < now + 4m and tbcol1 = 1 group by tgcol2 +sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < 1626739440001 and tbcol1 = 1 group by tgcol2 print $data00 $data01 $data02 $data03 $data04 $data05 $data06 if $data00 != 25 then return -1 endi -sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < now + 4m and tbcol1 = 1 and tbcol2 = 1 group by tgcol2 +sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < 1626739440001 and tbcol1 = 1 and tbcol2 = 1 group by tgcol2 print $data00 $data01 $data02 $data03 $data04 $data05 $data06 if $data00 != 25 then return -1 endi -sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < now + 4m and tbcol1 = 1 and tbcol2 = 1 and tbcol3 = 1 group by tgcol2 +sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < 1626739440001 and tbcol1 = 1 and tbcol2 = 1 and tbcol3 = 1 group by tgcol2 print $data00 $data01 $data02 $data03 $data04 $data05 $data06 if $data00 != 25 then return -1 diff --git a/tests/script/general/field/4.sim b/tests/script/general/field/4.sim index e219be87783cfea2f071db481a1f8eb457f20f5e..2d893da777bea8260a333a957cf6f904b95eb6d0 100644 --- a/tests/script/general/field/4.sim +++ b/tests/script/general/field/4.sim @@ -30,7 +30,7 @@ while $i < 5 $x = 0 while $x < $rowNum $ms = $x . m - sql insert into $tb values (now + $ms , 0, 0, 0, 0 ) + sql insert into $tb values (1626739200000 + $ms , 0, 0, 0, 0 ) $x = $x + 1 endw $i = $i + 1 @@ -41,7 +41,7 @@ while $i < 10 $x = 0 while $x < $rowNum $ms = $x . m - sql insert into $tb values (now + $ms , 1, 1, 1, 1 ) + sql insert into $tb values (1626739200000 + $ms , 1, 1, 1, 1 ) $x = $x + 1 endw $i = $i + 1 @@ -53,19 +53,19 @@ if $rows != $totalNum then return -1 endi -sql select * from $mt where ts < now + 4m +sql select * from $mt where ts < 1626739440001 if $rows != 50 then return -1 endi -sql select * from $mt where ts > now + 4m +sql select * from $mt where ts > 1626739440001 if $rows != 150 then return -1 endi -sql select * from $mt where ts = now + 4m +sql select * from $mt where ts = 1626739440001 if $rows != 0 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m +sql select * from $mt where ts > 1626739440001 and ts < 1626739500001 if $rows != 10 then return -1 endi @@ -159,375 +159,375 @@ if $rows != 100 then endi print =============== step7 -sql select * from $mt where ts > now + 4m and tbcol1 = 1 +sql select * from $mt where ts > 1626739440001 and tbcol1 = 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol1 <> 1 +sql select * from $mt where ts > 1626739440001 and tbcol1 <> 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol1 = 0 +sql select * from $mt where ts < 1626739440001 and tbcol1 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol1 <> 0 +sql select * from $mt where ts < 1626739440001 and tbcol1 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol1 = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol1 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol1 <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol1 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol1 <> 0 +sql select * from $mt where ts > 1626739440001 and ts < 1626739500001 and tbcol1 <> 0 if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol1 <> 0 and ts < now + 5m +sql select * from $mt where ts > 1626739440001 and tbcol1 <> 0 and ts < 1626739500001 if $rows != 5 then return -1 endi print =============== step8 -sql select * from $mt where ts > now + 4m and tbcol2 = 1 +sql select * from $mt where ts > 1626739440001 and tbcol2 = 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol2 <> 1 +sql select * from $mt where ts > 1626739440001 and tbcol2 <> 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol2 = 0 +sql select * from $mt where ts < 1626739440001 and tbcol2 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol2 <> 0 +sql select * from $mt where ts < 1626739440001 and tbcol2 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol2 = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol2 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol2 <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol2 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol2 <> 0 +sql select * from $mt where ts > 1626739440001 and ts < 1626739500001 and tbcol2 <> 0 if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol2 <> 0 and ts < now + 5m +sql select * from $mt where ts > 1626739440001 and tbcol2 <> 0 and ts < 1626739500001 if $rows != 5 then return -1 endi print =============== step9 -sql select * from $mt where ts > now + 4m and tbcol3 = 1 +sql select * from $mt where ts > 1626739440001 and tbcol3 = 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol3 <> 1 +sql select * from $mt where ts > 1626739440001 and tbcol3 <> 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol3 = 0 +sql select * from $mt where ts < 1626739440001 and tbcol3 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol3 <> 0 +sql select * from $mt where ts < 1626739440001 and tbcol3 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol3 = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol3 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol3 <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol3 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol3 <> 0 +sql select * from $mt where ts > 1626739440001 and ts < 1626739500001 and tbcol3 <> 0 if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol3 <> 0 and ts < now + 5m +sql select * from $mt where ts > 1626739440001 and tbcol3 <> 0 and ts < 1626739500001 if $rows != 5 then return -1 endi print =============== step10 -sql select * from $mt where ts > now + 4m and tbcol4 = 1 +sql select * from $mt where ts > 1626739440001 and tbcol4 = 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol4 <> 1 +sql select * from $mt where ts > 1626739440001 and tbcol4 <> 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol4 = 0 +sql select * from $mt where ts < 1626739440001 and tbcol4 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol4 <> 0 +sql select * from $mt where ts < 1626739440001 and tbcol4 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol4 = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol4 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol4 <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol4 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol4 <> 0 +sql select * from $mt where ts > 1626739440001 and ts < 1626739500001 and tbcol4 <> 0 if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol4 <> 0 and ts < now + 5m +sql select * from $mt where ts > 1626739440001 and tbcol4 <> 0 and ts < 1626739500001 if $rows != 5 then return -1 endi print =============== step11 -sql select * from $mt where ts > now + 4m and tbcol2 = 1 and tbcol1 = 1 +sql select * from $mt where ts > 1626739440001 and tbcol2 = 1 and tbcol1 = 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol2 <> 1 and tbcol1 <> 1 +sql select * from $mt where ts > 1626739440001 and tbcol2 <> 1 and tbcol1 <> 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol2 = 0 and tbcol1 = 0 +sql select * from $mt where ts < 1626739440001 and tbcol2 = 0 and tbcol1 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol2 <> 0 and tbcol1 <> 0 +sql select * from $mt where ts < 1626739440001 and tbcol2 <> 0 and tbcol1 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol2 = 0 and tbcol1 = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol2 = 0 and tbcol1 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol2 <> 0 and tbcol1 <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol2 <> 0 and tbcol1 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol2 <> 0 and tbcol1 <> 0 +sql select * from $mt where ts > 1626739440001 and ts < 1626739500001 and tbcol2 <> 0 and tbcol1 <> 0 if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol2 <> 0 and ts < now + 5m and ts < now + 5m and tbcol1 <> 0 +sql select * from $mt where ts > 1626739440001 and tbcol2 <> 0 and ts < 1626739500001 and ts < 1626739500001 and tbcol1 <> 0 if $rows != 5 then return -1 endi print =============== step12 -sql select * from $mt where ts > now + 4m and tbcol3 = 1 and tbcol1 = 1 +sql select * from $mt where ts > 1626739440001 and tbcol3 = 1 and tbcol1 = 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol3 <> 1 and tbcol1 <> 1 +sql select * from $mt where ts > 1626739440001 and tbcol3 <> 1 and tbcol1 <> 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol3 = 0 and tbcol1 = 0 +sql select * from $mt where ts < 1626739440001 and tbcol3 = 0 and tbcol1 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol3 <> 0 and tbcol1 <> 0 +sql select * from $mt where ts < 1626739440001 and tbcol3 <> 0 and tbcol1 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol3 = 0 and tbcol1 = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol3 = 0 and tbcol1 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol3 <> 0 and tbcol1 <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol3 <> 0 and tbcol1 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol3 <> 0 and tbcol1 <> 0 +sql select * from $mt where ts > 1626739440001 and ts < 1626739500001 and tbcol3 <> 0 and tbcol1 <> 0 if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol3 <> 0 and ts < now + 5m and ts < now + 5m and tbcol1 <> 0 +sql select * from $mt where ts > 1626739440001 and tbcol3 <> 0 and ts < 1626739500001 and ts < 1626739500001 and tbcol1 <> 0 if $rows != 5 then return -1 endi print =============== step13 -sql select * from $mt where ts > now + 4m and tbcol3 = 1 and tbcol2 = 1 +sql select * from $mt where ts > 1626739440001 and tbcol3 = 1 and tbcol2 = 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol3 <> 1 and tbcol2 <> 1 +sql select * from $mt where ts > 1626739440001 and tbcol3 <> 1 and tbcol2 <> 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol3 = 0 and tbcol2 = 0 +sql select * from $mt where ts < 1626739440001 and tbcol3 = 0 and tbcol2 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol3 <> 0 and tbcol2 <> 0 +sql select * from $mt where ts < 1626739440001 and tbcol3 <> 0 and tbcol2 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol3 = 0 and tbcol2 = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol3 = 0 and tbcol2 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol3 <> 0 and tbcol2 <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol3 <> 0 and tbcol2 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol3 <> 0 and tbcol2 <> 0 +sql select * from $mt where ts > 1626739440001 and ts < 1626739500001 and tbcol3 <> 0 and tbcol2 <> 0 if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol3 <> 0 and ts < now + 5m and ts < now + 5m and tbcol2 <> 0 +sql select * from $mt where ts > 1626739440001 and tbcol3 <> 0 and ts < 1626739500001 and ts < 1626739500001 and tbcol2 <> 0 if $rows != 5 then return -1 endi print =============== step14 -sql select * from $mt where ts > now + 4m and tbcol3 = 1 and tbcol4 = 1 +sql select * from $mt where ts > 1626739440001 and tbcol3 = 1 and tbcol4 = 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol3 <> 1 and tbcol4 <> 1 +sql select * from $mt where ts > 1626739440001 and tbcol3 <> 1 and tbcol4 <> 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol3 = 0 and tbcol4 = 0 +sql select * from $mt where ts < 1626739440001 and tbcol3 = 0 and tbcol4 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol3 <> 0 and tbcol4 <> 0 +sql select * from $mt where ts < 1626739440001 and tbcol3 <> 0 and tbcol4 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol3 = 0 and tbcol4 = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol3 = 0 and tbcol4 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol3 <> 0 and tbcol4 <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol3 <> 0 and tbcol4 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol3 <> 0 and tbcol4 <> 0 +sql select * from $mt where ts > 1626739440001 and ts < 1626739500001 and tbcol3 <> 0 and tbcol4 <> 0 if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol3 <> 0 and ts < now + 5m and ts < now + 5m and tbcol4 <> 0 +sql select * from $mt where ts > 1626739440001 and tbcol3 <> 0 and ts < 1626739500001 and ts < 1626739500001 and tbcol4 <> 0 if $rows != 5 then return -1 endi print =============== step15 -sql select * from $mt where ts > now + 4m and tbcol1 = 1 and tbcol2 = 1 and tbcol3 = 1 +sql select * from $mt where ts > 1626739440001 and tbcol1 = 1 and tbcol2 = 1 and tbcol3 = 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol1 <> 1 and tbcol2 <> 1 and tbcol3 <> 1 +sql select * from $mt where ts > 1626739440001 and tbcol1 <> 1 and tbcol2 <> 1 and tbcol3 <> 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol1 = 0 and tbcol2 = 0 and tbcol3 = 0 +sql select * from $mt where ts < 1626739440001 and tbcol1 = 0 and tbcol2 = 0 and tbcol3 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol1 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 +sql select * from $mt where ts < 1626739440001 and tbcol1 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol1 = 0 and tbcol2 = 0 and tbcol3 = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol1 = 0 and tbcol2 = 0 and tbcol3 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol1 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol1 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol1 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 +sql select * from $mt where ts > 1626739440001 and ts < 1626739500001 and tbcol1 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol1 <> 0 and ts < now + 5m and ts < now + 5m and tbcol2 <> 0 and tbcol3 <> 0 +sql select * from $mt where ts > 1626739440001 and tbcol1 <> 0 and ts < 1626739500001 and ts < 1626739500001 and tbcol2 <> 0 and tbcol3 <> 0 if $rows != 5 then return -1 endi print =============== step16 -sql select * from $mt where ts > now + 4m and tbcol4 = 1 and tbcol2 = 1 and tbcol3 = 1 +sql select * from $mt where ts > 1626739440001 and tbcol4 = 1 and tbcol2 = 1 and tbcol3 = 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol4 <> 1 and tbcol2 <> 1 and tbcol3 <> 1 +sql select * from $mt where ts > 1626739440001 and tbcol4 <> 1 and tbcol2 <> 1 and tbcol3 <> 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol4 = 0 and tbcol2 = 0 and tbcol3 = 0 +sql select * from $mt where ts < 1626739440001 and tbcol4 = 0 and tbcol2 = 0 and tbcol3 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol4 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 +sql select * from $mt where ts < 1626739440001 and tbcol4 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol4 = 0 and tbcol2 = 0 and tbcol3 = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol4 = 0 and tbcol2 = 0 and tbcol3 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol4 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol4 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol4 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 +sql select * from $mt where ts > 1626739440001 and ts < 1626739500001 and tbcol4 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol4 <> 0 and ts < now + 5m and ts < now + 5m and tbcol2 <> 0 and tbcol3 <> 0 +sql select * from $mt where ts > 1626739440001 and tbcol4 <> 0 and ts < 1626739500001 and ts < 1626739500001 and tbcol2 <> 0 and tbcol3 <> 0 if $rows != 5 then return -1 endi print =============== step17 -sql select * from $mt where ts > now + 4m and tbcol4 = 1 and tbcol2 = 1 and tbcol3 = 1 and tbcol1 = 1 +sql select * from $mt where ts > 1626739440001 and tbcol4 = 1 and tbcol2 = 1 and tbcol3 = 1 and tbcol1 = 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol4 <> 1 and tbcol2 <> 1 and tbcol3 <> 1 and tbcol1 <> 1 +sql select * from $mt where ts > 1626739440001 and tbcol4 <> 1 and tbcol2 <> 1 and tbcol3 <> 1 and tbcol1 <> 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol4 = 0 and tbcol2 = 0 and tbcol3 = 0 and tbcol1 = 0 +sql select * from $mt where ts < 1626739440001 and tbcol4 = 0 and tbcol2 = 0 and tbcol3 = 0 and tbcol1 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol4 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 and tbcol1 <> 0 +sql select * from $mt where ts < 1626739440001 and tbcol4 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 and tbcol1 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol4 = 0 and tbcol2 = 0 and tbcol3 = 0 and tbcol1 = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol4 = 0 and tbcol2 = 0 and tbcol3 = 0 and tbcol1 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol4 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 and tbcol1 <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol4 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 and tbcol1 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol4 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 and tbcol1 <> 0 +sql select * from $mt where ts > 1626739440001 and ts < 1626739500001 and tbcol4 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 and tbcol1 <> 0 if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol4 <> 0 and ts < now + 5m and ts < now + 5m and tbcol2 <> 0 and tbcol3 <> 0 and tbcol1 <> 0 +sql select * from $mt where ts > 1626739440001 and tbcol4 <> 0 and ts < 1626739500001 and ts < 1626739500001 and tbcol2 <> 0 and tbcol3 <> 0 and tbcol1 <> 0 if $rows != 5 then return -1 endi @@ -565,31 +565,31 @@ if $data00 != 100 then endi print =============== step20 -sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < now + 4m +sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < 1626739440001 print $data00 $data01 $data02 $data03 $data04 $data05 $data06 if $data00 != 50 then return -1 endi -sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < now + 4m and tbcol1 = 1 +sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < 1626739440001 and tbcol1 = 1 print $data00 $data01 $data02 $data03 $data04 $data05 $data06 if $data00 != 25 then return -1 endi -sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < now + 4m and tbcol1 = 1 and tbcol2 = 1 +sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < 1626739440001 and tbcol1 = 1 and tbcol2 = 1 print $data00 $data01 $data02 $data03 $data04 $data05 $data06 if $data00 != 25 then return -1 endi -sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < now + 4m and tbcol1 = 1 and tbcol2 = 1 and tbcol3 = 1 +sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < 1626739440001 and tbcol1 = 1 and tbcol2 = 1 and tbcol3 = 1 print $data00 $data01 $data02 $data03 $data04 $data05 $data06 if $data00 != 25 then return -1 endi -sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < now + 4m and tbcol1 = 1 and tbcol2 = 1 and tbcol3 = 1 and tbcol4 = 1 +sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < 1626739440001 and tbcol1 = 1 and tbcol2 = 1 and tbcol3 = 1 and tbcol4 = 1 print $data00 $data01 $data02 $data03 $data04 $data05 $data06 if $data00 != 25 then return -1 @@ -646,31 +646,31 @@ if $data00 != 100 then endi print =============== step23 -sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < now + 4m group by tgcol2 +sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < 1626739440001 group by tgcol2 print $data00 $data01 $data02 $data03 $data04 $data05 $data06 if $data00 != 25 then return -1 endi -sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < now + 4m and tbcol1 = 1 group by tgcol2 +sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < 1626739440001 and tbcol1 = 1 group by tgcol2 print $data00 $data01 $data02 $data03 $data04 $data05 $data06 if $data00 != 25 then return -1 endi -sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < now + 4m and tbcol1 = 1 and tbcol2 = 1 group by tgcol2 +sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < 1626739440001 and tbcol1 = 1 and tbcol2 = 1 group by tgcol2 print $data00 $data01 $data02 $data03 $data04 $data05 $data06 if $data00 != 25 then return -1 endi -sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < now + 4m and tbcol1 = 1 and tbcol2 = 1 and tbcol3 = 1 group by tgcol2 +sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < 1626739440001 and tbcol1 = 1 and tbcol2 = 1 and tbcol3 = 1 group by tgcol2 print $data00 $data01 $data02 $data03 $data04 $data05 $data06 if $data00 != 25 then return -1 endi -sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < now + 4m and tbcol1 = 1 and tbcol2 = 1 and tbcol3 = 1 and tbcol4 = 1 group by tgcol2 +sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < 1626739440001 and tbcol1 = 1 and tbcol2 = 1 and tbcol3 = 1 and tbcol4 = 1 group by tgcol2 print $data00 $data01 $data02 $data03 $data04 $data05 $data06 if $data00 != 25 then return -1 diff --git a/tests/script/general/field/5.sim b/tests/script/general/field/5.sim index e02bbd122ff00a0f727ff8706e4a5cc3cf28a57b..e1421bdb4f9e25b37deeafe699feb1ce8c0f6c0a 100644 --- a/tests/script/general/field/5.sim +++ b/tests/script/general/field/5.sim @@ -30,7 +30,7 @@ while $i < 5 $x = 0 while $x < $rowNum $ms = $x . m - sql insert into $tb values (now + $ms , 0, 0, 0, 0, 0 ) + sql insert into $tb values (1626739200000 + $ms , 0, 0, 0, 0, 0 ) $x = $x + 1 endw $i = $i + 1 @@ -41,7 +41,7 @@ while $i < 10 $x = 0 while $x < $rowNum $ms = $x . m - sql insert into $tb values (now + $ms , 1, 1, 1, 1, 1 ) + sql insert into $tb values (1626739200000 + $ms , 1, 1, 1, 1, 1 ) $x = $x + 1 endw $i = $i + 1 @@ -53,19 +53,19 @@ if $rows != $totalNum then return -1 endi -sql select * from $mt where ts < now + 4m +sql select * from $mt where ts < 1626739440001 if $rows != 50 then return -1 endi -sql select * from $mt where ts > now + 4m +sql select * from $mt where ts > 1626739440001 if $rows != 150 then return -1 endi -sql select * from $mt where ts = now + 4m +sql select * from $mt where ts = 1626739440001 if $rows != 0 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m +sql select * from $mt where ts > 1626739440001 and ts < 1626739500001 if $rows != 10 then return -1 endi @@ -177,443 +177,443 @@ if $rows != 100 then endi print =============== step8 -sql select * from $mt where ts > now + 4m and tbcol1 = 1 +sql select * from $mt where ts > 1626739440001 and tbcol1 = 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol1 <> 1 +sql select * from $mt where ts > 1626739440001 and tbcol1 <> 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol1 = 0 +sql select * from $mt where ts < 1626739440001 and tbcol1 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol1 <> 0 +sql select * from $mt where ts < 1626739440001 and tbcol1 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol1 = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol1 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol1 <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol1 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol1 <> 0 +sql select * from $mt where ts > 1626739440001 and ts < 1626739500001 and tbcol1 <> 0 if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol1 <> 0 and ts < now + 5m +sql select * from $mt where ts > 1626739440001 and tbcol1 <> 0 and ts < 1626739500001 if $rows != 5 then return -1 endi print =============== step9 -sql select * from $mt where ts > now + 4m and tbcol2 = 1 +sql select * from $mt where ts > 1626739440001 and tbcol2 = 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol2 <> 1 +sql select * from $mt where ts > 1626739440001 and tbcol2 <> 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol2 = 0 +sql select * from $mt where ts < 1626739440001 and tbcol2 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol2 <> 0 +sql select * from $mt where ts < 1626739440001 and tbcol2 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol2 = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol2 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol2 <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol2 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol2 <> 0 +sql select * from $mt where ts > 1626739440001 and ts < 1626739500001 and tbcol2 <> 0 if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol2 <> 0 and ts < now + 5m +sql select * from $mt where ts > 1626739440001 and tbcol2 <> 0 and ts < 1626739500001 if $rows != 5 then return -1 endi print =============== step10 -sql select * from $mt where ts > now + 4m and tbcol3 = 1 +sql select * from $mt where ts > 1626739440001 and tbcol3 = 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol3 <> 1 +sql select * from $mt where ts > 1626739440001 and tbcol3 <> 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol3 = 0 +sql select * from $mt where ts < 1626739440001 and tbcol3 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol3 <> 0 +sql select * from $mt where ts < 1626739440001 and tbcol3 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol3 = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol3 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol3 <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol3 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol3 <> 0 +sql select * from $mt where ts > 1626739440001 and ts < 1626739500001 and tbcol3 <> 0 if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol3 <> 0 and ts < now + 5m +sql select * from $mt where ts > 1626739440001 and tbcol3 <> 0 and ts < 1626739500001 if $rows != 5 then return -1 endi print =============== step11 -sql select * from $mt where ts > now + 4m and tbcol4 = 1 +sql select * from $mt where ts > 1626739440001 and tbcol4 = 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol4 <> 1 +sql select * from $mt where ts > 1626739440001 and tbcol4 <> 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol4 = 0 +sql select * from $mt where ts < 1626739440001 and tbcol4 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol4 <> 0 +sql select * from $mt where ts < 1626739440001 and tbcol4 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol4 = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol4 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol4 <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol4 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol4 <> 0 +sql select * from $mt where ts > 1626739440001 and ts < 1626739500001 and tbcol4 <> 0 if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol4 <> 0 and ts < now + 5m +sql select * from $mt where ts > 1626739440001 and tbcol4 <> 0 and ts < 1626739500001 if $rows != 5 then return -1 endi print =============== step12 -sql select * from $mt where ts > now + 4m and tbcol5 = 1 +sql select * from $mt where ts > 1626739440001 and tbcol5 = 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol5 <> 1 +sql select * from $mt where ts > 1626739440001 and tbcol5 <> 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol5 = 0 +sql select * from $mt where ts < 1626739440001 and tbcol5 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol5 <> 0 +sql select * from $mt where ts < 1626739440001 and tbcol5 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol5 = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol5 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol5 <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol5 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol5 <> 0 +sql select * from $mt where ts > 1626739440001 and ts < 1626739500001 and tbcol5 <> 0 if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol5 <> 0 and ts < now + 5m +sql select * from $mt where ts > 1626739440001 and tbcol5 <> 0 and ts < 1626739500001 if $rows != 5 then return -1 endi print =============== step13 -sql select * from $mt where ts > now + 4m and tbcol2 = 1 and tbcol1 = 1 +sql select * from $mt where ts > 1626739440001 and tbcol2 = 1 and tbcol1 = 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol2 <> 1 and tbcol1 <> 1 +sql select * from $mt where ts > 1626739440001 and tbcol2 <> 1 and tbcol1 <> 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol2 = 0 and tbcol1 = 0 +sql select * from $mt where ts < 1626739440001 and tbcol2 = 0 and tbcol1 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol2 <> 0 and tbcol1 <> 0 +sql select * from $mt where ts < 1626739440001 and tbcol2 <> 0 and tbcol1 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol2 = 0 and tbcol1 = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol2 = 0 and tbcol1 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol2 <> 0 and tbcol1 <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol2 <> 0 and tbcol1 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol2 <> 0 and tbcol1 <> 0 +sql select * from $mt where ts > 1626739440001 and ts < 1626739500001 and tbcol2 <> 0 and tbcol1 <> 0 if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol2 <> 0 and ts < now + 5m and ts < now + 5m and tbcol1 <> 0 +sql select * from $mt where ts > 1626739440001 and tbcol2 <> 0 and ts < 1626739500001 and ts < 1626739500001 and tbcol1 <> 0 if $rows != 5 then return -1 endi print =============== step14 -sql select * from $mt where ts > now + 4m and tbcol3 = 1 and tbcol2 = 1 +sql select * from $mt where ts > 1626739440001 and tbcol3 = 1 and tbcol2 = 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol3 <> 1 and tbcol2 <> 1 +sql select * from $mt where ts > 1626739440001 and tbcol3 <> 1 and tbcol2 <> 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol3 = 0 and tbcol2 = 0 +sql select * from $mt where ts < 1626739440001 and tbcol3 = 0 and tbcol2 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol3 <> 0 and tbcol2 <> 0 +sql select * from $mt where ts < 1626739440001 and tbcol3 <> 0 and tbcol2 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol3 = 0 and tbcol2 = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol3 = 0 and tbcol2 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol3 <> 0 and tbcol2 <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol3 <> 0 and tbcol2 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol3 <> 0 and tbcol2 <> 0 +sql select * from $mt where ts > 1626739440001 and ts < 1626739500001 and tbcol3 <> 0 and tbcol2 <> 0 if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol3 <> 0 and ts < now + 5m and ts < now + 5m and tbcol2 <> 0 +sql select * from $mt where ts > 1626739440001 and tbcol3 <> 0 and ts < 1626739500001 and ts < 1626739500001 and tbcol2 <> 0 if $rows != 5 then return -1 endi print =============== step15 -sql select * from $mt where ts > now + 4m and tbcol3 = 1 and tbcol4 = 1 +sql select * from $mt where ts > 1626739440001 and tbcol3 = 1 and tbcol4 = 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol3 <> 1 and tbcol4 <> 1 +sql select * from $mt where ts > 1626739440001 and tbcol3 <> 1 and tbcol4 <> 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol3 = 0 and tbcol4 = 0 +sql select * from $mt where ts < 1626739440001 and tbcol3 = 0 and tbcol4 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol3 <> 0 and tbcol4 <> 0 +sql select * from $mt where ts < 1626739440001 and tbcol3 <> 0 and tbcol4 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol3 = 0 and tbcol4 = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol3 = 0 and tbcol4 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol3 <> 0 and tbcol4 <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol3 <> 0 and tbcol4 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol3 <> 0 and tbcol4 <> 0 +sql select * from $mt where ts > 1626739440001 and ts < 1626739500001 and tbcol3 <> 0 and tbcol4 <> 0 if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol3 <> 0 and ts < now + 5m and ts < now + 5m and tbcol4 <> 0 +sql select * from $mt where ts > 1626739440001 and tbcol3 <> 0 and ts < 1626739500001 and ts < 1626739500001 and tbcol4 <> 0 if $rows != 5 then return -1 endi print =============== step16 -sql select * from $mt where ts > now + 4m and tbcol5 = 1 and tbcol4 = 1 +sql select * from $mt where ts > 1626739440001 and tbcol5 = 1 and tbcol4 = 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol5 <> 1 and tbcol4 <> 1 +sql select * from $mt where ts > 1626739440001 and tbcol5 <> 1 and tbcol4 <> 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol5 = 0 and tbcol4 = 0 +sql select * from $mt where ts < 1626739440001 and tbcol5 = 0 and tbcol4 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol5 <> 0 and tbcol4 <> 0 +sql select * from $mt where ts < 1626739440001 and tbcol5 <> 0 and tbcol4 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol5 = 0 and tbcol4 = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol5 = 0 and tbcol4 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol5 <> 0 and tbcol4 <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol5 <> 0 and tbcol4 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol5 <> 0 and tbcol4 <> 0 +sql select * from $mt where ts > 1626739440001 and ts < 1626739500001 and tbcol5 <> 0 and tbcol4 <> 0 if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol5 <> 0 and ts < now + 5m and ts < now + 5m and tbcol4 <> 0 +sql select * from $mt where ts > 1626739440001 and tbcol5 <> 0 and ts < 1626739500001 and ts < 1626739500001 and tbcol4 <> 0 if $rows != 5 then return -1 endi print =============== step17 -sql select * from $mt where ts > now + 4m and tbcol1 = 1 and tbcol2 = 1 and tbcol3 = 1 +sql select * from $mt where ts > 1626739440001 and tbcol1 = 1 and tbcol2 = 1 and tbcol3 = 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol1 <> 1 and tbcol2 <> 1 and tbcol3 <> 1 +sql select * from $mt where ts > 1626739440001 and tbcol1 <> 1 and tbcol2 <> 1 and tbcol3 <> 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol1 = 0 and tbcol2 = 0 and tbcol3 = 0 +sql select * from $mt where ts < 1626739440001 and tbcol1 = 0 and tbcol2 = 0 and tbcol3 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol1 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 +sql select * from $mt where ts < 1626739440001 and tbcol1 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol1 = 0 and tbcol2 = 0 and tbcol3 = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol1 = 0 and tbcol2 = 0 and tbcol3 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol1 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol1 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol1 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 +sql select * from $mt where ts > 1626739440001 and ts < 1626739500001 and tbcol1 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol1 <> 0 and ts < now + 5m and ts < now + 5m and tbcol2 <> 0 and tbcol3 <> 0 +sql select * from $mt where ts > 1626739440001 and tbcol1 <> 0 and ts < 1626739500001 and ts < 1626739500001 and tbcol2 <> 0 and tbcol3 <> 0 if $rows != 5 then return -1 endi print =============== step18 -sql select * from $mt where ts > now + 4m and tbcol4 = 1 and tbcol2 = 1 and tbcol3 = 1 +sql select * from $mt where ts > 1626739440001 and tbcol4 = 1 and tbcol2 = 1 and tbcol3 = 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol4 <> 1 and tbcol2 <> 1 and tbcol3 <> 1 +sql select * from $mt where ts > 1626739440001 and tbcol4 <> 1 and tbcol2 <> 1 and tbcol3 <> 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol4 = 0 and tbcol2 = 0 and tbcol3 = 0 +sql select * from $mt where ts < 1626739440001 and tbcol4 = 0 and tbcol2 = 0 and tbcol3 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol4 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 +sql select * from $mt where ts < 1626739440001 and tbcol4 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol4 = 0 and tbcol2 = 0 and tbcol3 = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol4 = 0 and tbcol2 = 0 and tbcol3 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol4 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol4 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol4 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 +sql select * from $mt where ts > 1626739440001 and ts < 1626739500001 and tbcol4 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol4 <> 0 and ts < now + 5m and ts < now + 5m and tbcol2 <> 0 and tbcol3 <> 0 +sql select * from $mt where ts > 1626739440001 and tbcol4 <> 0 and ts < 1626739500001 and ts < 1626739500001 and tbcol2 <> 0 and tbcol3 <> 0 if $rows != 5 then return -1 endi print =============== step19 -sql select * from $mt where ts > now + 4m and tbcol4 = 1 and tbcol2 = 1 and tbcol3 = 1 and tbcol1 = 1 +sql select * from $mt where ts > 1626739440001 and tbcol4 = 1 and tbcol2 = 1 and tbcol3 = 1 and tbcol1 = 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol4 <> 1 and tbcol2 <> 1 and tbcol3 <> 1 and tbcol1 <> 1 +sql select * from $mt where ts > 1626739440001 and tbcol4 <> 1 and tbcol2 <> 1 and tbcol3 <> 1 and tbcol1 <> 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol4 = 0 and tbcol2 = 0 and tbcol3 = 0 and tbcol1 = 0 +sql select * from $mt where ts < 1626739440001 and tbcol4 = 0 and tbcol2 = 0 and tbcol3 = 0 and tbcol1 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol4 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 and tbcol1 <> 0 +sql select * from $mt where ts < 1626739440001 and tbcol4 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 and tbcol1 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol4 = 0 and tbcol2 = 0 and tbcol3 = 0 and tbcol1 = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol4 = 0 and tbcol2 = 0 and tbcol3 = 0 and tbcol1 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol4 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 and tbcol1 <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol4 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 and tbcol1 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol4 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 and tbcol1 <> 0 +sql select * from $mt where ts > 1626739440001 and ts < 1626739500001 and tbcol4 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 and tbcol1 <> 0 if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol4 <> 0 and ts < now + 5m and ts < now + 5m and tbcol2 <> 0 and tbcol3 <> 0 and tbcol1 <> 0 +sql select * from $mt where ts > 1626739440001 and tbcol4 <> 0 and ts < 1626739500001 and ts < 1626739500001 and tbcol2 <> 0 and tbcol3 <> 0 and tbcol1 <> 0 if $rows != 5 then return -1 endi print =============== step20 -sql select * from $mt where ts > now + 4m and tbcol4 = 1 and tbcol2 = 1 and tbcol3 = 1 and tbcol1 = 1 and tbcol5 = 1 +sql select * from $mt where ts > 1626739440001 and tbcol4 = 1 and tbcol2 = 1 and tbcol3 = 1 and tbcol1 = 1 and tbcol5 = 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol4 <> 1 and tbcol2 <> 1 and tbcol3 <> 1 and tbcol1 <> 1 and tbcol5 <> 1 +sql select * from $mt where ts > 1626739440001 and tbcol4 <> 1 and tbcol2 <> 1 and tbcol3 <> 1 and tbcol1 <> 1 and tbcol5 <> 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol4 = 0 and tbcol2 = 0 and tbcol3 = 0 and tbcol1 = 0 and tbcol5 = 0 +sql select * from $mt where ts < 1626739440001 and tbcol4 = 0 and tbcol2 = 0 and tbcol3 = 0 and tbcol1 = 0 and tbcol5 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol4 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 and tbcol1 <> 0 and tbcol5 <> 0 +sql select * from $mt where ts < 1626739440001 and tbcol4 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 and tbcol1 <> 0 and tbcol5 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol4 = 0 and tbcol2 = 0 and tbcol3 = 0 and tbcol1 = 0 and tbcol5 = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol4 = 0 and tbcol2 = 0 and tbcol3 = 0 and tbcol1 = 0 and tbcol5 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol4 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 and tbcol1 <> 0 and tbcol5 <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol4 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 and tbcol1 <> 0 and tbcol5 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol4 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 and tbcol1 <> 0 and tbcol5 <> 0 +sql select * from $mt where ts > 1626739440001 and ts < 1626739500001 and tbcol4 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 and tbcol1 <> 0 and tbcol5 <> 0 if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol4 <> 0 and ts < now + 5m and ts < now + 5m and tbcol2 <> 0 and tbcol3 <> 0 and tbcol1 <> 0 and tbcol5 <> 0 +sql select * from $mt where ts > 1626739440001 and tbcol4 <> 0 and ts < 1626739500001 and ts < 1626739500001 and tbcol2 <> 0 and tbcol3 <> 0 and tbcol1 <> 0 and tbcol5 <> 0 if $rows != 5 then return -1 endi @@ -657,37 +657,37 @@ if $data00 != 100 then endi print =============== step23 -sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < now + 4m +sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < 1626739440001 print $data00 $data01 $data02 $data03 $data04 $data05 $data06 if $data00 != 50 then return -1 endi -sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < now + 4m and tbcol1 = 1 +sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < 1626739440001 and tbcol1 = 1 print $data00 $data01 $data02 $data03 $data04 $data05 $data06 if $data00 != 25 then return -1 endi -sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < now + 4m and tbcol1 = 1 and tbcol2 = 1 +sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < 1626739440001 and tbcol1 = 1 and tbcol2 = 1 print $data00 $data01 $data02 $data03 $data04 $data05 $data06 if $data00 != 25 then return -1 endi -sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < now + 4m and tbcol1 = 1 and tbcol2 = 1 and tbcol3 = 1 +sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < 1626739440001 and tbcol1 = 1 and tbcol2 = 1 and tbcol3 = 1 print $data00 $data01 $data02 $data03 $data04 $data05 $data06 if $data00 != 25 then return -1 endi -sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < now + 4m and tbcol1 = 1 and tbcol2 = 1 and tbcol3 = 1 and tbcol4 = 1 +sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < 1626739440001 and tbcol1 = 1 and tbcol2 = 1 and tbcol3 = 1 and tbcol4 = 1 print $data00 $data01 $data02 $data03 $data04 $data05 $data06 if $data00 != 25 then return -1 endi -sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < now + 4m and tbcol1 = 1 and tbcol2 = 1 and tbcol3 = 1 and tbcol4 = 1 and tbcol5 = 1 +sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < 1626739440001 and tbcol1 = 1 and tbcol2 = 1 and tbcol3 = 1 and tbcol4 = 1 and tbcol5 = 1 print $data00 $data01 $data02 $data03 $data04 $data05 $data06 if $data00 != 25 then return -1 @@ -756,37 +756,37 @@ if $data00 != 100 then endi print =============== step26 -sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < now + 4m group by tgcol2 +sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < 1626739440001 group by tgcol2 print $data00 $data01 $data02 $data03 $data04 $data05 $data06 if $data00 != 25 then return -1 endi -sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < now + 4m and tbcol1 = 1 group by tgcol2 +sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < 1626739440001 and tbcol1 = 1 group by tgcol2 print $data00 $data01 $data02 $data03 $data04 $data05 $data06 if $data00 != 25 then return -1 endi -sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < now + 4m and tbcol1 = 1 and tbcol2 = 1 group by tgcol2 +sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < 1626739440001 and tbcol1 = 1 and tbcol2 = 1 group by tgcol2 print $data00 $data01 $data02 $data03 $data04 $data05 $data06 if $data00 != 25 then return -1 endi -sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < now + 4m and tbcol1 = 1 and tbcol2 = 1 and tbcol3 = 1 group by tgcol2 +sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < 1626739440001 and tbcol1 = 1 and tbcol2 = 1 and tbcol3 = 1 group by tgcol2 print $data00 $data01 $data02 $data03 $data04 $data05 $data06 if $data00 != 25 then return -1 endi -sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < now + 4m and tbcol1 = 1 and tbcol2 = 1 and tbcol3 = 1 and tbcol4 = 1 group by tgcol2 +sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < 1626739440001 and tbcol1 = 1 and tbcol2 = 1 and tbcol3 = 1 and tbcol4 = 1 group by tgcol2 print $data00 $data01 $data02 $data03 $data04 $data05 $data06 if $data00 != 25 then return -1 endi -sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < now + 4m and tbcol1 = 1 and tbcol2 = 1 and tbcol3 = 1 and tbcol4 = 1 and tbcol5 = 1 group by tgcol2 +sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < 1626739440001 and tbcol1 = 1 and tbcol2 = 1 and tbcol3 = 1 and tbcol4 = 1 and tbcol5 = 1 group by tgcol2 print $data00 $data01 $data02 $data03 $data04 $data05 $data06 if $data00 != 25 then return -1 diff --git a/tests/script/general/field/6.sim b/tests/script/general/field/6.sim index a852230cea7fd53f1fbc8e6cd44a67ba137ab3b3..27475d591fc6acaffb4e1f985f59d9a3c8778df5 100644 --- a/tests/script/general/field/6.sim +++ b/tests/script/general/field/6.sim @@ -30,7 +30,7 @@ while $i < 5 $x = 0 while $x < $rowNum $ms = $x . m - sql insert into $tb values (now + $ms , 0, 0, 0, 0, 0, 0 ) + sql insert into $tb values (1626739200000 + $ms , 0, 0, 0, 0, 0, 0 ) $x = $x + 1 endw $i = $i + 1 @@ -41,7 +41,7 @@ while $i < 10 $x = 0 while $x < $rowNum $ms = $x . m - sql insert into $tb values (now + $ms , 1, 1, 1, 1, 1, 1 ) + sql insert into $tb values (1626739200000 + $ms , 1, 1, 1, 1, 1, 1 ) $x = $x + 1 endw $i = $i + 1 @@ -53,19 +53,19 @@ if $rows != $totalNum then return -1 endi -sql select * from $mt where ts < now + 4m +sql select * from $mt where ts < 1626739440001 if $rows != 50 then return -1 endi -sql select * from $mt where ts > now + 4m +sql select * from $mt where ts > 1626739440001 if $rows != 150 then return -1 endi -sql select * from $mt where ts = now + 4m +sql select * from $mt where ts = 1626739440001 if $rows != 0 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m +sql select * from $mt where ts > 1626739440001 and ts < 1626739500001 if $rows != 10 then return -1 endi @@ -195,545 +195,545 @@ if $rows != 100 then endi print =============== step9 -sql select * from $mt where ts > now + 4m and tbcol1 = 1 +sql select * from $mt where ts > 1626739440001 and tbcol1 = 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol1 <> 1 +sql select * from $mt where ts > 1626739440001 and tbcol1 <> 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol1 = 0 +sql select * from $mt where ts < 1626739440001 and tbcol1 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol1 <> 0 +sql select * from $mt where ts < 1626739440001 and tbcol1 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol1 = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol1 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol1 <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol1 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol1 <> 0 +sql select * from $mt where ts > 1626739440001 and ts < 1626739500001 and tbcol1 <> 0 if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol1 <> 0 and ts < now + 5m +sql select * from $mt where ts > 1626739440001 and tbcol1 <> 0 and ts < 1626739500001 if $rows != 5 then return -1 endi print =============== step10 -sql select * from $mt where ts > now + 4m and tbcol2 = 1 +sql select * from $mt where ts > 1626739440001 and tbcol2 = 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol2 <> 1 +sql select * from $mt where ts > 1626739440001 and tbcol2 <> 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol2 = 0 +sql select * from $mt where ts < 1626739440001 and tbcol2 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol2 <> 0 +sql select * from $mt where ts < 1626739440001 and tbcol2 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol2 = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol2 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol2 <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol2 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol2 <> 0 +sql select * from $mt where ts > 1626739440001 and ts < 1626739500001 and tbcol2 <> 0 if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol2 <> 0 and ts < now + 5m +sql select * from $mt where ts > 1626739440001 and tbcol2 <> 0 and ts < 1626739500001 if $rows != 5 then return -1 endi print =============== step11 -sql select * from $mt where ts > now + 4m and tbcol3 = 1 +sql select * from $mt where ts > 1626739440001 and tbcol3 = 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol3 <> 1 +sql select * from $mt where ts > 1626739440001 and tbcol3 <> 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol3 = 0 +sql select * from $mt where ts < 1626739440001 and tbcol3 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol3 <> 0 +sql select * from $mt where ts < 1626739440001 and tbcol3 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol3 = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol3 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol3 <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol3 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol3 <> 0 +sql select * from $mt where ts > 1626739440001 and ts < 1626739500001 and tbcol3 <> 0 if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol3 <> 0 and ts < now + 5m +sql select * from $mt where ts > 1626739440001 and tbcol3 <> 0 and ts < 1626739500001 if $rows != 5 then return -1 endi print =============== step12 -sql select * from $mt where ts > now + 4m and tbcol4 = 1 +sql select * from $mt where ts > 1626739440001 and tbcol4 = 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol4 <> 1 +sql select * from $mt where ts > 1626739440001 and tbcol4 <> 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol4 = 0 +sql select * from $mt where ts < 1626739440001 and tbcol4 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol4 <> 0 +sql select * from $mt where ts < 1626739440001 and tbcol4 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol4 = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol4 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol4 <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol4 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol4 <> 0 +sql select * from $mt where ts > 1626739440001 and ts < 1626739500001 and tbcol4 <> 0 if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol4 <> 0 and ts < now + 5m +sql select * from $mt where ts > 1626739440001 and tbcol4 <> 0 and ts < 1626739500001 if $rows != 5 then return -1 endi print =============== step13 -sql select * from $mt where ts > now + 4m and tbcol5 = 1 +sql select * from $mt where ts > 1626739440001 and tbcol5 = 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol5 <> 1 +sql select * from $mt where ts > 1626739440001 and tbcol5 <> 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol5 = 0 +sql select * from $mt where ts < 1626739440001 and tbcol5 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol5 <> 0 +sql select * from $mt where ts < 1626739440001 and tbcol5 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol5 = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol5 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol5 <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol5 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol5 <> 0 +sql select * from $mt where ts > 1626739440001 and ts < 1626739500001 and tbcol5 <> 0 if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol5 <> 0 and ts < now + 5m +sql select * from $mt where ts > 1626739440001 and tbcol5 <> 0 and ts < 1626739500001 if $rows != 5 then return -1 endi print =============== step14 -sql select * from $mt where ts > now + 4m and tbcol6 = 1 +sql select * from $mt where ts > 1626739440001 and tbcol6 = 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol6 <> 1 +sql select * from $mt where ts > 1626739440001 and tbcol6 <> 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol6 = 0 +sql select * from $mt where ts < 1626739440001 and tbcol6 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol6 <> 0 +sql select * from $mt where ts < 1626739440001 and tbcol6 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol6 = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol6 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol6 <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol6 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol6 <> 0 +sql select * from $mt where ts > 1626739440001 and ts < 1626739500001 and tbcol6 <> 0 if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol6 <> 0 and ts < now + 5m +sql select * from $mt where ts > 1626739440001 and tbcol6 <> 0 and ts < 1626739500001 if $rows != 5 then return -1 endi print =============== step15 -sql select * from $mt where ts > now + 4m and tbcol2 = 1 and tbcol1 = 1 +sql select * from $mt where ts > 1626739440001 and tbcol2 = 1 and tbcol1 = 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol2 <> 1 and tbcol1 <> 1 +sql select * from $mt where ts > 1626739440001 and tbcol2 <> 1 and tbcol1 <> 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol2 = 0 and tbcol1 = 0 +sql select * from $mt where ts < 1626739440001 and tbcol2 = 0 and tbcol1 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol2 <> 0 and tbcol1 <> 0 +sql select * from $mt where ts < 1626739440001 and tbcol2 <> 0 and tbcol1 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol2 = 0 and tbcol1 = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol2 = 0 and tbcol1 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol2 <> 0 and tbcol1 <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol2 <> 0 and tbcol1 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol2 <> 0 and tbcol1 <> 0 +sql select * from $mt where ts > 1626739440001 and ts < 1626739500001 and tbcol2 <> 0 and tbcol1 <> 0 if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol2 <> 0 and ts < now + 5m and ts < now + 5m and tbcol1 <> 0 +sql select * from $mt where ts > 1626739440001 and tbcol2 <> 0 and ts < 1626739500001 and ts < 1626739500001 and tbcol1 <> 0 if $rows != 5 then return -1 endi print =============== step16 -sql select * from $mt where ts > now + 4m and tbcol3 = 1 and tbcol2 = 1 +sql select * from $mt where ts > 1626739440001 and tbcol3 = 1 and tbcol2 = 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol3 <> 1 and tbcol2 <> 1 +sql select * from $mt where ts > 1626739440001 and tbcol3 <> 1 and tbcol2 <> 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol3 = 0 and tbcol2 = 0 +sql select * from $mt where ts < 1626739440001 and tbcol3 = 0 and tbcol2 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol3 <> 0 and tbcol2 <> 0 +sql select * from $mt where ts < 1626739440001 and tbcol3 <> 0 and tbcol2 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol3 = 0 and tbcol2 = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol3 = 0 and tbcol2 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol3 <> 0 and tbcol2 <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol3 <> 0 and tbcol2 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol3 <> 0 and tbcol2 <> 0 +sql select * from $mt where ts > 1626739440001 and ts < 1626739500001 and tbcol3 <> 0 and tbcol2 <> 0 if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol3 <> 0 and ts < now + 5m and ts < now + 5m and tbcol2 <> 0 +sql select * from $mt where ts > 1626739440001 and tbcol3 <> 0 and ts < 1626739500001 and ts < 1626739500001 and tbcol2 <> 0 if $rows != 5 then return -1 endi print =============== step17 -sql select * from $mt where ts > now + 4m and tbcol3 = 1 and tbcol4 = 1 +sql select * from $mt where ts > 1626739440001 and tbcol3 = 1 and tbcol4 = 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol3 <> 1 and tbcol4 <> 1 +sql select * from $mt where ts > 1626739440001 and tbcol3 <> 1 and tbcol4 <> 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol3 = 0 and tbcol4 = 0 +sql select * from $mt where ts < 1626739440001 and tbcol3 = 0 and tbcol4 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol3 <> 0 and tbcol4 <> 0 +sql select * from $mt where ts < 1626739440001 and tbcol3 <> 0 and tbcol4 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol3 = 0 and tbcol4 = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol3 = 0 and tbcol4 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol3 <> 0 and tbcol4 <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol3 <> 0 and tbcol4 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol3 <> 0 and tbcol4 <> 0 +sql select * from $mt where ts > 1626739440001 and ts < 1626739500001 and tbcol3 <> 0 and tbcol4 <> 0 if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol3 <> 0 and ts < now + 5m and ts < now + 5m and tbcol4 <> 0 +sql select * from $mt where ts > 1626739440001 and tbcol3 <> 0 and ts < 1626739500001 and ts < 1626739500001 and tbcol4 <> 0 if $rows != 5 then return -1 endi print =============== step18 -sql select * from $mt where ts > now + 4m and tbcol5 = 1 and tbcol4 = 1 +sql select * from $mt where ts > 1626739440001 and tbcol5 = 1 and tbcol4 = 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol5 <> 1 and tbcol4 <> 1 +sql select * from $mt where ts > 1626739440001 and tbcol5 <> 1 and tbcol4 <> 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol5 = 0 and tbcol4 = 0 +sql select * from $mt where ts < 1626739440001 and tbcol5 = 0 and tbcol4 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol5 <> 0 and tbcol4 <> 0 +sql select * from $mt where ts < 1626739440001 and tbcol5 <> 0 and tbcol4 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol5 = 0 and tbcol4 = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol5 = 0 and tbcol4 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol5 <> 0 and tbcol4 <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol5 <> 0 and tbcol4 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol5 <> 0 and tbcol4 <> 0 +sql select * from $mt where ts > 1626739440001 and ts < 1626739500001 and tbcol5 <> 0 and tbcol4 <> 0 if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol5 <> 0 and ts < now + 5m and ts < now + 5m and tbcol4 <> 0 +sql select * from $mt where ts > 1626739440001 and tbcol5 <> 0 and ts < 1626739500001 and ts < 1626739500001 and tbcol4 <> 0 if $rows != 5 then return -1 endi print =============== step19 -sql select * from $mt where ts > now + 4m and tbcol5 = 1 and tbcol6 = 1 +sql select * from $mt where ts > 1626739440001 and tbcol5 = 1 and tbcol6 = 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol5 <> 1 and tbcol6 <> 1 +sql select * from $mt where ts > 1626739440001 and tbcol5 <> 1 and tbcol6 <> 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol5 = 0 and tbcol6 = 0 +sql select * from $mt where ts < 1626739440001 and tbcol5 = 0 and tbcol6 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol5 <> 0 and tbcol6 <> 0 +sql select * from $mt where ts < 1626739440001 and tbcol5 <> 0 and tbcol6 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol5 = 0 and tbcol6 = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol5 = 0 and tbcol6 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol5 <> 0 and tbcol6 <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol5 <> 0 and tbcol6 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol5 <> 0 and tbcol6 <> 0 +sql select * from $mt where ts > 1626739440001 and ts < 1626739500001 and tbcol5 <> 0 and tbcol6 <> 0 if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol5 <> 0 and ts < now + 5m and ts < now + 5m and tbcol6 <> 0 +sql select * from $mt where ts > 1626739440001 and tbcol5 <> 0 and ts < 1626739500001 and ts < 1626739500001 and tbcol6 <> 0 if $rows != 5 then return -1 endi print =============== step20 -sql select * from $mt where ts > now + 4m and tbcol1 = 1 and tbcol2 = 1 and tbcol3 = 1 +sql select * from $mt where ts > 1626739440001 and tbcol1 = 1 and tbcol2 = 1 and tbcol3 = 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol1 <> 1 and tbcol2 <> 1 and tbcol3 <> 1 +sql select * from $mt where ts > 1626739440001 and tbcol1 <> 1 and tbcol2 <> 1 and tbcol3 <> 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol1 = 0 and tbcol2 = 0 and tbcol3 = 0 +sql select * from $mt where ts < 1626739440001 and tbcol1 = 0 and tbcol2 = 0 and tbcol3 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol1 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 +sql select * from $mt where ts < 1626739440001 and tbcol1 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol1 = 0 and tbcol2 = 0 and tbcol3 = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol1 = 0 and tbcol2 = 0 and tbcol3 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol1 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol1 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol1 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 +sql select * from $mt where ts > 1626739440001 and ts < 1626739500001 and tbcol1 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol1 <> 0 and ts < now + 5m and ts < now + 5m and tbcol2 <> 0 and tbcol3 <> 0 +sql select * from $mt where ts > 1626739440001 and tbcol1 <> 0 and ts < 1626739500001 and ts < 1626739500001 and tbcol2 <> 0 and tbcol3 <> 0 if $rows != 5 then return -1 endi print =============== step21 -sql select * from $mt where ts > now + 4m and tbcol4 = 1 and tbcol2 = 1 and tbcol3 = 1 +sql select * from $mt where ts > 1626739440001 and tbcol4 = 1 and tbcol2 = 1 and tbcol3 = 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol4 <> 1 and tbcol2 <> 1 and tbcol3 <> 1 +sql select * from $mt where ts > 1626739440001 and tbcol4 <> 1 and tbcol2 <> 1 and tbcol3 <> 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol4 = 0 and tbcol2 = 0 and tbcol3 = 0 +sql select * from $mt where ts < 1626739440001 and tbcol4 = 0 and tbcol2 = 0 and tbcol3 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol4 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 +sql select * from $mt where ts < 1626739440001 and tbcol4 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol4 = 0 and tbcol2 = 0 and tbcol3 = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol4 = 0 and tbcol2 = 0 and tbcol3 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol4 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol4 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol4 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 +sql select * from $mt where ts > 1626739440001 and ts < 1626739500001 and tbcol4 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol4 <> 0 and ts < now + 5m and ts < now + 5m and tbcol2 <> 0 and tbcol3 <> 0 +sql select * from $mt where ts > 1626739440001 and tbcol4 <> 0 and ts < 1626739500001 and ts < 1626739500001 and tbcol2 <> 0 and tbcol3 <> 0 if $rows != 5 then return -1 endi print =============== step22 -sql select * from $mt where ts > now + 4m and tbcol4 = 1 and tbcol2 = 1 and tbcol3 = 1 and tbcol1 = 1 +sql select * from $mt where ts > 1626739440001 and tbcol4 = 1 and tbcol2 = 1 and tbcol3 = 1 and tbcol1 = 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol4 <> 1 and tbcol2 <> 1 and tbcol3 <> 1 and tbcol1 <> 1 +sql select * from $mt where ts > 1626739440001 and tbcol4 <> 1 and tbcol2 <> 1 and tbcol3 <> 1 and tbcol1 <> 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol4 = 0 and tbcol2 = 0 and tbcol3 = 0 and tbcol1 = 0 +sql select * from $mt where ts < 1626739440001 and tbcol4 = 0 and tbcol2 = 0 and tbcol3 = 0 and tbcol1 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol4 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 and tbcol1 <> 0 +sql select * from $mt where ts < 1626739440001 and tbcol4 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 and tbcol1 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol4 = 0 and tbcol2 = 0 and tbcol3 = 0 and tbcol1 = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol4 = 0 and tbcol2 = 0 and tbcol3 = 0 and tbcol1 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol4 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 and tbcol1 <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol4 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 and tbcol1 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol4 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 and tbcol1 <> 0 +sql select * from $mt where ts > 1626739440001 and ts < 1626739500001 and tbcol4 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 and tbcol1 <> 0 if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol4 <> 0 and ts < now + 5m and ts < now + 5m and tbcol2 <> 0 and tbcol3 <> 0 and tbcol1 <> 0 +sql select * from $mt where ts > 1626739440001 and tbcol4 <> 0 and ts < 1626739500001 and ts < 1626739500001 and tbcol2 <> 0 and tbcol3 <> 0 and tbcol1 <> 0 if $rows != 5 then return -1 endi print =============== step23 -sql select * from $mt where ts > now + 4m and tbcol4 = 1 and tbcol2 = 1 and tbcol3 = 1 and tbcol1 = 1 and tbcol5 = 1 +sql select * from $mt where ts > 1626739440001 and tbcol4 = 1 and tbcol2 = 1 and tbcol3 = 1 and tbcol1 = 1 and tbcol5 = 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol4 <> 1 and tbcol2 <> 1 and tbcol3 <> 1 and tbcol1 <> 1 and tbcol5 <> 1 +sql select * from $mt where ts > 1626739440001 and tbcol4 <> 1 and tbcol2 <> 1 and tbcol3 <> 1 and tbcol1 <> 1 and tbcol5 <> 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol4 = 0 and tbcol2 = 0 and tbcol3 = 0 and tbcol1 = 0 and tbcol5 = 0 +sql select * from $mt where ts < 1626739440001 and tbcol4 = 0 and tbcol2 = 0 and tbcol3 = 0 and tbcol1 = 0 and tbcol5 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol4 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 and tbcol1 <> 0 and tbcol5 <> 0 +sql select * from $mt where ts < 1626739440001 and tbcol4 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 and tbcol1 <> 0 and tbcol5 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol4 = 0 and tbcol2 = 0 and tbcol3 = 0 and tbcol1 = 0 and tbcol5 = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol4 = 0 and tbcol2 = 0 and tbcol3 = 0 and tbcol1 = 0 and tbcol5 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol4 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 and tbcol1 <> 0 and tbcol5 <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol4 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 and tbcol1 <> 0 and tbcol5 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol4 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 and tbcol1 <> 0 and tbcol5 <> 0 +sql select * from $mt where ts > 1626739440001 and ts < 1626739500001 and tbcol4 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 and tbcol1 <> 0 and tbcol5 <> 0 if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol4 <> 0 and ts < now + 5m and ts < now + 5m and tbcol2 <> 0 and tbcol3 <> 0 and tbcol1 <> 0 and tbcol5 <> 0 +sql select * from $mt where ts > 1626739440001 and tbcol4 <> 0 and ts < 1626739500001 and ts < 1626739500001 and tbcol2 <> 0 and tbcol3 <> 0 and tbcol1 <> 0 and tbcol5 <> 0 if $rows != 5 then return -1 endi print =============== step24 -sql select * from $mt where ts > now + 4m and tbcol4 = 1 and tbcol2 = 1 and tbcol3 = 1 and tbcol1 = 1 and tbcol5 = 1 and tbcol6 = 1 +sql select * from $mt where ts > 1626739440001 and tbcol4 = 1 and tbcol2 = 1 and tbcol3 = 1 and tbcol1 = 1 and tbcol5 = 1 and tbcol6 = 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol4 <> 1 and tbcol2 <> 1 and tbcol3 <> 1 and tbcol1 <> 1 and tbcol5 <> 1 and tbcol6 <> 1 +sql select * from $mt where ts > 1626739440001 and tbcol4 <> 1 and tbcol2 <> 1 and tbcol3 <> 1 and tbcol1 <> 1 and tbcol5 <> 1 and tbcol6 <> 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol4 = 0 and tbcol2 = 0 and tbcol3 = 0 and tbcol1 = 0 and tbcol5 = 0 and tbcol6 = 0 +sql select * from $mt where ts < 1626739440001 and tbcol4 = 0 and tbcol2 = 0 and tbcol3 = 0 and tbcol1 = 0 and tbcol5 = 0 and tbcol6 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol4 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 and tbcol1 <> 0 and tbcol5 <> 0 and tbcol6 <> 0 +sql select * from $mt where ts < 1626739440001 and tbcol4 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 and tbcol1 <> 0 and tbcol5 <> 0 and tbcol6 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol4 = 0 and tbcol2 = 0 and tbcol3 = 0 and tbcol1 = 0 and tbcol5 = 0 and tbcol6 = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol4 = 0 and tbcol2 = 0 and tbcol3 = 0 and tbcol1 = 0 and tbcol5 = 0 and tbcol6 = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol4 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 and tbcol1 <> 0 and tbcol5 <> 0 and tbcol6 <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol4 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 and tbcol1 <> 0 and tbcol5 <> 0 and tbcol6 <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol4 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 and tbcol1 <> 0 and tbcol5 <> 0 and tbcol6 <> 0 +sql select * from $mt where ts > 1626739440001 and ts < 1626739500001 and tbcol4 <> 0 and tbcol2 <> 0 and tbcol3 <> 0 and tbcol1 <> 0 and tbcol5 <> 0 and tbcol6 <> 0 if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol4 <> 0 and ts < now + 5m and ts < now + 5m and tbcol2 <> 0 and tbcol3 <> 0 and tbcol1 <> 0 and tbcol5 <> 0 and tbcol6 <> 0 +sql select * from $mt where ts > 1626739440001 and tbcol4 <> 0 and ts < 1626739500001 and ts < 1626739500001 and tbcol2 <> 0 and tbcol3 <> 0 and tbcol1 <> 0 and tbcol5 <> 0 and tbcol6 <> 0 if $rows != 5 then return -1 endi @@ -783,43 +783,43 @@ if $data00 != 100 then endi print =============== step27 -sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < now + 4m +sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < 1626739440001 print $data00 $data01 $data02 $data03 $data04 $data05 $data06 if $data00 != 50 then return -1 endi -sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < now + 4m and tbcol1 = 1 +sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < 1626739440001 and tbcol1 = 1 print $data00 $data01 $data02 $data03 $data04 $data05 $data06 if $data00 != 25 then return -1 endi -sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < now + 4m and tbcol1 = 1 and tbcol2 = 1 +sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < 1626739440001 and tbcol1 = 1 and tbcol2 = 1 print $data00 $data01 $data02 $data03 $data04 $data05 $data06 if $data00 != 25 then return -1 endi -sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < now + 4m and tbcol1 = 1 and tbcol2 = 1 and tbcol3 = 1 +sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < 1626739440001 and tbcol1 = 1 and tbcol2 = 1 and tbcol3 = 1 print $data00 $data01 $data02 $data03 $data04 $data05 $data06 if $data00 != 25 then return -1 endi -sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < now + 4m and tbcol1 = 1 and tbcol2 = 1 and tbcol3 = 1 and tbcol4 = 1 +sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < 1626739440001 and tbcol1 = 1 and tbcol2 = 1 and tbcol3 = 1 and tbcol4 = 1 print $data00 $data01 $data02 $data03 $data04 $data05 $data06 if $data00 != 25 then return -1 endi -sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < now + 4m and tbcol1 = 1 and tbcol2 = 1 and tbcol3 = 1 and tbcol4 = 1 and tbcol5 = 1 +sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < 1626739440001 and tbcol1 = 1 and tbcol2 = 1 and tbcol3 = 1 and tbcol4 = 1 and tbcol5 = 1 print $data00 $data01 $data02 $data03 $data04 $data05 $data06 if $data00 != 25 then return -1 endi -sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < now + 4m and tbcol1 = 1 and tbcol2 = 1 and tbcol3 = 1 and tbcol4 = 1 and tbcol5 = 1 and tbcol6 = 1 +sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < 1626739440001 and tbcol1 = 1 and tbcol2 = 1 and tbcol3 = 1 and tbcol4 = 1 and tbcol5 = 1 and tbcol6 = 1 print $data00 $data01 $data02 $data03 $data04 $data05 $data06 if $data00 != 25 then return -1 @@ -900,43 +900,43 @@ if $data00 != 100 then endi print =============== step30 -sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < now + 4m group by tgcol2 +sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < 1626739440001 group by tgcol2 print $data00 $data01 $data02 $data03 $data04 $data05 $data06 if $data00 != 25 then return -1 endi -sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < now + 4m and tbcol1 = 1 group by tgcol2 +sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < 1626739440001 and tbcol1 = 1 group by tgcol2 print $data00 $data01 $data02 $data03 $data04 $data05 $data06 if $data00 != 25 then return -1 endi -sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < now + 4m and tbcol1 = 1 and tbcol2 = 1 group by tgcol2 +sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < 1626739440001 and tbcol1 = 1 and tbcol2 = 1 group by tgcol2 print $data00 $data01 $data02 $data03 $data04 $data05 $data06 if $data00 != 25 then return -1 endi -sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < now + 4m and tbcol1 = 1 and tbcol2 = 1 and tbcol3 = 1 group by tgcol2 +sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < 1626739440001 and tbcol1 = 1 and tbcol2 = 1 and tbcol3 = 1 group by tgcol2 print $data00 $data01 $data02 $data03 $data04 $data05 $data06 if $data00 != 25 then return -1 endi -sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < now + 4m and tbcol1 = 1 and tbcol2 = 1 and tbcol3 = 1 and tbcol4 = 1 group by tgcol2 +sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < 1626739440001 and tbcol1 = 1 and tbcol2 = 1 and tbcol3 = 1 and tbcol4 = 1 group by tgcol2 print $data00 $data01 $data02 $data03 $data04 $data05 $data06 if $data00 != 25 then return -1 endi -sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < now + 4m and tbcol1 = 1 and tbcol2 = 1 and tbcol3 = 1 and tbcol4 = 1 and tbcol5 = 1 group by tgcol2 +sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < 1626739440001 and tbcol1 = 1 and tbcol2 = 1 and tbcol3 = 1 and tbcol4 = 1 and tbcol5 = 1 group by tgcol2 print $data00 $data01 $data02 $data03 $data04 $data05 $data06 if $data00 != 25 then return -1 endi -sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < now + 4m and tbcol1 = 1 and tbcol2 = 1 and tbcol3 = 1 and tbcol4 = 1 and tbcol5 = 1 and tbcol6 = 1 group by tgcol2 +sql select count(tbcol1), avg(tbcol1), sum(tbcol1), min(tbcol1), max(tbcol1), first(tbcol1), last(tbcol1) from $mt where ts < 1626739440001 and tbcol1 = 1 and tbcol2 = 1 and tbcol3 = 1 and tbcol4 = 1 and tbcol5 = 1 and tbcol6 = 1 group by tgcol2 print $data00 $data01 $data02 $data03 $data04 $data05 $data06 if $data00 != 25 then return -1 diff --git a/tests/script/general/field/bigint.sim b/tests/script/general/field/bigint.sim index 538f966c49cc3eefb8516c4bac4a49b9efd78d37..cfe8c561f0d852133267f7dd597f7796aee951f0 100644 --- a/tests/script/general/field/bigint.sim +++ b/tests/script/general/field/bigint.sim @@ -30,7 +30,7 @@ while $i < 5 $x = 0 while $x < $rowNum $ms = $x . m - sql insert into $tb values (now + $ms , 0 ) + sql insert into $tb values (1626739200000 + $ms , 0 ) $x = $x + 1 endw $i = $i + 1 @@ -41,7 +41,7 @@ while $i < 10 $x = 0 while $x < $rowNum $ms = $x . m - sql insert into $tb values (now + $ms , 1 ) + sql insert into $tb values (1626739200000 + $ms , 1 ) $x = $x + 1 endw $i = $i + 1 @@ -82,35 +82,35 @@ if $rows != 100 then endi print =============== step3 -sql select * from $mt where ts > now + 4m and tbcol = 1 +sql select * from $mt where ts > 1626739440001 and tbcol = 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol <> 1 +sql select * from $mt where ts > 1626739440001 and tbcol <> 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol = 0 +sql select * from $mt where ts < 1626739440001 and tbcol = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol <> 0 +sql select * from $mt where ts < 1626739440001 and tbcol <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol <> 0 +sql select * from $mt where ts > 1626739440001 and ts < 1626739500001 and tbcol <> 0 if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol <> 0 and ts < now + 5m +sql select * from $mt where ts > 1626739440001 and tbcol <> 0 and ts < 1626739500001 if $rows != 5 then return -1 endi @@ -139,7 +139,7 @@ if $data00 != 100 then endi print =============== step7 -sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where ts < now + 4m and tbcol = 1 group by tgcol +sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where ts < 1626739440001 and tbcol = 1 group by tgcol print $data00 $data01 $data02 $data03 $data04 $data05 $data06 if $data00 != 25 then return -1 diff --git a/tests/script/general/field/binary.sim b/tests/script/general/field/binary.sim index d601750b0d96b94bd60751de62c7fd139e1882be..821dbc9a82f7d8e6e21be419d6c28a7b67f1271d 100644 --- a/tests/script/general/field/binary.sim +++ b/tests/script/general/field/binary.sim @@ -30,7 +30,7 @@ while $i < 5 $x = 0 while $x < $rowNum $ms = $x . m - sql insert into $tb values (now + $ms , '0' ) + sql insert into $tb values (1626739200000 + $ms , '0' ) $x = $x + 1 endw $i = $i + 1 @@ -41,7 +41,7 @@ while $i < 10 $x = 0 while $x < $rowNum $ms = $x . m - sql insert into $tb values (now + $ms , '1' ) + sql insert into $tb values (1626739200000 + $ms , '1' ) $x = $x + 1 endw $i = $i + 1 @@ -55,14 +55,14 @@ if $rows != 100 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol = '1' +sql select * from $mt where ts > 1626739440001 and tbcol = '1' if $rows != 75 then return -1 endi print select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where tbcol = '1' sql_error select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where tbcol = '1' group by tgcol -sql_error select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where ts < now + 4m and tbcol = '1' group by tgcol +sql_error select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where ts < 1626739440001 and tbcol = '1' group by tgcol sql_error select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where tbcol = '1' interval(1d) group by tgcol #can't filter binary fields diff --git a/tests/script/general/field/bool.sim b/tests/script/general/field/bool.sim index 796ed4e0aaa4c1b0b61462ef95ffaf98a671f2ed..d94071b3282613a51c7580fc23f0bdc700cea03f 100644 --- a/tests/script/general/field/bool.sim +++ b/tests/script/general/field/bool.sim @@ -30,7 +30,7 @@ while $i < 5 $x = 0 while $x < $rowNum $ms = $x . m - sql insert into $tb values (now + $ms , 0 ) + sql insert into $tb values (1626739200000 + $ms , 0 ) $x = $x + 1 endw $i = $i + 1 @@ -41,7 +41,7 @@ while $i < 10 $x = 0 while $x < $rowNum $ms = $x . m - sql insert into $tb values (now + $ms , 1 ) + sql insert into $tb values (1626739200000 + $ms , 1 ) $x = $x + 1 endw $i = $i + 1 @@ -82,35 +82,35 @@ if $rows != 100 then endi print =============== step3 -sql select * from $mt where ts > now + 4m and tbcol = true +sql select * from $mt where ts > 1626739440001 and tbcol = true if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol <> true +sql select * from $mt where ts > 1626739440001 and tbcol <> true if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol = false +sql select * from $mt where ts < 1626739440001 and tbcol = false if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol <> false +sql select * from $mt where ts < 1626739440001 and tbcol <> false if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol = false +sql select * from $mt where ts <= 1626739440001 and tbcol = false if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol <> false +sql select * from $mt where ts <= 1626739440001 and tbcol <> false if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol <> false +sql select * from $mt where ts > 1626739440001 and ts < 1626739500001 and tbcol <> false if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol <> false and ts < now + 5m +sql select * from $mt where ts > 1626739440001 and tbcol <> false and ts < 1626739500001 if $rows != 5 then return -1 endi @@ -137,7 +137,7 @@ if $data00 != 100 then endi print =============== step7 -sql select count(tbcol), first(tbcol), last(tbcol) from $mt where ts < now + 4m and tbcol = true group by tgcol +sql select count(tbcol), first(tbcol), last(tbcol) from $mt where ts < 1626739440001 and tbcol = true group by tgcol print $data00 $data01 $data02 $data03 $data04 $data05 $data06 if $data00 != 25 then return -1 diff --git a/tests/script/general/field/double.sim b/tests/script/general/field/double.sim index ef86585e5f69fdd63c417ef823a57f3502436e40..0c9c23e3047466da264fd2ac3b2624ff22a5d0b0 100644 --- a/tests/script/general/field/double.sim +++ b/tests/script/general/field/double.sim @@ -30,7 +30,7 @@ while $i < 5 $x = 0 while $x < $rowNum $ms = $x . m - sql insert into $tb values (now + $ms , 0 ) + sql insert into $tb values (1626739200000 + $ms , 0 ) $x = $x + 1 endw $i = $i + 1 @@ -41,7 +41,7 @@ while $i < 10 $x = 0 while $x < $rowNum $ms = $x . m - sql insert into $tb values (now + $ms , 1 ) + sql insert into $tb values (1626739200000 + $ms , 1 ) $x = $x + 1 endw $i = $i + 1 @@ -82,35 +82,35 @@ if $rows != 100 then endi print =============== step3 -sql select * from $mt where ts > now + 4m and tbcol = 1 +sql select * from $mt where ts > 1626739440001 and tbcol = 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol <> 1 +sql select * from $mt where ts > 1626739440001 and tbcol <> 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol = 0 +sql select * from $mt where ts < 1626739440001 and tbcol = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol <> 0 +sql select * from $mt where ts < 1626739440001 and tbcol <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol <> 0 +sql select * from $mt where ts > 1626739440001 and ts < 1626739500001 and tbcol <> 0 if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol <> 0 and ts < now + 5m +sql select * from $mt where ts > 1626739440001 and tbcol <> 0 and ts < 1626739500001 if $rows != 5 then return -1 endi @@ -137,7 +137,7 @@ if $data00 != 100 then endi print =============== step7 -sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where ts < now + 4m and tbcol = 1 group by tgcol +sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where ts < 1626739440001 and tbcol = 1 group by tgcol print $data00 $data01 $data02 $data03 $data04 $data05 $data06 if $data00 != 25 then return -1 diff --git a/tests/script/general/field/float.sim b/tests/script/general/field/float.sim index a01bcbdd4ca2a7a7b7009ded641cd88357fbcc07..00423c00b8515bafb7974604e1211c15868512d7 100644 --- a/tests/script/general/field/float.sim +++ b/tests/script/general/field/float.sim @@ -30,7 +30,7 @@ while $i < 5 $x = 0 while $x < $rowNum $ms = $x . m - sql insert into $tb values (now + $ms , 0 ) + sql insert into $tb values (1626739200000 + $ms , 0 ) $x = $x + 1 endw $i = $i + 1 @@ -41,7 +41,7 @@ while $i < 10 $x = 0 while $x < $rowNum $ms = $x . m - sql insert into $tb values (now + $ms , 1 ) + sql insert into $tb values (1626739200000 + $ms , 1 ) $x = $x + 1 endw $i = $i + 1 @@ -82,35 +82,35 @@ if $rows != 100 then endi print =============== step3 -sql select * from $mt where ts > now + 4m and tbcol = 1 +sql select * from $mt where ts > 1626739440001 and tbcol = 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol <> 1 +sql select * from $mt where ts > 1626739440001 and tbcol <> 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol = 0 +sql select * from $mt where ts < 1626739440001 and tbcol = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol <> 0 +sql select * from $mt where ts < 1626739440001 and tbcol <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol <> 0 +sql select * from $mt where ts > 1626739440001 and ts < 1626739500001 and tbcol <> 0 if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol <> 0 and ts < now + 5m +sql select * from $mt where ts > 1626739440001 and tbcol <> 0 and ts < 1626739500001 if $rows != 5 then return -1 endi @@ -137,7 +137,7 @@ if $data00 != 100 then endi print =============== step7 -sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where ts < now + 4m and tbcol = 1 group by tgcol +sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where ts < 1626739440001 and tbcol = 1 group by tgcol print $data00 $data01 $data02 $data03 $data04 $data05 $data06 if $data00 != 25 then return -1 diff --git a/tests/script/general/field/int.sim b/tests/script/general/field/int.sim index c04fe5d2b1d4cc2d43de0111d3e22dcd177fa8fc..0e322e4f120d6eef933023467d1246a127780529 100644 --- a/tests/script/general/field/int.sim +++ b/tests/script/general/field/int.sim @@ -30,7 +30,7 @@ while $i < 5 $x = 0 while $x < $rowNum $ms = $x . m - sql insert into $tb values (now + $ms , 0 ) + sql insert into $tb values (1626739200000 + $ms , 0 ) $x = $x + 1 endw $i = $i + 1 @@ -41,7 +41,7 @@ while $i < 10 $x = 0 while $x < $rowNum $ms = $x . m - sql insert into $tb values (now + $ms , 1 ) + sql insert into $tb values (1626739200000 + $ms , 1 ) $x = $x + 1 endw $i = $i + 1 @@ -82,35 +82,35 @@ if $rows != 100 then endi print =============== step3 -sql select * from $mt where ts > now + 4m and tbcol = 1 +sql select * from $mt where ts > 1626739440001 and tbcol = 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol <> 1 +sql select * from $mt where ts > 1626739440001 and tbcol <> 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol = 0 +sql select * from $mt where ts < 1626739440001 and tbcol = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol <> 0 +sql select * from $mt where ts < 1626739440001 and tbcol <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol <> 0 +sql select * from $mt where ts > 1626739440001 and ts < 1626739500001 and tbcol <> 0 if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol <> 0 and ts < now + 5m +sql select * from $mt where ts > 1626739440001 and tbcol <> 0 and ts < 1626739500001 if $rows != 5 then return -1 endi @@ -137,7 +137,7 @@ if $data00 != 100 then endi print =============== step7 -sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where ts < now + 4m and tbcol = 1 group by tgcol +sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where ts < 1626739440001 and tbcol = 1 group by tgcol print $data00 $data01 $data02 $data03 $data04 $data05 $data06 if $data00 != 25 then return -1 diff --git a/tests/script/general/field/single.sim b/tests/script/general/field/single.sim index 0cfb92aad5c795e14a304146419a97157176c3ac..3f6bf4309fac7ce45577094f3316c34edcd954c1 100644 --- a/tests/script/general/field/single.sim +++ b/tests/script/general/field/single.sim @@ -25,7 +25,7 @@ sql create table $tb (ts timestamp, tbcol int) $x = 0 while $x < $rowNum $ms = $x . m - sql insert into $tb values (now + $ms , $x ) + sql insert into $tb values (1626739200000 + $ms , $x ) $x = $x + 1 endw @@ -111,18 +111,18 @@ if $rows != 0 then endi print =============== step3 -sql select * from $tb where ts < now + 4m +sql select * from $tb where ts < 1626739440001 if $rows != 5 then return -1 endi -sql select * from $tb where tbcol = 10 and ts < now + 4m -print select * from $tb where tbcol = 10 and ts < now + 4m +sql select * from $tb where tbcol = 10 and ts < 1626739440001 +print select * from $tb where tbcol = 10 and ts < 1626739440001 if $rows != 0 then return -1 endi -sql select * from $tb where tbcol = 4 and ts < now + 4m order by ts desc +sql select * from $tb where tbcol = 4 and ts < 1626739440001 order by ts desc if $rows != 1 then return -1 endi @@ -130,7 +130,7 @@ if $data01 != 4 then return -1 endi -sql select * from $tb where tbcol < 10 and ts < now + 4m order by ts desc +sql select * from $tb where tbcol < 10 and ts < 1626739440001 order by ts desc if $rows != 5 then return -1 endi @@ -138,7 +138,7 @@ if $data01 != 4 then return -1 endi -sql select * from $tb where tbcol < 10 and ts > now + 4m and ts < now + 5m order by ts desc +sql select * from $tb where tbcol < 10 and ts > 1626739440001 and ts < 1626739500001 order by ts desc print $rows $data00 $data01 if $rows != 1 then return -1 @@ -183,27 +183,27 @@ sql select count(*) from $tb where tbcol < 10 and tbcol > 5 order by ts asc -x s step4: print =============== step5 -sql select count(*) from $tb where ts < now + 4m +sql select count(*) from $tb where ts < 1626739440001 if $data00 != 5 then return -1 endi -#sql select count(*) from $tb where tbcol = 10 and ts < now + 4m +#sql select count(*) from $tb where tbcol = 10 and ts < 1626739440001 #if $data00 != 0 then # return -1 #endi -sql select count(*) from $tb where tbcol = 4 and ts < now + 4m +sql select count(*) from $tb where tbcol = 4 and ts < 1626739440001 if $data00 != 1 then return -1 endi -sql select count(*) from $tb where tbcol < 10 and ts < now + 4m +sql select count(*) from $tb where tbcol < 10 and ts < 1626739440001 if $data00 != 5 then return -1 endi -sql select count(*) from $tb where tbcol < 10 and ts > now + 4m and ts < now + 5m +sql select count(*) from $tb where tbcol < 10 and ts > 1626739440001 and ts < 1626739500001 if $data00 != 1 then return -1 endi diff --git a/tests/script/general/field/smallint.sim b/tests/script/general/field/smallint.sim index 1d5566812efcd8e59ccc339e53577246c61c7a63..78b2b998cfa56f368b1480716dabe8be38a45b9a 100644 --- a/tests/script/general/field/smallint.sim +++ b/tests/script/general/field/smallint.sim @@ -30,7 +30,7 @@ while $i < 5 $x = 0 while $x < $rowNum $ms = $x . m - sql insert into $tb values (now + $ms , 0 ) + sql insert into $tb values (1626739200000 + $ms , 0 ) $x = $x + 1 endw $i = $i + 1 @@ -41,7 +41,7 @@ while $i < 10 $x = 0 while $x < $rowNum $ms = $x . m - sql insert into $tb values (now + $ms , 1 ) + sql insert into $tb values (1626739200000 + $ms , 1 ) $x = $x + 1 endw $i = $i + 1 @@ -82,35 +82,35 @@ if $rows != 100 then endi print =============== step3 -sql select * from $mt where ts > now + 4m and tbcol = 1 +sql select * from $mt where ts > 1626739440001 and tbcol = 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol <> 1 +sql select * from $mt where ts > 1626739440001 and tbcol <> 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol = 0 +sql select * from $mt where ts < 1626739440001 and tbcol = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol <> 0 +sql select * from $mt where ts < 1626739440001 and tbcol <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol <> 0 +sql select * from $mt where ts > 1626739440001 and ts < 1626739500001 and tbcol <> 0 if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol <> 0 and ts < now + 5m +sql select * from $mt where ts > 1626739440001 and tbcol <> 0 and ts < 1626739500001 if $rows != 5 then return -1 endi @@ -137,7 +137,7 @@ if $data00 != 100 then endi print =============== step7 -sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where ts < now + 4m and tbcol = 1 group by tgcol +sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where ts < 1626739440001 and tbcol = 1 group by tgcol print $data00 $data01 $data02 $data03 $data04 $data05 $data06 if $data00 != 25 then return -1 diff --git a/tests/script/general/field/tinyint.sim b/tests/script/general/field/tinyint.sim index f10e3d293a9d847f4f71a585603598a69ddc5e1c..7e1a0c6e80022435a50c48398ee9098ce9ec43aa 100644 --- a/tests/script/general/field/tinyint.sim +++ b/tests/script/general/field/tinyint.sim @@ -31,7 +31,7 @@ while $i < 5 $x = 0 while $x < $rowNum $ms = $x . m - sql insert into $tb values (now + $ms , 0 ) + sql insert into $tb values (1626739200000 + $ms , 0 ) $x = $x + 1 endw $i = $i + 1 @@ -42,7 +42,7 @@ while $i < 10 $x = 0 while $x < $rowNum $ms = $x . m - sql insert into $tb values (now + $ms , 1 ) + sql insert into $tb values (1626739200000 + $ms , 1 ) $x = $x + 1 endw $i = $i + 1 @@ -83,35 +83,35 @@ if $rows != 100 then endi print =============== step3 -sql select * from $mt where ts > now + 4m and tbcol = 1 +sql select * from $mt where ts > 1626739440001 and tbcol = 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol <> 1 +sql select * from $mt where ts > 1626739440001 and tbcol <> 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol = 0 +sql select * from $mt where ts < 1626739440001 and tbcol = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol <> 0 +sql select * from $mt where ts < 1626739440001 and tbcol <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol <> 0 +sql select * from $mt where ts > 1626739440001 and ts < 1626739500001 and tbcol <> 0 if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol <> 0 and ts < now + 5m +sql select * from $mt where ts > 1626739440001 and tbcol <> 0 and ts < 1626739500001 if $rows != 5 then return -1 endi @@ -138,7 +138,7 @@ if $data00 != 100 then endi print =============== step7 -sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where ts < now + 4m and tbcol = 1 group by tgcol +sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where ts < 1626739440001 and tbcol = 1 group by tgcol print $data00 $data01 $data02 $data03 $data04 $data05 $data06 if $data00 != 25 then return -1 diff --git a/tests/script/general/field/unsigined_bigint.sim b/tests/script/general/field/unsigined_bigint.sim index 1cfe8ad15b31f38d2fc72d429a0c9af2cb5732fb..260128b5c2476911e8e1d809e63c7f89b4fd300a 100644 --- a/tests/script/general/field/unsigined_bigint.sim +++ b/tests/script/general/field/unsigined_bigint.sim @@ -31,11 +31,11 @@ while $i < 5 $x = 0 while $x < $rowNum $ms = $x . m - sql insert into $tb values (now + $ms , 0 ) + sql insert into $tb values (1626739200000 + $ms , 0 ) $x = $x + 1 - sql_error insert into $tb values (now + $ms , -10) - sql_error insert into $tb values (now + $ms , -1000) - sql_error insert into $tb values (now + $ms , -10000000) + sql_error insert into $tb values (1626739200000 + $ms , -10) + sql_error insert into $tb values (1626739200000 + $ms , -1000) + sql_error insert into $tb values (1626739200000 + $ms , -10000000) endw $i = $i + 1 endw @@ -45,7 +45,7 @@ while $i < 10 $x = 0 while $x < $rowNum $ms = $x . m - sql insert into $tb values (now + $ms , 1 ) + sql insert into $tb values (1626739200000 + $ms , 1 ) $x = $x + 1 endw $i = $i + 1 @@ -86,35 +86,35 @@ if $rows != 100 then endi print =============== step3 -sql select * from $mt where ts > now + 4m and tbcol = 1 +sql select * from $mt where ts > 1626739440001 and tbcol = 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol <> 1 +sql select * from $mt where ts > 1626739440001 and tbcol <> 1 if $rows != 75 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol = 0 +sql select * from $mt where ts < 1626739440001 and tbcol = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts < now + 4m and tbcol <> 0 +sql select * from $mt where ts < 1626739440001 and tbcol <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol = 0 +sql select * from $mt where ts <= 1626739440001 and tbcol = 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts <= now + 4m and tbcol <> 0 +sql select * from $mt where ts <= 1626739440001 and tbcol <> 0 if $rows != 25 then return -1 endi -sql select * from $mt where ts > now + 4m and ts < now + 5m and tbcol <> 0 +sql select * from $mt where ts > 1626739440001 and ts < 1626739500001 and tbcol <> 0 if $rows != 5 then return -1 endi -sql select * from $mt where ts > now + 4m and tbcol <> 0 and ts < now + 5m +sql select * from $mt where ts > 1626739440001 and tbcol <> 0 and ts < 1626739500001 if $rows != 5 then return -1 endi @@ -143,7 +143,7 @@ if $data00 != 100 then endi print =============== step7 -sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where ts < now + 4m and tbcol = 1 group by tgcol +sql select count(tbcol), avg(tbcol), sum(tbcol), min(tbcol), max(tbcol), first(tbcol), last(tbcol) from $mt where ts < 1626739440001 and tbcol = 1 group by tgcol print $data00 $data01 $data02 $data03 $data04 $data05 $data06 if $data00 != 25 then return -1 diff --git a/tests/script/general/tag/3.sim b/tests/script/general/rm_bak/tag/3.sim similarity index 100% rename from tests/script/general/tag/3.sim rename to tests/script/general/rm_bak/tag/3.sim diff --git a/tests/script/general/tag/4.sim b/tests/script/general/rm_bak/tag/4.sim similarity index 100% rename from tests/script/general/tag/4.sim rename to tests/script/general/rm_bak/tag/4.sim diff --git a/tests/script/general/tag/5.sim b/tests/script/general/rm_bak/tag/5.sim similarity index 100% rename from tests/script/general/tag/5.sim rename to tests/script/general/rm_bak/tag/5.sim diff --git a/tests/script/general/tag/6.sim b/tests/script/general/rm_bak/tag/6.sim similarity index 100% rename from tests/script/general/tag/6.sim rename to tests/script/general/rm_bak/tag/6.sim diff --git a/tests/script/general/tag/add.sim b/tests/script/general/rm_bak/tag/add.sim similarity index 100% rename from tests/script/general/tag/add.sim rename to tests/script/general/rm_bak/tag/add.sim diff --git a/tests/script/general/tag/bigint.sim b/tests/script/general/rm_bak/tag/bigint.sim similarity index 100% rename from tests/script/general/tag/bigint.sim rename to tests/script/general/rm_bak/tag/bigint.sim diff --git a/tests/script/general/tag/binary.sim b/tests/script/general/rm_bak/tag/binary.sim similarity index 100% rename from tests/script/general/tag/binary.sim rename to tests/script/general/rm_bak/tag/binary.sim diff --git a/tests/script/general/tag/binary_binary.sim b/tests/script/general/rm_bak/tag/binary_binary.sim similarity index 100% rename from tests/script/general/tag/binary_binary.sim rename to tests/script/general/rm_bak/tag/binary_binary.sim diff --git a/tests/script/general/tag/bool.sim b/tests/script/general/rm_bak/tag/bool.sim similarity index 100% rename from tests/script/general/tag/bool.sim rename to tests/script/general/rm_bak/tag/bool.sim diff --git a/tests/script/general/tag/bool_binary.sim b/tests/script/general/rm_bak/tag/bool_binary.sim similarity index 100% rename from tests/script/general/tag/bool_binary.sim rename to tests/script/general/rm_bak/tag/bool_binary.sim diff --git a/tests/script/general/tag/bool_int.sim b/tests/script/general/rm_bak/tag/bool_int.sim similarity index 100% rename from tests/script/general/tag/bool_int.sim rename to tests/script/general/rm_bak/tag/bool_int.sim diff --git a/tests/script/general/tag/change.sim b/tests/script/general/rm_bak/tag/change.sim similarity index 100% rename from tests/script/general/tag/change.sim rename to tests/script/general/rm_bak/tag/change.sim diff --git a/tests/script/general/tag/column.sim b/tests/script/general/rm_bak/tag/column.sim similarity index 100% rename from tests/script/general/tag/column.sim rename to tests/script/general/rm_bak/tag/column.sim diff --git a/tests/script/general/tag/commit.sim b/tests/script/general/rm_bak/tag/commit.sim similarity index 100% rename from tests/script/general/tag/commit.sim rename to tests/script/general/rm_bak/tag/commit.sim diff --git a/tests/script/general/tag/create.sim b/tests/script/general/rm_bak/tag/create.sim similarity index 100% rename from tests/script/general/tag/create.sim rename to tests/script/general/rm_bak/tag/create.sim diff --git a/tests/script/general/tag/delete.sim b/tests/script/general/rm_bak/tag/delete.sim similarity index 100% rename from tests/script/general/tag/delete.sim rename to tests/script/general/rm_bak/tag/delete.sim diff --git a/tests/script/general/tag/double.sim b/tests/script/general/rm_bak/tag/double.sim similarity index 100% rename from tests/script/general/tag/double.sim rename to tests/script/general/rm_bak/tag/double.sim diff --git a/tests/script/general/tag/filter.sim b/tests/script/general/rm_bak/tag/filter.sim similarity index 100% rename from tests/script/general/tag/filter.sim rename to tests/script/general/rm_bak/tag/filter.sim diff --git a/tests/script/general/tag/float.sim b/tests/script/general/rm_bak/tag/float.sim similarity index 100% rename from tests/script/general/tag/float.sim rename to tests/script/general/rm_bak/tag/float.sim diff --git a/tests/script/general/tag/int.sim b/tests/script/general/rm_bak/tag/int.sim similarity index 100% rename from tests/script/general/tag/int.sim rename to tests/script/general/rm_bak/tag/int.sim diff --git a/tests/script/general/tag/int_binary.sim b/tests/script/general/rm_bak/tag/int_binary.sim similarity index 100% rename from tests/script/general/tag/int_binary.sim rename to tests/script/general/rm_bak/tag/int_binary.sim diff --git a/tests/script/general/tag/int_float.sim b/tests/script/general/rm_bak/tag/int_float.sim similarity index 100% rename from tests/script/general/tag/int_float.sim rename to tests/script/general/rm_bak/tag/int_float.sim diff --git a/tests/script/general/tag/set.sim b/tests/script/general/rm_bak/tag/set.sim similarity index 100% rename from tests/script/general/tag/set.sim rename to tests/script/general/rm_bak/tag/set.sim diff --git a/tests/script/general/tag/smallint.sim b/tests/script/general/rm_bak/tag/smallint.sim similarity index 100% rename from tests/script/general/tag/smallint.sim rename to tests/script/general/rm_bak/tag/smallint.sim diff --git a/tests/script/general/tag/testSuite.sim b/tests/script/general/rm_bak/tag/testSuite.sim similarity index 100% rename from tests/script/general/tag/testSuite.sim rename to tests/script/general/rm_bak/tag/testSuite.sim diff --git a/tests/script/general/tag/tinyint.sim b/tests/script/general/rm_bak/tag/tinyint.sim similarity index 100% rename from tests/script/general/tag/tinyint.sim rename to tests/script/general/rm_bak/tag/tinyint.sim diff --git a/tests/script/general/stream/agg_stream.sim b/tests/script/general/stream/agg_stream.sim index 65657fc33be88152040ce68c46d559e8b2c119a5..548f59cab7e6b3a81c5b01a62e02456f3c209720 100644 --- a/tests/script/general/stream/agg_stream.sim +++ b/tests/script/general/stream/agg_stream.sim @@ -20,7 +20,7 @@ print =============== step2 sql create database d4 precision 'us' sql use d4 sql create table t1 (ts timestamp, i int) -sql insert into d4.t1 values(now, 1) +sql insert into d4.t1 values(1626739200000, 1) sql create table d4.s001 as select count(cpu_taosd), count(cpu_system), avg(cpu_taosd), avg(cpu_system), sum(cpu_taosd), max(cpu_taosd), min(cpu_taosd) from log.dn_192_168_0_1 interval(5s) sql create table d4.s002 as select count(mem_taosd), count(mem_system), avg(mem_taosd), avg(mem_system), sum(mem_taosd), max(mem_taosd), min(mem_taosd) from log.dn_192_168_0_1 interval(5s) diff --git a/tests/script/general/stream/column_stream.sim b/tests/script/general/stream/column_stream.sim index c43ca1fd5ac7cfc5e477c970b313414469e9a29c..59a65f0969ebc6e2fd6d62c5b3fcc1bf66c420b7 100644 --- a/tests/script/general/stream/column_stream.sim +++ b/tests/script/general/stream/column_stream.sim @@ -23,7 +23,7 @@ print =============== step2 sql create database d4 precision 'us' sql use d4 sql create table t1 (ts timestamp, i int) -sql insert into d4.t1 values(now, 1) +sql insert into d4.t1 values(1626739200000, 1) sql create table d4.s1 as select count(cpu_taosd), count(cpu_system), avg(cpu_taosd), avg(cpu_system), sum(cpu_taosd), max(cpu_taosd), min(cpu_taosd), stddev(cpu_taosd), count(*) as c1, count(*) as c2, count(*) as c3, count(*) as c4, count(*) as c5, count(*) as c6, count(*) as c7, count(*) as c8, count(*) as c9, count(*) as c10, count(*) as c11, count(*) as c12, count(*) as c13, count(*) as c14, count(*) as c15, count(*) as c16, count(*) as c17, count(*) as c18, count(*) as c19, count(*) as c20, count(*) as c21, count(*) as c22, count(*) as c23, count(*) as c24, count(*) as c25, count(*) as c26, count(*) as c27, count(*) as c28, count(*) as c29, count(*) as c30 from log.dn_192_168_0_1 interval(5s) diff --git a/tests/script/general/stream/metrics_replica1_vnoden.sim b/tests/script/general/stream/metrics_replica1_vnoden.sim index 4629063c4460c10dccc844b6b39e512012638379..db1044a597510048c4b812d8a3a16d53ff4e5ac0 100644 --- a/tests/script/general/stream/metrics_replica1_vnoden.sim +++ b/tests/script/general/stream/metrics_replica1_vnoden.sim @@ -37,11 +37,11 @@ while $i < $tbNum $tb = $tbPrefix . $i sql create table $tb using $mt tags( $i ) - $x = -1440 + $x = -400 $y = 0 while $y < $rowNum $ms = $x . m - sql insert into $tb values (now $ms , $y , $y ) + sql insert into $tb values (1626739200000 $ms , $y , $y ) $x = $x + 1 $y = $y + 1 endw @@ -143,14 +143,14 @@ $st = $stPrefix . la sql create table $st as select last(tbcol) from $mt interval(1d) print =============== step11 wh -sql select count(tbcol) from $mt where ts < now + 4m interval(1d) -print select count(tbcol) from $mt where ts < now + 4m interval(1d) ===> $data00 $data01 +sql select count(tbcol) from $mt where ts < 1626739440001 interval(1d) +print select count(tbcol) from $mt where ts < 1626739440000 interval(1d) ===> $data00 $data01 if $data01 != 200 then return -1 endi $st = $stPrefix . wh -#sql create table $st as select count(tbcol) from $mt where ts < now + 4m interval(1d) +#sql create table $st as select count(tbcol) from $mt where ts < 1626739200000 + 4m interval(1d) print =============== step12 as sql select count(tbcol) from $mt interval(1d) diff --git a/tests/script/general/stream/restart_stream.sim b/tests/script/general/stream/restart_stream.sim index c8be10103d16a856fb0c083546cfaf8b939a1b98..62e47f9b3a6c12668409293769ee7c5a12a718ac 100644 --- a/tests/script/general/stream/restart_stream.sim +++ b/tests/script/general/stream/restart_stream.sim @@ -34,11 +34,11 @@ while $i < 10 $tb = $tbPrefix . $i sql create table $tb using $mt tags( 0 ) - $x = -1440 + $x = -400 $y = 0 while $y < $rowNum - $ms = $x . m - sql insert into $tb values (now $ms , $y , $y ) + $ms = $x . m + sql insert into $tb values (1626739200000 $ms , $y , $y ) $x = $x + 1 $y = $y + 1 endw @@ -54,7 +54,7 @@ sql select count(*) from $tb interval(1d) print ===>rows $rows, data $data01 if $rows != 1 then return -1 -endi +endi if $data01 != 20 then return -1 endi @@ -114,11 +114,11 @@ while $i < 5 $tb = $tbPrefix . $i sql create table $tb using $mt tags( 0 ) - $x = -1440 + $x = -400 $y = 0 while $y < $rowNum $ms = $x . m - sql insert into $tb values (now $ms , $y , $y ) + sql insert into $tb values (1626739200000 $ms , $y , $y ) $x = $x + 1 $y = $y + 1 endw diff --git a/tests/script/general/stream/stream_3.sim b/tests/script/general/stream/stream_3.sim index 31490dc5ac44b93f0daf02cd0ba3b4d77a3be20b..b043993814db2ea5bf8c6a3513317efca50b51d3 100644 --- a/tests/script/general/stream/stream_3.sim +++ b/tests/script/general/stream/stream_3.sim @@ -34,11 +34,11 @@ while $i < $tbNum $tb = $tbPrefix . $i sql create table $tb using $mt tags( $i ) - $x = -1440 + $x = -400 $y = 0 while $y < $rowNum $ms = $x . m - sql insert into $tb values (now $ms , $y , $y ) + sql insert into $tb values (1626739200000 $ms , $y , $y ) $x = $x + 1 $y = $y + 1 endw @@ -139,11 +139,11 @@ while $i < $tbNum $tb = $tbPrefix . $i sql create table $tb using $mt tags( $i ) - $x = -1440 + $x = -400 $y = 0 while $y < $rowNum $ms = $x . m - sql insert into $tb values (now $ms , $y , $y ) + sql insert into $tb values (1626739200000 $ms , $y , $y ) $x = $x + 1 $y = $y + 1 endw diff --git a/tests/script/general/stream/stream_restart.sim b/tests/script/general/stream/stream_restart.sim index 4bf6760703ef744572a0b172cb860141f8768ff5..54a60a00811de0253d1ad1110b69f2587f707aa1 100644 --- a/tests/script/general/stream/stream_restart.sim +++ b/tests/script/general/stream/stream_restart.sim @@ -37,7 +37,7 @@ while $i < $tbNum $y = 0 while $y < $rowNum $ms = $x . s - sql insert into $tb values (now + $ms , $y , $y ) + sql insert into $tb values (1626739200000 + $ms , $y , $y ) $x = $x + 1 $y = $y + 1 endw diff --git a/tests/script/general/stream/table_del.sim b/tests/script/general/stream/table_del.sim index 3cbce538d5a87553289b834bd15dea1f43da35fb..34673605d63b39b9fd809aaedd94f4e6ef80f5b7 100644 --- a/tests/script/general/stream/table_del.sim +++ b/tests/script/general/stream/table_del.sim @@ -34,11 +34,11 @@ while $i < $tbNum $tb = $tbPrefix . $i sql create table $tb using $mt tags( $i ) - $x = -1440 + $x = -400 $y = 0 while $y < $rowNum $ms = $x . m - sql insert into $tb values (now $ms , $y , $y ) + sql insert into $tb values (1626739200000 $ms , $y , $y ) $x = $x + 1 $y = $y + 1 endw diff --git a/tests/script/general/stream/table_replica1_vnoden.sim b/tests/script/general/stream/table_replica1_vnoden.sim index be67a31b4e6782e81289b03fb267db501f341520..4a6c4fe0462fc675e13785905ff1b707815fd168 100644 --- a/tests/script/general/stream/table_replica1_vnoden.sim +++ b/tests/script/general/stream/table_replica1_vnoden.sim @@ -37,11 +37,11 @@ while $i < $tbNum $tb = $tbPrefix . $i sql create table $tb using $mt tags( $i ) - $x = -1440 + $x = -400 $y = 0 while $y < $rowNum $ms = $x . m - sql insert into $tb values (now $ms , $y , $y ) + sql insert into $tb values (1626739200000 $ms , $y , $y ) $x = $x + 1 $y = $y + 1 endw @@ -176,14 +176,14 @@ $st = $stPrefix . pe sql create table $st as select percentile(tbcol, 1) from $tb interval(1d) print =============== step14 wh -sql select count(tbcol) from $tb where ts < now + 4m interval(1d) -print select count(tbcol) from $tb where ts < now + 4m interval(1d) ===> $data00 $data01 +sql select count(tbcol) from $tb where ts < 1626739440001 interval(1d) +print select count(tbcol) from $tb where ts < 1626739440001 interval(1d) ===> $data00 $data01 if $data01 != $rowNum then return -1 endi $st = $stPrefix . wh -#sql create table $st as select count(tbcol) from $tb where ts < now + 4m interval(1d) +#sql create table $st as select count(tbcol) from $tb where ts < 1626739200000 + 4m interval(1d) print =============== step15 as sql select count(tbcol) from $tb interval(1d) diff --git a/tests/script/general/table/fill.sim b/tests/script/general/table/fill.sim deleted file mode 100644 index 069eeff6cf0cdf35a55f33fa3e5bbf8135cc7921..0000000000000000000000000000000000000000 --- a/tests/script/general/table/fill.sim +++ /dev/null @@ -1,63 +0,0 @@ -system sh/stop_dnodes.sh - -system sh/deploy.sh -n dnode1 -i 1 -system sh/cfg.sh -n dnode1 -c walLevel -v 1 -system sh/exec.sh -n dnode1 -s start - -sleep 2000 -sql connect - -print =================== step1 -sql create database db -sql use db -sql create table mt (ts timestamp, k int, h binary(20), t bigint, s float, f double, x smallint, y tinyint, z bool) tags (a int, b binary(20), c bigint) -sql create table tb using mt tags (0, '1', 2) - -sql insert into tb values(now -200d, 200, '1', 2, 3, 4, 5, 6, true); -sql insert into tb values(now -100d, 100, '1', 2, 3, 4, 5, 6, true); -sql insert into tb values(now -30d, 30, '1', 2, 3, 4, 5, 6, true); -sql insert into tb values(now -20d, 20, '1', 2, 3, 4, 5, 6, true); -sql insert into tb values(now -10d, 10, '1', 2, 3, 4, 5, 6, true); -sql insert into tb values(now -5d, 5, '1', 2, 3, 4, 5, 6, true); -sql insert into tb values(now -1d, 1, '1', 2, 3, 4, 5, 6, true); -sql insert into tb values(now, 0, '1', 2, 3, 4, 5, 6, true); - -sql select * from db.mt -if $rows != 8 then - return -1 -endi - -sql select * from db.tb -if $rows != 8 then - return -1 -endi - -sql select count(*) from db.mt -if $data00 != 8 then - return -1 -endi - -sql select count(*), last(ts), min(k), max(k), avg(k) from db.mt where a=0 and ts>="2016-4-29 8:0:0" and ts < "2018-7-18 8:9:0" interval(1d) fill(value, 1) -sql select count(*), last(ts), min(k), max(k), avg(k) from db.mt where a=0 and ts>="2016-4-29 8:0:0" and ts < "2018-7-18 8:9:0" interval(1d) fill(value, 1) - -print =================== step2 -system sh/exec.sh -n dnode1 -s stop -x SIGINT -sleep 3000 -system sh/exec.sh -n dnode1 -s start -sleep 2000 - -print =================== step3 -sql select * from db.mt -if $rows != 8 then - return -1 -endi - -sql select * from db.tb -if $rows != 8 then - return -1 -endi - -sql select count(*) from db.mt -if $data00 != 8 then - return -1 -endi diff --git a/tests/script/jenkins/basic.txt b/tests/script/jenkins/basic.txt index f72f50053d6b582d7ccce49c4d513f0f036eee2e..cec6c2b555fa275e53882cc7856c9b4a584018d0 100644 --- a/tests/script/jenkins/basic.txt +++ b/tests/script/jenkins/basic.txt @@ -93,31 +93,7 @@ cd ../../../debug; make #======================b1-end=============== #======================b2-start=============== -./test.sh -f general/tag/3.sim -./test.sh -f general/tag/4.sim -./test.sh -f general/tag/5.sim -./test.sh -f general/tag/6.sim -./test.sh -f general/tag/add.sim -./test.sh -f general/tag/bigint.sim -./test.sh -f general/tag/binary_binary.sim -./test.sh -f general/tag/binary.sim -./test.sh -f general/tag/bool_binary.sim -./test.sh -f general/tag/bool_int.sim -./test.sh -f general/tag/bool.sim -./test.sh -f general/tag/change.sim -./test.sh -f general/tag/column.sim -./test.sh -f general/tag/commit.sim -./test.sh -f general/tag/create.sim -./test.sh -f general/tag/delete.sim -./test.sh -f general/tag/double.sim -./test.sh -f general/tag/filter.sim -./test.sh -f general/tag/float.sim -./test.sh -f general/tag/int_binary.sim -./test.sh -f general/tag/int_float.sim -./test.sh -f general/tag/int.sim -./test.sh -f general/tag/set.sim -./test.sh -f general/tag/smallint.sim -./test.sh -f general/tag/tinyint.sim + ./test.sh -f general/wal/sync.sim ./test.sh -f general/wal/kill.sim ./test.sh -f general/wal/maxtables.sim @@ -397,7 +373,6 @@ cd ../../../debug; make ./test.sh -f general/table/delete_writing.sim ./test.sh -f general/table/describe.sim ./test.sh -f general/table/double.sim -./test.sh -f general/table/fill.sim ./test.sh -f general/table/float.sim ./test.sh -f general/table/int.sim ./test.sh -f general/table/limit.sim