in oap-server/mqe-rt/src/main/java/org/apache/skywalking/mqe/rt/operation/LROp.java [38:58]
static ExpressionResult doLROp(ExpressionResult left,
ExpressionResult right,
int opType, LROp calculate) throws IllegalExpressionException {
if (left.getType() == ExpressionResultType.SINGLE_VALUE && right.getType() == ExpressionResultType.SINGLE_VALUE) {
return single2SingleBinaryOp(left, right, opType, calculate);
} else if ((left.getType() == ExpressionResultType.TIME_SERIES_VALUES ||
left.getType() == ExpressionResultType.SORTED_LIST ||
left.getType() == ExpressionResultType.RECORD_LIST)
&& right.getType() == ExpressionResultType.SINGLE_VALUE) {
return many2OneBinaryOp(left, right, opType, calculate);
} else if (left.getType() == ExpressionResultType.SINGLE_VALUE &&
(right.getType() == ExpressionResultType.TIME_SERIES_VALUES ||
right.getType() == ExpressionResultType.SORTED_LIST ||
right.getType() == ExpressionResultType.RECORD_LIST)) {
return one2ManyBinaryOp(left, right, opType, calculate);
} else if (left.getType() == ExpressionResultType.TIME_SERIES_VALUES && right.getType() == ExpressionResultType.TIME_SERIES_VALUES) {
return seriesBinaryOp(left, right, opType, calculate);
}
throw new IllegalExpressionException("Unsupported operation.");
}