red-arrow 0.17.1 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/ext/arrow/converters.hpp +60 -30
- data/ext/arrow/raw-records.cpp +2 -1
- data/ext/arrow/values.cpp +2 -1
- data/lib/arrow/buffer.rb +28 -0
- data/lib/arrow/dictionary-array.rb +24 -0
- data/lib/arrow/loader.rb +3 -0
- data/lib/arrow/raw-table-converter.rb +47 -0
- data/lib/arrow/record-batch-iterator.rb +22 -0
- data/lib/arrow/record-batch.rb +9 -1
- data/lib/arrow/struct-array-builder.rb +13 -7
- data/lib/arrow/table-saver.rb +6 -6
- data/lib/arrow/table.rb +5 -24
- data/lib/arrow/version.rb +1 -1
- data/test/raw-records/test-dense-union-array.rb +1 -34
- data/test/raw-records/test-sparse-union-array.rb +1 -33
- data/test/test-buffer.rb +11 -0
- data/test/test-dense-union-data-type.rb +2 -2
- data/test/test-dictionary-array.rb +41 -0
- data/test/test-feather.rb +1 -1
- data/test/test-record-batch-iterator.rb +37 -0
- data/test/test-record-batch.rb +14 -0
- data/test/test-sparse-union-data-type.rb +2 -2
- data/test/test-struct-array-builder.rb +8 -4
- data/test/values/test-dense-union-array.rb +1 -34
- data/test/values/test-sparse-union-array.rb +1 -33
- metadata +14 -6
data/lib/arrow/table-saver.rb
CHANGED
@@ -155,13 +155,13 @@ module Arrow
|
|
155
155
|
end
|
156
156
|
|
157
157
|
def save_as_feather
|
158
|
+
properties = FeatherWriteProperties.new
|
159
|
+
properties.class.properties.each do |name|
|
160
|
+
value = @options[name.to_sym]
|
161
|
+
next if value.nil?
|
162
|
+
properties.__send__("#{name}=", value)
|
163
|
+
end
|
158
164
|
open_raw_output_stream do |output|
|
159
|
-
properties = FeatherWriteProperties.new
|
160
|
-
properties.class.properties.each do |name|
|
161
|
-
value = @options[name.to_sym]
|
162
|
-
next if value.nil?
|
163
|
-
properties.__send__("#{name}=", value)
|
164
|
-
end
|
165
165
|
@table.write_as_feather(output, properties)
|
166
166
|
end
|
167
167
|
end
|
data/lib/arrow/table.rb
CHANGED
@@ -15,6 +15,8 @@
|
|
15
15
|
# specific language governing permissions and limitations
|
16
16
|
# under the License.
|
17
17
|
|
18
|
+
require "arrow/raw-table-converter"
|
19
|
+
|
18
20
|
module Arrow
|
19
21
|
class Table
|
20
22
|
include ColumnContainable
|
@@ -81,14 +83,6 @@ module Arrow
|
|
81
83
|
# `Array`.
|
82
84
|
#
|
83
85
|
# @example Create a table from column name and values
|
84
|
-
# count_chunks = [
|
85
|
-
# Arrow::UInt32Array.new([0, 2]),
|
86
|
-
# Arrow::UInt32Array.new([nil, 4]),
|
87
|
-
# ]
|
88
|
-
# visible_chunks = [
|
89
|
-
# Arrow::BooleanArray.new([true]),
|
90
|
-
# Arrow::BooleanArray.new([nil, nil, false]),
|
91
|
-
# ]
|
92
86
|
# Arrow::Table.new("count" => [0, 2, nil, 4],
|
93
87
|
# "visible" => [true, nil, nil, false])
|
94
88
|
#
|
@@ -169,22 +163,9 @@ module Arrow
|
|
169
163
|
n_args = args.size
|
170
164
|
case n_args
|
171
165
|
when 1
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
values = columns.collect(&:data)
|
176
|
-
schema = Schema.new(fields)
|
177
|
-
else
|
178
|
-
raw_table = args[0]
|
179
|
-
fields = []
|
180
|
-
values = []
|
181
|
-
raw_table.each do |name, array|
|
182
|
-
array = ArrayBuilder.build(array) if array.is_a?(::Array)
|
183
|
-
fields << Field.new(name.to_s, array.value_data_type)
|
184
|
-
values << array
|
185
|
-
end
|
186
|
-
schema = Schema.new(fields)
|
187
|
-
end
|
166
|
+
raw_table_converter = RawTableConverter.new(args[0])
|
167
|
+
schema = raw_table_converter.schema
|
168
|
+
values = raw_table_converter.values
|
188
169
|
when 2
|
189
170
|
schema = args[0]
|
190
171
|
schema = Schema.new(schema) unless schema.is_a?(Schema)
|
data/lib/arrow/version.rb
CHANGED
@@ -56,10 +56,7 @@ module RawRecordsDenseUnionArrayTests
|
|
56
56
|
end
|
57
57
|
records.each do |record|
|
58
58
|
column = record[0]
|
59
|
-
if column.
|
60
|
-
type_ids << nil
|
61
|
-
offsets << 0
|
62
|
-
elsif column.key?("0")
|
59
|
+
if column.key?("0")
|
63
60
|
type_id = type_codes[0]
|
64
61
|
type_ids << type_id
|
65
62
|
offsets << (type_ids.count(type_id) - 1)
|
@@ -82,7 +79,6 @@ module RawRecordsDenseUnionArrayTests
|
|
82
79
|
def test_null
|
83
80
|
records = [
|
84
81
|
[{"0" => nil}],
|
85
|
-
[nil],
|
86
82
|
]
|
87
83
|
target = build(:null, records)
|
88
84
|
assert_equal(records, target.raw_records)
|
@@ -91,7 +87,6 @@ module RawRecordsDenseUnionArrayTests
|
|
91
87
|
def test_boolean
|
92
88
|
records = [
|
93
89
|
[{"0" => true}],
|
94
|
-
[nil],
|
95
90
|
[{"1" => nil}],
|
96
91
|
]
|
97
92
|
target = build(:boolean, records)
|
@@ -101,7 +96,6 @@ module RawRecordsDenseUnionArrayTests
|
|
101
96
|
def test_int8
|
102
97
|
records = [
|
103
98
|
[{"0" => -(2 ** 7)}],
|
104
|
-
[nil],
|
105
99
|
[{"1" => nil}],
|
106
100
|
]
|
107
101
|
target = build(:int8, records)
|
@@ -111,7 +105,6 @@ module RawRecordsDenseUnionArrayTests
|
|
111
105
|
def test_uint8
|
112
106
|
records = [
|
113
107
|
[{"0" => (2 ** 8) - 1}],
|
114
|
-
[nil],
|
115
108
|
[{"1" => nil}],
|
116
109
|
]
|
117
110
|
target = build(:uint8, records)
|
@@ -121,7 +114,6 @@ module RawRecordsDenseUnionArrayTests
|
|
121
114
|
def test_int16
|
122
115
|
records = [
|
123
116
|
[{"0" => -(2 ** 15)}],
|
124
|
-
[nil],
|
125
117
|
[{"1" => nil}],
|
126
118
|
]
|
127
119
|
target = build(:int16, records)
|
@@ -131,7 +123,6 @@ module RawRecordsDenseUnionArrayTests
|
|
131
123
|
def test_uint16
|
132
124
|
records = [
|
133
125
|
[{"0" => (2 ** 16) - 1}],
|
134
|
-
[nil],
|
135
126
|
[{"1" => nil}],
|
136
127
|
]
|
137
128
|
target = build(:uint16, records)
|
@@ -141,7 +132,6 @@ module RawRecordsDenseUnionArrayTests
|
|
141
132
|
def test_int32
|
142
133
|
records = [
|
143
134
|
[{"0" => -(2 ** 31)}],
|
144
|
-
[nil],
|
145
135
|
[{"1" => nil}],
|
146
136
|
]
|
147
137
|
target = build(:int32, records)
|
@@ -151,7 +141,6 @@ module RawRecordsDenseUnionArrayTests
|
|
151
141
|
def test_uint32
|
152
142
|
records = [
|
153
143
|
[{"0" => (2 ** 32) - 1}],
|
154
|
-
[nil],
|
155
144
|
[{"1" => nil}],
|
156
145
|
]
|
157
146
|
target = build(:uint32, records)
|
@@ -161,7 +150,6 @@ module RawRecordsDenseUnionArrayTests
|
|
161
150
|
def test_int64
|
162
151
|
records = [
|
163
152
|
[{"0" => -(2 ** 63)}],
|
164
|
-
[nil],
|
165
153
|
[{"1" => nil}],
|
166
154
|
]
|
167
155
|
target = build(:int64, records)
|
@@ -171,7 +159,6 @@ module RawRecordsDenseUnionArrayTests
|
|
171
159
|
def test_uint64
|
172
160
|
records = [
|
173
161
|
[{"0" => (2 ** 64) - 1}],
|
174
|
-
[nil],
|
175
162
|
[{"1" => nil}],
|
176
163
|
]
|
177
164
|
target = build(:uint64, records)
|
@@ -181,7 +168,6 @@ module RawRecordsDenseUnionArrayTests
|
|
181
168
|
def test_float
|
182
169
|
records = [
|
183
170
|
[{"0" => -1.0}],
|
184
|
-
[nil],
|
185
171
|
[{"1" => nil}],
|
186
172
|
]
|
187
173
|
target = build(:float, records)
|
@@ -191,7 +177,6 @@ module RawRecordsDenseUnionArrayTests
|
|
191
177
|
def test_double
|
192
178
|
records = [
|
193
179
|
[{"0" => -1.0}],
|
194
|
-
[nil],
|
195
180
|
[{"1" => nil}],
|
196
181
|
]
|
197
182
|
target = build(:double, records)
|
@@ -201,7 +186,6 @@ module RawRecordsDenseUnionArrayTests
|
|
201
186
|
def test_binary
|
202
187
|
records = [
|
203
188
|
[{"0" => "\xff".b}],
|
204
|
-
[nil],
|
205
189
|
[{"1" => nil}],
|
206
190
|
]
|
207
191
|
target = build(:binary, records)
|
@@ -211,7 +195,6 @@ module RawRecordsDenseUnionArrayTests
|
|
211
195
|
def test_string
|
212
196
|
records = [
|
213
197
|
[{"0" => "Ruby"}],
|
214
|
-
[nil],
|
215
198
|
[{"1" => nil}],
|
216
199
|
]
|
217
200
|
target = build(:string, records)
|
@@ -221,7 +204,6 @@ module RawRecordsDenseUnionArrayTests
|
|
221
204
|
def test_date32
|
222
205
|
records = [
|
223
206
|
[{"0" => Date.new(1960, 1, 1)}],
|
224
|
-
[nil],
|
225
207
|
[{"1" => nil}],
|
226
208
|
]
|
227
209
|
target = build(:date32, records)
|
@@ -231,7 +213,6 @@ module RawRecordsDenseUnionArrayTests
|
|
231
213
|
def test_date64
|
232
214
|
records = [
|
233
215
|
[{"0" => DateTime.new(1960, 1, 1, 2, 9, 30)}],
|
234
|
-
[nil],
|
235
216
|
[{"1" => nil}],
|
236
217
|
]
|
237
218
|
target = build(:date64, records)
|
@@ -241,7 +222,6 @@ module RawRecordsDenseUnionArrayTests
|
|
241
222
|
def test_timestamp_second
|
242
223
|
records = [
|
243
224
|
[{"0" => Time.parse("1960-01-01T02:09:30Z")}],
|
244
|
-
[nil],
|
245
225
|
[{"1" => nil}],
|
246
226
|
]
|
247
227
|
target = build({
|
@@ -255,7 +235,6 @@ module RawRecordsDenseUnionArrayTests
|
|
255
235
|
def test_timestamp_milli
|
256
236
|
records = [
|
257
237
|
[{"0" => Time.parse("1960-01-01T02:09:30.123Z")}],
|
258
|
-
[nil],
|
259
238
|
[{"1" => nil}],
|
260
239
|
]
|
261
240
|
target = build({
|
@@ -269,7 +248,6 @@ module RawRecordsDenseUnionArrayTests
|
|
269
248
|
def test_timestamp_micro
|
270
249
|
records = [
|
271
250
|
[{"0" => Time.parse("1960-01-01T02:09:30.123456Z")}],
|
272
|
-
[nil],
|
273
251
|
[{"1" => nil}],
|
274
252
|
]
|
275
253
|
target = build({
|
@@ -283,7 +261,6 @@ module RawRecordsDenseUnionArrayTests
|
|
283
261
|
def test_timestamp_nano
|
284
262
|
records = [
|
285
263
|
[{"0" => Time.parse("1960-01-01T02:09:30.123456789Z")}],
|
286
|
-
[nil],
|
287
264
|
[{"1" => nil}],
|
288
265
|
]
|
289
266
|
target = build({
|
@@ -299,7 +276,6 @@ module RawRecordsDenseUnionArrayTests
|
|
299
276
|
records = [
|
300
277
|
# 00:10:00
|
301
278
|
[{"0" => Arrow::Time.new(unit, 60 * 10)}],
|
302
|
-
[nil],
|
303
279
|
[{"1" => nil}],
|
304
280
|
]
|
305
281
|
target = build({
|
@@ -315,7 +291,6 @@ module RawRecordsDenseUnionArrayTests
|
|
315
291
|
records = [
|
316
292
|
# 00:10:00.123
|
317
293
|
[{"0" => Arrow::Time.new(unit, (60 * 10) * 1000 + 123)}],
|
318
|
-
[nil],
|
319
294
|
[{"1" => nil}],
|
320
295
|
]
|
321
296
|
target = build({
|
@@ -331,7 +306,6 @@ module RawRecordsDenseUnionArrayTests
|
|
331
306
|
records = [
|
332
307
|
# 00:10:00.123456
|
333
308
|
[{"0" => Arrow::Time.new(unit, (60 * 10) * 1_000_000 + 123_456)}],
|
334
|
-
[nil],
|
335
309
|
[{"1" => nil}],
|
336
310
|
]
|
337
311
|
target = build({
|
@@ -347,7 +321,6 @@ module RawRecordsDenseUnionArrayTests
|
|
347
321
|
records = [
|
348
322
|
# 00:10:00.123456789
|
349
323
|
[{"0" => Arrow::Time.new(unit, (60 * 10) * 1_000_000_000 + 123_456_789)}],
|
350
|
-
[nil],
|
351
324
|
[{"1" => nil}],
|
352
325
|
]
|
353
326
|
target = build({
|
@@ -361,7 +334,6 @@ module RawRecordsDenseUnionArrayTests
|
|
361
334
|
def test_decimal128
|
362
335
|
records = [
|
363
336
|
[{"0" => BigDecimal("92.92")}],
|
364
|
-
[nil],
|
365
337
|
[{"1" => nil}],
|
366
338
|
]
|
367
339
|
target = build({
|
@@ -376,7 +348,6 @@ module RawRecordsDenseUnionArrayTests
|
|
376
348
|
def test_list
|
377
349
|
records = [
|
378
350
|
[{"0" => [true, nil, false]}],
|
379
|
-
[nil],
|
380
351
|
[{"1" => nil}],
|
381
352
|
]
|
382
353
|
target = build({
|
@@ -393,7 +364,6 @@ module RawRecordsDenseUnionArrayTests
|
|
393
364
|
def test_struct
|
394
365
|
records = [
|
395
366
|
[{"0" => {"sub_field" => true}}],
|
396
|
-
[nil],
|
397
367
|
[{"1" => nil}],
|
398
368
|
[{"0" => {"sub_field" => nil}}],
|
399
369
|
]
|
@@ -414,7 +384,6 @@ module RawRecordsDenseUnionArrayTests
|
|
414
384
|
omit("Need to add support for SparseUnionArrayBuilder")
|
415
385
|
records = [
|
416
386
|
[{"0" => {"field1" => true}}],
|
417
|
-
[nil],
|
418
387
|
[{"1" => nil}],
|
419
388
|
[{"0" => {"field2" => nil}}],
|
420
389
|
]
|
@@ -440,7 +409,6 @@ module RawRecordsDenseUnionArrayTests
|
|
440
409
|
omit("Need to add support for DenseUnionArrayBuilder")
|
441
410
|
records = [
|
442
411
|
[{"0" => {"field1" => true}}],
|
443
|
-
[nil],
|
444
412
|
[{"1" => nil}],
|
445
413
|
[{"0" => {"field2" => nil}}],
|
446
414
|
]
|
@@ -466,7 +434,6 @@ module RawRecordsDenseUnionArrayTests
|
|
466
434
|
omit("Need to add support for DictionaryArrayBuilder")
|
467
435
|
records = [
|
468
436
|
[{"0" => "Ruby"}],
|
469
|
-
[nil],
|
470
437
|
[{"1" => nil}],
|
471
438
|
[{"0" => "GLib"}],
|
472
439
|
]
|
@@ -51,9 +51,7 @@ module RawRecordsSparseUnionArrayTests
|
|
51
51
|
end
|
52
52
|
records.each do |record|
|
53
53
|
column = record[0]
|
54
|
-
if column.
|
55
|
-
type_ids << nil
|
56
|
-
elsif column.key?("0")
|
54
|
+
if column.key?("0")
|
57
55
|
type_ids << type_codes[0]
|
58
56
|
elsif column.key?("1")
|
59
57
|
type_ids << type_codes[1]
|
@@ -71,7 +69,6 @@ module RawRecordsSparseUnionArrayTests
|
|
71
69
|
def test_null
|
72
70
|
records = [
|
73
71
|
[{"0" => nil}],
|
74
|
-
[nil],
|
75
72
|
]
|
76
73
|
target = build(:null, records)
|
77
74
|
assert_equal(records, target.raw_records)
|
@@ -80,7 +77,6 @@ module RawRecordsSparseUnionArrayTests
|
|
80
77
|
def test_boolean
|
81
78
|
records = [
|
82
79
|
[{"0" => true}],
|
83
|
-
[nil],
|
84
80
|
[{"1" => nil}],
|
85
81
|
]
|
86
82
|
target = build(:boolean, records)
|
@@ -90,7 +86,6 @@ module RawRecordsSparseUnionArrayTests
|
|
90
86
|
def test_int8
|
91
87
|
records = [
|
92
88
|
[{"0" => -(2 ** 7)}],
|
93
|
-
[nil],
|
94
89
|
[{"1" => nil}],
|
95
90
|
]
|
96
91
|
target = build(:int8, records)
|
@@ -100,7 +95,6 @@ module RawRecordsSparseUnionArrayTests
|
|
100
95
|
def test_uint8
|
101
96
|
records = [
|
102
97
|
[{"0" => (2 ** 8) - 1}],
|
103
|
-
[nil],
|
104
98
|
[{"1" => nil}],
|
105
99
|
]
|
106
100
|
target = build(:uint8, records)
|
@@ -110,7 +104,6 @@ module RawRecordsSparseUnionArrayTests
|
|
110
104
|
def test_int16
|
111
105
|
records = [
|
112
106
|
[{"0" => -(2 ** 15)}],
|
113
|
-
[nil],
|
114
107
|
[{"1" => nil}],
|
115
108
|
]
|
116
109
|
target = build(:int16, records)
|
@@ -120,7 +113,6 @@ module RawRecordsSparseUnionArrayTests
|
|
120
113
|
def test_uint16
|
121
114
|
records = [
|
122
115
|
[{"0" => (2 ** 16) - 1}],
|
123
|
-
[nil],
|
124
116
|
[{"1" => nil}],
|
125
117
|
]
|
126
118
|
target = build(:uint16, records)
|
@@ -130,7 +122,6 @@ module RawRecordsSparseUnionArrayTests
|
|
130
122
|
def test_int32
|
131
123
|
records = [
|
132
124
|
[{"0" => -(2 ** 31)}],
|
133
|
-
[nil],
|
134
125
|
[{"1" => nil}],
|
135
126
|
]
|
136
127
|
target = build(:int32, records)
|
@@ -140,7 +131,6 @@ module RawRecordsSparseUnionArrayTests
|
|
140
131
|
def test_uint32
|
141
132
|
records = [
|
142
133
|
[{"0" => (2 ** 32) - 1}],
|
143
|
-
[nil],
|
144
134
|
[{"1" => nil}],
|
145
135
|
]
|
146
136
|
target = build(:uint32, records)
|
@@ -150,7 +140,6 @@ module RawRecordsSparseUnionArrayTests
|
|
150
140
|
def test_int64
|
151
141
|
records = [
|
152
142
|
[{"0" => -(2 ** 63)}],
|
153
|
-
[nil],
|
154
143
|
[{"1" => nil}],
|
155
144
|
]
|
156
145
|
target = build(:int64, records)
|
@@ -160,7 +149,6 @@ module RawRecordsSparseUnionArrayTests
|
|
160
149
|
def test_uint64
|
161
150
|
records = [
|
162
151
|
[{"0" => (2 ** 64) - 1}],
|
163
|
-
[nil],
|
164
152
|
[{"1" => nil}],
|
165
153
|
]
|
166
154
|
target = build(:uint64, records)
|
@@ -170,7 +158,6 @@ module RawRecordsSparseUnionArrayTests
|
|
170
158
|
def test_float
|
171
159
|
records = [
|
172
160
|
[{"0" => -1.0}],
|
173
|
-
[nil],
|
174
161
|
[{"1" => nil}],
|
175
162
|
]
|
176
163
|
target = build(:float, records)
|
@@ -180,7 +167,6 @@ module RawRecordsSparseUnionArrayTests
|
|
180
167
|
def test_double
|
181
168
|
records = [
|
182
169
|
[{"0" => -1.0}],
|
183
|
-
[nil],
|
184
170
|
[{"1" => nil}],
|
185
171
|
]
|
186
172
|
target = build(:double, records)
|
@@ -190,7 +176,6 @@ module RawRecordsSparseUnionArrayTests
|
|
190
176
|
def test_binary
|
191
177
|
records = [
|
192
178
|
[{"0" => "\xff".b}],
|
193
|
-
[nil],
|
194
179
|
[{"1" => nil}],
|
195
180
|
]
|
196
181
|
target = build(:binary, records)
|
@@ -200,7 +185,6 @@ module RawRecordsSparseUnionArrayTests
|
|
200
185
|
def test_string
|
201
186
|
records = [
|
202
187
|
[{"0" => "Ruby"}],
|
203
|
-
[nil],
|
204
188
|
[{"1" => nil}],
|
205
189
|
]
|
206
190
|
target = build(:string, records)
|
@@ -210,7 +194,6 @@ module RawRecordsSparseUnionArrayTests
|
|
210
194
|
def test_date32
|
211
195
|
records = [
|
212
196
|
[{"0" => Date.new(1960, 1, 1)}],
|
213
|
-
[nil],
|
214
197
|
[{"1" => nil}],
|
215
198
|
]
|
216
199
|
target = build(:date32, records)
|
@@ -220,7 +203,6 @@ module RawRecordsSparseUnionArrayTests
|
|
220
203
|
def test_date64
|
221
204
|
records = [
|
222
205
|
[{"0" => DateTime.new(1960, 1, 1, 2, 9, 30)}],
|
223
|
-
[nil],
|
224
206
|
[{"1" => nil}],
|
225
207
|
]
|
226
208
|
target = build(:date64, records)
|
@@ -230,7 +212,6 @@ module RawRecordsSparseUnionArrayTests
|
|
230
212
|
def test_timestamp_second
|
231
213
|
records = [
|
232
214
|
[{"0" => Time.parse("1960-01-01T02:09:30Z")}],
|
233
|
-
[nil],
|
234
215
|
[{"1" => nil}],
|
235
216
|
]
|
236
217
|
target = build({
|
@@ -244,7 +225,6 @@ module RawRecordsSparseUnionArrayTests
|
|
244
225
|
def test_timestamp_milli
|
245
226
|
records = [
|
246
227
|
[{"0" => Time.parse("1960-01-01T02:09:30.123Z")}],
|
247
|
-
[nil],
|
248
228
|
[{"1" => nil}],
|
249
229
|
]
|
250
230
|
target = build({
|
@@ -258,7 +238,6 @@ module RawRecordsSparseUnionArrayTests
|
|
258
238
|
def test_timestamp_micro
|
259
239
|
records = [
|
260
240
|
[{"0" => Time.parse("1960-01-01T02:09:30.123456Z")}],
|
261
|
-
[nil],
|
262
241
|
[{"1" => nil}],
|
263
242
|
]
|
264
243
|
target = build({
|
@@ -272,7 +251,6 @@ module RawRecordsSparseUnionArrayTests
|
|
272
251
|
def test_timestamp_nano
|
273
252
|
records = [
|
274
253
|
[{"0" => Time.parse("1960-01-01T02:09:30.123456789Z")}],
|
275
|
-
[nil],
|
276
254
|
[{"1" => nil}],
|
277
255
|
]
|
278
256
|
target = build({
|
@@ -288,7 +266,6 @@ module RawRecordsSparseUnionArrayTests
|
|
288
266
|
records = [
|
289
267
|
# 00:10:00
|
290
268
|
[{"0" => Arrow::Time.new(unit, 60 * 10)}],
|
291
|
-
[nil],
|
292
269
|
[{"1" => nil}],
|
293
270
|
]
|
294
271
|
target = build({
|
@@ -304,7 +281,6 @@ module RawRecordsSparseUnionArrayTests
|
|
304
281
|
records = [
|
305
282
|
# 00:10:00.123
|
306
283
|
[{"0" => Arrow::Time.new(unit, (60 * 10) * 1000 + 123)}],
|
307
|
-
[nil],
|
308
284
|
[{"1" => nil}],
|
309
285
|
]
|
310
286
|
target = build({
|
@@ -320,7 +296,6 @@ module RawRecordsSparseUnionArrayTests
|
|
320
296
|
records = [
|
321
297
|
# 00:10:00.123456
|
322
298
|
[{"0" => Arrow::Time.new(unit, (60 * 10) * 1_000_000 + 123_456)}],
|
323
|
-
[nil],
|
324
299
|
[{"1" => nil}],
|
325
300
|
]
|
326
301
|
target = build({
|
@@ -336,7 +311,6 @@ module RawRecordsSparseUnionArrayTests
|
|
336
311
|
records = [
|
337
312
|
# 00:10:00.123456789
|
338
313
|
[{"0" => Arrow::Time.new(unit, (60 * 10) * 1_000_000_000 + 123_456_789)}],
|
339
|
-
[nil],
|
340
314
|
[{"1" => nil}],
|
341
315
|
]
|
342
316
|
target = build({
|
@@ -350,7 +324,6 @@ module RawRecordsSparseUnionArrayTests
|
|
350
324
|
def test_decimal128
|
351
325
|
records = [
|
352
326
|
[{"0" => BigDecimal("92.92")}],
|
353
|
-
[nil],
|
354
327
|
[{"1" => nil}],
|
355
328
|
]
|
356
329
|
target = build({
|
@@ -365,7 +338,6 @@ module RawRecordsSparseUnionArrayTests
|
|
365
338
|
def test_list
|
366
339
|
records = [
|
367
340
|
[{"0" => [true, nil, false]}],
|
368
|
-
[nil],
|
369
341
|
[{"1" => nil}],
|
370
342
|
]
|
371
343
|
target = build({
|
@@ -382,7 +354,6 @@ module RawRecordsSparseUnionArrayTests
|
|
382
354
|
def test_struct
|
383
355
|
records = [
|
384
356
|
[{"0" => {"sub_field" => true}}],
|
385
|
-
[nil],
|
386
357
|
[{"1" => nil}],
|
387
358
|
[{"0" => {"sub_field" => nil}}],
|
388
359
|
]
|
@@ -403,7 +374,6 @@ module RawRecordsSparseUnionArrayTests
|
|
403
374
|
omit("Need to add support for SparseUnionArrayBuilder")
|
404
375
|
records = [
|
405
376
|
[{"0" => {"field1" => true}}],
|
406
|
-
[nil],
|
407
377
|
[{"1" => nil}],
|
408
378
|
[{"0" => {"field2" => nil}}],
|
409
379
|
]
|
@@ -429,7 +399,6 @@ module RawRecordsSparseUnionArrayTests
|
|
429
399
|
omit("Need to add support for DenseUnionArrayBuilder")
|
430
400
|
records = [
|
431
401
|
[{"0" => {"field1" => true}}],
|
432
|
-
[nil],
|
433
402
|
[{"1" => nil}],
|
434
403
|
[{"0" => {"field2" => nil}}],
|
435
404
|
]
|
@@ -455,7 +424,6 @@ module RawRecordsSparseUnionArrayTests
|
|
455
424
|
omit("Need to add support for DictionaryArrayBuilder")
|
456
425
|
records = [
|
457
426
|
[{"0" => "Ruby"}],
|
458
|
-
[nil],
|
459
427
|
[{"1" => nil}],
|
460
428
|
[{"0" => "GLib"}],
|
461
429
|
]
|