From 66bb66170e5e336ca81579dc69283c0103756876 Mon Sep 17 00:00:00 2001 From: Ping Xiao Date: Thu, 16 Jul 2020 12:58:39 +0800 Subject: [PATCH] TD-908: query null value test --- tests/pytest/fulltest.sh | 1 + tests/pytest/query/queryNullValueTest.py | 142 +++++++++++++++++++++++ tests/pytest/regressiontest.sh | 1 + 3 files changed, 144 insertions(+) create mode 100644 tests/pytest/query/queryNullValueTest.py diff --git a/tests/pytest/fulltest.sh b/tests/pytest/fulltest.sh index 5ee33c421e..9d1aef0dc5 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/queryNullValueTest.py b/tests/pytest/query/queryNullValueTest.py new file mode 100644 index 0000000000..90e1f421a3 --- /dev/null +++ b/tests/pytest/query/queryNullValueTest.py @@ -0,0 +1,142 @@ +################################################################### +# 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.execute("alter table meters add column col1 int") + tdSql.query("select * from meters") + tdSql.checkRows(10) + + tdSql.execute("alter table meters add column col3 smallint") + tdSql.query("select * from meters") + tdSql.checkRows(10) + + tdSql.execute("alter table meters add column col4 bigint") + tdSql.query("select * from meters") + tdSql.checkRows(10) + + tdSql.execute("alter table meters add column col5 float") + tdSql.query("select * from meters") + tdSql.checkRows(10) + + tdSql.execute("alter table meters add column col6 double") + tdSql.query("select * from meters") + tdSql.checkRows(10) + + tdSql.execute("alter table meters add column col7 bool") + tdSql.query("select * from meters") + tdSql.checkRows(10) + + tdSql.execute("alter table meters add column col8 binary(20)") + tdSql.query("select * from meters") + tdSql.checkRows(10) + + tdSql.execute("alter table meters add column col9 nchar(20)") + tdSql.query("select * from meters") + tdSql.checkRows(10) + + tdSql.execute("alter table meters add tag tgcol2 tinyint") + tdSql.query("select * from meters") + tdSql.checkRows(10) + + tdSql.execute("alter table meters add tag tgcol3 smallint") + tdSql.query("select * from meters") + tdSql.checkRows(10) + + tdSql.execute("alter table meters add tag tgcol4 bigint") + tdSql.query("select * from meters") + tdSql.checkRows(10) + + tdSql.execute("alter table meters add tag tgcol5 float") + tdSql.query("select * from meters") + tdSql.checkRows(10) + + tdSql.execute("alter table meters add tag tgcol6 double") + tdSql.query("select * from meters") + tdSql.checkRows(10) + + tdSql.execute("alter table meters add tag tgcol7 bool") + tdSql.query("select * from meters") + tdSql.checkRows(10) + + tdSql.execute("alter table meters add tag tgcol8 binary(20)") + tdSql.query("select * from meters") + tdSql.checkRows(10) + + tdSql.execute("alter table meters add tag tgcol9 nchar(20)") + tdSql.query("select * from meters") + tdSql.checkRows(10) + + 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 ccc6635ced..24cd93f0fc 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 -- GitLab