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 {
|
typedef struct SExprNode {
|
||||||
ENodeType type;
|
ENodeType type;
|
||||||
SDataType resType;
|
SDataType resType;
|
||||||
char aliasName[TSDB_COL_NAME_LEN + TSDB_COL_NAME_EXLEN];
|
char aliasName[TSDB_COL_NAME_LEN];
|
||||||
char userAlias[TSDB_COL_NAME_LEN + TSDB_COL_NAME_EXLEN];
|
char userAlias[TSDB_COL_NAME_LEN];
|
||||||
SArray* pAssociation;
|
SArray* pAssociation;
|
||||||
bool asAlias;
|
bool asAlias;
|
||||||
bool asParam;
|
bool asParam;
|
||||||
|
|
|
@ -7342,7 +7342,13 @@ static EDealRes pushDownBindSelectFunc(SNode** pNode, void* pContext) {
|
||||||
if (nodesIsExprNode(*pNode)) {
|
if (nodesIsExprNode(*pNode)) {
|
||||||
((SExprNode*)*pNode)->bindTupleFuncIdx = pCxt->bindTupleFuncIdx;
|
((SExprNode*)*pNode)->bindTupleFuncIdx = pCxt->bindTupleFuncIdx;
|
||||||
int32_t len = strlen(((SExprNode*)*pNode)->aliasName);
|
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;
|
SFunctionNode* pFunc = (SFunctionNode*)*pNode;
|
||||||
}
|
}
|
||||||
return DEAL_RES_CONTINUE;
|
return DEAL_RES_CONTINUE;
|
||||||
|
@ -7450,7 +7456,7 @@ static EDealRes rewriteSingleColsFunc(SNode** pNode, void* pContext) {
|
||||||
return DEAL_RES_ERROR;
|
return DEAL_RES_ERROR;
|
||||||
} else {
|
} else {
|
||||||
((SExprNode*)pExpr)->asAlias = true;
|
((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) {
|
if(*pCxt->selectFuncList == NULL) {
|
||||||
|
|
|
@ -180,6 +180,11 @@ class TDTestCase:
|
||||||
tdSql.checkCols(2)
|
tdSql.checkCols(2)
|
||||||
tdSql.checkData(0, 0, 1734574929004)
|
tdSql.checkData(0, 0, 1734574929004)
|
||||||
tdSql.checkData(0, 1, 4)
|
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.query(f'select cols(last(ts), c0, c1, c2, c3) from {from_table}')
|
||||||
tdSql.checkRows(1)
|
tdSql.checkRows(1)
|
||||||
tdSql.checkCols(4)
|
tdSql.checkCols(4)
|
||||||
|
@ -362,6 +367,24 @@ class TDTestCase:
|
||||||
tdSql.checkData(0, 2, 1734574929000)
|
tdSql.checkData(0, 2, 1734574929000)
|
||||||
tdSql.checkData(0, 3, 1)
|
tdSql.checkData(0, 3, 1)
|
||||||
tdSql.checkData(0, 4, 5)
|
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.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.checkRows(2)
|
||||||
tdSql.checkCols(5)
|
tdSql.checkCols(5)
|
||||||
|
|
Loading…
Reference in New Issue