composite_primary_keys 11.0.0 → 11.0.1

Sign up to get free protection for your applications and to get access to all the features.
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