]> git.proxmox.com Git - ceph.git/blob - ceph/src/arrow/java/vector/src/main/codegen/data/ValueVectorTypes.tdd
import quincy 17.2.0
[ceph.git] / ceph / src / arrow / java / vector / src / main / codegen / data / ValueVectorTypes.tdd
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
7 #
8 # http://www.apache.org/licenses/LICENSE-2.0
9 #
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.
15
16 {
17 modes: [
18 {name: "Optional", prefix: "Nullable"},
19 {name: "Required", prefix: ""}
20 ],
21 types: [
22 {
23 major: "Fixed",
24 width: 1,
25 javaType: "byte",
26 boxedType: "Byte",
27 fields: [{name: "value", type: "byte"}],
28 minor: [
29 { class: "TinyInt", valueHolder: "IntHolder" },
30 { class: "UInt1", valueHolder: "UInt1Holder" }
31 ]
32 },
33 {
34 major: "Fixed",
35 width: 2,
36 javaType: "char",
37 boxedType: "Character",
38 fields: [{name: "value", type: "char"}],
39 minor: [
40 { class: "UInt2", valueHolder: "UInt2Holder"}
41 ]
42 }, {
43 major: "Fixed",
44 width: 2,
45 javaType: "short",
46 boxedType: "Short",
47 fields: [{name: "value", type: "short"}],
48 minor: [
49 { class: "SmallInt", valueHolder: "Int2Holder"},
50 ]
51 },
52 {
53 major: "Fixed",
54 width: 4,
55 javaType: "int",
56 boxedType: "Integer",
57 fields: [{name: "value", type: "int"}],
58 minor: [
59 { class: "Int", valueHolder: "IntHolder"},
60 { class: "UInt4", valueHolder: "UInt4Holder" },
61 { class: "Float4", javaType: "float" , boxedType: "Float", fields: [{name: "value", type: "float"}]},
62 { class: "DateDay" },
63 { class: "IntervalYear", javaType: "int", friendlyType: "Period" },
64 { class: "TimeSec" },
65 { class: "TimeMilli", javaType: "int", friendlyType: "LocalDateTime" }
66 ]
67 },
68 {
69 major: "Fixed",
70 width: 8,
71 javaType: "long",
72 boxedType: "Long",
73 fields: [{name: "value", type: "long"}],
74 minor: [
75 { class: "BigInt"},
76 { class: "UInt8" },
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" }
105 ]
106 },
107 {
108 major: "Fixed",
109 width: 8,
110 javaType: "ArrowBuf",
111 boxedType: "ArrowBuf",
112 minor: [
113 { class: "IntervalDay", millisecondsOffset: 4, friendlyType: "Duration", fields: [ {name: "days", type:"int"}, {name: "milliseconds", type:"int"}] }
114 ]
115 },
116 {
117 major: "Fixed",
118 width: 16,
119 javaType: "ArrowBuf",
120 boxedType: "ArrowBuf",
121 minor: [
122 { class: "IntervalMonthDayNano", daysOffset: 4, nanosecondsOffset: 8, friendlyType: "PeriodDuration", fields: [ {name: "months", type:"int"}, {name: "days", type:"int"}, {name: "nanoseconds", type:"long"}] }
123 ]
124 },
125
126 {
127 major: "Fixed",
128 width: 32,
129 javaType: "ArrowBuf",
130 boxedType: "ArrowBuf",
131
132 minor: [
133 {
134 class: "Decimal256",
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"}]
139 }
140 ]
141 },
142 {
143 major: "Fixed",
144 width: 16,
145 javaType: "ArrowBuf",
146 boxedType: "ArrowBuf",
147
148 minor: [
149 {
150 class: "Decimal",
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"}]
155 }
156 ]
157 },
158
159 {
160 major: "Fixed",
161 width: -1,
162 javaType: "byte[]",
163 boxedType: "ArrowBuf",
164 minor: [
165 {
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"}],
171 }
172 ]
173 },
174 {
175 major: "VarLen",
176 width: 4,
177 javaType: "int",
178 boxedType: "ArrowBuf",
179 fields: [{name: "start", type: "int"}, {name: "end", type: "int"}, {name: "buffer", type: "ArrowBuf"}],
180 minor: [
181 { class: "VarBinary" , friendlyType: "byte[]" },
182 { class: "VarChar" , friendlyType: "Text" }
183 ]
184 },
185 {
186 major: "VarLen",
187 width: 8,
188 javaType: "long",
189 boxedType: "ArrowBuf",
190 fields: [{name: "start", type: "long"}, {name: "end", type: "long"}, {name: "buffer", type: "ArrowBuf"}],
191 minor: [
192 { class: "LargeVarChar" , friendlyType: "Text" }
193 { class: "LargeVarBinary" , friendlyType: "byte[]" }
194 ]
195 },
196 {
197 major: "Bit",
198 width: 1,
199 javaType: "int",
200 boxedType: "Integer",
201 minor: [
202 { class: "Bit" , friendlyType: "Boolean", fields: [{name: "value", type: "int"}] }
203 ]
204 }
205 ]
206 }