diff --git a/src/query/src/qAggMain.c b/src/query/src/qAggMain.c index 676e5b6ce63648b2f8182baed756cf0f90039a44..80285f498b0e551e6b784736f6a6131e7f0244c5 100644 --- a/src/query/src/qAggMain.c +++ b/src/query/src/qAggMain.c @@ -1575,7 +1575,7 @@ static void last_function(SQLFunctionCtx *pCtx) { memcpy(pCtx->pOutput, data, pCtx->inputBytes); - TSKEY ts = GET_TS_DATA(pCtx, i); + TSKEY ts = pCtx->ptsList ? GET_TS_DATA(pCtx, i) : 0; DO_UPDATE_TAG_COLUMNS(pCtx, ts); pResInfo->hasResult = DATA_SET_FLAG; @@ -1590,7 +1590,7 @@ static void last_function(SQLFunctionCtx *pCtx) { continue; } - TSKEY ts = GET_TS_DATA(pCtx, i); + TSKEY ts = pCtx->ptsList ? GET_TS_DATA(pCtx, i) : 0; char* buf = GET_ROWCELL_INTERBUF(pResInfo); if (pResInfo->hasResult != DATA_SET_FLAG || (*(TSKEY*)buf) < ts) { diff --git a/tests/script/general/parser/lastrow.sim b/tests/script/general/parser/lastrow.sim index fea322ec16b0d67af41b2a727cffa409cef8b37a..7cdd04e2ccdb93c7e1f84298101d74e7c3af061f 100644 --- a/tests/script/general/parser/lastrow.sim +++ b/tests/script/general/parser/lastrow.sim @@ -82,5 +82,9 @@ endi if $data01 != NULL then return -1 endi +sql select last_row(*) from (select f from lr_nested) +if $rows != 1 then + return -1 +endi system sh/exec.sh -n dnode1 -s stop -x SIGINT