From cc161b4eb7c5d4fd93273973b5e3a7d36bbeab42 Mon Sep 17 00:00:00 2001 From: Yenda Li Date: Thu, 6 Feb 2025 13:35:47 -0800 Subject: [PATCH] fix: IPPrefix serialization with null case Summary: We need let `serializeWrapped` handle dealing with nulls for ipprefix. It will deal with the dictionary with `wrappedVectorShared`. Differential Revision: D69266615 --- velox/serializers/PrestoSerializerSerializationUtils.cpp | 3 --- velox/serializers/tests/PrestoSerializerTest.cpp | 8 ++++++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/velox/serializers/PrestoSerializerSerializationUtils.cpp b/velox/serializers/PrestoSerializerSerializationUtils.cpp index bddb6e7ac7d6..7745dc72338d 100644 --- a/velox/serializers/PrestoSerializerSerializationUtils.cpp +++ b/velox/serializers/PrestoSerializerSerializationUtils.cpp @@ -810,9 +810,6 @@ void serializeWrapped( simd::transpose(indices, rows, innerRows); numInner = numRows; } else { - if (isIPPrefixType(vector->type())) { - return serializeIPPrefix(vector, rows, stream); - } wrapped = &BaseVector::wrappedVectorShared(vector); for (int32_t i = 0; i < rows.size(); ++i) { if (mayHaveNulls && vector->isNullAt(rows[i])) { diff --git a/velox/serializers/tests/PrestoSerializerTest.cpp b/velox/serializers/tests/PrestoSerializerTest.cpp index 230f9f2d2722..d4c98b1a83f5 100644 --- a/velox/serializers/tests/PrestoSerializerTest.cpp +++ b/velox/serializers/tests/PrestoSerializerTest.cpp @@ -1207,9 +1207,13 @@ TEST_P(PrestoSerializerTest, ipprefix) { // Test that if the vector is wrapped, we can still properly // deserialize the ipprefix type - auto oneIndex = makeIndices(100, [](auto) { return 0; }); + auto oneIndex = makeIndices(100, [](auto row) { return row; }); auto wrappedVector = makeRowVector({ - BaseVector::wrapInDictionary(nullptr, oneIndex, 100, vector), + BaseVector::wrapInDictionary( + makeNulls(100, [](auto row) { return row % 2 == 0; }), + oneIndex, + 100, + vector), }); testRoundTrip(wrappedVector); }