fix: bindTupleFuncindex
This commit is contained in:
parent
504a8af0cd
commit
c371fb200d
|
@ -271,7 +271,7 @@ typedef enum ELogicConditionType {
|
|||
#define TSDB_SUBSCRIBE_KEY_LEN (TSDB_CGROUP_LEN + TSDB_TOPIC_FNAME_LEN + 2)
|
||||
#define TSDB_PARTITION_KEY_LEN (TSDB_SUBSCRIBE_KEY_LEN + 20)
|
||||
#define TSDB_COL_NAME_LEN 65
|
||||
#define TSDB_COL_NAME_EXLEN 2
|
||||
#define TSDB_COL_NAME_EXLEN 4
|
||||
#define TSDB_COL_FNAME_LEN (TSDB_TABLE_NAME_LEN + TSDB_COL_NAME_LEN + TSDB_NAME_DELIMITER_LEN)
|
||||
#define TSDB_MAX_SAVED_SQL_LEN TSDB_MAX_COLUMNS * 64
|
||||
#define TSDB_MAX_SQL_LEN TSDB_PAYLOAD_SIZE
|
||||
|
|
|
@ -7378,7 +7378,7 @@ static EDealRes pushDownBindSelectFunc(SNode** pNode, void* pContext) {
|
|||
if (nodesIsExprNode(*pNode)) {
|
||||
((SExprNode*)*pNode)->bindTupleFuncIdx = pCxt->bindTupleFuncIdx;
|
||||
int32_t len = strlen(((SExprNode*)*pNode)->aliasName);
|
||||
tsnprintf(((SExprNode*)*pNode)->aliasName + len, TSDB_COL_NAME_EXLEN, "%d", pCxt->bindTupleFuncIdx);
|
||||
tsnprintf(((SExprNode*)*pNode)->aliasName + len, TSDB_COL_NAME_EXLEN, ".%d", pCxt->bindTupleFuncIdx);
|
||||
SFunctionNode* pFunc = (SFunctionNode*)*pNode;
|
||||
}
|
||||
return DEAL_RES_CONTINUE;
|
||||
|
|
|
@ -123,6 +123,8 @@ static EDealRes doRewriteExpr(SNode** pNode, void* pContext) {
|
|||
tstrncpy(pCol->node.userAlias, ((SExprNode*)pExpr)->userAlias, TSDB_COL_NAME_LEN);
|
||||
tstrncpy(pCol->colName, ((SExprNode*)pExpr)->aliasName, TSDB_COL_NAME_LEN);
|
||||
pCol->node.projIdx = ((SExprNode*)(*pNode))->projIdx;
|
||||
pCol->node.bindTupleFuncIdx = ((SExprNode*)(*pNode))->bindTupleFuncIdx;
|
||||
pCol->node.tupleFuncIdx = ((SExprNode*)(*pNode))->tupleFuncIdx;
|
||||
if (QUERY_NODE_FUNCTION == nodeType(pExpr)) {
|
||||
setColumnInfo((SFunctionNode*)pExpr, pCol, pCxt->isPartitionBy);
|
||||
}
|
||||
|
|
|
@ -134,14 +134,36 @@ class TDTestCase:
|
|||
tdSql.checkRows(1)
|
||||
#tdSql.checkCols(6)
|
||||
tdSql.checkData(0, 0, 1734574929000)
|
||||
tdSql.checkData(0, 1, 1)
|
||||
tdSql.query(f'select cols(first(c0), ts, length(c2)), cols(last(c0), ts, length(c2)) from db.d1')
|
||||
tdSql.checkData(0, 1, 4)
|
||||
tdSql.checkData(0, 2, 1734574930000)
|
||||
tdSql.checkData(0, 3, 36)
|
||||
tdSql.query(f'select cols(first(c0), ts, length(c2)), cols(last(c0), ts, length(c2) + 2) from db.d1')
|
||||
tdSql.checkRows(1)
|
||||
tdSql.checkData(0, 0, 1734574929000)
|
||||
tdSql.checkData(0, 1, 1)
|
||||
tdSql.checkData(0, 2, 1734574929000)
|
||||
tdSql.checkData(0, 3, 1)
|
||||
tdSql.checkData(0, 1, 4)
|
||||
tdSql.checkData(0, 2, 1734574930000)
|
||||
tdSql.checkData(0, 3, 38)
|
||||
|
||||
tdSql.query(f'select cols(first(c0), ts, c2), cols(last(c0), ts, length(c2) + 2) from db.d1')
|
||||
tdSql.checkRows(1)
|
||||
tdSql.checkData(0, 0, 1734574929000)
|
||||
tdSql.checkData(0, 1, 'a')
|
||||
tdSql.checkData(0, 2, 1734574930000)
|
||||
tdSql.checkData(0, 3, 38)
|
||||
|
||||
tdSql.query(f'select cols(min(c0), ts, c2), cols(last(c0), ts, length(c2) + 2) from db.d1')
|
||||
tdSql.checkRows(1)
|
||||
tdSql.checkData(0, 0, 1734574929000)
|
||||
tdSql.checkData(0, 1, 'a')
|
||||
tdSql.checkData(0, 2, 1734574930000)
|
||||
tdSql.checkData(0, 3, 38)
|
||||
|
||||
tdSql.query(f'select cols(min(c0), ts, c2), cols(first(c0), ts, length(c2) + 2) from db.d1')
|
||||
tdSql.checkRows(1)
|
||||
tdSql.checkData(0, 0, 1734574929000)
|
||||
tdSql.checkData(0, 1, 'a')
|
||||
tdSql.checkData(0, 2, 1734574929000)
|
||||
tdSql.checkData(0, 3, 6)
|
||||
|
||||
|
||||
def parse_test(self):
|
||||
|
|
Loading…
Reference in New Issue