activerecord_bulkoperation 0.0.2
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 +7 -0
- data/.gitignore +1 -0
- data/.ruby-version +1 -0
- data/Gemfile +13 -0
- data/README.md +1 -0
- data/Rakefile +25 -0
- data/activerecord_bulkoperation.gemspec +23 -0
- data/gemfiles/4.2.gemfile +14 -0
- data/lib/activerecord_bulkoperation.rb +20 -0
- data/lib/activerecord_bulkoperation/active_record/adapters/abstract_adapter.rb +49 -0
- data/lib/activerecord_bulkoperation/active_record/adapters/oracle_enhanced_adapter.rb +10 -0
- data/lib/activerecord_bulkoperation/active_record/associations/associations.rb +169 -0
- data/lib/activerecord_bulkoperation/adapters/abstract_adapter.rb +43 -0
- data/lib/activerecord_bulkoperation/adapters/oracle_enhanced_adapter.rb +44 -0
- data/lib/activerecord_bulkoperation/base.rb +53 -0
- data/lib/activerecord_bulkoperation/bulkoperation.rb +260 -0
- data/lib/activerecord_bulkoperation/connection_adapters/oracle_enhanced/jdbc_connection.rb +111 -0
- data/lib/activerecord_bulkoperation/connection_adapters/oracle_enhanced/oci_connection.rb +106 -0
- data/lib/activerecord_bulkoperation/group_operations.rb +296 -0
- data/lib/activerecord_bulkoperation/group_operations_select.rb +60 -0
- data/lib/activerecord_bulkoperation/util/connection_object.rb +22 -0
- data/lib/activerecord_bulkoperation/util/entity_hash.rb +78 -0
- data/lib/activerecord_bulkoperation/util/flush_dirty_objects.rb +126 -0
- data/lib/activerecord_bulkoperation/util/sequence_cache.rb +52 -0
- data/lib/activerecord_bulkoperation/util/transaction_object.rb +36 -0
- data/lib/activerecord_bulkoperation/version.rb +5 -0
- data/test/active_record_connection_test.rb +41 -0
- data/test/adapters/oracle_enhanced.rb +1 -0
- data/test/bulkoperation_test.rb +176 -0
- data/test/database.yml +8 -0
- data/test/entity_hash_test.rb +11 -0
- data/test/find_group_by_test.rb +132 -0
- data/test/flush_dirty_objects_test.rb +11 -0
- data/test/models/assembly.rb +3 -0
- data/test/models/course.rb +3 -0
- data/test/models/group.rb +3 -0
- data/test/models/item.rb +2 -0
- data/test/models/part.rb +3 -0
- data/test/models/product.rb +7 -0
- data/test/models/student.rb +3 -0
- data/test/models/test_table.rb +2 -0
- data/test/postgresql/bulk_test.rb +13 -0
- data/test/schema/generic_schema.rb +59 -0
- data/test/sequence_cache_test.rb +31 -0
- data/test/support/postgresql/bulk_examples.rb +8 -0
- data/test/test_helper.rb +45 -0
- data/test/transaction_object_test.rb +11 -0
- metadata +141 -0
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
|
|
2
|
+
require File.expand_path(File.dirname(__FILE__) + '/test_helper')
|
|
3
|
+
|
|
4
|
+
class FindGroupByTest < ActiveSupport::TestCase
|
|
5
|
+
|
|
6
|
+
def teardown
|
|
7
|
+
Item.delete_all
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def setup
|
|
11
|
+
Item.new( :itemno => 'A', :sizen => 1, :company => 21).save!
|
|
12
|
+
Item.new( :itemno => 'B', :sizen => 2, :company => 22).save!
|
|
13
|
+
Item.new( :itemno => 'C', :sizen => 3, :company => 23).save!
|
|
14
|
+
Item.new( :itemno => 'D', :sizen => 4, :company => 24).save!
|
|
15
|
+
Item.new( :itemno => 'E', :sizen => 5, :company => 25).save!
|
|
16
|
+
Item.new( :itemno => 'F', :sizen => 6, :company => 26).save!
|
|
17
|
+
Item.new( :itemno => 'G', :sizen => 7, :company => 27).save!
|
|
18
|
+
Item.new( :itemno => 'H', :sizen => 8, :company => 28).save!
|
|
19
|
+
Item.new( :itemno => 'I', :sizen => 9, :company => 29).save!
|
|
20
|
+
Item.new( :itemno => 'J', :sizen => 10, :company => 30).save!
|
|
21
|
+
Item.new( :itemno => 'K', :sizen => 11, :company => 31).save!
|
|
22
|
+
Item.new( :itemno => 'L', :sizen => 12, :company => 32).save!
|
|
23
|
+
Item.new( :itemno => 'M', :sizen => 13, :company => 33).save!
|
|
24
|
+
Item.new( :itemno => 'N', :sizen => 14, :company => 34).save!
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def test_items_exist
|
|
28
|
+
assert_equal( 14, Item.all.count)
|
|
29
|
+
i1 = Item.find_by( itemno: 'A')
|
|
30
|
+
assert_not_nil( i1 )
|
|
31
|
+
assert_equal( 'A', i1.itemno)
|
|
32
|
+
assert_equal( 1, i1.sizen)
|
|
33
|
+
assert_equal( 21, i1.company)
|
|
34
|
+
i2 = Item.find_by( itemno: 'B')
|
|
35
|
+
assert_not_nil( i2 )
|
|
36
|
+
assert_equal( 'B', i2.itemno)
|
|
37
|
+
assert_equal( 2, i2.sizen)
|
|
38
|
+
assert_equal( 22, i2.company)
|
|
39
|
+
|
|
40
|
+
assert_equal( 23, Item.find_by( itemno: 'C').company)
|
|
41
|
+
assert_equal( 24, Item.find_by( itemno: 'D').company)
|
|
42
|
+
assert_equal( 25, Item.find_by( itemno: 'E').company)
|
|
43
|
+
assert_equal( 26, Item.find_by( itemno: 'F').company)
|
|
44
|
+
assert_equal( 27, Item.find_by( itemno: 'G').company)
|
|
45
|
+
assert_equal( 28, Item.find_by( itemno: 'H').company)
|
|
46
|
+
assert_equal( 29, Item.find_by( itemno: 'I').company)
|
|
47
|
+
assert_equal( 30, Item.find_by( itemno: 'J').company)
|
|
48
|
+
assert_equal( 31, Item.find_by( itemno: 'K').company)
|
|
49
|
+
assert_equal( 32, Item.find_by( itemno: 'L').company)
|
|
50
|
+
assert_equal( 33, Item.find_by( itemno: 'M').company)
|
|
51
|
+
assert_equal( 34, Item.find_by( itemno: 'N').company)
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def test_find_group_by_params_test
|
|
55
|
+
column_set = [ :itemno, :sizen, :company ]
|
|
56
|
+
assert_raises { Item.where_tuple(nil, nil) }
|
|
57
|
+
assert_raises { Item.where_tuple(column_set, nil) }
|
|
58
|
+
assert_raises { Item.where_tuple([], nil) }
|
|
59
|
+
assert_raises { Item.where_tuple(['string', 'strang'], nil) }
|
|
60
|
+
assert_raises { Item.where_tuple(column_set, []) }
|
|
61
|
+
assert_raises { Item.where_tuple(column_set, ['strong']) }
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
def test_find_group_by
|
|
65
|
+
|
|
66
|
+
i1 = Item.find_by( itemno: 'A')
|
|
67
|
+
i2 = Item.find_by( itemno: 'B')
|
|
68
|
+
i3 = Item.find_by( itemno: 'C')
|
|
69
|
+
|
|
70
|
+
is = Item.find_group_by( :itemno => [ 'A', 'B', 'C'], :sizen => [1, 2, 3], :company => [21, 22, 23] )
|
|
71
|
+
|
|
72
|
+
assert_not_nil( is )
|
|
73
|
+
assert_equal( 3, is.count)
|
|
74
|
+
assert_includes( is, i1)
|
|
75
|
+
assert_includes( is, i2)
|
|
76
|
+
assert_includes( is, i3)
|
|
77
|
+
|
|
78
|
+
is = Item.find_group_by( :itemno => [ 'A', 'B', 'C'], :sizen => [2, 3, 1], :company => [21, 22, 23] )
|
|
79
|
+
assert_not_nil( is )
|
|
80
|
+
assert_equal( 0, is.count)
|
|
81
|
+
|
|
82
|
+
is = Item.find_group_by( :itemno => [ 'A', 'B', 'C'], :sizen => [1, 2, 3], :company => [21, 22, 24] )
|
|
83
|
+
assert_not_nil( is )
|
|
84
|
+
assert_equal( 2, is.count)
|
|
85
|
+
assert_includes( is, i1)
|
|
86
|
+
assert_includes( is, i2)
|
|
87
|
+
|
|
88
|
+
is = Item.find_group_by( :itemno => [ 'A', 'B', 'C'], :sizen => [1, 2, 3], :company => [23, 23, 23] )
|
|
89
|
+
assert_not_nil( is )
|
|
90
|
+
assert_equal( 1, is.count)
|
|
91
|
+
assert_includes( is, i3)
|
|
92
|
+
|
|
93
|
+
is = Item.find_group_by( :itemno => [ 'A', 'A', 'A'], :sizen => [1, 2, 3], :company => [21, 22, 23] )
|
|
94
|
+
assert_equal( 1, is.count)
|
|
95
|
+
assert_includes( is, i1)
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
def test_find_by_multiple_columns
|
|
99
|
+
|
|
100
|
+
i1 = Item.find_by( itemno: 'A')
|
|
101
|
+
i2 = Item.find_by( itemno: 'B')
|
|
102
|
+
i3 = Item.find_by( itemno: 'C')
|
|
103
|
+
|
|
104
|
+
column_set = [ :itemno, :sizen, :company ]
|
|
105
|
+
is = Item.where_tuple( column_set, [ ['A', 1, 21], ['B', 2, 22], ['C', 3, 23] ] )
|
|
106
|
+
|
|
107
|
+
assert_not_nil( is )
|
|
108
|
+
assert_equal( 3, is.count)
|
|
109
|
+
assert_equal( i1, is[0])
|
|
110
|
+
assert_equal( i2, is[1])
|
|
111
|
+
assert_equal( i3, is[2])
|
|
112
|
+
|
|
113
|
+
is = Item.where_tuple( column_set, [ ['A', 2, 21], ['B', 3, 22], ['C', 1, 23] ] )
|
|
114
|
+
assert_not_nil( is )
|
|
115
|
+
assert_equal( 0, is.count)
|
|
116
|
+
|
|
117
|
+
is = Item.where_tuple( column_set, [ ['A', 1, 21], ['B', 2, 22], ['C', 3, 24] ] )
|
|
118
|
+
assert_not_nil( is )
|
|
119
|
+
assert_equal( 2, is.count)
|
|
120
|
+
assert_equal( i1, is[0])
|
|
121
|
+
assert_equal( i2, is[1])
|
|
122
|
+
|
|
123
|
+
is = Item.where_tuple( column_set, [ ['A', 1, 23], ['B', 2, 23], ['C', 3, 23] ] )
|
|
124
|
+
assert_not_nil( is )
|
|
125
|
+
assert_equal( 1, is.count)
|
|
126
|
+
assert_equal( i3, is[0])
|
|
127
|
+
|
|
128
|
+
is = Item.where_tuple( column_set, [ ['A', 1, 21], ['A', 2, 22], ['A', 3, 23] ] )
|
|
129
|
+
assert_equal( 1, is.count)
|
|
130
|
+
assert_equal( i1, is[0])
|
|
131
|
+
end
|
|
132
|
+
end
|
data/test/models/item.rb
ADDED
data/test/models/part.rb
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
|
|
2
|
+
#require File.expand_path(File.dirname(__FILE__) + '/../support/postgresql/bulk_examples')
|
|
3
|
+
|
|
4
|
+
class TestCalculations < ActiveSupport::TestCase
|
|
5
|
+
|
|
6
|
+
def test_count_distinct
|
|
7
|
+
assert_equal(3, 3)
|
|
8
|
+
assert ActiveRecord::Base.respond_to? :schedule_merge, "test"
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
#should_support_postgresql_import_functionality
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
ActiveRecord::Schema.define do
|
|
2
|
+
create_table :groups, :force => true do |t|
|
|
3
|
+
t.column :order_col, :string
|
|
4
|
+
t.timestamps null: true
|
|
5
|
+
end
|
|
6
|
+
create_table :test_tables, :force => true do |t|
|
|
7
|
+
t.column :author_name, :string
|
|
8
|
+
t.integer :group_id
|
|
9
|
+
t.timestamps null: true
|
|
10
|
+
end
|
|
11
|
+
create_table :items, :force => true do |t|
|
|
12
|
+
t.column :itemno, :string
|
|
13
|
+
t.column :sizen, :integer
|
|
14
|
+
t.column :company, :integer
|
|
15
|
+
t.timestamps null: true
|
|
16
|
+
end
|
|
17
|
+
create_table :assemblies, :force => true do |t|
|
|
18
|
+
t.string :name
|
|
19
|
+
t.timestamps null: true
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
create_table :parts, :force => true do |t|
|
|
23
|
+
t.string :part_number
|
|
24
|
+
t.timestamps null: true
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
create_table :assemblies_parts, :force => true, id: false do |t|
|
|
28
|
+
t.belongs_to :assembly
|
|
29
|
+
t.belongs_to :part
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
create_table :students, :force => true do |t|
|
|
33
|
+
t.string :name
|
|
34
|
+
t.integer :student_id
|
|
35
|
+
t.timestamps null: true
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
create_table :courses, :force => true do |t|
|
|
39
|
+
t.string :name
|
|
40
|
+
t.integer :course_id
|
|
41
|
+
t.timestamps null: true
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
create_table :students_related_courses,:force => true, id: false do |t|
|
|
45
|
+
t.belongs_to :the_other_student
|
|
46
|
+
t.belongs_to :the_other_course
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
create_table :products,:force => true do |t|
|
|
50
|
+
t.string :name
|
|
51
|
+
t.timestamps null: true
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
create_table :products_related_products,:force => true, id: false do |t|
|
|
55
|
+
t.belongs_to :product
|
|
56
|
+
t.belongs_to :related_product
|
|
57
|
+
end
|
|
58
|
+
#add_foreign_key :test_tables, :groups
|
|
59
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/test_helper')
|
|
2
|
+
|
|
3
|
+
class SequenceCacheTest < ActiveSupport::TestCase
|
|
4
|
+
|
|
5
|
+
def test_object_exists
|
|
6
|
+
obj = ActiveRecord::Bulkoperation::Util::SequenceCache.new('groups_seq')
|
|
7
|
+
assert_not_nil obj
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def test_seq_cache_multi_thread
|
|
11
|
+
cache = ActiveRecord::Bulkoperation::Util::SequenceCache.new('groups_seq')
|
|
12
|
+
res1 = []
|
|
13
|
+
res2 = []
|
|
14
|
+
t = Thread.new do
|
|
15
|
+
1000.times do |i|
|
|
16
|
+
res1 << cache.next_value
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
t2 = Thread.new do
|
|
20
|
+
1000.times do |i|
|
|
21
|
+
res2 << cache.next_value
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
t.join
|
|
25
|
+
t2.join
|
|
26
|
+
|
|
27
|
+
assert_equal 2000 , (res1 + res2).count
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
end
|
|
31
|
+
|
data/test/test_helper.rb
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
require "rubygems"
|
|
2
|
+
require 'pathname'
|
|
3
|
+
test_dir = Pathname.new File.dirname(__FILE__)
|
|
4
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
|
5
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
|
6
|
+
|
|
7
|
+
require "fileutils"
|
|
8
|
+
|
|
9
|
+
ENV["RAILS_ENV"] = "test"
|
|
10
|
+
|
|
11
|
+
require "bundler"
|
|
12
|
+
Bundler.setup
|
|
13
|
+
|
|
14
|
+
require "active_record"
|
|
15
|
+
require "active_record/fixtures"
|
|
16
|
+
require "active_support/test_case"
|
|
17
|
+
|
|
18
|
+
if ActiveSupport::VERSION::STRING < "4.1"
|
|
19
|
+
require 'test/unit'
|
|
20
|
+
else
|
|
21
|
+
require 'active_support/testing/autorun'
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
require "mocha/test_unit"
|
|
25
|
+
|
|
26
|
+
ActiveSupport::TestCase.test_order = :sorted
|
|
27
|
+
adapter = ENV["DB_ADAPTER"] || "oracle_enhanced"
|
|
28
|
+
|
|
29
|
+
FileUtils.mkdir_p 'log'
|
|
30
|
+
ActiveRecord::Base.logger = Logger.new("log/test.log")
|
|
31
|
+
ActiveRecord::Base.logger.level = Logger::DEBUG
|
|
32
|
+
ActiveRecord::Base.configurations['test'] = YAML.load_file(test_dir.join("database.yml"))[adapter]
|
|
33
|
+
ActiveRecord::Base.default_timezone = :utc
|
|
34
|
+
|
|
35
|
+
require "activerecord_bulkoperation"
|
|
36
|
+
|
|
37
|
+
ActiveRecord::Base.establish_connection :test
|
|
38
|
+
|
|
39
|
+
#ActiveSupport::Notifications.subscribe(/active_record.sql/) do |event, _, _, _, hsh|
|
|
40
|
+
# ActiveRecord::Base.logger.info hsh[:sql]
|
|
41
|
+
#end
|
|
42
|
+
|
|
43
|
+
require test_dir.join("schema/generic_schema")
|
|
44
|
+
|
|
45
|
+
Dir[File.dirname(__FILE__) + "/models/*.rb"].each{ |file| require file }
|
metadata
ADDED
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: activerecord_bulkoperation
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.0.2
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- OSP
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: bin
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2018-11-23 00:00:00.000000000 Z
|
|
12
|
+
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: activerecord
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - "~>"
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: '4.2'
|
|
20
|
+
type: :runtime
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - "~>"
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: '4.2'
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
28
|
+
name: rake
|
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
|
30
|
+
requirements:
|
|
31
|
+
- - ">="
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: '0'
|
|
34
|
+
type: :development
|
|
35
|
+
prerelease: false
|
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - ">="
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: '0'
|
|
41
|
+
description: ''
|
|
42
|
+
email:
|
|
43
|
+
- ''
|
|
44
|
+
executables: []
|
|
45
|
+
extensions: []
|
|
46
|
+
extra_rdoc_files: []
|
|
47
|
+
files:
|
|
48
|
+
- ".gitignore"
|
|
49
|
+
- ".ruby-version"
|
|
50
|
+
- Gemfile
|
|
51
|
+
- README.md
|
|
52
|
+
- Rakefile
|
|
53
|
+
- activerecord_bulkoperation.gemspec
|
|
54
|
+
- gemfiles/4.2.gemfile
|
|
55
|
+
- lib/activerecord_bulkoperation.rb
|
|
56
|
+
- lib/activerecord_bulkoperation/active_record/adapters/abstract_adapter.rb
|
|
57
|
+
- lib/activerecord_bulkoperation/active_record/adapters/oracle_enhanced_adapter.rb
|
|
58
|
+
- lib/activerecord_bulkoperation/active_record/associations/associations.rb
|
|
59
|
+
- lib/activerecord_bulkoperation/adapters/abstract_adapter.rb
|
|
60
|
+
- lib/activerecord_bulkoperation/adapters/oracle_enhanced_adapter.rb
|
|
61
|
+
- lib/activerecord_bulkoperation/base.rb
|
|
62
|
+
- lib/activerecord_bulkoperation/bulkoperation.rb
|
|
63
|
+
- lib/activerecord_bulkoperation/connection_adapters/oracle_enhanced/jdbc_connection.rb
|
|
64
|
+
- lib/activerecord_bulkoperation/connection_adapters/oracle_enhanced/oci_connection.rb
|
|
65
|
+
- lib/activerecord_bulkoperation/group_operations.rb
|
|
66
|
+
- lib/activerecord_bulkoperation/group_operations_select.rb
|
|
67
|
+
- lib/activerecord_bulkoperation/util/connection_object.rb
|
|
68
|
+
- lib/activerecord_bulkoperation/util/entity_hash.rb
|
|
69
|
+
- lib/activerecord_bulkoperation/util/flush_dirty_objects.rb
|
|
70
|
+
- lib/activerecord_bulkoperation/util/sequence_cache.rb
|
|
71
|
+
- lib/activerecord_bulkoperation/util/transaction_object.rb
|
|
72
|
+
- lib/activerecord_bulkoperation/version.rb
|
|
73
|
+
- test/active_record_connection_test.rb
|
|
74
|
+
- test/adapters/oracle_enhanced.rb
|
|
75
|
+
- test/bulkoperation_test.rb
|
|
76
|
+
- test/database.yml
|
|
77
|
+
- test/entity_hash_test.rb
|
|
78
|
+
- test/find_group_by_test.rb
|
|
79
|
+
- test/flush_dirty_objects_test.rb
|
|
80
|
+
- test/log/test.log
|
|
81
|
+
- test/models/assembly.rb
|
|
82
|
+
- test/models/course.rb
|
|
83
|
+
- test/models/group.rb
|
|
84
|
+
- test/models/item.rb
|
|
85
|
+
- test/models/part.rb
|
|
86
|
+
- test/models/product.rb
|
|
87
|
+
- test/models/student.rb
|
|
88
|
+
- test/models/test_table.rb
|
|
89
|
+
- test/postgresql/bulk_test.rb
|
|
90
|
+
- test/schema/generic_schema.rb
|
|
91
|
+
- test/sequence_cache_test.rb
|
|
92
|
+
- test/support/postgresql/bulk_examples.rb
|
|
93
|
+
- test/test_helper.rb
|
|
94
|
+
- test/transaction_object_test.rb
|
|
95
|
+
homepage: ''
|
|
96
|
+
licenses:
|
|
97
|
+
- Ruby
|
|
98
|
+
metadata: {}
|
|
99
|
+
post_install_message:
|
|
100
|
+
rdoc_options: []
|
|
101
|
+
require_paths:
|
|
102
|
+
- lib
|
|
103
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
104
|
+
requirements:
|
|
105
|
+
- - ">="
|
|
106
|
+
- !ruby/object:Gem::Version
|
|
107
|
+
version: 1.9.2
|
|
108
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
109
|
+
requirements:
|
|
110
|
+
- - ">="
|
|
111
|
+
- !ruby/object:Gem::Version
|
|
112
|
+
version: '0'
|
|
113
|
+
requirements: []
|
|
114
|
+
rubyforge_project:
|
|
115
|
+
rubygems_version: 2.7.7
|
|
116
|
+
signing_key:
|
|
117
|
+
specification_version: 4
|
|
118
|
+
summary: ''
|
|
119
|
+
test_files:
|
|
120
|
+
- test/active_record_connection_test.rb
|
|
121
|
+
- test/adapters/oracle_enhanced.rb
|
|
122
|
+
- test/bulkoperation_test.rb
|
|
123
|
+
- test/database.yml
|
|
124
|
+
- test/entity_hash_test.rb
|
|
125
|
+
- test/find_group_by_test.rb
|
|
126
|
+
- test/flush_dirty_objects_test.rb
|
|
127
|
+
- test/log/test.log
|
|
128
|
+
- test/models/assembly.rb
|
|
129
|
+
- test/models/course.rb
|
|
130
|
+
- test/models/group.rb
|
|
131
|
+
- test/models/item.rb
|
|
132
|
+
- test/models/part.rb
|
|
133
|
+
- test/models/product.rb
|
|
134
|
+
- test/models/student.rb
|
|
135
|
+
- test/models/test_table.rb
|
|
136
|
+
- test/postgresql/bulk_test.rb
|
|
137
|
+
- test/schema/generic_schema.rb
|
|
138
|
+
- test/sequence_cache_test.rb
|
|
139
|
+
- test/support/postgresql/bulk_examples.rb
|
|
140
|
+
- test/test_helper.rb
|
|
141
|
+
- test/transaction_object_test.rb
|