未验证 提交 01683f6d 编写于 作者: D dapan1121 提交者: GitHub

Merge pull request #21527 from taosdata/feat/TS-3048

feat(query): support single point interp
...@@ -55,7 +55,7 @@ window_clause: { ...@@ -55,7 +55,7 @@ window_clause: {
| INTERVAL(interval_val [, interval_offset]) [SLIDING (sliding_val)] [WATERMARK(watermark_val)] [FILL(fill_mod_and_val)] | INTERVAL(interval_val [, interval_offset]) [SLIDING (sliding_val)] [WATERMARK(watermark_val)] [FILL(fill_mod_and_val)]
interp_clause: interp_clause:
RANGE(ts_val, ts_val) EVERY(every_val) FILL(fill_mod_and_val) RANGE(ts_val [, ts_val]) EVERY(every_val) FILL(fill_mod_and_val)
partition_by_clause: partition_by_clause:
PARTITION BY expr [, expr] ... PARTITION BY expr [, expr] ...
......
...@@ -889,9 +889,10 @@ ignore_null_values: { ...@@ -889,9 +889,10 @@ ignore_null_values: {
- `INTERP` is used to get the value that matches the specified time slice from a column. If no such value exists an interpolation value will be returned based on `FILL` parameter. - `INTERP` is used to get the value that matches the specified time slice from a column. If no such value exists an interpolation value will be returned based on `FILL` parameter.
- The input data of `INTERP` is the value of the specified column and a `where` clause can be used to filter the original data. If no `where` condition is specified then all original data is the input. - The input data of `INTERP` is the value of the specified column and a `where` clause can be used to filter the original data. If no `where` condition is specified then all original data is the input.
- `INTERP` must be used along with `RANGE`, `EVERY`, `FILL` keywords. - `INTERP` must be used along with `RANGE`, `EVERY`, `FILL` keywords.
- The output time range of `INTERP` is specified by `RANGE(timestamp1,timestamp2)` parameter, with timestamp1 <= timestamp2. timestamp1 is the starting point of the output time range and must be specified. timestamp2 is the ending point of the output time range and must be specified. - The output time range of `INTERP` is specified by `RANGE(timestamp1,timestamp2)` parameter, with timestamp1 <= timestamp2. timestamp1 is the starting point of the output time range. timestamp2 is the ending point of the output time range.
- The number of rows in the result set of `INTERP` is determined by the parameter `EVERY(time_unit)`. Starting from timestamp1, one interpolation is performed for every time interval specified `time_unit` parameter. The parameter `time_unit` must be an integer, with no quotes, with a time unit of: a(millisecond)), s(second), m(minute), h(hour), d(day), or w(week). For example, `EVERY(500a)` will interpolate every 500 milliseconds. - The number of rows in the result set of `INTERP` is determined by the parameter `EVERY(time_unit)`. Starting from timestamp1, one interpolation is performed for every time interval specified `time_unit` parameter. The parameter `time_unit` must be an integer, with no quotes, with a time unit of: a(millisecond)), s(second), m(minute), h(hour), d(day), or w(week). For example, `EVERY(500a)` will interpolate every 500 milliseconds.
- Interpolation is performed based on `FILL` parameter. For more information about FILL clause, see [FILL Clause](../distinguished/#fill-clause). - Interpolation is performed based on `FILL` parameter. For more information about FILL clause, see [FILL Clause](../distinguished/#fill-clause).
- When only one timestamp value is specified in `RANGE` clause, `INTERP` is used to generate interpolation at this point in time. In this case, `EVERY` clause can be omitted. For example, SELECT INTERP(col) FROM tb RANGE('2023-01-01 00:00:00') FILL(linear).
- `INTERP` can be applied to supertable by interpolating primary key sorted data of all its childtables. It can also be used with `partition by tbname` when applied to supertable to generate interpolation on each single timeline. - `INTERP` can be applied to supertable by interpolating primary key sorted data of all its childtables. It can also be used with `partition by tbname` when applied to supertable to generate interpolation on each single timeline.
- Pseudocolumn `_irowts` can be used along with `INTERP` to return the timestamps associated with interpolation points(support after version 3.0.2.0). - Pseudocolumn `_irowts` can be used along with `INTERP` to return the timestamps associated with interpolation points(support after version 3.0.2.0).
- Pseudocolumn `_isfilled` can be used along with `INTERP` to indicate whether the results are original records or data points generated by interpolation algorithm(support after version 3.0.3.0). - Pseudocolumn `_isfilled` can be used along with `INTERP` to indicate whether the results are original records or data points generated by interpolation algorithm(support after version 3.0.3.0).
...@@ -902,7 +903,7 @@ ignore_null_values: { ...@@ -902,7 +903,7 @@ ignore_null_values: {
- We want to downsample every 1 hour and use a linear fill for missing values. Note the order in which the "partition by" clause and the "range", "every" and "fill" parameters are used. - We want to downsample every 1 hour and use a linear fill for missing values. Note the order in which the "partition by" clause and the "range", "every" and "fill" parameters are used.
```sql ```sql
SELECT _irowts,INTERP(current) FROM test.meters PARTITION BY TBNAME RANGE('2017-07-22 00:00:00','2017-07-24 12:25:00') EVERY(1h) FILL(LINEAR) SELECT _irowts,INTERP(current) FROM test.meters PARTITION BY TBNAME RANGE('2017-07-22 00:00:00','2017-07-24 12:25:00') EVERY(1h) FILL(LINEAR)
``` ```
### LAST ### LAST
......
...@@ -55,7 +55,7 @@ window_clause: { ...@@ -55,7 +55,7 @@ window_clause: {
| INTERVAL(interval_val [, interval_offset]) [SLIDING (sliding_val)] [WATERMARK(watermark_val)] [FILL(fill_mod_and_val)] | INTERVAL(interval_val [, interval_offset]) [SLIDING (sliding_val)] [WATERMARK(watermark_val)] [FILL(fill_mod_and_val)]
interp_clause: interp_clause:
RANGE(ts_val, ts_val) EVERY(every_val) FILL(fill_mod_and_val) RANGE(ts_val [, ts_val]) EVERY(every_val) FILL(fill_mod_and_val)
partition_by_clause: partition_by_clause:
PARTITION BY expr [, expr] ... PARTITION BY expr [, expr] ...
......
...@@ -890,9 +890,10 @@ ignore_null_values: { ...@@ -890,9 +890,10 @@ ignore_null_values: {
- INTERP 用于在指定时间断面获取指定列的记录值,如果该时间断面不存在符合条件的行数据,那么会根据 FILL 参数的设定进行插值。 - INTERP 用于在指定时间断面获取指定列的记录值,如果该时间断面不存在符合条件的行数据,那么会根据 FILL 参数的设定进行插值。
- INTERP 的输入数据为指定列的数据,可以通过条件语句(where 子句)来对原始列数据进行过滤,如果没有指定过滤条件则输入为全部数据。 - INTERP 的输入数据为指定列的数据,可以通过条件语句(where 子句)来对原始列数据进行过滤,如果没有指定过滤条件则输入为全部数据。
- INTERP 需要同时与 RANGE,EVERY 和 FILL 关键字一起使用。 - INTERP 需要同时与 RANGE,EVERY 和 FILL 关键字一起使用。
- INTERP 的输出时间范围根据 RANGE(timestamp1,timestamp2)字段来指定,需满足 timestamp1 <= timestamp2。其中 timestamp1(必选值)为输出时间范围的起始值,即如果 timestamp1 时刻符合插值条件则 timestamp1 为输出的第一条记录,timestamp2(必选值)为输出时间范围的结束值,即输出的最后一条记录的 timestamp 不能大于 timestamp2。 - INTERP 的输出时间范围根据 RANGE(timestamp1, timestamp2)字段来指定,需满足 timestamp1 <= timestamp2。其中 timestamp1 为输出时间范围的起始值,即如果 timestamp1 时刻符合插值条件则 timestamp1 为输出的第一条记录,timestamp2 为输出时间范围的结束值,即输出的最后一条记录的 timestamp 不能大于 timestamp2。
- INTERP 根据 EVERY(time_unit) 字段来确定输出时间范围内的结果条数,即从 timestamp1 开始每隔固定长度的时间(time_unit 值)进行插值,time_unit 可取值时间单位:1a(毫秒),1s(秒),1m(分),1h(小时),1d(天),1w(周)。例如 EVERY(500a) 将对于指定数据每500毫秒间隔进行一次插值. - INTERP 根据 EVERY(time_unit) 字段来确定输出时间范围内的结果条数,即从 timestamp1 开始每隔固定长度的时间(time_unit 值)进行插值,time_unit 可取值时间单位:1a(毫秒),1s(秒),1m(分),1h(小时),1d(天),1w(周)。例如 EVERY(500a) 将对于指定数据每500毫秒间隔进行一次插值.
- INTERP 根据 FILL 字段来决定在每个符合输出条件的时刻如何进行插值。关于 FILL 子句如何使用请参考 [FILL 子句](../distinguished/#fill-子句) - INTERP 根据 FILL 字段来决定在每个符合输出条件的时刻如何进行插值。关于 FILL 子句如何使用请参考 [FILL 子句](../distinguished/#fill-子句)
- INTERP 可以在 RANGE 字段中只指定唯一的时间戳对单个时间点进行插值,在这种情况下,EVERY 字段可以省略。例如:SELECT INTERP(col) FROM tb RANGE('2023-01-01 00:00:00') FILL(linear).
- INTERP 作用于超级表时, 会将该超级表下的所有子表数据按照主键列排序后进行插值计算,也可以搭配 PARTITION BY tbname 使用,将结果强制规约到单个时间线。 - INTERP 作用于超级表时, 会将该超级表下的所有子表数据按照主键列排序后进行插值计算,也可以搭配 PARTITION BY tbname 使用,将结果强制规约到单个时间线。
- INTERP 可以与伪列 _irowts 一起使用,返回插值点所对应的时间戳(3.0.2.0版本以后支持)。 - INTERP 可以与伪列 _irowts 一起使用,返回插值点所对应的时间戳(3.0.2.0版本以后支持)。
- INTERP 可以与伪列 _isfilled 一起使用,显示返回结果是否为原始记录或插值算法产生的数据(3.0.3.0版本以后支持)。 - INTERP 可以与伪列 _isfilled 一起使用,显示返回结果是否为原始记录或插值算法产生的数据(3.0.3.0版本以后支持)。
......
...@@ -127,6 +127,7 @@ SNode* createIntervalWindowNode(SAstCreateContext* pCxt, SNode* pInterval, SNode ...@@ -127,6 +127,7 @@ SNode* createIntervalWindowNode(SAstCreateContext* pCxt, SNode* pInterval, SNode
SNode* createFillNode(SAstCreateContext* pCxt, EFillMode mode, SNode* pValues); SNode* createFillNode(SAstCreateContext* pCxt, EFillMode mode, SNode* pValues);
SNode* createGroupingSetNode(SAstCreateContext* pCxt, SNode* pNode); SNode* createGroupingSetNode(SAstCreateContext* pCxt, SNode* pNode);
SNode* createInterpTimeRange(SAstCreateContext* pCxt, SNode* pStart, SNode* pEnd); SNode* createInterpTimeRange(SAstCreateContext* pCxt, SNode* pStart, SNode* pEnd);
SNode* createInterpTimePoint(SAstCreateContext* pCxt, SNode* pPoint);
SNode* createWhenThenNode(SAstCreateContext* pCxt, SNode* pWhen, SNode* pThen); SNode* createWhenThenNode(SAstCreateContext* pCxt, SNode* pWhen, SNode* pThen);
SNode* createCaseWhenNode(SAstCreateContext* pCxt, SNode* pCase, SNodeList* pWhenThenList, SNode* pElse); SNode* createCaseWhenNode(SAstCreateContext* pCxt, SNode* pCase, SNodeList* pWhenThenList, SNode* pElse);
......
...@@ -1095,6 +1095,8 @@ having_clause_opt(A) ::= HAVING search_condition(B). ...@@ -1095,6 +1095,8 @@ having_clause_opt(A) ::= HAVING search_condition(B).
range_opt(A) ::= . { A = NULL; } range_opt(A) ::= . { A = NULL; }
range_opt(A) ::= range_opt(A) ::=
RANGE NK_LP expr_or_subquery(B) NK_COMMA expr_or_subquery(C) NK_RP. { A = createInterpTimeRange(pCxt, releaseRawExprNode(pCxt, B), releaseRawExprNode(pCxt, C)); } RANGE NK_LP expr_or_subquery(B) NK_COMMA expr_or_subquery(C) NK_RP. { A = createInterpTimeRange(pCxt, releaseRawExprNode(pCxt, B), releaseRawExprNode(pCxt, C)); }
range_opt(A) ::=
RANGE NK_LP expr_or_subquery(B) NK_RP. { A = createInterpTimePoint(pCxt, releaseRawExprNode(pCxt, B)); }
every_opt(A) ::= . { A = NULL; } every_opt(A) ::= . { A = NULL; }
every_opt(A) ::= EVERY NK_LP duration_literal(B) NK_RP. { A = releaseRawExprNode(pCxt, B); } every_opt(A) ::= EVERY NK_LP duration_literal(B) NK_RP. { A = releaseRawExprNode(pCxt, B); }
......
...@@ -695,6 +695,11 @@ SNode* createInterpTimeRange(SAstCreateContext* pCxt, SNode* pStart, SNode* pEnd ...@@ -695,6 +695,11 @@ SNode* createInterpTimeRange(SAstCreateContext* pCxt, SNode* pStart, SNode* pEnd
return createBetweenAnd(pCxt, createPrimaryKeyCol(pCxt, NULL), pStart, pEnd); return createBetweenAnd(pCxt, createPrimaryKeyCol(pCxt, NULL), pStart, pEnd);
} }
SNode* createInterpTimePoint(SAstCreateContext* pCxt, SNode* pPoint) {
CHECK_PARSER_STATUS(pCxt);
return createOperatorNode(pCxt, OP_TYPE_EQUAL, createPrimaryKeyCol(pCxt, NULL), pPoint);
}
SNode* createWhenThenNode(SAstCreateContext* pCxt, SNode* pWhen, SNode* pThen) { SNode* createWhenThenNode(SAstCreateContext* pCxt, SNode* pWhen, SNode* pThen) {
CHECK_PARSER_STATUS(pCxt); CHECK_PARSER_STATUS(pCxt);
SWhenThenNode* pWhenThen = (SWhenThenNode*)nodesMakeNode(QUERY_NODE_WHEN_THEN); SWhenThenNode* pWhenThen = (SWhenThenNode*)nodesMakeNode(QUERY_NODE_WHEN_THEN);
......
...@@ -3497,6 +3497,22 @@ static int32_t createDefaultFillNode(STranslateContext* pCxt, SNode** pOutput) { ...@@ -3497,6 +3497,22 @@ static int32_t createDefaultFillNode(STranslateContext* pCxt, SNode** pOutput) {
return TSDB_CODE_SUCCESS; return TSDB_CODE_SUCCESS;
} }
static int32_t createDefaultEveryNode(STranslateContext* pCxt, SNode** pOutput) {
SValueNode* pEvery = (SValueNode*)nodesMakeNode(QUERY_NODE_VALUE);
if (NULL == pEvery) {
return TSDB_CODE_OUT_OF_MEMORY;
}
pEvery->node.resType.type = TSDB_DATA_TYPE_BIGINT;
pEvery->node.resType.bytes = tDataTypes[TSDB_DATA_TYPE_BIGINT].bytes;
pEvery->isDuration = true;
pEvery->literal = taosStrdup("1s");
*pOutput = (SNode*)pEvery;
return TSDB_CODE_SUCCESS;
}
static int32_t checkEvery(STranslateContext* pCxt, SValueNode* pInterval) { static int32_t checkEvery(STranslateContext* pCxt, SValueNode* pInterval) {
int32_t len = strlen(pInterval->literal); int32_t len = strlen(pInterval->literal);
...@@ -3512,7 +3528,12 @@ static int32_t checkEvery(STranslateContext* pCxt, SValueNode* pInterval) { ...@@ -3512,7 +3528,12 @@ static int32_t checkEvery(STranslateContext* pCxt, SValueNode* pInterval) {
static int32_t translateInterpEvery(STranslateContext* pCxt, SNode** pEvery) { static int32_t translateInterpEvery(STranslateContext* pCxt, SNode** pEvery) {
int32_t code = TSDB_CODE_SUCCESS; int32_t code = TSDB_CODE_SUCCESS;
code = checkEvery(pCxt, (SValueNode*)(*pEvery)); if (NULL == *pEvery) {
code = createDefaultEveryNode(pCxt, pEvery);
}
if (TSDB_CODE_SUCCESS == code) {
code = checkEvery(pCxt, (SValueNode*)(*pEvery));
}
if (TSDB_CODE_SUCCESS == code) { if (TSDB_CODE_SUCCESS == code) {
code = translateExpr(pCxt, pEvery); code = translateExpr(pCxt, pEvery);
} }
...@@ -3558,8 +3579,12 @@ static int32_t translateInterp(STranslateContext* pCxt, SSelectStmt* pSelect) { ...@@ -3558,8 +3579,12 @@ static int32_t translateInterp(STranslateContext* pCxt, SSelectStmt* pSelect) {
} }
if (NULL == pSelect->pRange || NULL == pSelect->pEvery || NULL == pSelect->pFill) { if (NULL == pSelect->pRange || NULL == pSelect->pEvery || NULL == pSelect->pFill) {
return generateSyntaxErrMsgExt(&pCxt->msgBuf, TSDB_CODE_PAR_INVALID_INTERP_CLAUSE, if (pSelect->pRange != NULL && QUERY_NODE_OPERATOR == nodeType(pSelect->pRange) && pSelect->pEvery == NULL) {
"Missing RANGE clause, EVERY clause or FILL clause"); // single point interp every can be omitted
} else {
return generateSyntaxErrMsgExt(&pCxt->msgBuf, TSDB_CODE_PAR_INVALID_INTERP_CLAUSE,
"Missing RANGE clause, EVERY clause or FILL clause");
}
} }
int32_t code = translateExpr(pCxt, &pSelect->pRange); int32_t code = translateExpr(pCxt, &pSelect->pRange);
...@@ -3786,7 +3811,7 @@ static int32_t translateSelectFrom(STranslateContext* pCxt, SSelectStmt* pSelect ...@@ -3786,7 +3811,7 @@ static int32_t translateSelectFrom(STranslateContext* pCxt, SSelectStmt* pSelect
if (TSDB_CODE_SUCCESS == code) { if (TSDB_CODE_SUCCESS == code) {
code = replaceTbName(pCxt, pSelect); code = replaceTbName(pCxt, pSelect);
} }
return code; return code;
} }
......
因为 它太大了无法显示 source diff 。你可以改为 查看blob
...@@ -32,6 +32,12 @@ class TDTestCase: ...@@ -32,6 +32,12 @@ class TDTestCase:
ctbname3_null = "ctb3_null" ctbname3_null = "ctb3_null"
stbname_null = "stb_null" stbname_null = "stb_null"
tbname_single = "tb_single"
ctbname1_single = "ctb1_single"
ctbname2_single = "ctb2_single"
ctbname3_single = "ctb3_single"
stbname_single = "stb_single"
tdSql.prepare() tdSql.prepare()
tdLog.printNoPrefix("==========step1:create table") tdLog.printNoPrefix("==========step1:create table")
...@@ -4020,7 +4026,7 @@ class TDTestCase: ...@@ -4020,7 +4026,7 @@ class TDTestCase:
tdLog.printNoPrefix("======step 15: test interp pseudo columns") tdLog.printNoPrefix("======step 15: test interp pseudo columns")
tdSql.error(f"select _irowts, c6 from {dbname}.{tbname}") tdSql.error(f"select _irowts, c6 from {dbname}.{tbname}")
tdLog.printNoPrefix("======step 15: test interp in nested query") tdLog.printNoPrefix("======step 16: test interp in nested query")
tdSql.query(f"select _irowts, _isfilled, interp(c0) from (select * from {dbname}.{stbname}) range('2020-02-01 00:00:00', '2020-02-01 00:00:14') every(1s) fill(null)") tdSql.query(f"select _irowts, _isfilled, interp(c0) from (select * from {dbname}.{stbname}) range('2020-02-01 00:00:00', '2020-02-01 00:00:14') every(1s) fill(null)")
tdSql.query(f"select _irowts, _isfilled, interp(c0) from (select * from {dbname}.{ctbname1}) range('2020-02-01 00:00:00', '2020-02-01 00:00:14') every(1s) fill(null)") tdSql.query(f"select _irowts, _isfilled, interp(c0) from (select * from {dbname}.{ctbname1}) range('2020-02-01 00:00:00', '2020-02-01 00:00:14') every(1s) fill(null)")
...@@ -4038,6 +4044,1147 @@ class TDTestCase: ...@@ -4038,6 +4044,1147 @@ class TDTestCase:
tdSql.query(f"select _irowts, _isfilled, interp(c0) from (select {ctbname1}.ts,{ctbname1}.c0 from {dbname}.{ctbname1}, {dbname}.{ctbname2} where {ctbname1}.ts = {ctbname2}.ts) range('2020-02-01 00:00:00', '2020-02-01 00:00:14') every(1s) fill(null)") tdSql.query(f"select _irowts, _isfilled, interp(c0) from (select {ctbname1}.ts,{ctbname1}.c0 from {dbname}.{ctbname1}, {dbname}.{ctbname2} where {ctbname1}.ts = {ctbname2}.ts) range('2020-02-01 00:00:00', '2020-02-01 00:00:14') every(1s) fill(null)")
tdLog.printNoPrefix("======step 17: test interp single point")
tdSql.execute(
f'''create table if not exists {dbname}.{tbname_single}
(ts timestamp, c0 int)
'''
)
tdSql.execute(f"insert into {dbname}.{tbname_single} values ('2020-02-01 00:00:01', 1)")
tdSql.execute(f"insert into {dbname}.{tbname_single} values ('2020-02-01 00:00:03', 3)")
tdSql.execute(f"insert into {dbname}.{tbname_single} values ('2020-02-01 00:00:05', 5)")
tdSql.execute(
f'''create table if not exists {dbname}.{stbname_single}
(ts timestamp, c0 int, c1 float, c2 bool) tags (t0 int)
'''
)
tdSql.execute(
f'''create table if not exists {dbname}.{ctbname1_single} using {dbname}.{stbname_single} tags(1)
'''
)
tdSql.execute(
f'''create table if not exists {dbname}.{ctbname2_single} using {dbname}.{stbname_single} tags(2)
'''
)
tdSql.execute(
f'''create table if not exists {dbname}.{ctbname3_single} using {dbname}.{stbname_single} tags(3)
'''
)
tdSql.execute(f"insert into {dbname}.{ctbname1_single} values ('2020-02-01 00:00:01', 1, 1.0, true)")
tdSql.execute(f"insert into {dbname}.{ctbname2_single} values ('2020-02-01 00:00:03', 3, 3.0, false)")
tdSql.execute(f"insert into {dbname}.{ctbname3_single} values ('2020-02-01 00:00:05', 5, 5.0, true)")
# normal table
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:00', '2020-02-01 00:00:00') every(1s) fill(null)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:00.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, None)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:00') fill(null)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:00.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, None)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:01', '2020-02-01 00:00:01') every(1s) fill(null)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:01.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 1)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:01') fill(null)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:01.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 1)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:02', '2020-02-01 00:00:02') every(1s) fill(null)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:02.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, None)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:02') fill(null)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:02.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, None)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:03', '2020-02-01 00:00:03') every(1s) fill(null)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:03.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 3)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:03') fill(null)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:03.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 3)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:04', '2020-02-01 00:00:04') every(1s) fill(null)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:04.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, None)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:04') fill(null)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:04.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, None)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:05', '2020-02-01 00:00:05') every(1s) fill(null)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:05.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 5)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:05') fill(null)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:05.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 5)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:06', '2020-02-01 00:00:06') every(1s) fill(null)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:06.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, None)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:06') fill(null)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:06.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, None)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:00', '2020-02-01 00:00:00') every(1s) fill(value, 0)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:00.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 0)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:00') fill(value, 0)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:00.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 0)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:01', '2020-02-01 00:00:01') every(1s) fill(value, 0)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:01.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 1)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:01') fill(value, 0)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:01.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 1)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:02', '2020-02-01 00:00:02') every(1s) fill(value, 0)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:02.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 0)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:02') fill(value, 0)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:02.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 0)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:03', '2020-02-01 00:00:03') every(1s) fill(value, 0)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:03.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 3)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:03') fill(value, 0)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:03.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 3)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:04', '2020-02-01 00:00:04') every(1s) fill(value, 0)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:04.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 0)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:04') fill(value, 0)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:04.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 0)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:05', '2020-02-01 00:00:05') every(1s) fill(value, 0)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:05.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 5)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:05') fill(value, 0)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:05.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 5)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:06', '2020-02-01 00:00:06') every(1s) fill(value, 0)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:06.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 0)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:06') fill(value, 0)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:06.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 0)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:00', '2020-02-01 00:00:00') every(1s) fill(prev)")
tdSql.checkRows(0)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:00') fill(prev)")
tdSql.checkRows(0)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:01', '2020-02-01 00:00:01') every(1s) fill(prev)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:01.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 1)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:01') fill(prev)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:01.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 1)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:02', '2020-02-01 00:00:02') every(1s) fill(prev)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:02.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 1)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:02') fill(prev)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:02.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 1)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:03', '2020-02-01 00:00:03') every(1s) fill(prev)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:03.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 3)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:03') fill(prev)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:03.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 3)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:04', '2020-02-01 00:00:04') every(1s) fill(prev)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:04.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 3)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:04') fill(prev)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:04.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 3)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:05', '2020-02-01 00:00:05') every(1s) fill(prev)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:05.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 5)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:05') fill(prev)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:05.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 5)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:06', '2020-02-01 00:00:06') every(1s) fill(prev)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:06.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 5)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:06') fill(prev)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:06.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 5)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:00', '2020-02-01 00:00:00') every(1s) fill(next)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:00.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 1)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:00') fill(next)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:00.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 1)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:01', '2020-02-01 00:00:01') every(1s) fill(next)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:01.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 1)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:01') fill(next)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:01.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 1)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:02', '2020-02-01 00:00:02') every(1s) fill(next)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:02.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 3)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:02') fill(next)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:02.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 3)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:03', '2020-02-01 00:00:03') every(1s) fill(next)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:03.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 3)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:03') fill(next)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:03.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 3)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:04', '2020-02-01 00:00:04') every(1s) fill(next)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:04.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 5)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:04') fill(next)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:04.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 5)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:05', '2020-02-01 00:00:05') every(1s) fill(next)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:05.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 5)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:05') fill(next)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:05.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 5)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:06', '2020-02-01 00:00:06') every(1s) fill(next)")
tdSql.checkRows(0)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:06') fill(next)")
tdSql.checkRows(0)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:00', '2020-02-01 00:00:00') every(1s) fill(linear)")
tdSql.checkRows(0)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:00') fill(linear)")
tdSql.checkRows(0)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:01', '2020-02-01 00:00:01') every(1s) fill(linear)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:01.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 1)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:01') fill(linear)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:01.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 1)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:02', '2020-02-01 00:00:02') every(1s) fill(linear)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:02.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 2)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:02') fill(linear)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:02.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 2)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:03', '2020-02-01 00:00:03') every(1s) fill(linear)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:03.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 3)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:03') fill(linear)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:03.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 3)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:04', '2020-02-01 00:00:04') every(1s) fill(linear)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:04.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 4)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:04') fill(linear)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:04.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 4)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:05', '2020-02-01 00:00:05') every(1s) fill(linear)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:05.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 5)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:05') fill(linear)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:05.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 5)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:06', '2020-02-01 00:00:06') every(1s) fill(linear)")
tdSql.checkRows(0)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{tbname_single} range('2020-02-01 00:00:06') fill(linear)")
tdSql.checkRows(0)
#super table
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:00', '2020-02-01 00:00:00') every(1s) fill(null)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:00.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, None)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:00') fill(null)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:00.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, None)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:01', '2020-02-01 00:00:01') every(1s) fill(null)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:01.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 1)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:01') fill(null)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:01.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 1)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:02', '2020-02-01 00:00:02') every(1s) fill(null)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:02.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, None)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:02') fill(null)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:02.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, None)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:03', '2020-02-01 00:00:03') every(1s) fill(null)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:03.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 3)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:03') fill(null)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:03.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 3)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:04', '2020-02-01 00:00:04') every(1s) fill(null)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:04.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, None)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:04') fill(null)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:04.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, None)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:05', '2020-02-01 00:00:05') every(1s) fill(null)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:05.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 5)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:05') fill(null)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:05.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 5)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:06', '2020-02-01 00:00:06') every(1s) fill(null)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:06.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, None)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:06') fill(null)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:06.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, None)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:00', '2020-02-01 00:00:00') every(1s) fill(value, 0)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:00.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 0)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:00') fill(value, 0)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:00.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 0)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:01', '2020-02-01 00:00:01') every(1s) fill(value, 0)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:01.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 1)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:01') fill(value, 0)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:01.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 1)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:02', '2020-02-01 00:00:02') every(1s) fill(value, 0)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:02.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 0)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:02') fill(value, 0)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:02.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 0)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:03', '2020-02-01 00:00:03') every(1s) fill(value, 0)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:03.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 3)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:03') fill(value, 0)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:03.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 3)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:04', '2020-02-01 00:00:04') every(1s) fill(value, 0)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:04.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 0)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:04') fill(value, 0)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:04.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 0)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:05', '2020-02-01 00:00:05') every(1s) fill(value, 0)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:05.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 5)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:05') fill(value, 0)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:05.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 5)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:06', '2020-02-01 00:00:06') every(1s) fill(value, 0)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:06.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 0)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:06') fill(value, 0)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:06.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 0)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:00', '2020-02-01 00:00:00') every(1s) fill(prev)")
tdSql.checkRows(0)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:00') fill(prev)")
tdSql.checkRows(0)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:01', '2020-02-01 00:00:01') every(1s) fill(prev)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:01.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 1)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:01') fill(prev)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:01.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 1)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:02', '2020-02-01 00:00:02') every(1s) fill(prev)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:02.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 1)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:02') fill(prev)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:02.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 1)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:03', '2020-02-01 00:00:03') every(1s) fill(prev)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:03.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 3)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:03') fill(prev)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:03.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 3)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:04', '2020-02-01 00:00:04') every(1s) fill(prev)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:04.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 3)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:04') fill(prev)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:04.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 3)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:05', '2020-02-01 00:00:05') every(1s) fill(prev)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:05.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 5)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:05') fill(prev)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:05.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 5)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:06', '2020-02-01 00:00:06') every(1s) fill(prev)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:06.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 5)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:06') fill(prev)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:06.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 5)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:00', '2020-02-01 00:00:00') every(1s) fill(next)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:00.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 1)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:00') fill(next)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:00.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 1)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:01', '2020-02-01 00:00:01') every(1s) fill(next)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:01.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 1)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:01') fill(next)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:01.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 1)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:02', '2020-02-01 00:00:02') every(1s) fill(next)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:02.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 3)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:02') fill(next)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:02.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 3)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:03', '2020-02-01 00:00:03') every(1s) fill(next)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:03.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 3)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:03') fill(next)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:03.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 3)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:04', '2020-02-01 00:00:04') every(1s) fill(next)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:04.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 5)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:04') fill(next)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:04.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 5)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:05', '2020-02-01 00:00:05') every(1s) fill(next)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:05.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 5)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:05') fill(next)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:05.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 5)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:06', '2020-02-01 00:00:06') every(1s) fill(next)")
tdSql.checkRows(0)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:06') fill(next)")
tdSql.checkRows(0)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:00', '2020-02-01 00:00:00') every(1s) fill(linear)")
tdSql.checkRows(0)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:00') fill(linear)")
tdSql.checkRows(0)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:01', '2020-02-01 00:00:01') every(1s) fill(linear)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:01.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 1)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:01') fill(linear)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:01.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 1)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:02', '2020-02-01 00:00:02') every(1s) fill(linear)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:02.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 2)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:02') fill(linear)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:02.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 2)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:03', '2020-02-01 00:00:03') every(1s) fill(linear)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:03.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 3)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:03') fill(linear)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:03.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 3)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:04', '2020-02-01 00:00:04') every(1s) fill(linear)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:04.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 4)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:04') fill(linear)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:04.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 4)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:05', '2020-02-01 00:00:05') every(1s) fill(linear)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:05.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 5)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:05') fill(linear)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:05.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 5)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:06', '2020-02-01 00:00:06') every(1s) fill(linear)")
tdSql.checkRows(0)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} range('2020-02-01 00:00:06') fill(linear)")
tdSql.checkRows(0)
# partition by tbname
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} partition by tbname range('2020-02-01 00:00:00', '2020-02-01 00:00:00') every(1s) fill(null)")
tdSql.checkRows(3)
for i in range(3):
tdSql.checkData(i, 0, '2020-02-01 00:00:00.000')
tdSql.checkData(i, 1, True)
tdSql.checkData(i, 2, None)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} partition by tbname range('2020-02-01 00:00:00') fill(null)")
tdSql.checkRows(3)
for i in range(3):
tdSql.checkData(i, 0, '2020-02-01 00:00:00.000')
tdSql.checkData(i, 1, True)
tdSql.checkData(i, 2, None)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} partition by tbname range('2020-02-01 00:00:01', '2020-02-01 00:00:01') every(1s) fill(null)")
tdSql.checkRows(3)
tdSql.checkData(0, 0, '2020-02-01 00:00:01.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 1)
for i in range(1, 3):
tdSql.checkData(i, 0, '2020-02-01 00:00:01.000')
tdSql.checkData(i, 1, True)
tdSql.checkData(i, 2, None)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} partition by tbname range('2020-02-01 00:00:01') fill(null)")
tdSql.checkRows(3)
tdSql.checkData(0, 0, '2020-02-01 00:00:01.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 1)
for i in range(1, 3):
tdSql.checkData(i, 0, '2020-02-01 00:00:01.000')
tdSql.checkData(i, 1, True)
tdSql.checkData(i, 2, None)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} partition by tbname range('2020-02-01 00:00:02', '2020-02-01 00:00:02') every(1s) fill(null)")
tdSql.checkRows(3)
for i in range(3):
tdSql.checkData(i, 0, '2020-02-01 00:00:02.000')
tdSql.checkData(i, 1, True)
tdSql.checkData(i, 2, None)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} partition by tbname range('2020-02-01 00:00:02') fill(null)")
tdSql.checkRows(3)
for i in range(3):
tdSql.checkData(i, 0, '2020-02-01 00:00:02.000')
tdSql.checkData(i, 1, True)
tdSql.checkData(i, 2, None)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} partition by tbname range('2020-02-01 00:00:06', '2020-02-01 00:00:06') every(1s) fill(null)")
tdSql.checkRows(3)
for i in range(3):
tdSql.checkData(i, 0, '2020-02-01 00:00:06.000')
tdSql.checkData(i, 1, True)
tdSql.checkData(i, 2, None)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} partition by tbname range('2020-02-01 00:00:06') fill(null)")
tdSql.checkRows(3)
for i in range(3):
tdSql.checkData(i, 0, '2020-02-01 00:00:06.000')
tdSql.checkData(i, 1, True)
tdSql.checkData(i, 2, None)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} partition by tbname range('2020-02-01 00:00:00', '2020-02-01 00:00:00') every(1s) fill(value,0)")
tdSql.checkRows(3)
for i in range(3):
tdSql.checkData(i, 0, '2020-02-01 00:00:00.000')
tdSql.checkData(i, 1, True)
tdSql.checkData(i, 2, 0)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} partition by tbname range('2020-02-01 00:00:00') fill(value,0)")
tdSql.checkRows(3)
for i in range(3):
tdSql.checkData(i, 0, '2020-02-01 00:00:00.000')
tdSql.checkData(i, 1, True)
tdSql.checkData(i, 2, 0)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} partition by tbname range('2020-02-01 00:00:01', '2020-02-01 00:00:01') every(1s) fill(value,0)")
tdSql.checkRows(3)
tdSql.checkData(0, 0, '2020-02-01 00:00:01.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 1)
for i in range(1, 3):
tdSql.checkData(i, 0, '2020-02-01 00:00:01.000')
tdSql.checkData(i, 1, True)
tdSql.checkData(i, 2, 0)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} partition by tbname range('2020-02-01 00:00:01') fill(value,0)")
tdSql.checkRows(3)
tdSql.checkData(0, 0, '2020-02-01 00:00:01.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 1)
for i in range(1, 3):
tdSql.checkData(i, 0, '2020-02-01 00:00:01.000')
tdSql.checkData(i, 1, True)
tdSql.checkData(i, 2, 0)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} partition by tbname range('2020-02-01 00:00:02', '2020-02-01 00:00:02') every(1s) fill(value,0)")
tdSql.checkRows(3)
for i in range(3):
tdSql.checkData(i, 0, '2020-02-01 00:00:02.000')
tdSql.checkData(i, 1, True)
tdSql.checkData(i, 2, 0)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} partition by tbname range('2020-02-01 00:00:02') fill(value,0)")
tdSql.checkRows(3)
for i in range(3):
tdSql.checkData(i, 0, '2020-02-01 00:00:02.000')
tdSql.checkData(i, 1, True)
tdSql.checkData(i, 2, 0)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} partition by tbname range('2020-02-01 00:00:06', '2020-02-01 00:00:06') every(1s) fill(value,0)")
tdSql.checkRows(3)
for i in range(3):
tdSql.checkData(i, 0, '2020-02-01 00:00:06.000')
tdSql.checkData(i, 1, True)
tdSql.checkData(i, 2, 0)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} partition by tbname range('2020-02-01 00:00:06') fill(value,0)")
tdSql.checkRows(3)
for i in range(3):
tdSql.checkData(i, 0, '2020-02-01 00:00:06.000')
tdSql.checkData(i, 1, True)
tdSql.checkData(i, 2, 0)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} partition by tbname range('2020-02-01 00:00:00', '2020-02-01 00:00:00') every(1s) fill(prev)")
tdSql.checkRows(0)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} partition by tbname range('2020-02-01 00:00:00') fill(prev)")
tdSql.checkRows(0)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} partition by tbname range('2020-02-01 00:00:01', '2020-02-01 00:00:01') every(1s) fill(prev)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:01.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 1)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} partition by tbname range('2020-02-01 00:00:01') fill(prev)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:01.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 1)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} partition by tbname range('2020-02-01 00:00:02', '2020-02-01 00:00:02') every(1s) fill(prev)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:02.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 1)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} partition by tbname range('2020-02-01 00:00:02') fill(prev)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:02.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 1)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} partition by tbname range('2020-02-01 00:00:03', '2020-02-01 00:00:03') every(1s) fill(prev)")
tdSql.checkRows(2)
tdSql.checkData(0, 0, '2020-02-01 00:00:03.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 1)
tdSql.checkData(1, 0, '2020-02-01 00:00:03.000')
tdSql.checkData(1, 1, False)
tdSql.checkData(1, 2, 3)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} partition by tbname range('2020-02-01 00:00:03') fill(prev)")
tdSql.checkData(0, 0, '2020-02-01 00:00:03.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 1)
tdSql.checkData(1, 0, '2020-02-01 00:00:03.000')
tdSql.checkData(1, 1, False)
tdSql.checkData(1, 2, 3)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} partition by tbname range('2020-02-01 00:00:04', '2020-02-01 00:00:04') every(1s) fill(prev)")
tdSql.checkRows(2)
tdSql.checkData(0, 0, '2020-02-01 00:00:04.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 1)
tdSql.checkData(1, 0, '2020-02-01 00:00:04.000')
tdSql.checkData(1, 1, True)
tdSql.checkData(1, 2, 3)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} partition by tbname range('2020-02-01 00:00:04') fill(prev)")
tdSql.checkRows(2)
tdSql.checkData(0, 0, '2020-02-01 00:00:04.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 1)
tdSql.checkData(1, 0, '2020-02-01 00:00:04.000')
tdSql.checkData(1, 1, True)
tdSql.checkData(1, 2, 3)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} partition by tbname range('2020-02-01 00:00:05', '2020-02-01 00:00:05') every(1s) fill(prev)")
tdSql.checkRows(3)
tdSql.checkData(0, 0, '2020-02-01 00:00:05.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 1)
tdSql.checkData(1, 0, '2020-02-01 00:00:05.000')
tdSql.checkData(1, 1, True)
tdSql.checkData(1, 2, 3)
tdSql.checkData(2, 0, '2020-02-01 00:00:05.000')
tdSql.checkData(2, 1, False)
tdSql.checkData(2, 2, 5)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} partition by tbname range('2020-02-01 00:00:05') fill(prev)")
tdSql.checkRows(3)
tdSql.checkData(0, 0, '2020-02-01 00:00:05.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 1)
tdSql.checkData(1, 0, '2020-02-01 00:00:05.000')
tdSql.checkData(1, 1, True)
tdSql.checkData(1, 2, 3)
tdSql.checkData(2, 0, '2020-02-01 00:00:05.000')
tdSql.checkData(2, 1, False)
tdSql.checkData(2, 2, 5)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} partition by tbname range('2020-02-01 00:00:06', '2020-02-01 00:00:06') every(1s) fill(prev)")
tdSql.checkRows(3)
tdSql.checkData(0, 0, '2020-02-01 00:00:06.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 1)
tdSql.checkData(1, 0, '2020-02-01 00:00:06.000')
tdSql.checkData(1, 1, True)
tdSql.checkData(1, 2, 3)
tdSql.checkData(2, 0, '2020-02-01 00:00:06.000')
tdSql.checkData(2, 1, True)
tdSql.checkData(2, 2, 5)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} partition by tbname range('2020-02-01 00:00:06') fill(prev)")
tdSql.checkRows(3)
tdSql.checkData(0, 0, '2020-02-01 00:00:06.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 1)
tdSql.checkData(1, 0, '2020-02-01 00:00:06.000')
tdSql.checkData(1, 1, True)
tdSql.checkData(1, 2, 3)
tdSql.checkData(2, 0, '2020-02-01 00:00:06.000')
tdSql.checkData(2, 1, True)
tdSql.checkData(2, 2, 5)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} partition by tbname range('2020-02-01 00:00:06', '2020-02-01 00:00:06') every(1s) fill(next)")
tdSql.checkRows(0)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} partition by tbname range('2020-02-01 00:00:06') fill(next)")
tdSql.checkRows(0)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} partition by tbname range('2020-02-01 00:00:05', '2020-02-01 00:00:05') every(1s) fill(next)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:05.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 5)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} partition by tbname range('2020-02-01 00:00:05') fill(next)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:05.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 5)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} partition by tbname range('2020-02-01 00:00:04', '2020-02-01 00:00:04') every(1s) fill(next)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:04.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 5)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} partition by tbname range('2020-02-01 00:00:04') fill(next)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:04.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 5)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} partition by tbname range('2020-02-01 00:00:03', '2020-02-01 00:00:03') every(1s) fill(next)")
tdSql.checkRows(2)
tdSql.checkData(0, 0, '2020-02-01 00:00:03.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 3)
tdSql.checkData(1, 0, '2020-02-01 00:00:03.000')
tdSql.checkData(1, 1, True)
tdSql.checkData(1, 2, 5)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} partition by tbname range('2020-02-01 00:00:03') fill(next)")
tdSql.checkData(0, 0, '2020-02-01 00:00:03.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 3)
tdSql.checkData(1, 0, '2020-02-01 00:00:03.000')
tdSql.checkData(1, 1, True)
tdSql.checkData(1, 2, 5)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} partition by tbname range('2020-02-01 00:00:02', '2020-02-01 00:00:02') every(1s) fill(next)")
tdSql.checkRows(2)
tdSql.checkData(0, 0, '2020-02-01 00:00:02.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 3)
tdSql.checkData(1, 0, '2020-02-01 00:00:02.000')
tdSql.checkData(1, 1, True)
tdSql.checkData(1, 2, 5)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} partition by tbname range('2020-02-01 00:00:02') fill(next)")
tdSql.checkRows(2)
tdSql.checkData(0, 0, '2020-02-01 00:00:02.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 3)
tdSql.checkData(1, 0, '2020-02-01 00:00:02.000')
tdSql.checkData(1, 1, True)
tdSql.checkData(1, 2, 5)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} partition by tbname range('2020-02-01 00:00:01', '2020-02-01 00:00:01') every(1s) fill(next)")
tdSql.checkRows(3)
tdSql.checkData(0, 0, '2020-02-01 00:00:01.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 1)
tdSql.checkData(1, 0, '2020-02-01 00:00:01.000')
tdSql.checkData(1, 1, True)
tdSql.checkData(1, 2, 3)
tdSql.checkData(2, 0, '2020-02-01 00:00:01.000')
tdSql.checkData(2, 1, True)
tdSql.checkData(2, 2, 5)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} partition by tbname range('2020-02-01 00:00:01') fill(next)")
tdSql.checkRows(3)
tdSql.checkData(0, 0, '2020-02-01 00:00:01.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 1)
tdSql.checkData(1, 0, '2020-02-01 00:00:01.000')
tdSql.checkData(1, 1, True)
tdSql.checkData(1, 2, 3)
tdSql.checkData(2, 0, '2020-02-01 00:00:01.000')
tdSql.checkData(2, 1, True)
tdSql.checkData(2, 2, 5)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} partition by tbname range('2020-02-01 00:00:00', '2020-02-01 00:00:00') every(1s) fill(next)")
tdSql.checkRows(3)
tdSql.checkData(0, 0, '2020-02-01 00:00:00.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 1)
tdSql.checkData(1, 0, '2020-02-01 00:00:00.000')
tdSql.checkData(1, 1, True)
tdSql.checkData(1, 2, 3)
tdSql.checkData(2, 0, '2020-02-01 00:00:00.000')
tdSql.checkData(2, 1, True)
tdSql.checkData(2, 2, 5)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} partition by tbname range('2020-02-01 00:00:00') fill(next)")
tdSql.checkRows(3)
tdSql.checkData(0, 0, '2020-02-01 00:00:00.000')
tdSql.checkData(0, 1, True)
tdSql.checkData(0, 2, 1)
tdSql.checkData(1, 0, '2020-02-01 00:00:00.000')
tdSql.checkData(1, 1, True)
tdSql.checkData(1, 2, 3)
tdSql.checkData(2, 0, '2020-02-01 00:00:00.000')
tdSql.checkData(2, 1, True)
tdSql.checkData(2, 2, 5)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} partition by tbname range('2020-02-01 00:00:00') fill(linear)")
tdSql.checkRows(0)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} partition by tbname range('2020-02-01 00:00:01', '2020-02-01 00:00:01') every(1s) fill(linear)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:01.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 1)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} partition by tbname range('2020-02-01 00:00:01') fill(linear)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:01.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 1)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} partition by tbname range('2020-02-01 00:00:02', '2020-02-01 00:00:02') every(1s) fill(linear)")
tdSql.checkRows(0)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} partition by tbname range('2020-02-01 00:00:02') fill(linear)")
tdSql.checkRows(0)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} partition by tbname range('2020-02-01 00:00:03', '2020-02-01 00:00:03') every(1s) fill(linear)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:03.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 3)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} partition by tbname range('2020-02-01 00:00:03') fill(linear)")
tdSql.checkData(0, 0, '2020-02-01 00:00:03.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 3)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} partition by tbname range('2020-02-01 00:00:04', '2020-02-01 00:00:04') every(1s) fill(linear)")
tdSql.checkRows(0)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} partition by tbname range('2020-02-01 00:00:04') fill(linear)")
tdSql.checkRows(0)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} partition by tbname range('2020-02-01 00:00:05', '2020-02-01 00:00:05') every(1s) fill(linear)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:05.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 5)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} partition by tbname range('2020-02-01 00:00:05') fill(linear)")
tdSql.checkRows(1)
tdSql.checkData(0, 0, '2020-02-01 00:00:05.000')
tdSql.checkData(0, 1, False)
tdSql.checkData(0, 2, 5)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} partition by tbname range('2020-02-01 00:00:06', '2020-02-01 00:00:06') every(1s) fill(linear)")
tdSql.checkRows(0)
tdSql.query(f"select _irowts, _isfilled, interp(c0) from {dbname}.{stbname_single} partition by tbname range('2020-02-01 00:00:06') fill(linear)")
tdSql.checkRows(0)
def stop(self): def stop(self):
tdSql.close() tdSql.close()
tdLog.success(f"{__file__} successfully executed") tdLog.success(f"{__file__} successfully executed")
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册