TDengine/tests/pytest/insert/schemaChangeTest.py
2021-09-27 17:31:16 +08:00

72 lines
No EOL
2.3 KiB
Python

###################################################################
# 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 *
from util.dnodes import *
import multiprocessing as mp
class TDTestCase:
def init(self, conn, logSql):
tdLog.debug("start to execute %s" % __file__)
tdSql.init(conn.cursor())
self.ts = 1609430400000
def alterTableSchema(self):
conn1 = taos.connect(host="127.0.0.1", user="root", password="taosdata", config=tdDnodes.getSimCfgPath())
c1 = conn1.cursor()
c1.execute("use db")
c1.execute("alter table st drop column c2")
c1.execute("alter table st add column c2 double")
tdLog.sleep(1)
c1.execute("select * from st")
for data in c1:
print("Process 1: c2 = %s" % data[2])
def insertData(self):
conn2 = taos.connect(host="127.0.0.1", user="root", password="taosdata", config=tdDnodes.getSimCfgPath())
c2 = conn2.cursor()
tdLog.sleep(1)
c2.execute("use db")
c2.execute("insert into t1 values(%d, 2, 2.22)" % (self.ts + 1))
c2.execute("select * from st")
for data in c2:
print("Process 2: c2 = %f" % data[2])
def run(self):
tdSql.prepare()
tdSql.execute("create table st(ts timestamp, c1 int, c2 float) tags(t1 int)")
tdSql.execute("create table t1 using st tags(1)")
tdSql.execute("insert into t1 values(%d, 1, 1.11)" % self.ts)
p1 = mp.Process(target=self.alterTableSchema, args=())
p2 = mp.Process(target=self.insertData, args=())
p1.start()
p2.start()
p1.join()
p2.join()
def stop(self):
tdSql.close()
tdLog.success("%s successfully executed" % __file__)
tdCases.addWindows(__file__, TDTestCase())
tdCases.addLinux(__file__, TDTestCase())