diff --git a/velox/functions/lib/MapConcat.cpp b/velox/functions/lib/MapConcat.cpp index 81c415f693c3..aac38fbc9315 100644 --- a/velox/functions/lib/MapConcat.cpp +++ b/velox/functions/lib/MapConcat.cpp @@ -157,7 +157,7 @@ class MapConcatFunction : public exec::VectorFunction { static std::vector> signatures() { // map(K,V), map(K,V), ... -> map(K,V) return {exec::FunctionSignatureBuilder() - .knownTypeVariable("K") + .typeVariable("K") .typeVariable("V") .returnType("map(K,V)") .argumentType("map(K,V)") diff --git a/velox/functions/lib/tests/MapConcatTest.cpp b/velox/functions/lib/tests/MapConcatTest.cpp index 9a46d90b5c94..c269391e1252 100644 --- a/velox/functions/lib/tests/MapConcatTest.cpp +++ b/velox/functions/lib/tests/MapConcatTest.cpp @@ -283,3 +283,14 @@ TEST_F(MapConcatTest, nullEntry) { ASSERT_EQ(result->size(), 1); EXPECT_EQ(result->sizeAt(0), 0); } + +TEST_F(MapConcatTest, unknownType) { + // MAP_CONCAT(MAP[], MAP[]) + auto emptyMapVector = + VectorTestBase::makeMapVector({{}}); + auto expectedMap = + VectorTestBase::makeMapVector({{}}); + auto result = evaluate( + "map_concat(c0, c1)", makeRowVector({emptyMapVector, emptyMapVector})); + facebook::velox::test::assertEqualVectors(expectedMap, result); +}