composite_primary_keys 11.3.1 → 12.0.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/History.rdoc +17 -7
  3. data/README.rdoc +1 -0
  4. data/lib/composite_primary_keys.rb +1 -6
  5. data/lib/composite_primary_keys/arel/to_sql.rb +13 -13
  6. data/lib/composite_primary_keys/associations/association_scope.rb +4 -4
  7. data/lib/composite_primary_keys/associations/has_many_association.rb +2 -1
  8. data/lib/composite_primary_keys/associations/has_many_through_association.rb +0 -2
  9. data/lib/composite_primary_keys/associations/join_dependency.rb +9 -8
  10. data/lib/composite_primary_keys/associations/preloader/association.rb +28 -36
  11. data/lib/composite_primary_keys/attribute_methods.rb +2 -2
  12. data/lib/composite_primary_keys/attribute_methods/read.rb +11 -14
  13. data/lib/composite_primary_keys/attribute_methods/write.rb +8 -11
  14. data/lib/composite_primary_keys/base.rb +2 -2
  15. data/lib/composite_primary_keys/composite_arrays.rb +7 -50
  16. data/lib/composite_primary_keys/connection_adapters/abstract_adapter.rb +1 -1
  17. data/lib/composite_primary_keys/connection_adapters/postgresql/database_statements.rb +1 -1
  18. data/lib/composite_primary_keys/core.rb +10 -14
  19. data/lib/composite_primary_keys/counter_cache.rb +4 -22
  20. data/lib/composite_primary_keys/fixtures.rb +5 -10
  21. data/lib/composite_primary_keys/nested_attributes.rb +6 -6
  22. data/lib/composite_primary_keys/persistence.rb +8 -8
  23. data/lib/composite_primary_keys/reflection.rb +3 -3
  24. data/lib/composite_primary_keys/relation.rb +39 -27
  25. data/lib/composite_primary_keys/relation/calculations.rb +15 -18
  26. data/lib/composite_primary_keys/relation/finder_methods.rb +56 -58
  27. data/lib/composite_primary_keys/relation/query_methods.rb +4 -3
  28. data/lib/composite_primary_keys/relation/where_clause.rb +2 -2
  29. data/lib/composite_primary_keys/sanitization.rb +37 -37
  30. data/lib/composite_primary_keys/validations/uniqueness.rb +2 -2
  31. data/lib/composite_primary_keys/version.rb +4 -4
  32. data/tasks/databases/mysql.rake +1 -1
  33. data/test/abstract_unit.rb +1 -5
  34. data/test/connections/databases.ci.yml +3 -0
  35. data/test/db_test.rb +53 -0
  36. data/test/fixtures/db_definitions/mysql.sql +1 -7
  37. data/test/fixtures/db_definitions/oracle.drop.sql +1 -3
  38. data/test/fixtures/db_definitions/oracle.sql +0 -8
  39. data/test/fixtures/db_definitions/postgresql.sql +0 -6
  40. data/test/fixtures/db_definitions/sqlite.sql +0 -6
  41. data/test/fixtures/db_definitions/sqlserver.sql +1 -8
  42. data/test/test_associations.rb +1 -1
  43. data/test/test_composite_arrays.rb +0 -14
  44. data/test/test_create.rb +12 -26
  45. data/test/test_find.rb +0 -8
  46. data/test/test_ids.rb +0 -3
  47. data/test/test_nested_attributes.rb +10 -10
  48. data/test/test_update.rb +1 -1
  49. metadata +9 -11
  50. data/lib/composite_primary_keys/connection_adapters/abstract_mysql_adapter.rb +0 -20
  51. data/lib/composite_primary_keys/connection_adapters/sqlite3_adapter.rb +0 -23
  52. data/test/fixtures/cpk_with_default_value.rb +0 -3
  53. data/test/fixtures/cpk_with_default_values.yml +0 -7
@@ -28,7 +28,7 @@ class TestUpdate < ActiveSupport::TestCase
28
28
 
29
29
  def test_update_attributes
30
30
  testing_with do
31
- assert(@first.update_attributes(@klass_info[:update]))
31
+ assert(@first.update(@klass_info[:update]))
32
32
  assert(@first.reload)
33
33
  @klass_info[:update].each_pair do |attr_name, new_value|
34
34
  assert_equal(new_value, @first[attr_name])
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: composite_primary_keys
3
3
  version: !ruby/object:Gem::Version
4
- version: 11.3.1
4
+ version: 12.0.0.rc1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Charlie Savage
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-04-01 00:00:00.000000000 Z
11
+ date: 2019-05-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 5.2.4
19
+ version: 6.0.0.rc1
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: 5.2.4
26
+ version: 6.0.0.rc1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -112,9 +112,7 @@ files:
112
112
  - lib/composite_primary_keys/composite_relation.rb
113
113
  - lib/composite_primary_keys/connection_adapters/abstract/database_statements.rb
114
114
  - lib/composite_primary_keys/connection_adapters/abstract_adapter.rb
115
- - lib/composite_primary_keys/connection_adapters/abstract_mysql_adapter.rb
116
115
  - lib/composite_primary_keys/connection_adapters/postgresql/database_statements.rb
117
- - lib/composite_primary_keys/connection_adapters/sqlite3_adapter.rb
118
116
  - lib/composite_primary_keys/connection_adapters/sqlserver/database_statements.rb
119
117
  - lib/composite_primary_keys/core.rb
120
118
  - lib/composite_primary_keys/counter_cache.rb
@@ -147,14 +145,13 @@ files:
147
145
  - test/connections/databases.ci.yml
148
146
  - test/connections/databases.example.yml
149
147
  - test/connections/databases.yml
148
+ - test/db_test.rb
150
149
  - test/fixtures/article.rb
151
150
  - test/fixtures/articles.yml
152
151
  - test/fixtures/capitol.rb
153
152
  - test/fixtures/capitols.yml
154
153
  - test/fixtures/comment.rb
155
154
  - test/fixtures/comments.yml
156
- - test/fixtures/cpk_with_default_value.rb
157
- - test/fixtures/cpk_with_default_values.yml
158
155
  - test/fixtures/db_definitions/db2-create-tables.sql
159
156
  - test/fixtures/db_definitions/db2-drop-tables.sql
160
157
  - test/fixtures/db_definitions/mysql.sql
@@ -269,16 +266,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
269
266
  version: 2.2.2
270
267
  required_rubygems_version: !ruby/object:Gem::Requirement
271
268
  requirements:
272
- - - ">="
269
+ - - ">"
273
270
  - !ruby/object:Gem::Version
274
- version: '0'
271
+ version: 1.3.1
275
272
  requirements: []
276
- rubygems_version: 3.1.2
273
+ rubygems_version: 3.0.3
277
274
  signing_key:
278
275
  specification_version: 4
279
276
  summary: Composite key support for ActiveRecord
280
277
  test_files:
281
278
  - test/abstract_unit.rb
279
+ - test/db_test.rb
282
280
  - test/README_tests.rdoc
283
281
  - test/setup.rb
284
282
  - test/test_aliases.rb
@@ -1,20 +0,0 @@
1
- module ActiveRecord
2
- module ConnectionAdapters
3
- class AbstractMysqlAdapter
4
- def subquery_for(key, select)
5
- subselect = select.clone
6
- subselect.projections = [key]
7
-
8
- # Materialize subquery by adding distinct
9
- # to work with MySQL 5.7.6 which sets optimizer_switch='derived_merge=on'
10
- subselect.distinct unless select.limit || select.offset || select.orders.any?
11
-
12
- # CPK
13
- #key_name = quote_column_name(key.name)
14
- key_name = Array(key).map {|a_key| quote_column_name(a_key.name)}.join(',')
15
-
16
- Arel::SelectManager.new(subselect.as("__active_record_temp")).project(Arel.sql(key_name))
17
- end
18
- end
19
- end
20
- end
@@ -1,23 +0,0 @@
1
- module ActiveRecord
2
- module ConnectionAdapters
3
- class SQLite3Adapter
4
- def join_to_update(update, select, key)
5
- if key.is_a?(::CompositePrimaryKeys::CompositeKeys)
6
- subselect = subquery_for(key, select)
7
- subselect_aliased = Arel::Nodes::TableAlias.new(subselect, 'cpk_inner')
8
- cpk_subselect = Arel::SelectManager.new(subselect_aliased)
9
- cpk_subselect.project('*')
10
- key.each do |a_key|
11
- where_expr = subselect_aliased[a_key.name].eq(update.ast.relation[a_key.name])
12
- cpk_subselect.where(where_expr)
13
- end
14
- where_clause = Arel::Nodes::SqlLiteral.new("EXISTS (#{cpk_subselect.to_sql})")
15
- update.where(where_clause)
16
- else
17
- super
18
- end
19
- end
20
- alias join_to_delete join_to_update
21
- end
22
- end
23
- end
@@ -1,3 +0,0 @@
1
- class CpkWithDefaultValue < ActiveRecord::Base
2
- self.primary_keys = :record_id, :record_version
3
- end
@@ -1,7 +0,0 @@
1
- first:
2
- record_id: 1
3
- record_version: First
4
-
5
- second:
6
- record_id: 1
7
- record_version: Second