Merge pull request #24530 from taosdata/TEST/3.0/TD-28332
add test cases for TD-28332
This commit is contained in:
commit
0c031a7c67
|
@ -98,6 +98,23 @@ class TDSql:
|
|||
time.sleep(1)
|
||||
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):
|
||||
caller = inspect.getframeinfo(inspect.stack()[1][0])
|
||||
expectErrNotOccured = True
|
||||
|
@ -126,9 +143,9 @@ class TDSql:
|
|||
|
||||
if expectErrInfo != None:
|
||||
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:
|
||||
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:
|
||||
if expectedErrno != None:
|
||||
if expectedErrno in self.errno:
|
||||
|
@ -138,9 +155,9 @@ class TDSql:
|
|||
|
||||
if expectErrInfo != None:
|
||||
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:
|
||||
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
|
||||
|
||||
|
|
|
@ -278,19 +278,19 @@ class TDTestCase:
|
|||
|
||||
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.checkRows(1)
|
||||
|
@ -302,6 +302,18 @@ class TDTestCase:
|
|||
|
||||
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
|
||||
def run(self):
|
||||
|
@ -317,6 +329,8 @@ class TDTestCase:
|
|||
# agg
|
||||
self.queryOrderByAgg()
|
||||
|
||||
# td-28332
|
||||
self.queryOrderByAmbiguousName()
|
||||
|
||||
# stop
|
||||
def stop(self):
|
||||
|
|
Loading…
Reference in New Issue