queryNullValueTest.py 5.9 KB
Newer Older
P
Ping Xiao 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
###################################################################
#           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")        
64 65
        tdSql.checkRows(10)
        tdSql.query("select col2 from meters")        
P
Ping Xiao 已提交
66 67 68 69 70
        tdSql.checkRows(10)        

        tdSql.execute("alter table meters add column col1 int")
        tdSql.query("select * from meters")
        tdSql.checkRows(10)
71 72
        tdSql.query("select col1 from meters")        
        tdSql.checkRows(10)
P
Ping Xiao 已提交
73 74 75 76

        tdSql.execute("alter table meters add column col3 smallint")
        tdSql.query("select * from meters")
        tdSql.checkRows(10)
77 78
        tdSql.query("select col3 from meters")        
        tdSql.checkRows(10)
P
Ping Xiao 已提交
79 80 81 82

        tdSql.execute("alter table meters add column col4 bigint")
        tdSql.query("select * from meters")
        tdSql.checkRows(10)
83 84
        tdSql.query("select col4 from meters")        
        tdSql.checkRows(10)
P
Ping Xiao 已提交
85 86 87 88

        tdSql.execute("alter table meters add column col5 float")
        tdSql.query("select * from meters")
        tdSql.checkRows(10)
89 90
        tdSql.query("select col5 from meters")        
        tdSql.checkRows(10)
P
Ping Xiao 已提交
91 92 93 94

        tdSql.execute("alter table meters add column col6 double")
        tdSql.query("select * from meters")
        tdSql.checkRows(10)
95 96
        tdSql.query("select col6 from meters")        
        tdSql.checkRows(10)
P
Ping Xiao 已提交
97 98 99 100

        tdSql.execute("alter table meters add column col7 bool")
        tdSql.query("select * from meters")
        tdSql.checkRows(10)
101 102
        tdSql.query("select col7 from meters")        
        tdSql.checkRows(10)
P
Ping Xiao 已提交
103 104 105 106

        tdSql.execute("alter table meters add column col8 binary(20)")
        tdSql.query("select * from meters")
        tdSql.checkRows(10)
107 108
        tdSql.query("select col8 from meters")        
        tdSql.checkRows(10)
P
Ping Xiao 已提交
109 110 111 112

        tdSql.execute("alter table meters add column col9 nchar(20)")
        tdSql.query("select * from meters")
        tdSql.checkRows(10)
113 114
        tdSql.query("select col9 from meters")        
        tdSql.checkRows(10)
P
Ping Xiao 已提交
115 116 117
        
        tdSql.execute("alter table meters add tag tgcol2 tinyint")
        tdSql.query("select * from meters")
118 119 120 121
        tdSql.checkRows(10)
        tdSql.query("select tgcol2 from meters")
        tdSql.checkRows(1)
                
P
Ping Xiao 已提交
122 123 124 125

        tdSql.execute("alter table meters add tag tgcol3 smallint")
        tdSql.query("select * from meters")
        tdSql.checkRows(10)
126 127 128
        tdSql.query("select tgcol3 from meters")
        tdSql.checkRows(1)
        
P
Ping Xiao 已提交
129 130 131 132

        tdSql.execute("alter table meters add tag tgcol4 bigint")
        tdSql.query("select * from meters")
        tdSql.checkRows(10)
133 134
        tdSql.query("select tgcol4 from meters")
        tdSql.checkRows(1)
P
Ping Xiao 已提交
135 136 137 138

        tdSql.execute("alter table meters add tag tgcol5 float")
        tdSql.query("select * from meters")
        tdSql.checkRows(10)
139 140
        tdSql.query("select tgcol5 from meters")
        tdSql.checkRows(1)
P
Ping Xiao 已提交
141 142 143 144

        tdSql.execute("alter table meters add tag tgcol6 double")
        tdSql.query("select * from meters")
        tdSql.checkRows(10)
145 146
        tdSql.query("select tgcol6 from meters")
        tdSql.checkRows(1)
P
Ping Xiao 已提交
147 148 149 150

        tdSql.execute("alter table meters add tag tgcol7 bool")
        tdSql.query("select * from meters")
        tdSql.checkRows(10)
151 152
        tdSql.query("select tgcol7 from meters")
        tdSql.checkRows(1)
P
Ping Xiao 已提交
153 154 155 156

        tdSql.execute("alter table meters add tag tgcol8 binary(20)")
        tdSql.query("select * from meters")
        tdSql.checkRows(10)
157 158
        tdSql.query("select tgcol8 from meters")
        tdSql.checkRows(1)
P
Ping Xiao 已提交
159 160 161 162

        tdSql.execute("alter table meters add tag tgcol9 nchar(20)")
        tdSql.query("select * from meters")
        tdSql.checkRows(10)
163 164
        tdSql.query("select tgcol9 from meters")
        tdSql.checkRows(1)
P
Ping Xiao 已提交
165 166 167 168 169 170 171

        self.restartTaosd()
        tdSql.query("select * from meters")        
        tdSql.checkRows(10)
        if self.checkNullValue(tdSql.queryResult) is False:
            tdLog.exit("non None value is detected")

172 173 174

        

P
Ping Xiao 已提交
175 176 177 178 179 180 181
    def stop(self):
        tdSql.close()
        tdLog.success("%s successfully executed" % __file__)


tdCases.addWindows(__file__, TDTestCase())
tdCases.addLinux(__file__, TDTestCase())