[ https://issues.apache.org/jira/browse/AVRO-2923?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Yang Xu updated AVRO-2923: -------------------------- Priority: Major (was: Minor) > GenericDatum::logicalType() API should return the logical type corresponing > to one of the constituent types of the union > ------------------------------------------------------------------------------------------------------------------------ > > Key: AVRO-2923 > URL: https://issues.apache.org/jira/browse/AVRO-2923 > Project: Apache Avro > Issue Type: Bug > Components: c++ > Affects Versions: 1.10.0 > Reporter: Yang Xu > Priority: Major > > According to the avro document, GenericDatum::logicalType() API should behave > Just like GenericDatum::type() or GenericDatum::value() APIs to return the > logical type corresponing to one of the constituent types of the union When > it was a Union type. > {code:cpp} > inline Type GenericDatum::type() const { > return (type_ == AVRO_UNION) ? > #if __cplusplus >= 201703L > std::any_cast<GenericUnion>(&value_)->datum().type() : > #else > boost::any_cast<GenericUnion>(&value_)->datum().type() : > #endif > type_; > } > template<typename T> T& GenericDatum::value() { > return (type_ == AVRO_UNION) ? > #if __cplusplus >= 201703L > std::any_cast<GenericUnion>(&value_)->datum().value<T>() : > *std::any_cast<T>(&value_); > #else > boost::any_cast<GenericUnion>(&value_)->datum().value<T>() : > *boost::any_cast<T>(&value_); > #endif > } > {code} > while logicalType api was like this: > {code:cpp} > inline LogicalType GenericDatum::logicalType() const { > return logicalType_; > } > {code} > it should also do the GenericUnion check -- This message was sent by Atlassian Jira (v8.3.4#803005)