// 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;