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.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/ext/arrow/converters.hpp +3 -0
  3. data/ext/arrow/extconf.rb +6 -4
  4. data/lib/arrow/array-builder.rb +40 -6
  5. data/lib/arrow/array-computable.rb +37 -0
  6. data/lib/arrow/array.rb +16 -0
  7. data/lib/arrow/chunked-array.rb +21 -0
  8. data/lib/arrow/column.rb +28 -0
  9. data/lib/arrow/data-type.rb +2 -1
  10. data/lib/arrow/decimal128-array-builder.rb +16 -6
  11. data/lib/arrow/decimal128.rb +14 -0
  12. data/lib/arrow/decimal256-array-builder.rb +16 -6
  13. data/lib/arrow/decimal256.rb +14 -0
  14. data/lib/arrow/field.rb +44 -3
  15. data/lib/arrow/list-data-type.rb +1 -6
  16. data/lib/arrow/loader.rb +3 -0
  17. data/lib/arrow/string-array-builder.rb +30 -0
  18. data/lib/arrow/time-unit.rb +31 -0
  19. data/lib/arrow/time32-array-builder.rb +2 -14
  20. data/lib/arrow/time32-data-type.rb +9 -38
  21. data/lib/arrow/time64-array-builder.rb +2 -14
  22. data/lib/arrow/time64-data-type.rb +9 -38
  23. data/lib/arrow/timestamp-array-builder.rb +2 -14
  24. data/lib/arrow/timestamp-data-type.rb +9 -34
  25. data/lib/arrow/version.rb +1 -1
  26. data/red-arrow.gemspec +1 -1
  27. data/test/raw-records/test-dictionary-array.rb +341 -0
  28. data/test/test-array-builder.rb +62 -0
  29. data/test/test-chunked-array.rb +6 -0
  30. data/test/test-column.rb +31 -0
  31. data/test/test-decimal128-array-builder.rb +14 -0
  32. data/test/test-decimal128-array.rb +5 -2
  33. data/test/test-decimal128.rb +26 -2
  34. data/test/test-decimal256-array-builder.rb +14 -0
  35. data/test/test-decimal256-array.rb +5 -2
  36. data/test/test-decimal256.rb +26 -2
  37. data/test/test-field.rb +26 -0
  38. data/test/values/test-dictionary-array.rb +30 -0
  39. metadata +11 -6
@@ -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(data_type, values)
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
@@ -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: 8.0.0
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-05-07 00:00:00.000000000 Z
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: 2.0.3
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: 2.0.3
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>=8.0.0
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.4.0.dev
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