fxi: alias name is too long
This commit is contained in:
parent
9a34af9e95
commit
908d69faa3
|
@ -55,8 +55,8 @@ typedef struct SDataType {
|
|||
typedef struct SExprNode {
|
||||
ENodeType type;
|
||||
SDataType resType;
|
||||
char aliasName[TSDB_COL_NAME_LEN + TSDB_COL_NAME_EXLEN];
|
||||
char userAlias[TSDB_COL_NAME_LEN + TSDB_COL_NAME_EXLEN];
|
||||
char aliasName[TSDB_COL_NAME_LEN];
|
||||
char userAlias[TSDB_COL_NAME_LEN];
|
||||
SArray* pAssociation;
|
||||
bool asAlias;
|
||||
bool asParam;
|
||||
|
|
|
@ -7342,7 +7342,13 @@ 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);
|
||||
if (len + TSDB_COL_NAME_EXLEN >= TSDB_COL_NAME_LEN) {
|
||||
parserWarn("The alias name is too long, the extra part will be truncated");
|
||||
tsnprintf(((SExprNode*)*pNode)->aliasName + TSDB_COL_NAME_EXLEN - TSDB_COL_NAME_EXLEN, TSDB_COL_NAME_EXLEN, ".%d",
|
||||
pCxt->bindTupleFuncIdx);
|
||||
} else {
|
||||
tsnprintf(((SExprNode*)*pNode)->aliasName + len, TSDB_COL_NAME_EXLEN, ".%d", pCxt->bindTupleFuncIdx);
|
||||
}
|
||||
SFunctionNode* pFunc = (SFunctionNode*)*pNode;
|
||||
}
|
||||
return DEAL_RES_CONTINUE;
|
||||
|
@ -7450,7 +7456,7 @@ static EDealRes rewriteSingleColsFunc(SNode** pNode, void* pContext) {
|
|||
return DEAL_RES_ERROR;
|
||||
} else {
|
||||
((SExprNode*)pExpr)->asAlias = true;
|
||||
tstrncpy(((SExprNode*)pExpr)->userAlias, pFunc->node.userAlias, TSDB_COL_NAME_LEN + TSDB_COL_NAME_EXLEN);
|
||||
tstrncpy(((SExprNode*)pExpr)->userAlias, pFunc->node.userAlias, TSDB_COL_NAME_LEN);
|
||||
}
|
||||
}
|
||||
if(*pCxt->selectFuncList == NULL) {
|
||||
|
|
|
@ -180,6 +180,11 @@ class TDTestCase:
|
|||
tdSql.checkCols(2)
|
||||
tdSql.checkData(0, 0, 1734574929004)
|
||||
tdSql.checkData(0, 1, 4)
|
||||
tdSql.query(f'select cols(last(ts), ts as t123456789t123456789t123456789t123456789t123456789t123456789t123456789, c0 cc) from {from_table}')
|
||||
tdSql.checkRows(1)
|
||||
tdSql.checkCols(2)
|
||||
tdSql.checkData(0, 0, 1734574929004)
|
||||
tdSql.checkData(0, 1, 4)
|
||||
tdSql.query(f'select cols(last(ts), c0, c1, c2, c3) from {from_table}')
|
||||
tdSql.checkRows(1)
|
||||
tdSql.checkCols(4)
|
||||
|
@ -362,6 +367,24 @@ class TDTestCase:
|
|||
tdSql.checkData(0, 2, 1734574929000)
|
||||
tdSql.checkData(0, 3, 1)
|
||||
tdSql.checkData(0, 4, 5)
|
||||
tdSql.query(f'select cols(max(c0), ts as t123456789t123456789t123456789t123456789t123456789t123456789t123456789, c1 as c11), cols(first(c0), \
|
||||
ts as t123456789t123456789t123456789t123456789t123456789t123456789t123456789, c1 c21), count(1) from {self.dbname}.meters')
|
||||
tdSql.checkRows(1)
|
||||
tdSql.checkCols(5)
|
||||
tdSql.checkData(0, 0, 1734574929004)
|
||||
tdSql.checkData(0, 1, 4)
|
||||
tdSql.checkData(0, 2, 1734574929000)
|
||||
tdSql.checkData(0, 3, 1)
|
||||
tdSql.checkData(0, 4, 6)
|
||||
tdSql.query(f'select cols(max(c0), ts as t123456789t123456789t123456789t123456789t123456789t123456789t123456789, c1 as c11), cols(first(c0), \
|
||||
ts as t123456789t123456789t123456789t123456789t123456789t123456789t123456789, c1 c21), count(1) from {self.dbname}.meters where c0 < 4')
|
||||
tdSql.checkRows(1)
|
||||
tdSql.checkCols(5)
|
||||
tdSql.checkData(0, 0, 1734574929003)
|
||||
tdSql.checkData(0, 1, 3)
|
||||
tdSql.checkData(0, 2, 1734574929000)
|
||||
tdSql.checkData(0, 3, 1)
|
||||
tdSql.checkData(0, 4, 5)
|
||||
tdSql.query(f'select cols(max(c0), ts as t1, c1 as c11), cols(first(c0), ts as t2, c1 c21), count(1) from test.meters where c0 < 4 group by tbname order by t1')
|
||||
tdSql.checkRows(2)
|
||||
tdSql.checkCols(5)
|
||||
|
|
Loading…
Reference in New Issue