FlatBuffer Definition#
// SPDX-License-Identifier: Apache-2.0
// SPDX-FileCopyrightText: Copyright the Vortex contributors
enum PType: uint8 {
U8,
U16,
U32,
U64,
I8,
I16,
I32,
I64,
F16,
F32,
F64,
}
table Null {}
table Bool {
nullable: bool;
}
table Primitive {
ptype: PType;
nullable: bool;
}
table Decimal {
precision: uint8;
scale: int8;
nullable: bool;
}
table Utf8 {
nullable: bool;
}
table Binary {
nullable: bool;
}
table Struct_ {
names: [string];
dtypes: [DType];
nullable: bool;
}
table List {
element_type: DType;
nullable: bool;
}
table FixedSizeList {
element_type: DType;
size: uint32;
nullable: bool;
}
table Extension {
id: string;
storage_dtype: DType;
metadata: [ubyte];
}
table Variant {
nullable: bool;
}
union Type {
Null = 1,
Bool = 2,
Primitive = 3,
Decimal = 4,
Utf8 = 5,
Binary = 6,
Struct_ = 7,
List = 8,
Extension = 9,
FixedSizeList = 10, // This is after `Extension` for backwards compatibility.
Variant = 11,
}
table DType {
type: Type;
}
root_type DType;
Protobuf Definition#
// SPDX-License-Identifier: Apache-2.0 // SPDX-FileCopyrightText: Copyright the Vortex contributors syntax = "proto3"; package vortex.dtype; option java_package = "dev.vortex.proto"; option java_outer_classname = "DTypeProtos"; enum PType { U8 = 0; U16 = 1; U32 = 2; U64 = 3; I8 = 4; I16 = 5; I32 = 6; I64 = 7; F16 = 8; F32 = 9; F64 = 10; } message Null {} message Bool { bool nullable = 1; } message Primitive { PType type = 1; bool nullable = 2; } message Decimal { uint32 precision = 1; int32 scale = 2; bool nullable = 3; } message Utf8 { bool nullable = 1; } message Binary { bool nullable = 1; } message Struct { repeated string names = 1; repeated DType dtypes = 2; bool nullable = 3; } message List { DType element_type = 1; bool nullable = 2; } message FixedSizeList { DType element_type = 1; uint32 size = 2; bool nullable = 3; } message Extension { string id = 1; DType storage_dtype = 2; optional bytes metadata = 3; } message Variant { bool nullable = 1; } message DType { oneof dtype_type { Null null = 1; Bool bool = 2; Primitive primitive = 3; Decimal decimal = 4; Utf8 utf8 = 5; Binary binary = 6; Struct struct = 7; List list = 8; Extension extension = 9; FixedSizeList fixed_size_list = 10; // This is after `Extension` for backwards compatibility. Variant variant = 11; } } message Field { oneof field_type { string name = 1; } } message FieldPath { repeated Field path = 1; }