blob: a966b6ece3fc0905b18069f78325473b6756a7ec [file] [log] [blame]
// 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.
include "../../format/Schema.fbs";
namespace org.apache.arrow.computeir.flatbuf;
table ListLiteral {
values: [Literal] (required);
}
table StructLiteral {
/// Values for each struct field; the order must match the order of fields
/// in the `type` field of `Literal`.
values: [Literal] (required);
}
table KeyValue {
key: Literal (required);
value: Literal (required);
}
table MapLiteral {
values: [KeyValue] (required);
}
table Int8Literal {
value: int8;
}
table Int16Literal {
value: int16;
}
table Int32Literal {
value: int32;
}
table Int64Literal {
value: int64;
}
table UInt8Literal {
value: uint8;
}
table UInt16Literal {
value: uint16;
}
table UInt32Literal {
value: uint32;
}
table UInt64Literal {
value: uint64;
}
table Float16Literal {
value: uint16;
}
table Float32Literal {
value: float32;
}
table Float64Literal {
value: float64;
}
table DecimalLiteral {
/// Bytes of a Decimal value; bytes must be in little-endian order.
value: [byte] (required);
}
table BooleanLiteral {
value: bool;
}
table DateLiteral {
value: int64;
}
table TimeLiteral {
value: int64;
}
table TimestampLiteral {
value: int64;
}
table IntervalLiteralMonths {
months: int32;
}
table IntervalLiteralDaysMilliseconds {
days: int32;
milliseconds: int32;
}
union IntervalLiteralImpl {
IntervalLiteralMonths,
IntervalLiteralDaysMilliseconds,
}
table IntervalLiteral {
value: IntervalLiteralImpl (required);
}
table DurationLiteral {
value: int64;
}
table BinaryLiteral {
value: [byte] (required);
}
table FixedSizeBinaryLiteral {
value: [byte] (required);
}
table StringLiteral {
value: string (required);
}
// no union literal is defined as only one branch of a union can be resolved.
// no literals for large string/binary types as flatbuffer is limited to 2gb.
union LiteralImpl {
BooleanLiteral,
Int8Literal,
Int16Literal,
Int32Literal,
Int64Literal,
UInt8Literal,
UInt16Literal,
UInt32Literal,
UInt64Literal,
DateLiteral,
TimeLiteral,
TimestampLiteral,
IntervalLiteral,
DurationLiteral,
DecimalLiteral,
Float16Literal,
Float32Literal,
Float64Literal,
ListLiteral,
StructLiteral,
MapLiteral,
StringLiteral,
BinaryLiteral,
FixedSizeBinaryLiteral,
}
table Literal {
/// Literal value data; for null literals do not include this field.
impl: LiteralImpl;
/// Type of the literal value. This must match `impl`.
type: org.apache.arrow.flatbuf.Field (required);
}
root_type Literal;