Thanks! Issue filed. I will work on it. https://issues.apache.org/jira/browse/ARROW-13154
> On Jun 20, 2021, at 5:26 PM, Wes McKinney <wesmck...@gmail.com> wrote: > > UnionType::kMaxTypeCode is 127, so we intend to have codes from 0 to > 127. If there is code preventing things from going up to and including > 127 it's a bug. > > On Sun, Jun 20, 2021 at 3:06 PM Ying Zhou <yzhou7...@gmail.com> wrote: >> >> Moreover it seems that negative type_codes are banned due to type.cc:622 >> <http://type.cc:622/> . Moreover in type_test.cc <http://type_test.cc/> and >> array_union_test.cc <http://array_union_test.cc/> type_codes are always >> nonnegative. However maybe negative type_codes should be allowed since >> type_codes are of type int8_t. Is this also intended? >> >>> On Jun 20, 2021, at 4:01 PM, Ying Zhou <yzhou7...@gmail.com> wrote: >>> >>> Hi, >>> >>> Due to the following in builder_union.cc <http://builder_union.cc/> (Line >>> 67-70) >>> >>> type_id_to_children_.resize(union_type.max_type_code() + 1, nullptr); >>> DCHECK_LT( >>> type_id_to_children_.size(), >>> >>> static_cast<decltype(type_id_to_children_)::size_type>(UnionType::kMaxTypeCode)); >>> >>> and type.cc <http://type.cc/> (Line 640-644) >>> uint8_t UnionType::max_type_code() const { >>> return type_codes_.size() == 0 >>> ? 0 >>> : *std::max_element(type_codes_.begin(), type_codes_.end()); >>> } >>> >>> In practice type codes of the union type must always be below or equal to >>> 125. Is this intended behavior? >>> >>