Explain, vector-to-vector: Do not compute results for set operators

Set operators are not displayed:
31ce9dacf4/web/ui/mantine-ui/src/pages/query/ExplainViews/BinaryExpr/VectorVector.tsx (L364)

Therefore, do not compute results for them.

Fixes #14889

Signed-off-by: Julien <roidelapluie@o11y.eu>
This commit is contained in:
Julien 2024-09-16 11:38:35 +02:00
parent 31ce9dacf4
commit ac01dc9035

View file

@ -8,7 +8,7 @@ import {
vectorMatchCardinality,
VectorMatching,
} from "./ast";
import { isComparisonOperator } from "./utils";
import { isComparisonOperator, isSetOperator } from "./utils";
// We use a special (otherwise invalid) sample value to indicate that
// 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.
Object.values(groups).forEach((mg) => {
// Do not populate results for set operators.
if (isSetOperator(op)) {
return;
}
if (matching.card === vectorMatchCardinality.oneToOne) {
if (mg.lhs.length > 1 && mg.rhs.length > 1) {
mg.error = { type: MatchErrorType.multipleMatchesOnBothSides };