composite_primary_keys 11.0.0 → 11.0.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '09c1654a22421c134dada5504263aa6bcb99f358a47e96476917027f1d692818'
4
- data.tar.gz: 31ce78f246ace36159863eb16215311b3ad5dd8c70a10825ae9413b6062770b7
3
+ metadata.gz: 0ffea425aed78412bab66e908f3873e7838b80afc2731a36d93c3a2ddc7edf7e
4
+ data.tar.gz: 83b24a29fa3178dd065c2f07e92ef308d99b4cfc70d69d236633e1ca5c5d62d1
5
5
  SHA512:
6
- metadata.gz: 4a1bb8d41dad76559c1034e7f9957bf2c3583fb8ab6a67856f05f3e34a1f535463332ce7fac0b922c0ebeaa4f82f59ffea188c6306eebb9535614ecee3a2123b
7
- data.tar.gz: e924ffffedde42aa9220213fd3b0cb1253d6aff7c6fd4d84a5240356133ffaf89ba0d777e72294fb97bbc90cc1f4f8f6756420bba879fbe1f3cec9e4babd9220
6
+ metadata.gz: d654cf0a62880f798255090f1acad0f4c05cf13ceeeb0544b3643560bd4da5a0c69380077605a54835d3bda4a0e612b03045cf0199973f2190c75be98f4cf14e
7
+ data.tar.gz: 27d2527c66f6a5b1db40e69af9f8bc4718a0eedb628e992e5c38b5dbc9ed6fdd961d79fb5b07204724bf6eaf33e2dfc85663078ad52114071a63a9820d6e04be
data/History.rdoc CHANGED
@@ -1,3 +1,7 @@
1
+ == 11.0.1 (2018-06-20)
2
+ * Fix in_batches (Urmo Rae)
3
+ * Fix apply_join_dependency (Charlie Savage)
4
+
1
5
  == 11.0.0 (2018-06-18)
2
6
  * Update to ActiveRecord 5.2 (Charlie Savage)
3
7
  * Fixes for AR 5.2 persistence changes (Erik Rothoff, Charlie Savage)
@@ -30,6 +34,9 @@
30
34
 
31
35
  * ActiveRecord 5.2.beta2 support (Charlie Savage)
32
36
 
37
+ == 10.0.5 (?)
38
+ * Fix in_batches (Urmo Rae)
39
+
33
40
  == 10.0.4 (2018-06-17)
34
41
 
35
42
  * Lock mysql2 gem to 0.4.x (Le Trung Kien)
@@ -2,27 +2,20 @@ module ActiveRecord
2
2
  module ConnectionAdapters
3
3
  class AbstractMysqlAdapter
4
4
  def subquery_for(key, select)
5
- subselect = select.clone
6
- subselect.projections = [key]
5
+ subsubselect = select.clone
6
+ subsubselect.projections = [key]
7
7
 
8
8
  # Materialize subquery by adding distinct
9
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?
10
+ subsubselect.distinct unless select.limit || select.offset || select.orders.any?
11
11
 
12
- # CPK
13
- if key.is_a?(Array)
14
- key_names = key.map(&:name).map {|key_name| Arel.sql(key_name)}
15
- Arel::SelectManager.new(subselect.as("__active_record_temp")).project(key_names)
16
- else
17
- key_name = quote_column_name(key.name)
18
- Arel::SelectManager.new(subselect.as("__active_record_temp")).project(Arel.sql(key_name))
19
- end
12
+ subselect = Arel::SelectManager.new(select.engine)
20
13
 
21
14
  # CPK
22
15
  #subselect.project Arel.sql(key.name)
23
- # subselect.project Arel.sql(Array(key).map(&:name).join(', '))
16
+ subselect.project Arel.sql(Array(key).map(&:name).join(', '))
24
17
 
25
- # subselect.from subsubselect.as('__active_record_temp')
18
+ subselect.from subsubselect.as('__active_record_temp')
26
19
  end
27
20
  end
28
21
  end
@@ -1,19 +1,27 @@
1
1
  module CompositePrimaryKeys
2
2
  module ActiveRecord
3
3
  module FinderMethods
4
- def apply_join_dependency(join_dependency = construct_join_dependency)
4
+ def apply_join_dependency(eager_loading: true)
5
+ join_dependency = construct_join_dependency
5
6
  relation = except(:includes, :eager_load, :preload).joins!(join_dependency)
6
7
 
7
- if using_limitable_reflections?(join_dependency.reflections)
8
- relation
9
- else
10
- if relation.limit_value
8
+ if eager_loading && !using_limitable_reflections?(join_dependency.reflections)
9
+ if has_limit_or_offset?
11
10
  limited_ids = limited_ids_for(relation)
11
+
12
12
  # CPK
13
13
  # limited_ids.empty? ? relation.none! : relation.where!(primary_key => limited_ids)
14
14
  limited_ids.empty? ? relation.none! : relation.where!(cpk_in_predicate(table, self.primary_keys, limited_ids))
15
+
15
16
  end
16
- relation.except(:limit, :offset)
17
+ relation.limit_value = relation.offset_value = nil
18
+ end
19
+
20
+ if block_given?
21
+ relation._select!(join_dependency.aliases.columns)
22
+ yield relation, join_dependency
23
+ else
24
+ relation
17
25
  end
18
26
  end
19
27
 
@@ -2,7 +2,7 @@ module CompositePrimaryKeys
2
2
  module VERSION
3
3
  MAJOR = 11
4
4
  MINOR = 0
5
- TINY = 0
5
+ TINY = 1
6
6
  STRING = [MAJOR, MINOR, TINY].join('.')
7
7
  end
8
8
  end
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.0.0
4
+ version: 11.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Charlie Savage
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-06-18 00:00:00.000000000 Z
11
+ date: 2018-06-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord