mirror of
https://github.com/prometheus/prometheus.git
synced 2024-11-09 23:24:05 -08:00
Merge pull request #14908 from roidelapluie/fix14889
Explain, vector-to-vector: Do not compute results for set operators
This commit is contained in:
commit
d67ba3ed30
|
@ -8,7 +8,7 @@ import {
|
||||||
vectorMatchCardinality,
|
vectorMatchCardinality,
|
||||||
VectorMatching,
|
VectorMatching,
|
||||||
} from "./ast";
|
} from "./ast";
|
||||||
import { isComparisonOperator } from "./utils";
|
import { isComparisonOperator, isSetOperator } from "./utils";
|
||||||
|
|
||||||
// We use a special (otherwise invalid) sample value to indicate that
|
// We use a special (otherwise invalid) sample value to indicate that
|
||||||
// a sample has been filtered away by a comparison operator.
|
// a sample has been filtered away by a comparison operator.
|
||||||
|
@ -340,6 +340,11 @@ export const computeVectorVectorBinOp = (
|
||||||
|
|
||||||
// Annotate the match groups with errors (if any) and populate the results.
|
// Annotate the match groups with errors (if any) and populate the results.
|
||||||
Object.values(groups).forEach((mg) => {
|
Object.values(groups).forEach((mg) => {
|
||||||
|
// Do not populate results for set operators.
|
||||||
|
if (isSetOperator(op)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (matching.card === vectorMatchCardinality.oneToOne) {
|
if (matching.card === vectorMatchCardinality.oneToOne) {
|
||||||
if (mg.lhs.length > 1 && mg.rhs.length > 1) {
|
if (mg.lhs.length > 1 && mg.rhs.length > 1) {
|
||||||
mg.error = { type: MatchErrorType.multipleMatchesOnBothSides };
|
mg.error = { type: MatchErrorType.multipleMatchesOnBothSides };
|
||||||
|
|
Loading…
Reference in a new issue