summaryrefslogtreecommitdiffstats
path: root/src/arrow/experimental/computeir/Literal.fbs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-21 11:54:28 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-21 11:54:28 +0000
commite6918187568dbd01842d8d1d2c808ce16a894239 (patch)
tree64f88b554b444a49f656b6c656111a145cbbaa28 /src/arrow/experimental/computeir/Literal.fbs
parentInitial commit. (diff)
downloadceph-b26c4052f3542036551aa9dec9caa4226e456195.tar.xz
ceph-b26c4052f3542036551aa9dec9caa4226e456195.zip
Adding upstream version 18.2.2.upstream/18.2.2
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/arrow/experimental/computeir/Literal.fbs')
-rw-r--r--src/arrow/experimental/computeir/Literal.fbs184
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;