Skip to content

Commit

Permalink
Fix map scalar to string
Browse files Browse the repository at this point in the history
  • Loading branch information
zanmato1984 committed Apr 7, 2024
1 parent 5f2543c commit c6bb2ec
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 0 deletions.
2 changes: 2 additions & 0 deletions cpp/src/arrow/scalar.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1391,6 +1391,8 @@ struct FromTypeVisitor : CastImplVisitor {
return CastFromListLike(large_list_view_type);
}

Status Visit(const MapType& map_type) { return CastFromListLike(map_type); }

Status Visit(const NullType&) { return NotImplemented(); }
Status Visit(const DictionaryType&) { return NotImplemented(); }
Status Visit(const ExtensionType&) { return NotImplemented(); }
Expand Down
11 changes: 11 additions & 0 deletions cpp/src/arrow/scalar_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1286,6 +1286,17 @@ TEST(TestMapScalar, Cast) {
CheckListCastError(scalar, invalid_cast_type);
}

TEST(TestMapScalar, ToString) {
auto key_value_type = struct_({field("key", utf8(), false), field("value", int8())});
auto value = ArrayFromJSON(key_value_type,
R"([{"key": "a", "value": 1}, {"key": "b", "value": 2}])");
auto scalar = MapScalar(value);

ASSERT_EQ(
scalar.ToString(),
R"(map<string, int8>[{key:string = a, value:int8 = 1}, {key:string = b, value:int8 = 2}])");
}

TEST(TestStructScalar, FieldAccess) {
StructScalar abc({MakeScalar(true), MakeNullScalar(int32()), MakeScalar("hello"),
MakeNullScalar(int64())},
Expand Down

0 comments on commit c6bb2ec

Please sign in to comment.