fix: select tbname when use multi select function
This commit is contained in:
parent
bd3a36bd12
commit
5c64684965
|
@ -3894,7 +3894,7 @@ static EDealRes doCheckExprForGroupBy(SNode** pNode, void* pContext) {
|
|||
}
|
||||
|
||||
if (isScanPseudoColumnFunc(*pNode) || QUERY_NODE_COLUMN == nodeType(*pNode)) {
|
||||
if ((pSelect->selectFuncNum > 1 || (isDistinctOrderBy(pCxt) && pCxt->currClause == SQL_CLAUSE_ORDER_BY)) &&
|
||||
if (((pSelect->selectFuncNum > 1 && pCxt->stableQuery) || (isDistinctOrderBy(pCxt) && pCxt->currClause == SQL_CLAUSE_ORDER_BY)) &&
|
||||
!isRelatedToOtherExpr((SExprNode*)*pNode)) {
|
||||
return generateDealNodeErrMsg(pCxt, getGroupByErrorCode(pCxt), ((SExprNode*)(*pNode))->userAlias);
|
||||
}
|
||||
|
|
|
@ -1022,7 +1022,82 @@ class TDTestCase:
|
|||
self.orderby_test("(select *, tbname from test.long_col_test)", "longcolumntestlongcolumntestlongcolumntestlongcolumntest88888888", True)
|
||||
tdLog.info("long_column_name_test subquery_test: one_cols_multi_output_with_group_test from meters")
|
||||
|
||||
def test1(self):
|
||||
dbname = "db1"
|
||||
tdSql.execute(f"drop database if exists {dbname} ")
|
||||
tdSql.execute(f"create database {dbname} vgroups 6")
|
||||
tdSql.execute(f"use {dbname}")
|
||||
|
||||
tdSql.execute(f" create stable {dbname}.sta (ts timestamp, f1 int, f2 binary(10), f3 bool) tags(t1 int, t2 bool, t3 binary(10));")
|
||||
tdSql.execute(f" create table {dbname}.tba1 using sta tags(0, false, '0');")
|
||||
tdSql.execute(f" create table {dbname}.tba2 using sta tags(1, true, '1');")
|
||||
tdSql.execute(f" create table {dbname}.tba3 using sta tags(null, null, '');")
|
||||
tdSql.execute(f" create table {dbname}.tba4 using sta tags(1, false, null);")
|
||||
tdSql.execute(f" create table {dbname}.tba5 using sta tags(3, true, 'aa');")
|
||||
|
||||
tdSql.execute(f"insert into {dbname}.tba1 values ('2022-09-26 15:15:01', 0, 'a', false);")
|
||||
tdSql.execute(f"insert into {dbname}.tba1 values ('2022-09-26 15:15:02', 1, '0', true);")
|
||||
tdSql.execute(f"insert into {dbname}.tba1 values ('2022-09-26 15:15:03', 5, '5', false);")
|
||||
tdSql.execute(f"insert into {dbname}.tba1 values ('2022-09-26 15:15:04', null, null, null);")
|
||||
|
||||
tdSql.execute(f"insert into {dbname}.tba2 values ('2022-09-27 15:15:01', 0, 'a', false);")
|
||||
tdSql.execute(f"insert into {dbname}.tba2 values ('2022-09-27 15:15:02', 1, '0', true);")
|
||||
tdSql.execute(f"insert into {dbname}.tba2 values ('2022-09-27 15:15:03', 5, '5', false);")
|
||||
tdSql.execute(f"insert into {dbname}.tba2 values ('2022-09-27 15:15:04', null, null, null);")
|
||||
|
||||
tdSql.execute(f"insert into {dbname}.tba3 values ('2022-09-28 15:15:01', 0, 'a', false);")
|
||||
tdSql.execute(f"insert into {dbname}.tba3 values ('2022-09-28 15:15:02', 1, '0', true);")
|
||||
tdSql.execute(f"insert into {dbname}.tba3 values ('2022-09-28 15:15:03', 5, '5', false);")
|
||||
tdSql.execute(f"insert into {dbname}.tba3 values ('2022-09-28 15:15:04', null, null, null);")
|
||||
|
||||
tdSql.execute(f"insert into {dbname}.tba4 values ('2022-09-29 15:15:01', 0, 'a', false);")
|
||||
tdSql.execute(f"insert into {dbname}.tba4 values ('2022-09-29 15:15:02', 1, '0', true);")
|
||||
tdSql.execute(f"insert into {dbname}.tba4 values ('2022-09-29 15:15:03', 5, '5', false);")
|
||||
tdSql.execute(f"insert into {dbname}.tba4 values ('2022-09-29 15:15:04', null, null, null);")
|
||||
|
||||
tdSql.execute(f"insert into {dbname}.tba5 values ('2022-09-30 15:15:01', 0, 'a', false);")
|
||||
tdSql.execute(f"insert into {dbname}.tba5 values ('2022-09-30 15:15:02', 1, '0', true);")
|
||||
tdSql.execute(f"insert into {dbname}.tba5 values ('2022-09-30 15:15:03', 5, '5', false);")
|
||||
tdSql.execute(f"insert into {dbname}.tba5 values ('2022-09-30 15:15:04', null, null, null);")
|
||||
|
||||
tdSql.query(f'select tbname, cols(last(ts), ts as ts1), cols(last(f1), ts as ts2) from tba5 interval(1s);')
|
||||
tdSql.checkRows(4)
|
||||
tdSql.checkCols(3)
|
||||
tdSql.checkData(0, 1, "2022-09-30 15:15:01")
|
||||
tdSql.checkData(0, 2, "2022-09-30 15:15:01")
|
||||
tdSql.checkData(1, 1, "2022-09-30 15:15:02")
|
||||
tdSql.checkData(1, 2, "2022-09-30 15:15:02")
|
||||
tdSql.checkData(2, 1, "2022-09-30 15:15:03")
|
||||
tdSql.checkData(2, 2, "2022-09-30 15:15:03")
|
||||
tdSql.checkData(3, 1, "2022-09-30 15:15:04")
|
||||
tdSql.checkData(3, 2, "2022-09-30 15:15:04")
|
||||
|
||||
tdSql.query(f'select tbname, last(ts), last(ts) from tba5 interval(1s)')
|
||||
tdSql.checkData(0, 1, "2022-09-30 15:15:01")
|
||||
tdSql.checkData(0, 2, "2022-09-30 15:15:01")
|
||||
tdSql.checkData(1, 1, "2022-09-30 15:15:02")
|
||||
tdSql.checkData(1, 2, "2022-09-30 15:15:02")
|
||||
tdSql.checkData(2, 1, "2022-09-30 15:15:03")
|
||||
tdSql.checkData(2, 2, "2022-09-30 15:15:03")
|
||||
tdSql.checkData(3, 1, "2022-09-30 15:15:04")
|
||||
tdSql.checkData(3, 2, "2022-09-30 15:15:04")
|
||||
|
||||
# tdSql.query(f'select tbname, cols(last(ts), ts as ts1), cols(last(f1), ts as ts2) from {dbname}.sta group by tbname;')
|
||||
# tdSql.checkRows(5)
|
||||
# tdSql.checkCols(3)
|
||||
# tdSql.checkData(0, 1, "2022-09-30 15:15:04")
|
||||
# tdSql.checkData(0, 2, "2022-09-30 15:15:03")
|
||||
# tdSql.checkData(1, 1, "2022-09-30 15:15:04")
|
||||
# tdSql.checkData(1, 2, "2022-09-30 15:15:03")
|
||||
# tdSql.checkData(2, 1, "2022-09-30 15:15:04")
|
||||
# tdSql.checkData(2, 2, "2022-09-30 15:15:03")
|
||||
# tdSql.checkData(3, 1, "2022-09-30 15:15:04")
|
||||
# tdSql.checkData(3, 2, "2022-09-30 15:15:03")
|
||||
# tdSql.checkData(4, 1, "2022-09-30 15:15:04")
|
||||
# tdSql.checkData(4, 2, "2022-09-30 15:15:03")
|
||||
|
||||
def run(self):
|
||||
self.test1()
|
||||
self.funcNestTest()
|
||||
self.funcSupperTableTest()
|
||||
self.create_test_data()
|
||||
|
|
Loading…
Reference in New Issue