[ https://issues.apache.org/jira/browse/ARROW-14332?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17465524#comment-17465524 ]
Eduardo Ponce edited comment on ARROW-14332 at 12/27/21, 4:41 AM: ------------------------------------------------------------------ This table shows Arrow datatypes and corresponding *is_xxx_type* type traits. ||Datatype||Current type trait|| |FixedWidthType| | |PrimitiveCType|is_primitive_ctype| |NumberType|is_number_type| |IntegerType|is_integer_type| | |is_signed_integer_type| | |is_unsigned_integer_type| |[U]Int[8,16,32,64]Type| | |FloatingPointType|is_floating_type| |HalfFloatType|is_half_float_type| |FloatType| | |DoubleType| | |ParametricType| | |NestedType|is_nested_type| |NullType|is_null_type| |BooleanType|is_boolean_type| |BaseBinaryType|is_base_binary_type| |BinaryType|is_binary_type| |LargeBinaryType| | |StringType|is_string_type| |LargeStringType| | |FixedSizeBinaryType|is_fixed_size_binary_type| | |is_binary_like_type| |DecimalType|is_decimal_type| |Decimal128Type|is_decimal128_type| |Decimal256Type|is_decimal256_type| |BaseListType|is_var_length_list_type| |ListType|is_list_type| |LargeListType| | |FixedSizeListType|is_fixed_size_list_type| |MapType| | |StructType|is_struct_type| |UnionType|is_union_type| |SparseUnionType| | |DenseUnionType| | |TemporalType|is_temporal_type| |DateType|is_date_type| |Date64Type| | |TimeType|is_time_type| |Time32Type| | |Time64Type| | |TimestampType|is_timestamp_type| |IntervalType|is_interval_type| |MonthIntervalType| | |DayTimeIntervalType| | |MonthDayNanoIntervalType| | |DurationType|is_duration_type| |DictionaryType|is_dictionary_type| |ExtensionType|is_extension_type| These are special type traits: * {{is_string_like_type = is_base_binary_type && T::is_utf8}} a. (Eduardo) Seems like a semantic duplicate of {{is_string_type}} * {{is_binary_like_type = (is_base_binary_type && !is_string_like_type) || is_fixed_size_binary_type}} * {{is_base_list_type}} deprecated for {{is_var_length_list_type}} * {{is_list_like_type = is_base_list_type || is_fixed_size_list_type}} was (Author: edponce): This table shows Arrow datatypes and corresponding **is_xxx_type** type traits. ||Datatype||Current type trait|| |FixedWidthType| | |PrimitiveCType|is_primitive_ctype| |NumberType|is_number_type| |IntegerType|is_integer_type| | |is_signed_integer_type| | |is_unsigned_integer_type| |[U]Int[8,16,32,64]Type| | |FloatingPointType|is_floating_type| |HalfFloatType|is_half_float_type| |FloatType| | |DoubleType| | |ParametricType| | |NestedType|is_nested_type| |NullType|is_null_type| |BooleanType|is_boolean_type| |BaseBinaryType|is_base_binary_type| |BinaryType|is_binary_type| |LargeBinaryType| | |StringType|is_string_type| |LargeStringType| | |FixedSizeBinaryType|is_fixed_size_binary_type| | |is_binary_like_type| |DecimalType|is_decimal_type| |Decimal128Type|is_decimal128_type| |Decimal256Type|is_decimal256_type| |BaseListType|is_var_length_list_type| |ListType|is_list_type| |LargeListType| | |FixedSizeListType|is_fixed_size_list_type| |MapType| | |StructType|is_struct_type| |UnionType|is_union_type| |SparseUnionType| | |DenseUnionType| | |TemporalType|is_temporal_type| |DateType|is_date_type| |Date64Type| | |TimeType|is_time_type| |Time32Type| | |Time64Type| | |TimestampType|is_timestamp_type| |IntervalType|is_interval_type| |MonthIntervalType| | |DayTimeIntervalType| | |MonthDayNanoIntervalType| | |DurationType|is_duration_type| |DictionaryType|is_dictionary_type| |ExtensionType|is_extension_type| These are special type traits: * {{is_string_like_type = is_base_binary_type && T::is_utf8}} a. (Eduardo) Seems like a semantic duplicate of {{is_string_type}} * {{is_binary_like_type = (is_base_binary_type && !is_string_like_type) || is_fixed_size_binary_type}} * {{is_base_list_type}} deprecated for {{is_var_length_list_type}} * {{is_list_like_type = is_base_list_type || is_fixed_size_list_type}} > [C++] Rename type traits utilities to improve semantic consistency > ------------------------------------------------------------------ > > Key: ARROW-14332 > URL: https://issues.apache.org/jira/browse/ARROW-14332 > Project: Apache Arrow > Issue Type: Improvement > Components: C++ > Reporter: Eduardo Ponce > Assignee: Eduardo Ponce > Priority: Minor > Labels: type > Fix For: 7.0.0 > > > There are semantic differences between *enable_ifs-related* utils and > *is_xxx* functions with the same name. For example, *is_binary_like* > [here|https://github.com/apache/arrow/blob/master/cpp/src/arrow/type_traits.h#L596] > != > [here|https://github.com/apache/arrow/blob/master/cpp/src/arrow/type_traits.h#L924]. > The former includes binary only and the latter binary/string types. > Also, the *_like* suffix seems unwarranted as they always refer to binary or > string. > Also, the *is_fixed_size_binary* includes both _FixedSizeBinaryType_ and > {_}DecimalXXXType{_}. A better name is *is_base_fixed_size_binary* to match > how binary/string utils are used. > {_}Note{_}: There might be other inconsistencies. -- This message was sent by Atlassian Jira (v8.20.1#820001)