22 using private_data_type = std::conditional_t<
23 std::same_as<T, ArrowArray>,
26 if (t.release ==
nullptr)
30 SPARROW_ASSERT_TRUE(t.private_data !=
nullptr);
31 const auto private_data =
static_cast<const private_data_type*
>(t.private_data);
33 t.private_data =
nullptr;
37 if (t.dictionary->release)
39 t.dictionary->release(t.dictionary);
42 t.dictionary =
nullptr;
47 for (int64_t i = 0; i < t.n_children; ++i)
49 T* child = t.children[i];
54 child->release(child);