diff --git a/tests/pytest/fulltest.sh b/tests/pytest/fulltest.sh index 5ee33c421ea1a2da6949d057f6670353a09abd3d..9d1aef0dc5cc2cf266931ff6e8ba88794649686c 100755 --- a/tests/pytest/fulltest.sh +++ b/tests/pytest/fulltest.sh @@ -143,6 +143,7 @@ python3 ./test.py -f query/filterOtherTypes.py python3 ./test.py -f query/querySort.py python3 ./test.py -f query/queryJoin.py python3 ./test.py -f query/select_last_crash.py +python3 ./test.py -f query/queryNullValueTest.py #stream python3 ./test.py -f stream/metric_1.py diff --git a/tests/pytest/query/queryInsertValue.py b/tests/pytest/query/queryInsertValue.py new file mode 100644 index 0000000000000000000000000000000000000000..856801b4ee162a35e1e4e4b864860180960a1432 --- /dev/null +++ b/tests/pytest/query/queryInsertValue.py @@ -0,0 +1,65 @@ +################################################################### +# 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 * +from util.cases import * +from util.sql import * +import numpy as np +from util.dnodes import * + + +class TDTestCase: + def init(self, conn, logSql): + tdLog.debug("start to execute %s" % __file__) + tdSql.init(conn.cursor(), logSql) + + self.numOfRecords = 10 + self.ts = 1537146000000 + + def restartTaosd(self): + tdDnodes.stop(1) + tdDnodes.start(1) + tdSql.execute("use db") + + def run(self): + tdSql.prepare() + + print("==============step1") + + tdSql.execute( + "create table st (ts timestamp, speed int) tags(areaid int, loc nchar(20))") + tdSql.execute("create table t1 using st tags(1, 'beijing')") + tdSql.execute("insert into t1 values(now, 1)") + tdSql.query("select * from st") + tdSql.checkRows(1) + + tdSql.execute("alter table st add column length int") + tdSql.execute("insert into t1 values(now, 1, 2)") + tdSql.query("select last(*) from st") + tdSql.checkData(0, 2, 2); + + self.restartTaosd(); + + tdSql.query("select last(*) from st") + tdSql.checkData(0, 2, 2); + + + def stop(self): + tdSql.close() + tdLog.success("%s successfully executed" % __file__) + + +tdCases.addWindows(__file__, TDTestCase()) +tdCases.addLinux(__file__, TDTestCase()) diff --git a/tests/pytest/query/queryNullValueTest.py b/tests/pytest/query/queryNullValueTest.py new file mode 100644 index 0000000000000000000000000000000000000000..2ad1979e0bfb33246d087e85132341fdc6e0bdcd --- /dev/null +++ b/tests/pytest/query/queryNullValueTest.py @@ -0,0 +1,181 @@ +################################################################### +# 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 * +from util.cases import * +from util.sql import * +import numpy as np +from util.dnodes import * + + +class TDTestCase: + def init(self, conn, logSql): + tdLog.debug("start to execute %s" % __file__) + tdSql.init(conn.cursor(), logSql) + + self.numOfRecords = 10 + self.ts = 1537146000000 + + def checkNullValue(self, result): + mx = np.array(result) + [rows, cols] = mx.shape + for i in range(rows): + for j in range(cols): + if j + 1 < cols and mx[i, j + 1] is not None: + print(mx[i, j + 1]) + return False + return True + + def restartTaosd(self): + tdDnodes.stop(1) + tdDnodes.start(1) + tdSql.execute("use db") + + def run(self): + tdSql.prepare() + + print("==============step1") + + tdSql.execute( + "create table meters (ts timestamp, col1 int) tags(tgcol1 int)") + tdSql.execute("create table t0 using meters tags(NULL)") + + for i in range (self.numOfRecords): + tdSql.execute("insert into t0 values (%d, %d)" % (self.ts + i, i)); + + tdSql.query("select * from meters") + tdSql.checkRows(10) + + tdSql.execute("alter table meters add column col2 tinyint") + tdSql.execute("alter table meters drop column col1") + tdSql.query("select * from meters") + tdSql.checkRows(10) + tdSql.query("select col2 from meters") + tdSql.checkRows(10) + + tdSql.execute("alter table meters add column col1 int") + tdSql.query("select * from meters") + tdSql.checkRows(10) + tdSql.query("select col1 from meters") + tdSql.checkRows(10) + + tdSql.execute("alter table meters add column col3 smallint") + tdSql.query("select * from meters") + tdSql.checkRows(10) + tdSql.query("select col3 from meters") + tdSql.checkRows(10) + + tdSql.execute("alter table meters add column col4 bigint") + tdSql.query("select * from meters") + tdSql.checkRows(10) + tdSql.query("select col4 from meters") + tdSql.checkRows(10) + + tdSql.execute("alter table meters add column col5 float") + tdSql.query("select * from meters") + tdSql.checkRows(10) + tdSql.query("select col5 from meters") + tdSql.checkRows(10) + + tdSql.execute("alter table meters add column col6 double") + tdSql.query("select * from meters") + tdSql.checkRows(10) + tdSql.query("select col6 from meters") + tdSql.checkRows(10) + + tdSql.execute("alter table meters add column col7 bool") + tdSql.query("select * from meters") + tdSql.checkRows(10) + tdSql.query("select col7 from meters") + tdSql.checkRows(10) + + tdSql.execute("alter table meters add column col8 binary(20)") + tdSql.query("select * from meters") + tdSql.checkRows(10) + tdSql.query("select col8 from meters") + tdSql.checkRows(10) + + tdSql.execute("alter table meters add column col9 nchar(20)") + tdSql.query("select * from meters") + tdSql.checkRows(10) + tdSql.query("select col9 from meters") + tdSql.checkRows(10) + + tdSql.execute("alter table meters add tag tgcol2 tinyint") + tdSql.query("select * from meters") + tdSql.checkRows(10) + tdSql.query("select tgcol2 from meters") + tdSql.checkRows(1) + + + tdSql.execute("alter table meters add tag tgcol3 smallint") + tdSql.query("select * from meters") + tdSql.checkRows(10) + tdSql.query("select tgcol3 from meters") + tdSql.checkRows(1) + + + tdSql.execute("alter table meters add tag tgcol4 bigint") + tdSql.query("select * from meters") + tdSql.checkRows(10) + tdSql.query("select tgcol4 from meters") + tdSql.checkRows(1) + + tdSql.execute("alter table meters add tag tgcol5 float") + tdSql.query("select * from meters") + tdSql.checkRows(10) + tdSql.query("select tgcol5 from meters") + tdSql.checkRows(1) + + tdSql.execute("alter table meters add tag tgcol6 double") + tdSql.query("select * from meters") + tdSql.checkRows(10) + tdSql.query("select tgcol6 from meters") + tdSql.checkRows(1) + + tdSql.execute("alter table meters add tag tgcol7 bool") + tdSql.query("select * from meters") + tdSql.checkRows(10) + tdSql.query("select tgcol7 from meters") + tdSql.checkRows(1) + + tdSql.execute("alter table meters add tag tgcol8 binary(20)") + tdSql.query("select * from meters") + tdSql.checkRows(10) + tdSql.query("select tgcol8 from meters") + tdSql.checkRows(1) + + tdSql.execute("alter table meters add tag tgcol9 nchar(20)") + tdSql.query("select * from meters") + tdSql.checkRows(10) + tdSql.query("select tgcol9 from meters") + tdSql.checkRows(1) + + self.restartTaosd() + tdSql.query("select * from meters") + tdSql.checkRows(10) + if self.checkNullValue(tdSql.queryResult) is False: + tdLog.exit("non None value is detected") + + + + + def stop(self): + tdSql.close() + tdLog.success("%s successfully executed" % __file__) + + +tdCases.addWindows(__file__, TDTestCase()) +tdCases.addLinux(__file__, TDTestCase()) diff --git a/tests/pytest/regressiontest.sh b/tests/pytest/regressiontest.sh index ccc6635ced9dd532bb62149a00608ba5a849d04f..24cd93f0fc58772e2d1741d9ee0119d9d5247357 100755 --- a/tests/pytest/regressiontest.sh +++ b/tests/pytest/regressiontest.sh @@ -140,6 +140,7 @@ python3 ./test.py -f query/queryJoin.py python3 ./test.py -f query/filterCombo.py python3 ./test.py -f query/queryNormal.py python3 ./test.py -f query/select_last_crash.py +python3 ./test.py -f query/queryNullValueTest.py #stream python3 ./test.py -f stream/stream1.py