glaredb_proto 25.6.3

Protobuf definitions for GlareDB
Documentation
syntax = "proto3";

package rayexec.schema;

enum DataTypeId {
    INVALID_DATATYPE_ID = 0;
    ANY                 = 1;
    NULL                = 2;
    BOOLEAN             = 3;
    INT8                = 4;
    INT16               = 5;
    INT32               = 6;
    INT64               = 7;
    INT128              = 8;
    UINT8               = 9;
    UINT16              = 10;
    UINT32              = 11;
    UINT64              = 12;
    UINT128             = 13;
    FLOAT16             = 14;
    FLOAT32             = 15;
    FLOAT64             = 16;
    DECIMAL64           = 17;
    DECIMAL128          = 18;
    TIMESTAMP           = 19;
    DATE32              = 20;
    DATE64              = 21;
    INTERVAL            = 22;
    UTF8                = 23;
    BINARY              = 24;
    STRUCT              = 25;
    LIST                = 26;
}

enum TimeUnit {
    INVALID_TIME_UNIT = 0;
    SECOND            = 1;
    MILLISECOND       = 2;
    MICROSECOND       = 3;
    NANOSECOND        = 4;
}

message DecimalTypeMeta {
    int32 precision = 1;
    int32 scale     = 2;
}

message TimestampTypeMeta {
    TimeUnit unit = 1;
}

message StructTypeMeta {
    repeated Field fields = 1;
}

message ListTypeMeta {
    DataType datatype = 1;
}

message EmptyMeta {}

message DataType {
    oneof value {
        EmptyMeta         type_null       = 2;
        EmptyMeta         type_boolean    = 3;
        EmptyMeta         type_int8       = 4;
        EmptyMeta         type_int16      = 5;
        EmptyMeta         type_int32      = 6;
        EmptyMeta         type_int64      = 7;
        EmptyMeta         type_int128     = 8;
        EmptyMeta         type_uint8      = 9;
        EmptyMeta         type_uint16     = 10;
        EmptyMeta         type_uint32     = 11;
        EmptyMeta         type_uint64     = 12;
        EmptyMeta         type_uint128    = 13;
        EmptyMeta         type_float16    = 14;
        EmptyMeta         type_float32    = 15;
        EmptyMeta         type_float64    = 16;
        DecimalTypeMeta   type_decimal64  = 17;
        DecimalTypeMeta   type_decimal128 = 18;
        TimestampTypeMeta type_timestamp  = 19;
        EmptyMeta         type_date32     = 20;
        EmptyMeta         type_date64     = 21;
        EmptyMeta         type_interval   = 22;
        EmptyMeta         type_utf8       = 23;
        EmptyMeta         type_binary     = 24;
        StructTypeMeta    type_struct     = 25;
        ListTypeMeta      type_list       = 26;
    }
}

message Field {
    string   name     = 1;
    DataType datatype = 2;
    bool     nullable = 3;
}

message Schema {
    repeated Field fields = 1;
}

message TypeSchema {
    repeated DataType types = 1;
}