orc_types.hpp
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: Copyright (c) 2019-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
3  * SPDX-License-Identifier: Apache-2.0
4  */
5 
6 #pragma once
7 
8 #include <cudf/utilities/export.hpp>
9 
10 #include <cstdint>
11 
17 namespace CUDF_EXPORT cudf {
18 namespace io::orc {
27 enum CompressionKind : uint8_t {
28  NONE = 0,
29  ZLIB = 1,
30  SNAPPY = 2,
31  LZO = 3,
32  LZ4 = 4,
33  ZSTD = 5,
34 };
35 
39 enum TypeKind : int8_t {
40  INVALID_TYPE_KIND = -1,
41  BOOLEAN = 0,
42  BYTE = 1,
43  SHORT = 2,
44  INT = 3,
45  LONG = 4,
46  FLOAT = 5,
47  DOUBLE = 6,
48  STRING = 7,
49  BINARY = 8,
50  TIMESTAMP = 9,
51  LIST = 10,
52  MAP = 11,
53  STRUCT = 12,
54  UNION = 13,
55  DECIMAL = 14,
56  DATE = 15,
57  VARCHAR = 16,
58  CHAR = 17,
59 };
60 
64 enum StreamKind : int8_t {
65  INVALID_STREAM_KIND = -1,
66  PRESENT = 0, // boolean stream of whether the next value is non-null
67  DATA = 1, // the primary data stream
68  LENGTH = 2, // the length of each value for variable length data
69  DICTIONARY_DATA = 3, // the dictionary blob
70  DICTIONARY_COUNT = 4, // deprecated prior to Hive 0.11
71  SECONDARY = 5, // a secondary data stream
72  ROW_INDEX = 6, // the index for seeking to particular row groups
73  BLOOM_FILTER = 7, // original bloom filters used before ORC-101
74  BLOOM_FILTER_UTF8 = 8, // bloom filters that consistently use utf8
75 };
76 
80 enum ColumnEncodingKind : int8_t {
81  INVALID_ENCODING_KIND = -1,
82  DIRECT = 0, // the encoding is mapped directly to the stream using RLE v1
83  DICTIONARY = 1, // the encoding uses a dictionary of unique values using RLE v1
84  DIRECT_V2 = 2, // the encoding is direct using RLE v2
85  DICTIONARY_V2 = 3, // the encoding is dictionary-based using RLE v2
86 };
87 
91 enum ProtofType : uint8_t {
92  VARINT = 0,
93  FIXED64 = 1,
94  FIXEDLEN = 2,
95  START_GROUP = 3, // deprecated
96  END_GROUP = 4, // deprecated
97  FIXED32 = 5,
98  INVALID_6 = 6,
99  INVALID_7 = 7,
100 };
101  // end of group
103 } // namespace io::orc
104 } // namespace CUDF_EXPORT cudf
CompressionKind
Identifies a compression algorithm.
Definition: orc_types.hpp:27
ColumnEncodingKind
Identifies the encoding of columns.
Definition: orc_types.hpp:80
StreamKind
Identifies the type of data stream.
Definition: orc_types.hpp:64
ProtofType
Identifies the type of encoding in a protocol buffer.
Definition: orc_types.hpp:91
TypeKind
Identifies a data type in an orc file.
Definition: orc_types.hpp:39
cuDF interfaces
Definition: host_udf.hpp:26