Merge pull request #29508 from taosdata/enh/test/joincase

enh: test case
This commit is contained in:
Shengliang Guan 2025-01-08 16:00:55 +08:00 committed by GitHub
commit 4a73dbff0e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 68 additions and 2 deletions

View File

@ -7,9 +7,11 @@ TAOS_DEF_ERROR_CODE = ctypes.c_int32(0x80000000).value
TSDB_CODE_MND_FUNC_NOT_EXIST = (TAOS_DEF_ERROR_CODE | 0x0374)
TSDB_CODE_TSC_INVALID_OPERATION = (TAOS_DEF_ERROR_CODE | 0x0200)
TSDB_CODE_UDF_FUNC_EXEC_FAILURE = (TAOS_DEF_ERROR_CODE | 0x290A)
TSDB_CODE_TSC_INTERNAL_ERROR = (TAOS_DEF_ERROR_CODE | 0x02FF)
TSDB_CODE_TSC_INVALID_OPERATION = (TAOS_DEF_ERROR_CODE | 0x0200)
TSDB_CODE_PAR_SYNTAX_ERROR = (TAOS_DEF_ERROR_CODE | 0x2600)

View File

@ -356,6 +356,11 @@ class TDTestCase:
def join_semantic_test(self, dbname=DBNAME):
tdSql.query("select ct1.c_int from db.ct1 as ct1 join db1.ct1 as cy1 on ct1.ts=cy1.ts")
tdSql.checkRows(self.rows)
tdSql.error("select ct1.c_int from db.ct1 as ct1 semi join db1.ct1 as cy1 on ct1.ts=cy1.ts", TSDB_CODE_PAR_SYNTAX_ERROR)
tdSql.error("select ct1.c_int from db.ct1 as ct1 anti join db1.ct1 as cy1 on ct1.ts=cy1.ts", TSDB_CODE_PAR_SYNTAX_ERROR)
tdSql.error("select ct1.c_int from db.ct1 as ct1 outer join db1.ct1 as cy1 on ct1.ts=cy1.ts", TSDB_CODE_PAR_SYNTAX_ERROR)
tdSql.error("select ct1.c_int from db.ct1 as ct1 asof join db1.ct1 as cy1 on ct1.ts=cy1.ts", TSDB_CODE_PAR_SYNTAX_ERROR)
tdSql.error("select ct1.c_int from db.ct1 as ct1 window join db1.ct1 as cy1 on ct1.ts=cy1.ts", TSDB_CODE_PAR_SYNTAX_ERROR)
tdSql.query("select ct1.c_int from db.ct1 as ct1 join db1.ct1 as cy1 on ct1.ts=cy1.ts")
tdSql.checkRows(self.rows)
@ -390,6 +395,9 @@ class TDTestCase:
tdSql.query("select ct1.c_int from db.ct1 as ct1 full join db1.ct1 as cy1 on ct1.ts=cy1.ts join db1.ct1 as cy2 on ct1.ts=cy2.ts")
tdSql.checkRows(self.rows)
tdSql.error("select ct1.c_int from db.ct1 as ct1 full semi join db1.ct1 as cy1 on ct1.ts=cy1.ts", TSDB_CODE_PAR_SYNTAX_ERROR)
tdSql.error("select ct1.c_int from db.ct1 as ct1 full anti join db1.ct1 as cy1 on ct1.ts=cy1.ts", TSDB_CODE_PAR_SYNTAX_ERROR)
tdSql.query("select ct1.c_int from db.ct1 as ct1 full outer join db1.ct1 as cy1 on ct1.ts=cy1.ts", TSDB_CODE_PAR_SYNTAX_ERROR)
tdSql.query("select * from db.ct1 join db.ct2 join db.ct3 on ct2.ts=ct3.ts on ct1.ts=ct2.ts")
tdSql.checkRows(0)
tdSql.execute(f'create table db.ct1_2 using db.stb1 tags ( 102 )')
@ -398,6 +406,13 @@ class TDTestCase:
tdSql.execute(f'insert into db.ct1_3 (select * from db.ct1)')
tdSql.query("select * from db.ct1 join db.ct1_2 join db.ct1_3 on ct1_2.ts=ct1_3.ts on ct1.ts=ct1_2.ts")
tdSql.checkRows(self.rows)
tdSql.error("select ct1.c_int from db.ct1 as ct1 full asof join db1.ct1 as cy1 on ct1.ts=cy1.ts", TSDB_CODE_PAR_SYNTAX_ERROR)
tdSql.error("select ct1.c_int from db.ct1 as ct1 full window join db1.ct1 as cy1 on ct1.ts=cy1.ts", TSDB_CODE_PAR_SYNTAX_ERROR)
tdSql.query("select ct1.c_int from db.ct1 as ct1 left join db1.ct1 as cy1 on ct1.ts=cy1.ts")
tdSql.checkRows(self.rows)
tdSql.query("select ct1.c_int from db.ct1 as ct1 right join db1.ct1 as cy1 on ct1.ts=cy1.ts")
tdSql.checkRows(self.rows)
tdSql.execute("drop table db.ct1_2")
tdSql.execute("drop table db.ct1_3")

View File

@ -969,6 +969,11 @@ class TDTestCase:
tdSql.checkData(0, 0, 6)
tdSql.checkData(0, 1, 1734574929004)
tdSql.checkData(0, 2, 4)
tdSql.query(f'select count(1), last_row(ts), last_row(c0) from (select * from (select * from {dbname}.meters))')
tdSql.checkRows(1)
tdSql.checkData(0, 0, 6)
tdSql.checkData(0, 1, 1734574929004)
tdSql.checkData(0, 2, 4)
tdSql.query(f'select tbname, last_row(ts), last_row(c0) from (select *, tbname from {dbname}.meters) group by tbname order by tbname')
tdSql.checkRows(2)
tdSql.checkData(0, 0, 'd0')
@ -977,6 +982,14 @@ class TDTestCase:
tdSql.checkData(1, 0, 'd1')
tdSql.checkData(1, 1, 1734574929000)
tdSql.checkData(1, 2, 1)
tdSql.query(f'select tbname, last_row(ts), last_row(c0) from (select * from (select *, tbname from {dbname}.meters)) group by tbname order by tbname')
tdSql.checkRows(2)
tdSql.checkData(0, 0, 'd0')
tdSql.checkData(0, 1, 1734574929004)
tdSql.checkData(0, 2, 4)
tdSql.checkData(1, 0, 'd1')
tdSql.checkData(1, 1, 1734574929000)
tdSql.checkData(1, 2, 1)
tdSql.query(f'select count(1), last_row(ts), last_row(c0) from (select * from {dbname}.d0)')
tdSql.checkRows(1)
tdSql.checkData(0, 0, 5)
@ -988,6 +1001,43 @@ class TDTestCase:
tdSql.checkData(0, 1, 1734574929004)
tdSql.checkData(0, 2, 4)
tdSql.execute(f'insert into {dbname}.d0 values(1734574930000, 1, 1, "c2", true)')
tdSql.execute(f'insert into {dbname}.d0 values(1734574931000, 1, 1, "c2", true)')
tdSql.execute(f'insert into {dbname}.d0 values(1734574932000, 1, 1, "c2", true)')
tdSql.query(f'select last_row(_wstart) from (select _wstart, _wend, count(1) from {dbname}.meters interval(1s))')
tdSql.checkRows(1)
tdSql.checkData(0, 0, 1734574932000)
tdSql.query(f'select last_row(_wstart), count(1) from (select _wstart, _wend, count(1) from {dbname}.meters interval(1s))')
tdSql.checkRows(1)
tdSql.checkData(0, 0, 1734574932000)
tdSql.checkData(0, 1, 4)
tdSql.query(f'select last_row(_wstart) from (select _wstart, _wend, count(1) from {dbname}.meters partition by tbname interval(1s))')
tdSql.checkRows(1)
tdSql.checkData(0, 0, 1734574932000)
tdSql.query(f'select last_row(_wstart), count(1) from (select _wstart, _wend, count(1) from {dbname}.meters partition by tbname interval(1s))')
tdSql.checkRows(1)
tdSql.checkData(0, 0, 1734574932000)
tdSql.checkData(0, 1, 5)
tdSql.query(f'select first(_wstart), count(1) from (select _wstart, _wend, count(1) from {dbname}.meters interval(1s))')
tdSql.checkRows(1)
tdSql.checkData(0, 0, 1734574929000)
tdSql.checkData(0, 1, 4)
tdSql.query(f'select last_row(_wstart) from (select * from (select _wstart, _wend, count(1) from {dbname}.meters interval(1s)))')
tdSql.checkRows(1)
tdSql.checkData(0, 0, 1734574932000)
tdSql.query(f'select last_row(_wstart), count(1) from (select * from (select _wstart, _wend, count(1) from {dbname}.meters interval(1s)))')
tdSql.checkRows(1)
tdSql.checkData(0, 0, 1734574932000)
tdSql.checkData(0, 1, 4)
tdSql.query(f'select last_row(_wstart) from (select * from (select _wstart, _wend, count(1) from {dbname}.meters partition by tbname interval(1s)))')
tdSql.checkRows(1)
tdSql.checkData(0, 0, 1734574932000)
tdSql.query(f'select last_row(_wstart), count(1) from (select * from (select _wstart, _wend, count(1) from {dbname}.meters partition by tbname interval(1s)))')
tdSql.checkRows(1)
tdSql.checkData(0, 0, 1734574932000)
tdSql.checkData(0, 1, 5)
def run(self): # sourcery skip: extract-duplicate-method, remove-redundant-fstring
# tdSql.prepare()
@ -1023,7 +1073,6 @@ class TDTestCase:
self.lastrow_in_subquery("db1")
def stop(self):
tdSql.close()
tdLog.success(f"{__file__} successfully executed")