| # 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. |
| |
| # substrait::{ExtensionTypeVariation, ExtensionType}s |
| # for wrapping types which appear in the arrow type system but |
| # are not first-class in substrait. These include: |
| # - null |
| # - unsigned integers |
| # - half-precision floating point numbers |
| # - 32-bit times and 64-bit dates |
| # - timestamps with units other than microseconds |
| # - timestamps with timezones other than UTC |
| # - 256-bit decimals |
| # - sparse and dense unions |
| # - dictionary encoded types |
| # - durations |
| # - string and binary with 64 bit offsets |
| # - list with 64-bit offsets |
| # - interval<months: i32> |
| # - interval<days: i32, millis: i32> |
| # - interval<months: i32, days: i32, nanos: i64> |
| # - arrow::ExtensionTypes |
| # |
| # Note that not all of these are currently implemented. In particular, these |
| # extension types are currently not parameterizable in Substrait, which means |
| # among other things that we can't declare dictionary type here at all since |
| # we'd have to declare a different dictionary type for all encoded types |
| # (but that is an infinite space). Similarly, we would have to declare a |
| # timestamp variation for all possible timezone strings. |
| |
| type_variations: |
| - parent: i8 |
| name: u8 |
| description: an unsigned 8 bit integer |
| functions: SEPARATE |
| - parent: i16 |
| name: u16 |
| description: an unsigned 16 bit integer |
| functions: SEPARATE |
| - parent: i32 |
| name: u32 |
| description: an unsigned 32 bit integer |
| functions: SEPARATE |
| - parent: i64 |
| name: u64 |
| description: an unsigned 64 bit integer |
| functions: SEPARATE |
| |
| - parent: i16 |
| name: fp16 |
| description: a 16 bit floating point number |
| functions: SEPARATE |
| |
| types: |
| - name: "null" |
| structure: {} |
| - name: interval_month |
| structure: |
| months: i32 |
| - name: interval_day_milli |
| structure: |
| days: i32 |
| millis: i32 |
| - name: interval_month_day_nano |
| structure: |
| months: i32 |
| days: i32 |
| nanos: i64 |