red-arrow 8.0.0 → 9.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 +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
|