diff --git a/source/libs/parser/src/parInsertSql.c b/source/libs/parser/src/parInsertSql.c index 965b80e9ce..e1071a5c15 100644 --- a/source/libs/parser/src/parInsertSql.c +++ b/source/libs/parser/src/parInsertSql.c @@ -260,7 +260,7 @@ static int parseTimestampOrInterval(const char** end, SToken* pToken, int16_t ti } else { // parse the RFC-3339/ISO-8601 timestamp format string *isTs = true; if (taosParseTime(pToken->z, ts, pToken->n, timePrec, tsDaylight) != TSDB_CODE_SUCCESS) { - if (pToken->type != TK_NK_STRING) { + if (pToken->type != TK_NK_STRING || pToken->n == 0) { return buildSyntaxErrMsg(pMsgBuf, "invalid timestamp format", pToken->z); } if (TSDB_CODE_SUCCESS != toInteger(pToken->z, pToken->n, 10, ts)) { diff --git a/tests/system-test/1-insert/insert_column_value.py b/tests/system-test/1-insert/insert_column_value.py index ec1877e523..9232e9bd2b 100644 --- a/tests/system-test/1-insert/insert_column_value.py +++ b/tests/system-test/1-insert/insert_column_value.py @@ -46,6 +46,9 @@ class TDTestCase: tdSql.execute(f'insert into {dbname}.{ctbname} using {dbname}.{stbname} tags({okv}, {okv}) values(now, {okv}, {okv})') tdSql.query(f'select * from {dbname}.{stbname}') tdSql.checkRows(1) + tdSql.execute(f'alter table {dbname}.{ctbname} set tag t0 = {okv}') + tdSql.error(f'alter table {dbname}.{ctbname} set tag t0 = %s' %(_e)) + tdSql.error(f'alter table {dbname}.{ctbname} set tag t1 = %s' %(_e)) tdSql.execute(f'drop table {dbname}.{ctbname}') for _l in oklist: for _e in _l: @@ -53,6 +56,8 @@ class TDTestCase: tdSql.execute(f'insert into {dbname}.{ctbname} values(now + 0s, %s, {okv})' %(_e)) tdSql.execute(f'insert into {dbname}.{ctbname} values(now + 1s, {okv}, %s)' %(_e)) tdSql.execute(f'insert into {dbname}.{ctbname} values(now + 2s, %s, %s)' %(_e, _e)) + tdSql.execute(f'alter table {dbname}.{ctbname} set tag t0 = %s' %(_e)) + tdSql.execute(f'alter table {dbname}.{ctbname} set tag t1 = %s' %(_e)) tdSql.query(f'select * from {dbname}.{stbname}') tdSql.checkRows(3) tdSql.execute(f'drop table {dbname}.{ctbname}') @@ -110,8 +115,8 @@ class TDTestCase: KO_VC = [RAW_MISC, RAW_OPTR, RAW_TSK_OPTR, RAW_TSKP, RAW_TSKP_OPTR] OK_NC = [] KO_NC = [] - OK_TS = [STR_TSK, STR_TSKP, STR_NULL, RAW_INTEGER, RAW_TSK, RAW_TSK_OPTR, RAW_TSKP, RAW_TSKP_OPTR, RAW_NULL] - KO_TS = [STR_EMPTY, STR_INTEGER, STR_FLOAT, STR_FLOAT_E, STR_MISC, STR_OPTR, STR_TSK_MISC, STR_BOOL, STR_VARBIN, + OK_TS = [STR_TSK, STR_TSKP, STR_NULL, STR_INTEGER, RAW_INTEGER, RAW_TSK, RAW_TSK_OPTR, RAW_TSKP, RAW_TSKP_OPTR, RAW_NULL] + KO_TS = [STR_EMPTY, STR_FLOAT, STR_FLOAT_E, STR_MISC, STR_OPTR, STR_TSK_MISC, STR_BOOL, STR_VARBIN, STR_JSON,STR_GEO, STR_FLOAT, RAW_FLOAT_E, RAW_MISC, RAW_OPTR, RAW_BOOL] OK_BO = [] KO_BO = [] diff --git a/tests/system-test/2-query/group_partition.py b/tests/system-test/2-query/group_partition.py index a20b124c33..36e3afd3ca 100644 --- a/tests/system-test/2-query/group_partition.py +++ b/tests/system-test/2-query/group_partition.py @@ -24,7 +24,7 @@ class TDTestCase: for i in range(self.tb_nums): tbname = f"{self.dbname}.sub_{self.stable}_{i}" ts = self.ts + i*10000 - tdSql.execute(f"create table {tbname} using {self.dbname}.{self.stable} tags ({ts} , {i} , {i}*10 ,{i}*1.0,{i}*1.0 , 1 , 2, 'true', 'binary_{i}' ,'nchar_{i}',{i},{i},10,20 )") + tdSql.execute(f"create table {tbname} using {self.dbname}.{self.stable} tags ({ts} , {i} , %d ,%d , %f , 1 , 2, 'true', 'binary_{i}' ,'nchar_{i}',{i},{i},10,20 )"%(i*10,i*1.0,i*1.0)) def insert_db(self, tb_nums, row_nums): for i in range(tb_nums):