diff --git a/libsupport/include/katana/ArrowVisitor.h b/libsupport/include/katana/ArrowVisitor.h index 1c196334d0..fca87a81da 100644 --- a/libsupport/include/katana/ArrowVisitor.h +++ b/libsupport/include/katana/ArrowVisitor.h @@ -73,7 +73,12 @@ VisitArrowCast(const arrow::Array& array) { inline arrow::Type::type GetArrowTypeID(const arrow::ArrayBuilder* builder) { - return builder->type()->id(); + arrow::Type::type id = builder->type()->id(); + if (id != arrow::Type::EXTENSION) { + return id; + } + const auto& ext = static_cast(*builder->type()); + return ext.storage_type()->id(); } template