diff --git a/cmake_modules/IcebergThirdpartyToolchain.cmake b/cmake_modules/IcebergThirdpartyToolchain.cmake index 9b4eccd56..3826ee95f 100644 --- a/cmake_modules/IcebergThirdpartyToolchain.cmake +++ b/cmake_modules/IcebergThirdpartyToolchain.cmake @@ -181,7 +181,7 @@ function(resolve_avro_dependency) ${FC_DECLARE_COMMON_OPTIONS} # TODO: switch to Apache Avro 1.13.0 once released. GIT_REPOSITORY https://github.com/apache/avro.git - GIT_TAG 1305509ace25931b3373d35daf47bc48238455b6 + GIT_TAG 82a2bc8b034de34626e2ab8bf091234122474d50 SOURCE_SUBDIR lang/c++ FIND_PACKAGE_ARGS diff --git a/src/iceberg/avro/avro_schema_util.cc b/src/iceberg/avro/avro_schema_util.cc index fdbac82d5..d293cf57b 100644 --- a/src/iceberg/avro/avro_schema_util.cc +++ b/src/iceberg/avro/avro_schema_util.cc @@ -142,10 +142,10 @@ Status ToAvroNodeVisitor::Visit(const StringType& type, ::avro::NodePtr* node) { } Status ToAvroNodeVisitor::Visit(const UuidType& type, ::avro::NodePtr* node) { - *node = std::make_shared<::avro::NodePrimitive>(::avro::AVRO_FIXED); - (*node)->setLogicalType(::avro::LogicalType{::avro::LogicalType::UUID}); - (*node)->setFixedSize(16); + *node = std::make_shared<::avro::NodeFixed>(); (*node)->setName(::avro::Name("uuid_fixed")); + (*node)->setFixedSize(16); + (*node)->setLogicalType(::avro::LogicalType{::avro::LogicalType::UUID}); return {}; } diff --git a/test/avro_schema_test.cc b/test/avro_schema_test.cc index 35cc4847f..65ff66e26 100644 --- a/test/avro_schema_test.cc +++ b/test/avro_schema_test.cc @@ -125,8 +125,7 @@ TEST(ToAvroNodeVisitorTest, StringType) { EXPECT_EQ(node->type(), ::avro::AVRO_STRING); } -// FIXME: https://issues.apache.org/jira/browse/AVRO-4140 -TEST(ToAvroNodeVisitorTest, DISABLED_UuidType) { +TEST(ToAvroNodeVisitorTest, UuidType) { ::avro::NodePtr node; EXPECT_THAT(ToAvroNodeVisitor{}.Visit(UuidType{}, &node), IsOk()); EXPECT_EQ(node->type(), ::avro::AVRO_FIXED);