red-arrow 8.0.0 → 9.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/ext/arrow/converters.hpp +3 -0
- data/ext/arrow/extconf.rb +6 -4
- data/lib/arrow/array-builder.rb +40 -6
- data/lib/arrow/array-computable.rb +37 -0
- data/lib/arrow/array.rb +16 -0
- data/lib/arrow/chunked-array.rb +21 -0
- data/lib/arrow/column.rb +28 -0
- data/lib/arrow/data-type.rb +2 -1
- data/lib/arrow/decimal128-array-builder.rb +16 -6
- data/lib/arrow/decimal128.rb +14 -0
- data/lib/arrow/decimal256-array-builder.rb +16 -6
- data/lib/arrow/decimal256.rb +14 -0
- data/lib/arrow/field.rb +44 -3
- data/lib/arrow/list-data-type.rb +1 -6
- data/lib/arrow/loader.rb +3 -0
- data/lib/arrow/string-array-builder.rb +30 -0
- data/lib/arrow/time-unit.rb +31 -0
- data/lib/arrow/time32-array-builder.rb +2 -14
- data/lib/arrow/time32-data-type.rb +9 -38
- data/lib/arrow/time64-array-builder.rb +2 -14
- data/lib/arrow/time64-data-type.rb +9 -38
- data/lib/arrow/timestamp-array-builder.rb +2 -14
- data/lib/arrow/timestamp-data-type.rb +9 -34
- data/lib/arrow/version.rb +1 -1
- data/red-arrow.gemspec +1 -1
- data/test/raw-records/test-dictionary-array.rb +341 -0
- data/test/test-array-builder.rb +62 -0
- data/test/test-chunked-array.rb +6 -0
- data/test/test-column.rb +31 -0
- data/test/test-decimal128-array-builder.rb +14 -0
- data/test/test-decimal128-array.rb +5 -2
- data/test/test-decimal128.rb +26 -2
- data/test/test-decimal256-array-builder.rb +14 -0
- data/test/test-decimal256-array.rb +5 -2
- data/test/test-decimal256.rb +26 -2
- data/test/test-field.rb +26 -0
- data/test/values/test-dictionary-array.rb +30 -0
- metadata +11 -6
data/test/test-decimal128.rb
CHANGED
@@ -28,9 +28,21 @@ class Decimal128Test < Test::Unit::TestCase
|
|
28
28
|
end
|
29
29
|
end
|
30
30
|
|
31
|
+
test("String") do
|
32
|
+
assert do
|
33
|
+
@decimal128 == "10.1"
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
test("Float") do
|
38
|
+
assert do
|
39
|
+
@decimal128 == 10.1
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
31
43
|
test("not Arrow::Decimal128") do
|
32
44
|
assert do
|
33
|
-
not (@decimal128 == 10.1)
|
45
|
+
not (@decimal128 == :"10.1")
|
34
46
|
end
|
35
47
|
end
|
36
48
|
end
|
@@ -42,9 +54,21 @@ class Decimal128Test < Test::Unit::TestCase
|
|
42
54
|
end
|
43
55
|
end
|
44
56
|
|
57
|
+
test("String") do
|
58
|
+
assert do
|
59
|
+
not (@decimal128 != "10.1")
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
test("Float") do
|
64
|
+
assert do
|
65
|
+
not (@decimal128 != 10.1)
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
45
69
|
test("not Arrow::Decimal128") do
|
46
70
|
assert do
|
47
|
-
@decimal128 != 10.1
|
71
|
+
@decimal128 != :"10.1"
|
48
72
|
end
|
49
73
|
end
|
50
74
|
end
|
@@ -55,6 +55,20 @@ class Decimal256ArrayBuilderTest < Test::Unit::TestCase
|
|
55
55
|
assert_equal(BigDecimal("10.1"),
|
56
56
|
array[0])
|
57
57
|
end
|
58
|
+
|
59
|
+
test("BigDecimal::NAN") do
|
60
|
+
message = "can't use NaN as an Arrow::Decimal256Array value"
|
61
|
+
assert_raise(FloatDomainError.new(message)) do
|
62
|
+
@builder.append_value(BigDecimal::NAN)
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
test("BigDecimal::INFINITY") do
|
67
|
+
message = "can't use Infinity as an Arrow::Decimal256Array value"
|
68
|
+
assert_raise(FloatDomainError.new(message)) do
|
69
|
+
@builder.append_value(BigDecimal::INFINITY)
|
70
|
+
end
|
71
|
+
end
|
58
72
|
end
|
59
73
|
|
60
74
|
sub_test_case("#append_values") do
|
@@ -18,19 +18,22 @@
|
|
18
18
|
class Decimal256ArrayTest < Test::Unit::TestCase
|
19
19
|
sub_test_case(".new") do
|
20
20
|
test("build") do
|
21
|
-
data_type = Arrow::Decimal256DataType.new(3, 1)
|
22
21
|
values = [
|
23
22
|
10.1,
|
24
23
|
nil,
|
25
24
|
"10.1",
|
26
25
|
BigDecimal("10.1"),
|
26
|
+
BigDecimal("1.11"),
|
27
|
+
BigDecimal("1"),
|
27
28
|
]
|
28
|
-
array = Arrow::Decimal256Array.new(
|
29
|
+
array = Arrow::Decimal256Array.new({precision: 3, scale: 1}, values)
|
29
30
|
assert_equal([
|
30
31
|
BigDecimal("10.1"),
|
31
32
|
nil,
|
32
33
|
BigDecimal("10.1"),
|
33
34
|
BigDecimal("10.1"),
|
35
|
+
BigDecimal("1.1"),
|
36
|
+
BigDecimal("1"),
|
34
37
|
],
|
35
38
|
array.to_a)
|
36
39
|
end
|
data/test/test-decimal256.rb
CHANGED
@@ -28,9 +28,21 @@ class Decimal256Test < Test::Unit::TestCase
|
|
28
28
|
end
|
29
29
|
end
|
30
30
|
|
31
|
+
test("String") do
|
32
|
+
assert do
|
33
|
+
@decimal256 == "10.1"
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
test("Float") do
|
38
|
+
assert do
|
39
|
+
@decimal256 == 10.1
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
31
43
|
test("not Arrow::Decimal256") do
|
32
44
|
assert do
|
33
|
-
not (@decimal256 == 10.1)
|
45
|
+
not (@decimal256 == :"10.1")
|
34
46
|
end
|
35
47
|
end
|
36
48
|
end
|
@@ -42,9 +54,21 @@ class Decimal256Test < Test::Unit::TestCase
|
|
42
54
|
end
|
43
55
|
end
|
44
56
|
|
57
|
+
test("String") do
|
58
|
+
assert do
|
59
|
+
not (@decimal256 != "10.1")
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
test("Float") do
|
64
|
+
assert do
|
65
|
+
not (@decimal256 != 10.1)
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
45
69
|
test("not Arrow::Decimal256") do
|
46
70
|
assert do
|
47
|
-
@decimal256 != 10.1
|
71
|
+
@decimal256 != :"10.1"
|
48
72
|
end
|
49
73
|
end
|
50
74
|
end
|
data/test/test-field.rb
CHANGED
@@ -22,6 +22,13 @@ class FieldTest < Test::Unit::TestCase
|
|
22
22
|
Arrow::Field.new("visible", Arrow::BooleanDataType.new).to_s)
|
23
23
|
end
|
24
24
|
|
25
|
+
test("String, Arrow::DataType, Boolean") do
|
26
|
+
assert_equal("visible: bool not null",
|
27
|
+
Arrow::Field.new("visible",
|
28
|
+
Arrow::BooleanDataType.new,
|
29
|
+
false).to_s)
|
30
|
+
end
|
31
|
+
|
25
32
|
test("Symbol, Arrow::DataType") do
|
26
33
|
assert_equal("visible: bool",
|
27
34
|
Arrow::Field.new(:visible, Arrow::BooleanDataType.new).to_s)
|
@@ -37,6 +44,18 @@ class FieldTest < Test::Unit::TestCase
|
|
37
44
|
Arrow::Field.new(:visible, type: :boolean).to_s)
|
38
45
|
end
|
39
46
|
|
47
|
+
test("String, Hash (:nullable)") do
|
48
|
+
assert_equal("visible: bool not null",
|
49
|
+
Arrow::Field.new(:visible,
|
50
|
+
type: :boolean,
|
51
|
+
nullable: false).to_s)
|
52
|
+
end
|
53
|
+
|
54
|
+
test("String, Hash, Boolean)") do
|
55
|
+
assert_equal("visible: bool not null",
|
56
|
+
Arrow::Field.new(:visible, {type: :boolean}, false).to_s)
|
57
|
+
end
|
58
|
+
|
40
59
|
test("description: String") do
|
41
60
|
assert_equal("visible: bool",
|
42
61
|
Arrow::Field.new(name: "visible",
|
@@ -55,6 +74,13 @@ class FieldTest < Test::Unit::TestCase
|
|
55
74
|
type: :boolean).to_s)
|
56
75
|
end
|
57
76
|
|
77
|
+
test("description: nullable") do
|
78
|
+
assert_equal("visible: bool not null",
|
79
|
+
Arrow::Field.new(name: :visible,
|
80
|
+
data_type: :boolean,
|
81
|
+
nullable: false).to_s)
|
82
|
+
end
|
83
|
+
|
58
84
|
test("Hash: shortcut: additional") do
|
59
85
|
description = {
|
60
86
|
name: :tags,
|
@@ -276,6 +276,36 @@ module ValuesDictionaryArrayTests
|
|
276
276
|
target = build(Arrow::Decimal256Array.new(data_type, values))
|
277
277
|
assert_equal(values, target.values)
|
278
278
|
end
|
279
|
+
|
280
|
+
def test_month_interval
|
281
|
+
values = [
|
282
|
+
1,
|
283
|
+
nil,
|
284
|
+
12,
|
285
|
+
]
|
286
|
+
target = build(Arrow::MonthIntervalArray.new(values))
|
287
|
+
assert_equal(values, target.values)
|
288
|
+
end
|
289
|
+
|
290
|
+
def test_day_time_interval
|
291
|
+
values = [
|
292
|
+
{day: 1, millisecond: 100},
|
293
|
+
nil,
|
294
|
+
{day: 2, millisecond: 300},
|
295
|
+
]
|
296
|
+
target = build(Arrow::DayTimeIntervalArray.new(values))
|
297
|
+
assert_equal(values, target.values)
|
298
|
+
end
|
299
|
+
|
300
|
+
def test_month_day_nano_interval
|
301
|
+
values = [
|
302
|
+
{month: 1, day: 1, nanosecond: 100},
|
303
|
+
nil,
|
304
|
+
{month: 2, day: 3, nanosecond: 400},
|
305
|
+
]
|
306
|
+
target = build(Arrow::MonthDayNanoIntervalArray.new(values))
|
307
|
+
assert_equal(values, target.values)
|
308
|
+
end
|
279
309
|
end
|
280
310
|
|
281
311
|
class ValuesArrayDictionaryArrayTest < Test::Unit::TestCase
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: red-arrow
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 9.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Apache Arrow Developers
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-08-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bigdecimal
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 3.1.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 3.1.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: extpp
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -109,6 +109,7 @@ files:
|
|
109
109
|
- lib/arrow/aggregate-node-options.rb
|
110
110
|
- lib/arrow/aggregation.rb
|
111
111
|
- lib/arrow/array-builder.rb
|
112
|
+
- lib/arrow/array-computable.rb
|
112
113
|
- lib/arrow/array.rb
|
113
114
|
- lib/arrow/bigdecimal-extension.rb
|
114
115
|
- lib/arrow/binary-dictionary-array-builder.rb
|
@@ -179,6 +180,7 @@ files:
|
|
179
180
|
- lib/arrow/sort-options.rb
|
180
181
|
- lib/arrow/source-node-options.rb
|
181
182
|
- lib/arrow/sparse-union-data-type.rb
|
183
|
+
- lib/arrow/string-array-builder.rb
|
182
184
|
- lib/arrow/string-dictionary-array-builder.rb
|
183
185
|
- lib/arrow/struct-array-builder.rb
|
184
186
|
- lib/arrow/struct-array.rb
|
@@ -192,6 +194,7 @@ files:
|
|
192
194
|
- lib/arrow/table-table-formatter.rb
|
193
195
|
- lib/arrow/table.rb
|
194
196
|
- lib/arrow/tensor.rb
|
197
|
+
- lib/arrow/time-unit.rb
|
195
198
|
- lib/arrow/time.rb
|
196
199
|
- lib/arrow/time32-array-builder.rb
|
197
200
|
- lib/arrow/time32-array.rb
|
@@ -219,6 +222,7 @@ files:
|
|
219
222
|
- test/helper/omittable.rb
|
220
223
|
- test/raw-records/test-basic-arrays.rb
|
221
224
|
- test/raw-records/test-dense-union-array.rb
|
225
|
+
- test/raw-records/test-dictionary-array.rb
|
222
226
|
- test/raw-records/test-list-array.rb
|
223
227
|
- test/raw-records/test-map-array.rb
|
224
228
|
- test/raw-records/test-multiple-columns.rb
|
@@ -303,7 +307,7 @@ homepage: https://arrow.apache.org/
|
|
303
307
|
licenses:
|
304
308
|
- Apache-2.0
|
305
309
|
metadata:
|
306
|
-
msys2_mingw_dependencies: arrow>=
|
310
|
+
msys2_mingw_dependencies: arrow>=9.0.0
|
307
311
|
post_install_message:
|
308
312
|
rdoc_options: []
|
309
313
|
require_paths:
|
@@ -319,7 +323,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
319
323
|
- !ruby/object:Gem::Version
|
320
324
|
version: '0'
|
321
325
|
requirements: []
|
322
|
-
rubygems_version: 3.
|
326
|
+
rubygems_version: 3.3.15
|
323
327
|
signing_key:
|
324
328
|
specification_version: 4
|
325
329
|
summary: Red Arrow is the Ruby bindings of Apache Arrow
|
@@ -338,6 +342,7 @@ test_files:
|
|
338
342
|
- test/helper.rb
|
339
343
|
- test/raw-records/test-basic-arrays.rb
|
340
344
|
- test/raw-records/test-dense-union-array.rb
|
345
|
+
- test/raw-records/test-dictionary-array.rb
|
341
346
|
- test/raw-records/test-list-array.rb
|
342
347
|
- test/raw-records/test-map-array.rb
|
343
348
|
- test/raw-records/test-multiple-columns.rb
|