diff options
Diffstat (limited to 'src/arrow/experimental/computeir/Literal.fbs')
-rw-r--r-- | src/arrow/experimental/computeir/Literal.fbs | 184 |
1 files changed, 184 insertions, 0 deletions
diff --git a/src/arrow/experimental/computeir/Literal.fbs b/src/arrow/experimental/computeir/Literal.fbs new file mode 100644 index 000000000..a966b6ece --- /dev/null +++ b/src/arrow/experimental/computeir/Literal.fbs @@ -0,0 +1,184 @@ +// 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; |