Fix TD-27939: error for sub query is empty when where 1=2
This commit is contained in:
parent
32f20308c7
commit
e79516ade3
|
@ -334,6 +334,13 @@ static int32_t calcConstSelectWithoutFrom(SCalcConstContext* pCxt, SSelectStmt*
|
|||
|
||||
static int32_t calcConstSelectFrom(SCalcConstContext* pCxt, SSelectStmt* pSelect, bool subquery) {
|
||||
int32_t code = calcConstFromTable(pCxt, pSelect->pFromTable);
|
||||
if (TSDB_CODE_SUCCESS == code && QUERY_NODE_TEMP_TABLE == nodeType(pSelect->pFromTable) &&
|
||||
((STempTableNode*)pSelect->pFromTable)->pSubquery != NULL &&
|
||||
QUERY_NODE_SELECT_STMT == nodeType(((STempTableNode*)pSelect->pFromTable)->pSubquery) &&
|
||||
((SSelectStmt*)((STempTableNode*)pSelect->pFromTable)->pSubquery)->isEmptyResult){
|
||||
pSelect->isEmptyResult = true;
|
||||
return code;
|
||||
}
|
||||
if (TSDB_CODE_SUCCESS == code) {
|
||||
code = calcConstProjections(pCxt, pSelect, subquery);
|
||||
}
|
||||
|
|
|
@ -401,7 +401,29 @@ class TDTestCase:
|
|||
tdSql.execute(sql)
|
||||
sql = "select * from %s.`12345` order by `567` desc limit 2;"%(database)
|
||||
tdSql.error(sql)
|
||||
|
||||
|
||||
def td_27939(self,database):
|
||||
sql = "create table %s.`test1eq2` (`ts` timestamp, id int);"%(database)
|
||||
tdSql.execute(sql)
|
||||
|
||||
sql = "insert into %s.test1eq2 values (now,1);"%(database)
|
||||
tdSql.execute(sql)
|
||||
|
||||
sql = "insert into %s.`test1eq2` values (now,2);"%(database)
|
||||
tdSql.execute(sql)
|
||||
|
||||
sql = "select * from %s.`test1eq2` where 1=2;"%(database)
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(0)
|
||||
|
||||
sql = "select * from (select * from %s.`test1eq2` where 1=2);"%(database)
|
||||
tdSql.query(sql)
|
||||
tdSql.checkRows(0)
|
||||
|
||||
sql = "drop table %s.`test1eq2` ;"%(database)
|
||||
tdSql.execute(sql)
|
||||
|
||||
|
||||
def run(self):
|
||||
startTime = time.time()
|
||||
|
||||
|
@ -418,6 +440,8 @@ class TDTestCase:
|
|||
self.ts_3110("%s" %self.db)
|
||||
self.ts_23505("%s" %self.db)
|
||||
self.ts_3036("%s" %self.db)
|
||||
|
||||
self.td_27939("%s" %self.db)
|
||||
|
||||
tdSql.query("flush database %s" %self.db)
|
||||
|
||||
|
@ -430,8 +454,9 @@ class TDTestCase:
|
|||
self.ts_3110("%s" %self.db)
|
||||
self.ts_23505("%s" %self.db)
|
||||
self.ts_3036("%s" %self.db)
|
||||
|
||||
|
||||
|
||||
self.td_27939("%s" %self.db)
|
||||
|
||||
self.test_select_as_chinese_characters();
|
||||
endTime = time.time()
|
||||
print("total time %ds" % (endTime - startTime))
|
||||
|
|
Loading…
Reference in New Issue