1 # Licensed to the Apache Software Foundation (ASF) under one or more
2 # contributor license agreements. See the NOTICE file distributed with
3 # this work for additional information regarding copyright ownership.
4 # The ASF licenses this file to You under the Apache License, Version 2.0
5 # (the "License"); you may not use this file except in compliance with
6 # the License. You may obtain a copy of the License at
8 # http://www.apache.org/licenses/LICENSE-2.0
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
18 {name: "Optional", prefix: "Nullable"},
19 {name: "Required", prefix: ""}
27 fields: [{name: "value", type: "byte"}],
29 { class: "TinyInt", valueHolder: "IntHolder" },
30 { class: "UInt1", valueHolder: "UInt1Holder" }
37 boxedType: "Character",
38 fields: [{name: "value", type: "char"}],
40 { class: "UInt2", valueHolder: "UInt2Holder"}
47 fields: [{name: "value", type: "short"}],
49 { class: "SmallInt", valueHolder: "Int2Holder"},
57 fields: [{name: "value", type: "int"}],
59 { class: "Int", valueHolder: "IntHolder"},
60 { class: "UInt4", valueHolder: "UInt4Holder" },
61 { class: "Float4", javaType: "float" , boxedType: "Float", fields: [{name: "value", type: "float"}]},
63 { class: "IntervalYear", javaType: "int", friendlyType: "Period" },
65 { class: "TimeMilli", javaType: "int", friendlyType: "LocalDateTime" }
73 fields: [{name: "value", type: "long"}],
77 { class: "Float8", javaType: "double", boxedType: "Double", fields: [{name: "value", type: "double"}] },
78 { class: "DateMilli", javaType: "long", friendlyType: "LocalDateTime" },
79 { class: "Duration", javaType: "long", friendlyType: "Duration",
80 arrowType: "org.apache.arrow.vector.types.pojo.ArrowType.Duration",
81 typeParams: [ {name: "unit", type: "org.apache.arrow.vector.types.TimeUnit"} ],
82 arrowTypeConstructorParams: ["unit"]}
83 { class: "TimeStampSec", javaType: "long", boxedType: "Long", friendlyType: "LocalDateTime" },
84 { class: "TimeStampMilli", javaType: "long", boxedType: "Long", friendlyType: "LocalDateTime" },
85 { class: "TimeStampMicro", javaType: "long", boxedType: "Long", friendlyType: "LocalDateTime" },
86 { class: "TimeStampNano", javaType: "long", boxedType: "Long", friendlyType: "LocalDateTime" },
87 { class: "TimeStampSecTZ", javaType: "long", boxedType: "Long",
88 typeParams: [ {name: "timezone", type: "String"} ],
89 arrowType: "org.apache.arrow.vector.types.pojo.ArrowType.Timestamp",
90 arrowTypeConstructorParams: ["org.apache.arrow.vector.types.TimeUnit.SECOND", "timezone"] },
91 { class: "TimeStampMilliTZ", javaType: "long", boxedType: "Long",
92 typeParams: [ {name: "timezone", type: "String"} ],
93 arrowType: "org.apache.arrow.vector.types.pojo.ArrowType.Timestamp",
94 arrowTypeConstructorParams: ["org.apache.arrow.vector.types.TimeUnit.MILLISECOND", "timezone"] },
95 { class: "TimeStampMicroTZ", javaType: "long", boxedType: "Long",
96 typeParams: [ {name: "timezone", type: "String"} ],
97 arrowType: "org.apache.arrow.vector.types.pojo.ArrowType.Timestamp",
98 arrowTypeConstructorParams: ["org.apache.arrow.vector.types.TimeUnit.MICROSECOND", "timezone"] },
99 { class: "TimeStampNanoTZ", javaType: "long", boxedType: "Long",
100 typeParams: [ {name: "timezone", type: "String"} ],
101 arrowType: "org.apache.arrow.vector.types.pojo.ArrowType.Timestamp",
102 arrowTypeConstructorParams: ["org.apache.arrow.vector.types.TimeUnit.NANOSECOND", "timezone"] },
103 { class: "TimeMicro" },
104 { class: "TimeNano" }
110 javaType: "ArrowBuf",
111 boxedType: "ArrowBuf",
113 { class: "IntervalDay", millisecondsOffset: 4, friendlyType: "Duration", fields: [ {name: "days", type:"int"}, {name: "milliseconds", type:"int"}] }
119 javaType: "ArrowBuf",
120 boxedType: "ArrowBuf",
122 { class: "IntervalMonthDayNano", daysOffset: 4, nanosecondsOffset: 8, friendlyType: "PeriodDuration", fields: [ {name: "months", type:"int"}, {name: "days", type:"int"}, {name: "nanoseconds", type:"long"}] }
129 javaType: "ArrowBuf",
130 boxedType: "ArrowBuf",
135 maxPrecisionDigits: 76, nDecimalDigits: 4, friendlyType: "BigDecimal",
136 typeParams: [ {name: "scale", type: "int"}, { name: "precision", type: "int"}],
137 arrowType: "org.apache.arrow.vector.types.pojo.ArrowType.Decimal",
138 fields: [{name: "start", type: "long"}, {name: "buffer", type: "ArrowBuf"}]
145 javaType: "ArrowBuf",
146 boxedType: "ArrowBuf",
151 maxPrecisionDigits: 38, nDecimalDigits: 4, friendlyType: "BigDecimal",
152 typeParams: [ {name: "scale", type: "int"}, { name: "precision", type: "int"}],
153 arrowType: "org.apache.arrow.vector.types.pojo.ArrowType.Decimal",
154 fields: [{name: "start", type: "long"}, {name: "buffer", type: "ArrowBuf"}]
163 boxedType: "ArrowBuf",
166 class: "FixedSizeBinary",
167 typeParams: [ {name: "byteWidth", type: "int"} ],
168 arrowType: "org.apache.arrow.vector.types.pojo.ArrowType.FixedSizeBinary",
169 friendlyType: "byte[]",
170 fields: [{name: "buffer", type: "ArrowBuf"}],
178 boxedType: "ArrowBuf",
179 fields: [{name: "start", type: "int"}, {name: "end", type: "int"}, {name: "buffer", type: "ArrowBuf"}],
181 { class: "VarBinary" , friendlyType: "byte[]" },
182 { class: "VarChar" , friendlyType: "Text" }
189 boxedType: "ArrowBuf",
190 fields: [{name: "start", type: "long"}, {name: "end", type: "long"}, {name: "buffer", type: "ArrowBuf"}],
192 { class: "LargeVarChar" , friendlyType: "Text" }
193 { class: "LargeVarBinary" , friendlyType: "byte[]" }
200 boxedType: "Integer",
202 { class: "Bit" , friendlyType: "Boolean", fields: [{name: "value", type: "int"}] }