TD-775: Remove numpy dependency from sql.py
This commit is contained in:
parent
123723b06f
commit
dde667116c
|
@ -11,7 +11,7 @@
|
||||||
4. pip install ../src/connector/python/linux/python2 ; pip3 install
|
4. pip install ../src/connector/python/linux/python2 ; pip3 install
|
||||||
../src/connector/python/linux/python3
|
../src/connector/python/linux/python3
|
||||||
|
|
||||||
5. pip install numpy; pip3 install numpy
|
5. pip install numpy; pip3 install numpy (numpy is required only if you need to run querySort.py)
|
||||||
|
|
||||||
> Note: Both Python2 and Python3 are currently supported by the Python test
|
> Note: Both Python2 and Python3 are currently supported by the Python test
|
||||||
> framework. Since Python2 is no longer officially supported by Python Software
|
> framework. Since Python2 is no longer officially supported by Python Software
|
||||||
|
|
|
@ -77,11 +77,7 @@ class TDTestCase:
|
||||||
# join queries
|
# join queries
|
||||||
tdSql.query(
|
tdSql.query(
|
||||||
"select * from stb_p, stb_t where stb_p.ts=stb_t.ts and stb_p.id = stb_t.id")
|
"select * from stb_p, stb_t where stb_p.ts=stb_t.ts and stb_p.id = stb_t.id")
|
||||||
tdSql.checkRows(6)
|
tdSql.checkRows(6)
|
||||||
|
|
||||||
tdSql.query(
|
|
||||||
"select * from stb_p, stb_t where stb_p.ts=stb_t.ts and stb_p.id = stb_t.id order by ts desc")
|
|
||||||
tdSql.checkColumnSorted(0, "desc")
|
|
||||||
|
|
||||||
tdSql.error(
|
tdSql.error(
|
||||||
"select ts, pressure, temperature, id, dscrption from stb_p, stb_t where stb_p.ts=stb_t.ts and stb_p.id = stb_t.id")
|
"select ts, pressure, temperature, id, dscrption from stb_p, stb_t where stb_p.ts=stb_t.ts and stb_p.id = stb_t.id")
|
||||||
|
|
|
@ -16,6 +16,7 @@ import taos
|
||||||
from util.log import *
|
from util.log import *
|
||||||
from util.cases import *
|
from util.cases import *
|
||||||
from util.sql import *
|
from util.sql import *
|
||||||
|
import numpy as np
|
||||||
|
|
||||||
|
|
||||||
class TDTestCase:
|
class TDTestCase:
|
||||||
|
@ -26,6 +27,46 @@ class TDTestCase:
|
||||||
self.rowNum = 10
|
self.rowNum = 10
|
||||||
self.ts = 1537146000000
|
self.ts = 1537146000000
|
||||||
|
|
||||||
|
def checkColumnSorted(self, col, order):
|
||||||
|
frame = inspect.stack()[1]
|
||||||
|
callerModule = inspect.getmodule(frame[0])
|
||||||
|
callerFilename = callerModule.__file__
|
||||||
|
|
||||||
|
if col < 0:
|
||||||
|
tdLog.exit(
|
||||||
|
"%s failed: sql:%s, col:%d is smaller than zero" %
|
||||||
|
(callerFilename, tdSql.sql, col))
|
||||||
|
if col > tdSql.queryCols:
|
||||||
|
tdLog.exit(
|
||||||
|
"%s failed: sql:%s, col:%d is larger than queryCols:%d" %
|
||||||
|
(callerFilename, tdSql.sql, col, tdSql.queryCols))
|
||||||
|
|
||||||
|
matrix = np.array(tdSql.queryResult)
|
||||||
|
list = matrix[:, 0]
|
||||||
|
|
||||||
|
if order == "" or order.upper() == "ASC":
|
||||||
|
if all(sorted(list) == list):
|
||||||
|
tdLog.info(
|
||||||
|
"sql:%s, column :%d is sorted in accending order as expected" %
|
||||||
|
(tdSql.sql, col))
|
||||||
|
else:
|
||||||
|
tdLog.exit(
|
||||||
|
"%s failed: sql:%s, col:%d is not sorted in accesnind order" %
|
||||||
|
(callerFilename, tdSql.sql, col))
|
||||||
|
elif order.upper() == "DESC":
|
||||||
|
if all(sorted(list, reverse=True) == list):
|
||||||
|
tdLog.info(
|
||||||
|
"sql:%s, column :%d is sorted in decending order as expected" %
|
||||||
|
(tdSql.sql, col))
|
||||||
|
else:
|
||||||
|
tdLog.exit(
|
||||||
|
"%s failed: sql:%s, col:%d is not sorted in decending order" %
|
||||||
|
(callerFilename, tdSql.sql, col))
|
||||||
|
else:
|
||||||
|
tdLog.exit(
|
||||||
|
"%s failed: sql:%s, the order provided for col:%d is not correct" %
|
||||||
|
(callerFilename, tdSql.sql, col))
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
tdSql.prepare()
|
tdSql.prepare()
|
||||||
|
|
||||||
|
@ -49,11 +90,11 @@ class TDTestCase:
|
||||||
print("======= step 2: verify order for each column =========")
|
print("======= step 2: verify order for each column =========")
|
||||||
# sort for timestamp in asc order
|
# sort for timestamp in asc order
|
||||||
tdSql.query("select * from st order by ts asc")
|
tdSql.query("select * from st order by ts asc")
|
||||||
tdSql.checkColumnSorted(0, "asc")
|
self.checkColumnSorted(0, "asc")
|
||||||
|
|
||||||
# sort for timestamp in desc order
|
# sort for timestamp in desc order
|
||||||
tdSql.query("select * from st order by ts desc")
|
tdSql.query("select * from st order by ts desc")
|
||||||
tdSql.checkColumnSorted(0, "desc")
|
self.checkColumnSorted(0, "desc")
|
||||||
|
|
||||||
for i in range(1, 10):
|
for i in range(1, 10):
|
||||||
tdSql.error("select * from st order by tbcol%d" % i)
|
tdSql.error("select * from st order by tbcol%d" % i)
|
||||||
|
@ -63,17 +104,17 @@ class TDTestCase:
|
||||||
tdSql.query(
|
tdSql.query(
|
||||||
"select avg(tbcol1) from st group by tagcol%d order by tagcol%d" %
|
"select avg(tbcol1) from st group by tagcol%d order by tagcol%d" %
|
||||||
(i, i))
|
(i, i))
|
||||||
tdSql.checkColumnSorted(1, "")
|
self.checkColumnSorted(1, "")
|
||||||
|
|
||||||
tdSql.query(
|
tdSql.query(
|
||||||
"select avg(tbcol1) from st group by tagcol%d order by tagcol%d asc" %
|
"select avg(tbcol1) from st group by tagcol%d order by tagcol%d asc" %
|
||||||
(i, i))
|
(i, i))
|
||||||
tdSql.checkColumnSorted(1, "asc")
|
self.checkColumnSorted(1, "asc")
|
||||||
|
|
||||||
tdSql.query(
|
tdSql.query(
|
||||||
"select avg(tbcol1) from st group by tagcol%d order by tagcol%d desc" %
|
"select avg(tbcol1) from st group by tagcol%d order by tagcol%d desc" %
|
||||||
(i, i))
|
(i, i))
|
||||||
tdSql.checkColumnSorted(1, "desc")
|
self.checkColumnSorted(1, "desc")
|
||||||
|
|
||||||
def stop(self):
|
def stop(self):
|
||||||
tdSql.close()
|
tdSql.close()
|
||||||
|
|
|
@ -17,7 +17,6 @@ import time
|
||||||
import datetime
|
import datetime
|
||||||
import inspect
|
import inspect
|
||||||
from util.log import *
|
from util.log import *
|
||||||
import numpy as np
|
|
||||||
|
|
||||||
|
|
||||||
class TDSql:
|
class TDSql:
|
||||||
|
@ -199,47 +198,7 @@ class TDSql:
|
||||||
"%s failed: sql:%s, affectedRows:%d != expect:%d" %
|
"%s failed: sql:%s, affectedRows:%d != expect:%d" %
|
||||||
(callerFilename, self.sql, self.affectedRows, expectAffectedRows))
|
(callerFilename, self.sql, self.affectedRows, expectAffectedRows))
|
||||||
tdLog.info("sql:%s, affectedRows:%d == expect:%d" %
|
tdLog.info("sql:%s, affectedRows:%d == expect:%d" %
|
||||||
(self.sql, self.affectedRows, expectAffectedRows))
|
(self.sql, self.affectedRows, expectAffectedRows))
|
||||||
|
|
||||||
def checkColumnSorted(self, col, order):
|
|
||||||
frame = inspect.stack()[1]
|
|
||||||
callerModule = inspect.getmodule(frame[0])
|
|
||||||
callerFilename = callerModule.__file__
|
|
||||||
|
|
||||||
if col < 0:
|
|
||||||
tdLog.exit(
|
|
||||||
"%s failed: sql:%s, col:%d is smaller than zero" %
|
|
||||||
(callerFilename, self.sql, col))
|
|
||||||
if col > self.queryCols:
|
|
||||||
tdLog.exit(
|
|
||||||
"%s failed: sql:%s, col:%d is larger than queryCols:%d" %
|
|
||||||
(callerFilename, self.sql, col, self.queryCols))
|
|
||||||
|
|
||||||
matrix = np.array(self.queryResult)
|
|
||||||
list = matrix[:, 0]
|
|
||||||
|
|
||||||
if order == "" or order.upper() == "ASC":
|
|
||||||
if all(sorted(list) == list):
|
|
||||||
tdLog.info(
|
|
||||||
"sql:%s, column :%d is sorted in accending order as expected" %
|
|
||||||
(self.sql, col))
|
|
||||||
else:
|
|
||||||
tdLog.exit(
|
|
||||||
"%s failed: sql:%s, col:%d is not sorted in accesnind order" %
|
|
||||||
(callerFilename, self.sql, col))
|
|
||||||
elif order.upper() == "DESC":
|
|
||||||
if all(sorted(list, reverse=True) == list):
|
|
||||||
tdLog.info(
|
|
||||||
"sql:%s, column :%d is sorted in decending order as expected" %
|
|
||||||
(self.sql, col))
|
|
||||||
else:
|
|
||||||
tdLog.exit(
|
|
||||||
"%s failed: sql:%s, col:%d is not sorted in decending order" %
|
|
||||||
(callerFilename, self.sql, col))
|
|
||||||
else:
|
|
||||||
tdLog.exit(
|
|
||||||
"%s failed: sql:%s, the order provided for col:%d is not correct" %
|
|
||||||
(callerFilename, self.sql, col))
|
|
||||||
|
|
||||||
|
|
||||||
tdSql = TDSql()
|
tdSql = TDSql()
|
||||||
|
|
Loading…
Reference in New Issue