Spaces:
Running
Running
File size: 6,830 Bytes
78c921d |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 |
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
////
//
// A few enums copied from `fb/Schema.ts` and `fb/Message.ts` because Webpack
// v4 doesn't seem to be able to tree-shake the rest of those exports.
//
// We will have to keep these enums in sync when we re-generate the flatbuffers
// code from the shchemas. See js/DEVELOP.md for info on how to run flatbuffers
// code generation.
//
////
/**
* Logical types, vector layouts, and schemas
*
* @enum {number}
*/
export enum MetadataVersion {
/**
* 0.1.0 (October 2016).
*/
V1 = 0,
/**
* 0.2.0 (February 2017). Non-backwards compatible with V1.
*/
V2 = 1,
/**
* 0.3.0 -> 0.7.1 (May - December 2017). Non-backwards compatible with V2.
*/
V3 = 2,
/**
* >= 0.8.0 (December 2017). Non-backwards compatible with V3.
*/
V4 = 3,
/**
* >= 1.0.0 (July 2020. Backwards compatible with V4 (V5 readers can read V4
* metadata and IPC messages). Implementations are recommended to provide a
* V4 compatibility mode with V5 format changes disabled.
*
* Incompatible changes between V4 and V5:
* - Union buffer layout has changed. In V5, Unions don't have a validity
* bitmap buffer.
*/
V5 = 4
}
/**
* @enum {number}
*/
export enum UnionMode {
Sparse = 0,
Dense = 1
}
/**
* @enum {number}
*/
export enum Precision {
HALF = 0,
SINGLE = 1,
DOUBLE = 2
}
/**
* @enum {number}
*/
export enum DateUnit {
DAY = 0,
MILLISECOND = 1
}
/**
* @enum {number}
*/
export enum TimeUnit {
SECOND = 0,
MILLISECOND = 1,
MICROSECOND = 2,
NANOSECOND = 3
}
/**
* @enum {number}
*/
export enum IntervalUnit {
YEAR_MONTH = 0,
DAY_TIME = 1,
MONTH_DAY_NANO = 2
}
/**
* ----------------------------------------------------------------------
* The root Message type
* This union enables us to easily send different message types without
* redundant storage, and in the future we can easily add new message types.
*
* Arrow implementations do not need to implement all of the message types,
* which may include experimental metadata types. For maximum compatibility,
* it is best to send data using RecordBatch
*
* @enum {number}
*/
export enum MessageHeader {
NONE = 0,
Schema = 1,
DictionaryBatch = 2,
RecordBatch = 3,
Tensor = 4,
SparseTensor = 5
}
/**
* Main data type enumeration.
*
* Data types in this library are all *logical*. They can be expressed as
* either a primitive physical type (bytes or bits of some fixed size), a
* nested type consisting of other data types, or another data type (e.g. a
* timestamp encoded as an int64).
*
* **Note**: Only enum values 0-17 (NONE through Map) are written to an Arrow
* IPC payload.
*
* The rest of the values are specified here so TypeScript can narrow the type
* signatures further beyond the base Arrow Types. The Arrow DataTypes include
* metadata like `bitWidth` that impact the type signatures of the values we
* accept and return.
*
* For example, the `Int8Vector` reads 1-byte numbers from an `Int8Array`, an
* `Int32Vector` reads a 4-byte number from an `Int32Array`, and an `Int64Vector`
* reads a pair of 4-byte lo, hi 32-bit integers as a zero-copy slice from the
* underlying `Int32Array`.
*
* Library consumers benefit by knowing the narrowest type, since we can ensure
* the types across all public methods are propagated, and never bail to `any`.
* These values are _never_ used at runtime, and they will _never_ be written
* to the flatbuffers metadata of serialized Arrow IPC payloads.
*/
export enum Type {
NONE = 0, /** The default placeholder type */
Null = 1, /** A NULL type having no physical storage */
Int = 2, /** Signed or unsigned 8, 16, 32, or 64-bit little-endian integer */
Float = 3, /** 2, 4, or 8-byte floating point value */
Binary = 4, /** Variable-length bytes (no guarantee of UTF8-ness) */
Utf8 = 5, /** UTF8 variable-length string as List<Char> */
Bool = 6, /** Boolean as 1 bit, LSB bit-packed ordering */
Decimal = 7, /** Precision-and-scale-based decimal type. Storage type depends on the parameters. */
Date = 8, /** int32_t days or int64_t milliseconds since the UNIX epoch */
Time = 9, /** Time as signed 32 or 64-bit integer, representing either seconds, milliseconds, microseconds, or nanoseconds since midnight since midnight */
Timestamp = 10, /** Exact timestamp encoded with int64 since UNIX epoch (Default unit millisecond) */
Interval = 11, /** YEAR_MONTH or DAY_TIME interval in SQL style */
List = 12, /** A list of some logical data type */
Struct = 13, /** Struct of logical types */
Union = 14, /** Union of logical types */
FixedSizeBinary = 15, /** Fixed-size binary. Each value occupies the same number of bytes */
FixedSizeList = 16, /** Fixed-size list. Each value occupies the same number of bytes */
Map = 17, /** Map of named logical types */
Dictionary = -1, /** Dictionary aka Category type */
Int8 = -2,
Int16 = -3,
Int32 = -4,
Int64 = -5,
Uint8 = -6,
Uint16 = -7,
Uint32 = -8,
Uint64 = -9,
Float16 = -10,
Float32 = -11,
Float64 = -12,
DateDay = -13,
DateMillisecond = -14,
TimestampSecond = -15,
TimestampMillisecond = -16,
TimestampMicrosecond = -17,
TimestampNanosecond = -18,
TimeSecond = -19,
TimeMillisecond = -20,
TimeMicrosecond = -21,
TimeNanosecond = -22,
DenseUnion = -23,
SparseUnion = -24,
IntervalDayTime = -25,
IntervalYearMonth = -26,
}
export enum BufferType {
/**
* used in List type, Dense Union and variable length primitive types (String, Binary)
*/
OFFSET = 0,
/**
* actual data, either wixed width primitive types in slots or variable width delimited by an OFFSET vector
*/
DATA = 1,
/**
* Bit vector indicating if each value is null
*/
VALIDITY = 2,
/**
* Type vector used in Union type
*/
TYPE = 3
}
|