Skip to content

Commit 4286a2e

Browse files
committed
Use int64 for integer on SQLite
1 parent b30f997 commit 4286a2e

2 files changed

Lines changed: 11 additions & 8 deletions

File tree

lib/arrow-activerecord/arrowable.rb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,9 @@ def extract_arrow_data_type(column)
4949
type = :bigint
5050
else
5151
type = column.type
52+
if type == :integer and model.adapter_class::ADAPTER_NAME == "SQLite"
53+
type = :bigint
54+
end
5255
end
5356
end
5457
case type

test/arrowable_test.rb

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@ class Data < ActiveRecord::Base
4343
test "one column" do
4444
table = Data.all.select(:id).to_arrow(batch_size: 1)
4545
assert_equal([
46-
Arrow::RecordBatch.new(id: Arrow::Int32Array.new([1])),
47-
Arrow::RecordBatch.new(id: Arrow::Int32Array.new([2])),
46+
Arrow::RecordBatch.new(id: Arrow::Int64Array.new([1])),
47+
Arrow::RecordBatch.new(id: Arrow::Int64Array.new([2])),
4848
],
4949
table.each_record_batch.to_a)
5050
end
@@ -53,7 +53,7 @@ class Data < ActiveRecord::Base
5353
table = Data.all.to_arrow(batch_size: 1)
5454
assert_equal([
5555
Arrow::RecordBatch.new(
56-
id: Arrow::Int32Array.new([1]),
56+
id: Arrow::Int64Array.new([1]),
5757
string_column: Arrow::StringArray.new(["Hello"]),
5858
date_column: Arrow::Date32Array.new([@date_value]),
5959
datetime_column: Arrow::TimestampArray.new(
@@ -65,7 +65,7 @@ class Data < ActiveRecord::Base
6565
Arrow::Int64Array.new([@max_bigint_value]),
6666
),
6767
Arrow::RecordBatch.new(
68-
id: Arrow::Int32Array.new([2]),
68+
id: Arrow::Int64Array.new([2]),
6969
string_column: Arrow::StringArray.new(["Hello2"]),
7070
date_column: Arrow::Date32Array.new([@date_value + 1]),
7171
datetime_column: Arrow::TimestampArray.new(
@@ -86,8 +86,8 @@ class Data < ActiveRecord::Base
8686
record_batches =
8787
Data.all.select(:id).each_record_batch(batch_size: 1).to_a
8888
assert_equal([
89-
Arrow::RecordBatch.new(id: Arrow::Int32Array.new([1])),
90-
Arrow::RecordBatch.new(id: Arrow::Int32Array.new([2])),
89+
Arrow::RecordBatch.new(id: Arrow::Int64Array.new([1])),
90+
Arrow::RecordBatch.new(id: Arrow::Int64Array.new([2])),
9191
],
9292
record_batches)
9393
end
@@ -96,7 +96,7 @@ class Data < ActiveRecord::Base
9696
record_batches = Data.all.each_record_batch(batch_size: 1).to_a
9797
assert_equal([
9898
Arrow::RecordBatch.new(
99-
id: Arrow::Int32Array.new([1]),
99+
id: Arrow::Int64Array.new([1]),
100100
string_column: Arrow::StringArray.new(["Hello"]),
101101
date_column: Arrow::Date32Array.new([@date_value]),
102102
datetime_column: Arrow::TimestampArray.new(
@@ -108,7 +108,7 @@ class Data < ActiveRecord::Base
108108
Arrow::Int64Array.new([@max_bigint_value]),
109109
),
110110
Arrow::RecordBatch.new(
111-
id: Arrow::Int32Array.new([2]),
111+
id: Arrow::Int64Array.new([2]),
112112
string_column: Arrow::StringArray.new(["Hello2"]),
113113
date_column: Arrow::Date32Array.new([@date_value + 1]),
114114
datetime_column: Arrow::TimestampArray.new(

0 commit comments

Comments
 (0)