sparrow
0.3.0
Loading...
Searching...
No Matches
arrow_array_schema_info_utils.hpp
Go to the documentation of this file.
1
// Copyright 2024 Man Group Operations Limited
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
// http://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
// See the License for the specific language governing permissions and
13
// limitations under the License.
14
15
#pragma once
16
17
#include "
sparrow/c_interface.hpp
"
18
#include "
sparrow/types/data_type.hpp
"
19
20
namespace
sparrow
21
{
22
24
[[nodiscard]]
inline
bool
validate_format_with_arrow_array
(
data_type
,
const
ArrowArray
&)
25
{
26
return
true
;
27
/* THE CODE USED TO MAKES WRONG ASSUMPTIONS AND NEEDS TO BE REFACTORED IN A SEPERATE PR*/
28
}
29
30
[[nodiscard]]
constexpr
bool
has_bitmap
(
data_type
dt)
31
{
32
switch
(dt)
33
{
34
// List all data types. We use the default warning to catch missing cases.
35
case
data_type::BOOL
:
36
case
data_type::INT8
:
37
case
data_type::INT16
:
38
case
data_type::INT32
:
39
case
data_type::INT64
:
40
case
data_type::UINT8
:
41
case
data_type::UINT16
:
42
case
data_type::UINT32
:
43
case
data_type::UINT64
:
44
case
data_type::HALF_FLOAT
:
45
case
data_type::FLOAT
:
46
case
data_type::DOUBLE
:
47
case
data_type::DATE_DAYS
:
48
case
data_type::DATE_MILLISECONDS
:
49
case
data_type::TIMESTAMP_SECONDS
:
50
case
data_type::TIMESTAMP_MILLISECONDS
:
51
case
data_type::TIMESTAMP_MICROSECONDS
:
52
case
data_type::TIMESTAMP_NANOSECONDS
:
53
case
data_type::TIME_SECONDS
:
54
case
data_type::TIME_MILLISECONDS
:
55
case
data_type::TIME_MICROSECONDS
:
56
case
data_type::TIME_NANOSECONDS
:
57
case
data_type::DURATION_SECONDS
:
58
case
data_type::DURATION_MILLISECONDS
:
59
case
data_type::DURATION_MICROSECONDS
:
60
case
data_type::DURATION_NANOSECONDS
:
61
case
data_type::INTERVAL_MONTHS
:
62
case
data_type::INTERVAL_DAYS_TIME
:
63
case
data_type::INTERVAL_MONTHS_DAYS_NANOSECONDS
:
64
case
data_type::DECIMAL32
:
65
case
data_type::DECIMAL64
:
66
case
data_type::DECIMAL128
:
67
case
data_type::DECIMAL256
:
68
case
data_type::LIST
:
69
case
data_type::STRUCT
:
70
case
data_type::STRING
:
71
case
data_type::LARGE_STRING
:
72
case
data_type::BINARY
:
73
case
data_type::LARGE_BINARY
:
74
case
data_type::FIXED_WIDTH_BINARY
:
75
case
data_type::LARGE_LIST
:
76
case
data_type::LIST_VIEW
:
77
case
data_type::LARGE_LIST_VIEW
:
78
case
data_type::FIXED_SIZED_LIST
:
79
case
data_type::STRING_VIEW
:
80
case
data_type::BINARY_VIEW
:
81
return
true
;
82
case
data_type::MAP
:
83
case
data_type::NA
:
84
case
data_type::SPARSE_UNION
:
85
case
data_type::DENSE_UNION
:
86
case
data_type::RUN_ENCODED
:
87
return
false
;
88
}
89
mpl::unreachable
();
90
}
91
}
c_interface.hpp
data_type.hpp
sparrow::mpl::unreachable
void unreachable()
Invokes undefined behavior.
Definition
mp_utils.hpp:425
sparrow
Definition
array.hpp:21
sparrow::has_bitmap
constexpr bool has_bitmap(data_type dt)
Definition
arrow_array_schema_info_utils.hpp:30
sparrow::validate_format_with_arrow_array
bool validate_format_with_arrow_array(data_type, const ArrowArray &)
Definition
arrow_array_schema_info_utils.hpp:24
sparrow::data_type
data_type
Runtime identifier of arrow data types, usually associated with raw bytes with the associated value.
Definition
data_type.hpp:156
sparrow::data_type::SPARSE_UNION
@ SPARSE_UNION
Definition
data_type.hpp:186
sparrow::data_type::INTERVAL_DAYS_TIME
@ INTERVAL_DAYS_TIME
Definition
data_type.hpp:208
sparrow::data_type::DECIMAL256
@ DECIMAL256
Definition
data_type.hpp:191
sparrow::data_type::UINT32
@ UINT32
Definition
data_type.hpp:163
sparrow::data_type::LIST
@ LIST
Definition
data_type.hpp:176
sparrow::data_type::HALF_FLOAT
@ HALF_FLOAT
Definition
data_type.hpp:167
sparrow::data_type::LIST_VIEW
@ LIST_VIEW
Definition
data_type.hpp:178
sparrow::data_type::TIME_NANOSECONDS
@ TIME_NANOSECONDS
Definition
data_type.hpp:202
sparrow::data_type::DATE_MILLISECONDS
@ DATE_MILLISECONDS
Definition
data_type.hpp:194
sparrow::data_type::INTERVAL_MONTHS
@ INTERVAL_MONTHS
Definition
data_type.hpp:207
sparrow::data_type::DURATION_MILLISECONDS
@ DURATION_MILLISECONDS
Definition
data_type.hpp:204
sparrow::data_type::LARGE_LIST_VIEW
@ LARGE_LIST_VIEW
Definition
data_type.hpp:179
sparrow::data_type::UINT16
@ UINT16
Definition
data_type.hpp:161
sparrow::data_type::INT64
@ INT64
Definition
data_type.hpp:166
sparrow::data_type::MAP
@ MAP
Definition
data_type.hpp:182
sparrow::data_type::DECIMAL128
@ DECIMAL128
Definition
data_type.hpp:190
sparrow::data_type::DATE_DAYS
@ DATE_DAYS
Definition
data_type.hpp:193
sparrow::data_type::INT16
@ INT16
Definition
data_type.hpp:162
sparrow::data_type::TIME_MICROSECONDS
@ TIME_MICROSECONDS
Definition
data_type.hpp:201
sparrow::data_type::TIMESTAMP_MILLISECONDS
@ TIMESTAMP_MILLISECONDS
Definition
data_type.hpp:196
sparrow::data_type::DURATION_NANOSECONDS
@ DURATION_NANOSECONDS
Definition
data_type.hpp:206
sparrow::data_type::STRING
@ STRING
Definition
data_type.hpp:171
sparrow::data_type::INT32
@ INT32
Definition
data_type.hpp:164
sparrow::data_type::UINT64
@ UINT64
Definition
data_type.hpp:165
sparrow::data_type::TIMESTAMP_MICROSECONDS
@ TIMESTAMP_MICROSECONDS
Definition
data_type.hpp:197
sparrow::data_type::LARGE_LIST
@ LARGE_LIST
Definition
data_type.hpp:177
sparrow::data_type::DURATION_SECONDS
@ DURATION_SECONDS
Definition
data_type.hpp:203
sparrow::data_type::DURATION_MICROSECONDS
@ DURATION_MICROSECONDS
Definition
data_type.hpp:205
sparrow::data_type::RUN_ENCODED
@ RUN_ENCODED
Definition
data_type.hpp:187
sparrow::data_type::BINARY_VIEW
@ BINARY_VIEW
Definition
data_type.hpp:184
sparrow::data_type::BINARY
@ BINARY
Definition
data_type.hpp:174
sparrow::data_type::FIXED_WIDTH_BINARY
@ FIXED_WIDTH_BINARY
Definition
data_type.hpp:192
sparrow::data_type::STRING_VIEW
@ STRING_VIEW
Definition
data_type.hpp:183
sparrow::data_type::LARGE_STRING
@ LARGE_STRING
Definition
data_type.hpp:172
sparrow::data_type::DENSE_UNION
@ DENSE_UNION
Definition
data_type.hpp:185
sparrow::data_type::BOOL
@ BOOL
Definition
data_type.hpp:158
sparrow::data_type::TIME_SECONDS
@ TIME_SECONDS
Definition
data_type.hpp:199
sparrow::data_type::STRUCT
@ STRUCT
Definition
data_type.hpp:181
sparrow::data_type::TIME_MILLISECONDS
@ TIME_MILLISECONDS
Definition
data_type.hpp:200
sparrow::data_type::LARGE_BINARY
@ LARGE_BINARY
Definition
data_type.hpp:175
sparrow::data_type::INTERVAL_MONTHS_DAYS_NANOSECONDS
@ INTERVAL_MONTHS_DAYS_NANOSECONDS
Definition
data_type.hpp:209
sparrow::data_type::TIMESTAMP_SECONDS
@ TIMESTAMP_SECONDS
Definition
data_type.hpp:195
sparrow::data_type::TIMESTAMP_NANOSECONDS
@ TIMESTAMP_NANOSECONDS
Definition
data_type.hpp:198
sparrow::data_type::DECIMAL64
@ DECIMAL64
Definition
data_type.hpp:189
sparrow::data_type::NA
@ NA
Definition
data_type.hpp:157
sparrow::data_type::DECIMAL32
@ DECIMAL32
Definition
data_type.hpp:188
sparrow::data_type::FLOAT
@ FLOAT
Definition
data_type.hpp:168
sparrow::data_type::UINT8
@ UINT8
Definition
data_type.hpp:159
sparrow::data_type::INT8
@ INT8
Definition
data_type.hpp:160
sparrow::data_type::FIXED_SIZED_LIST
@ FIXED_SIZED_LIST
Definition
data_type.hpp:180
sparrow::data_type::DOUBLE
@ DOUBLE
Definition
data_type.hpp:169
ArrowArray
Definition
c_interface.hpp:47
include
sparrow
arrow_interface
arrow_array_schema_info_utils.hpp
Generated by
1.13.2