fix functionNode ref
This commit is contained in:
parent
25f9956ccb
commit
6115d7a67f
|
@ -4523,10 +4523,11 @@ static EDealRes replaceOrderByAliasImpl(SNode** pNode, void* pContext) {
|
||||||
SReplaceOrderByAliasCxt* pCxt = pContext;
|
SReplaceOrderByAliasCxt* pCxt = pContext;
|
||||||
SNodeList* pProjectionList = pCxt->pProjectionList;
|
SNodeList* pProjectionList = pCxt->pProjectionList;
|
||||||
SNode* pProject = NULL;
|
SNode* pProject = NULL;
|
||||||
if (QUERY_NODE_COLUMN == nodeType(*pNode)) {
|
if (QUERY_NODE_COLUMN == nodeType(*pNode) || QUERY_NODE_FUNCTION == nodeType(*pNode)) {
|
||||||
FOREACH(pProject, pProjectionList) {
|
FOREACH(pProject, pProjectionList) {
|
||||||
SExprNode* pExpr = (SExprNode*)pProject;
|
SExprNode* pExpr = (SExprNode*)pProject;
|
||||||
if (0 == strcmp(((SColumnRefNode*)*pNode)->colName, pExpr->userAlias)) {
|
if (0 == strcmp(((SColumnRefNode*)*pNode)->colName, pExpr->userAlias)
|
||||||
|
&& nodeType(*pNode) == nodeType(pProject)) {
|
||||||
SNode* pNew = nodesCloneNode(pProject);
|
SNode* pNew = nodesCloneNode(pProject);
|
||||||
if (NULL == pNew) {
|
if (NULL == pNew) {
|
||||||
pCxt->pTranslateCxt->errCode = TSDB_CODE_OUT_OF_MEMORY;
|
pCxt->pTranslateCxt->errCode = TSDB_CODE_OUT_OF_MEMORY;
|
||||||
|
|
|
@ -417,13 +417,13 @@ TEST_F(ParserSelectTest, semanticCheck) {
|
||||||
|
|
||||||
run("SELECT COUNT(*) FROM t1 order by last(c2)");
|
run("SELECT COUNT(*) FROM t1 order by last(c2)");
|
||||||
|
|
||||||
run("SELECT c1 FROM t1 order by last(ts)", TSDB_CODE_PAR_NOT_SINGLE_GROUP);
|
run("SELECT c1 FROM t1 order by last(ts)");
|
||||||
|
|
||||||
run("SELECT ts FROM t1 order by last(ts)", TSDB_CODE_PAR_NOT_SINGLE_GROUP);
|
run("SELECT ts FROM t1 order by last(ts)");
|
||||||
|
|
||||||
run("SELECT c2 FROM t1 order by last(ts)", TSDB_CODE_PAR_NOT_SINGLE_GROUP);
|
run("SELECT c2 FROM t1 order by last(ts)");
|
||||||
|
|
||||||
run("SELECT * FROM t1 order by last(ts)", TSDB_CODE_PAR_NOT_SINGLE_GROUP);
|
run("SELECT * FROM t1 order by last(ts)");
|
||||||
|
|
||||||
run("SELECT last(ts) FROM t1 order by last(ts)");
|
run("SELECT last(ts) FROM t1 order by last(ts)");
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue