[td-4753]
This commit is contained in:
parent
ed59bedfb5
commit
3358f33f9c
|
@ -123,6 +123,8 @@ int32_t tscGetDataBlockFromList(SHashObj* pHashList, int64_t id, int32_t size, i
|
||||||
*/
|
*/
|
||||||
bool tscIsPointInterpQuery(SQueryInfo* pQueryInfo);
|
bool tscIsPointInterpQuery(SQueryInfo* pQueryInfo);
|
||||||
bool tscIsTWAQuery(SQueryInfo* pQueryInfo);
|
bool tscIsTWAQuery(SQueryInfo* pQueryInfo);
|
||||||
|
bool tscIsIrateQuery(SQueryInfo* pQueryInfo);
|
||||||
|
|
||||||
bool tscIsSessionWindowQuery(SQueryInfo* pQueryInfo);
|
bool tscIsSessionWindowQuery(SQueryInfo* pQueryInfo);
|
||||||
bool tscIsSecondStageQuery(SQueryInfo* pQueryInfo);
|
bool tscIsSecondStageQuery(SQueryInfo* pQueryInfo);
|
||||||
bool tsIsArithmeticQueryOnAggResult(SQueryInfo* pQueryInfo);
|
bool tsIsArithmeticQueryOnAggResult(SQueryInfo* pQueryInfo);
|
||||||
|
|
|
@ -2022,8 +2022,10 @@ int32_t addProjectionExprAndResultField(SSqlCmd* pCmd, SQueryInfo* pQueryInfo, t
|
||||||
|
|
||||||
if (index.columnIndex == TSDB_TBNAME_COLUMN_INDEX) {
|
if (index.columnIndex == TSDB_TBNAME_COLUMN_INDEX) {
|
||||||
SSchema colSchema = *tGetTbnameColumnSchema();
|
SSchema colSchema = *tGetTbnameColumnSchema();
|
||||||
getColumnName(pItem, colSchema.name, colSchema.name, sizeof(colSchema.name) - 1);
|
char name[TSDB_COL_NAME_LEN] = {0};
|
||||||
|
getColumnName(pItem, name, colSchema.name, sizeof(colSchema.name) - 1);
|
||||||
|
|
||||||
|
tstrncpy(colSchema.name, name, TSDB_COL_NAME_LEN);
|
||||||
/*SExprInfo* pExpr = */tscAddFuncInSelectClause(pQueryInfo, startPos, TSDB_FUNC_TAGPRJ, &index, &colSchema, TSDB_COL_TAG, getNewResColId(pCmd));
|
/*SExprInfo* pExpr = */tscAddFuncInSelectClause(pQueryInfo, startPos, TSDB_FUNC_TAGPRJ, &index, &colSchema, TSDB_COL_TAG, getNewResColId(pCmd));
|
||||||
} else {
|
} else {
|
||||||
STableMetaInfo* pTableMetaInfo = tscGetMetaInfo(pQueryInfo, index.tableIndex);
|
STableMetaInfo* pTableMetaInfo = tscGetMetaInfo(pQueryInfo, index.tableIndex);
|
||||||
|
@ -3062,8 +3064,8 @@ void tscRestoreFuncForSTableQuery(SQueryInfo* pQueryInfo) {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool hasUnsupportFunctionsForSTableQuery(SSqlCmd* pCmd, SQueryInfo* pQueryInfo) {
|
bool hasUnsupportFunctionsForSTableQuery(SSqlCmd* pCmd, SQueryInfo* pQueryInfo) {
|
||||||
const char* msg1 = "TWA/Diff not allowed to apply to super table directly";
|
const char* msg1 = "TWA/Diff/Derivative/Irate not allowed to apply to super table directly";
|
||||||
const char* msg2 = "TWA/Diff only support group by tbname for super table query";
|
const char* msg2 = "TWA/Diff/Derivative/Irate only support group by tbname for super table query";
|
||||||
const char* msg3 = "function not support for super table query";
|
const char* msg3 = "function not support for super table query";
|
||||||
|
|
||||||
// filter sql function not supported by metric query yet.
|
// filter sql function not supported by metric query yet.
|
||||||
|
@ -3076,7 +3078,7 @@ bool hasUnsupportFunctionsForSTableQuery(SSqlCmd* pCmd, SQueryInfo* pQueryInfo)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tscIsTWAQuery(pQueryInfo) || tscIsDiffDerivQuery(pQueryInfo)) {
|
if (tscIsTWAQuery(pQueryInfo) || tscIsDiffDerivQuery(pQueryInfo) || tscIsIrateQuery(pQueryInfo)) {
|
||||||
if (pQueryInfo->groupbyExpr.numOfGroupCols == 0) {
|
if (pQueryInfo->groupbyExpr.numOfGroupCols == 0) {
|
||||||
invalidOperationMsg(tscGetErrorMsgPayload(pCmd), msg1);
|
invalidOperationMsg(tscGetErrorMsgPayload(pCmd), msg1);
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -460,6 +460,22 @@ bool tscIsTWAQuery(SQueryInfo* pQueryInfo) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool tscIsIrateQuery(SQueryInfo* pQueryInfo) {
|
||||||
|
size_t numOfExprs = tscNumOfExprs(pQueryInfo);
|
||||||
|
for (int32_t i = 0; i < numOfExprs; ++i) {
|
||||||
|
SExprInfo* pExpr = tscExprGet(pQueryInfo, i);
|
||||||
|
if (pExpr == NULL) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pExpr->base.functionId == TSDB_FUNC_IRATE) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
bool tscIsSessionWindowQuery(SQueryInfo* pQueryInfo) {
|
bool tscIsSessionWindowQuery(SQueryInfo* pQueryInfo) {
|
||||||
return pQueryInfo->sessionWindow.gap > 0;
|
return pQueryInfo->sessionWindow.gap > 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -817,6 +817,9 @@ print ====================> TODO stddev + normal column filter
|
||||||
|
|
||||||
|
|
||||||
print ====================> irate
|
print ====================> irate
|
||||||
|
sql_error select irate(f1) from st1;
|
||||||
|
sql select irate(f1) from st1 group by tbname;
|
||||||
|
|
||||||
sql select irate(k) from t1
|
sql select irate(k) from t1
|
||||||
if $rows != 1 then
|
if $rows != 1 then
|
||||||
return -1
|
return -1
|
||||||
|
|
Loading…
Reference in New Issue