diff --git a/velox/functions/prestosql/tests/TransformKeysTest.cpp b/velox/functions/prestosql/tests/TransformKeysTest.cpp index b37b9f792ca1..1fda68b55bf2 100644 --- a/velox/functions/prestosql/tests/TransformKeysTest.cpp +++ b/velox/functions/prestosql/tests/TransformKeysTest.cpp @@ -69,19 +69,33 @@ TEST_F(TransformKeysTest, evaluateSubsetOfRows) { nullEvery(13)), }); - SelectivityVector inputRows(size, false); - inputRows.setValidRange(0, size / 3, true); - inputRows.updateBounds(); + // Test using 2 selectivity vectors. One of size 100 with 33 first rows + // selected. Another of size 33 with all rows selected. Both should produce + // the same result. - auto result = evaluate( - "transform_keys(c0, (k, v) -> k + 5)", input, inputRows); auto expectedResult = makeMapVector( size / 3, [](auto row) { return row % 5; }, [](auto row) { return row % 7 + 5; }, [](auto row) { return row % 11; }, nullEvery(13)); - assertEqualVectors(expectedResult, result, inputRows); + + { + SelectivityVector inputRows(size, false); + inputRows.setValidRange(0, size / 3, true); + inputRows.updateBounds(); + + auto result = evaluate( + "transform_keys(c0, (k, v) -> k + 5)", input, inputRows); + assertEqualVectors(expectedResult, result, inputRows); + } + + { + SelectivityVector inputRows(size / 3); + auto result = evaluate( + "transform_keys(c0, (k, v) -> k + 5)", input, inputRows); + assertEqualVectors(expectedResult, result, inputRows); + } } TEST_F(TransformKeysTest, duplicateKeys) { diff --git a/velox/functions/prestosql/tests/TransformTest.cpp b/velox/functions/prestosql/tests/TransformTest.cpp index d48e99746521..01b470d4fc46 100644 --- a/velox/functions/prestosql/tests/TransformTest.cpp +++ b/velox/functions/prestosql/tests/TransformTest.cpp @@ -45,19 +45,32 @@ TEST_F(TransformTest, evaluateSubsetOfRows) { auto input = makeRowVector( {makeArrayVector(size, modN(5), modN(7), nullEvery(11))}); - SelectivityVector inputRows(size, false); - inputRows.setValidRange(0, size / 3, true); - inputRows.updateBounds(); - - auto result = - evaluate("transform(c0, x -> x + 5)", input, inputRows); + // Test using 2 selectivity vectors. One of size 100 with 33 first rows + // selected. Another of size 33 with all rows selected. Both should produce + // the same result. auto expectedResult = makeArrayVector( size / 3, modN(5), [](vector_size_t row) { return row % 7 + 5; }, nullEvery(11)); - assertEqualVectors(expectedResult, result, inputRows); + { + SelectivityVector inputRows(size, false); + inputRows.setValidRange(0, size / 3, true); + inputRows.updateBounds(); + + auto result = + evaluate("transform(c0, x -> x + 5)", input, inputRows); + assertEqualVectors(expectedResult, result, inputRows); + } + + { + SelectivityVector inputRows(size / 3); + + auto result = + evaluate("transform(c0, x -> x + 5)", input, inputRows); + assertEqualVectors(expectedResult, result, inputRows); + } } TEST_F(TransformTest, differentResultType) { diff --git a/velox/functions/prestosql/tests/TransformValuesTest.cpp b/velox/functions/prestosql/tests/TransformValuesTest.cpp index 9347725b2bc6..b851a5935df7 100644 --- a/velox/functions/prestosql/tests/TransformValuesTest.cpp +++ b/velox/functions/prestosql/tests/TransformValuesTest.cpp @@ -69,19 +69,33 @@ TEST_F(TransformValuesTest, evaluateSubsetOfRows) { nullEvery(13)), }); - SelectivityVector inputRows(size, false); - inputRows.setValidRange(0, size / 3, true); - inputRows.updateBounds(); - - auto result = evaluate( - "transform_values(c0, (k, v) -> v + 5)", input, inputRows); + // Test using 2 selectivity vectors. One of size 100 with 33 first rows + // selected. Another of size 33 with all rows selected. Both should produce + // the same result. auto expectedResult = makeMapVector( size / 3, [](auto row) { return row % 5; }, [](auto row) { return row % 7; }, [](auto row) { return row % 11 + 5; }, nullEvery(13)); - assertEqualVectors(expectedResult, result, inputRows); + + { + SelectivityVector inputRows(size, false); + inputRows.setValidRange(0, size / 3, true); + inputRows.updateBounds(); + + auto result = evaluate( + "transform_values(c0, (k, v) -> v + 5)", input, inputRows); + assertEqualVectors(expectedResult, result, inputRows); + } + + { + SelectivityVector inputRows(size / 3); + + auto result = evaluate( + "transform_values(c0, (k, v) -> v + 5)", input, inputRows); + assertEqualVectors(expectedResult, result, inputRows); + } } TEST_F(TransformValuesTest, differentResultType) {