Merge pull request #24530 from taosdata/TEST/3.0/TD-28332
add test cases for TD-28332
This commit is contained in:
commit
0c031a7c67
|
@ -97,7 +97,24 @@ class TDSql:
|
||||||
i+=1
|
i+=1
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
def no_error(self, sql):
|
||||||
|
caller = inspect.getframeinfo(inspect.stack()[1][0])
|
||||||
|
expectErrOccurred = False
|
||||||
|
|
||||||
|
try:
|
||||||
|
self.cursor.execute(sql)
|
||||||
|
except BaseException as e:
|
||||||
|
expectErrOccurred = True
|
||||||
|
self.errno = e.errno
|
||||||
|
error_info = repr(e)
|
||||||
|
self.error_info = ','.join(error_info[error_info.index('(') + 1:-1].split(",")[:-1]).replace("'", "")
|
||||||
|
|
||||||
|
if expectErrOccurred:
|
||||||
|
tdLog.exit("%s(%d) failed: sql:%s, unexpect error '%s' occurred" % (caller.filename, caller.lineno, sql, self.error_info))
|
||||||
|
else:
|
||||||
|
tdLog.info("sql:%s, check passed, no ErrInfo occurred" % (sql))
|
||||||
|
|
||||||
def error(self, sql, expectedErrno = None, expectErrInfo = None, fullMatched = True):
|
def error(self, sql, expectedErrno = None, expectErrInfo = None, fullMatched = True):
|
||||||
caller = inspect.getframeinfo(inspect.stack()[1][0])
|
caller = inspect.getframeinfo(inspect.stack()[1][0])
|
||||||
expectErrNotOccured = True
|
expectErrNotOccured = True
|
||||||
|
@ -126,9 +143,9 @@ class TDSql:
|
||||||
|
|
||||||
if expectErrInfo != None:
|
if expectErrInfo != None:
|
||||||
if expectErrInfo == self.error_info:
|
if expectErrInfo == self.error_info:
|
||||||
tdLog.info("sql:%s, expected expectErrInfo '%s' occured" % (sql, expectErrInfo))
|
tdLog.info("sql:%s, expected ErrInfo '%s' occured" % (sql, expectErrInfo))
|
||||||
else:
|
else:
|
||||||
tdLog.exit("%s(%d) failed: sql:%s, expectErrInfo '%s' occured, but not expected expectErrInfo '%s'" % (caller.filename, caller.lineno, sql, self.error_info, expectErrInfo))
|
tdLog.exit("%s(%d) failed: sql:%s, ErrInfo '%s' occured, but not expected ErrInfo '%s'" % (caller.filename, caller.lineno, sql, self.error_info, expectErrInfo))
|
||||||
else:
|
else:
|
||||||
if expectedErrno != None:
|
if expectedErrno != None:
|
||||||
if expectedErrno in self.errno:
|
if expectedErrno in self.errno:
|
||||||
|
@ -138,9 +155,9 @@ class TDSql:
|
||||||
|
|
||||||
if expectErrInfo != None:
|
if expectErrInfo != None:
|
||||||
if expectErrInfo in self.error_info:
|
if expectErrInfo in self.error_info:
|
||||||
tdLog.info("sql:%s, expected expectErrInfo '%s' occured" % (sql, expectErrInfo))
|
tdLog.info("sql:%s, expected ErrInfo '%s' occured" % (sql, expectErrInfo))
|
||||||
else:
|
else:
|
||||||
tdLog.exit("%s(%d) failed: sql:%s, expectErrInfo %s occured, but not expected expectErrInfo '%s'" % (caller.filename, caller.lineno, sql, self.error_info, expectErrInfo))
|
tdLog.exit("%s(%d) failed: sql:%s, ErrInfo %s occured, but not expected ErrInfo '%s'" % (caller.filename, caller.lineno, sql, self.error_info, expectErrInfo))
|
||||||
|
|
||||||
return self.error_info
|
return self.error_info
|
||||||
|
|
||||||
|
|
|
@ -278,19 +278,19 @@ class TDTestCase:
|
||||||
|
|
||||||
def queryOrderByAgg(self):
|
def queryOrderByAgg(self):
|
||||||
|
|
||||||
tdSql.query("SELECT COUNT(*) FROM t1 order by COUNT(*)")
|
tdSql.no_error("SELECT COUNT(*) FROM t1 order by COUNT(*)")
|
||||||
|
|
||||||
tdSql.query("SELECT COUNT(*) FROM t1 order by last(c2)")
|
tdSql.no_error("SELECT COUNT(*) FROM t1 order by last(c2)")
|
||||||
|
|
||||||
tdSql.query("SELECT c1 FROM t1 order by last(ts)")
|
tdSql.no_error("SELECT c1 FROM t1 order by last(ts)")
|
||||||
|
|
||||||
tdSql.query("SELECT ts FROM t1 order by last(ts)")
|
tdSql.no_error("SELECT ts FROM t1 order by last(ts)")
|
||||||
|
|
||||||
tdSql.query("SELECT last(ts), ts, c1 FROM t1 order by 2")
|
tdSql.no_error("SELECT last(ts), ts, c1 FROM t1 order by 2")
|
||||||
|
|
||||||
tdSql.query("SELECT ts, last(ts) FROM t1 order by last(ts)")
|
tdSql.no_error("SELECT ts, last(ts) FROM t1 order by last(ts)")
|
||||||
|
|
||||||
tdSql.query(f"SELECT * FROM t1 order by last(ts)")
|
tdSql.no_error(f"SELECT * FROM t1 order by last(ts)")
|
||||||
|
|
||||||
tdSql.query(f"SELECT last(ts) as t2, ts FROM t1 order by 1")
|
tdSql.query(f"SELECT last(ts) as t2, ts FROM t1 order by 1")
|
||||||
tdSql.checkRows(1)
|
tdSql.checkRows(1)
|
||||||
|
@ -302,6 +302,18 @@ class TDTestCase:
|
||||||
|
|
||||||
tdSql.error(f"SELECT last(ts) as t2, ts FROM t1 order by last(t2)")
|
tdSql.error(f"SELECT last(ts) as t2, ts FROM t1 order by last(t2)")
|
||||||
|
|
||||||
|
def queryOrderByAmbiguousName(self):
|
||||||
|
tdSql.error(sql="select c1 as name, c2 as name, c3 from t1 order by name", expectErrInfo='ambiguous',
|
||||||
|
fullMatched=False)
|
||||||
|
|
||||||
|
tdSql.error(sql="select c1, c2 as c1, c3 from t1 order by c1", expectErrInfo='ambiguous', fullMatched=False)
|
||||||
|
|
||||||
|
tdSql.error(sql='select last(ts), last(c1) as name ,last(c2) as name,last(c3) from t1 order by name',
|
||||||
|
expectErrInfo='ambiguous', fullMatched=False)
|
||||||
|
|
||||||
|
tdSql.no_error("select c1 as name, c2 as c1, c3 from t1 order by c1")
|
||||||
|
|
||||||
|
tdSql.no_error('select c1 as name from (select c1, c2 as name from st) order by name')
|
||||||
|
|
||||||
# run
|
# run
|
||||||
def run(self):
|
def run(self):
|
||||||
|
@ -317,6 +329,8 @@ class TDTestCase:
|
||||||
# agg
|
# agg
|
||||||
self.queryOrderByAgg()
|
self.queryOrderByAgg()
|
||||||
|
|
||||||
|
# td-28332
|
||||||
|
self.queryOrderByAmbiguousName()
|
||||||
|
|
||||||
# stop
|
# stop
|
||||||
def stop(self):
|
def stop(self):
|
||||||
|
|
Loading…
Reference in New Issue