activerecord 7.2.2.2 → 7.2.3

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.
Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +316 -7
  3. data/README.rdoc +1 -1
  4. data/lib/active_record/associations/alias_tracker.rb +6 -4
  5. data/lib/active_record/associations/belongs_to_association.rb +18 -2
  6. data/lib/active_record/associations/collection_association.rb +9 -7
  7. data/lib/active_record/associations/join_dependency/join_association.rb +25 -27
  8. data/lib/active_record/attribute_methods/serialization.rb +1 -1
  9. data/lib/active_record/attribute_methods.rb +24 -19
  10. data/lib/active_record/attributes.rb +37 -26
  11. data/lib/active_record/autosave_association.rb +22 -12
  12. data/lib/active_record/base.rb +2 -2
  13. data/lib/active_record/connection_adapters/abstract/connection_pool.rb +49 -32
  14. data/lib/active_record/connection_adapters/abstract/query_cache.rb +17 -6
  15. data/lib/active_record/connection_adapters/abstract/schema_definitions.rb +5 -1
  16. data/lib/active_record/connection_adapters/abstract/schema_statements.rb +3 -0
  17. data/lib/active_record/connection_adapters/abstract_adapter.rb +32 -3
  18. data/lib/active_record/connection_adapters/abstract_mysql_adapter.rb +14 -6
  19. data/lib/active_record/connection_adapters/mysql/quoting.rb +7 -1
  20. data/lib/active_record/connection_adapters/mysql2/database_statements.rb +3 -3
  21. data/lib/active_record/connection_adapters/mysql2_adapter.rb +8 -1
  22. data/lib/active_record/connection_adapters/postgresql/schema_definitions.rb +14 -12
  23. data/lib/active_record/connection_adapters/postgresql/schema_dumper.rb +1 -1
  24. data/lib/active_record/connection_adapters/postgresql/schema_statements.rb +1 -1
  25. data/lib/active_record/connection_adapters/postgresql_adapter.rb +8 -3
  26. data/lib/active_record/connection_adapters/sqlite3/quoting.rb +13 -0
  27. data/lib/active_record/connection_adapters/sqlite3/schema_statements.rb +1 -0
  28. data/lib/active_record/connection_adapters/sqlite3_adapter.rb +10 -5
  29. data/lib/active_record/connection_adapters/trilogy_adapter.rb +1 -1
  30. data/lib/active_record/connection_handling.rb +12 -8
  31. data/lib/active_record/core.rb +27 -7
  32. data/lib/active_record/counter_cache.rb +1 -1
  33. data/lib/active_record/database_configurations/connection_url_resolver.rb +3 -1
  34. data/lib/active_record/delegated_type.rb +18 -18
  35. data/lib/active_record/encryption/encryptable_record.rb +1 -1
  36. data/lib/active_record/encryption/encrypted_attribute_type.rb +1 -1
  37. data/lib/active_record/encryption/encryptor.rb +21 -20
  38. data/lib/active_record/enum.rb +13 -12
  39. data/lib/active_record/errors.rb +3 -3
  40. data/lib/active_record/fixture_set/table_row.rb +19 -2
  41. data/lib/active_record/gem_version.rb +2 -2
  42. data/lib/active_record/migration.rb +2 -1
  43. data/lib/active_record/query_logs.rb +4 -0
  44. data/lib/active_record/querying.rb +4 -4
  45. data/lib/active_record/railtie.rb +2 -2
  46. data/lib/active_record/railties/databases.rake +2 -1
  47. data/lib/active_record/relation/calculations.rb +35 -30
  48. data/lib/active_record/relation/finder_methods.rb +10 -10
  49. data/lib/active_record/relation/predicate_builder/association_query_value.rb +2 -0
  50. data/lib/active_record/relation/query_attribute.rb +1 -1
  51. data/lib/active_record/relation/query_methods.rb +16 -9
  52. data/lib/active_record/relation/where_clause.rb +8 -2
  53. data/lib/active_record/relation.rb +15 -5
  54. data/lib/active_record/schema_dumper.rb +29 -11
  55. data/lib/active_record/secure_token.rb +3 -3
  56. data/lib/active_record/signed_id.rb +7 -6
  57. data/lib/active_record/tasks/postgresql_database_tasks.rb +7 -0
  58. data/lib/active_record/transactions.rb +3 -1
  59. data/lib/active_record.rb +1 -1
  60. data/lib/arel/collectors/bind.rb +1 -1
  61. data/lib/arel/crud.rb +2 -0
  62. data/lib/arel/delete_manager.rb +5 -0
  63. data/lib/arel/nodes/delete_statement.rb +4 -2
  64. data/lib/arel/nodes/update_statement.rb +4 -2
  65. data/lib/arel/select_manager.rb +6 -2
  66. data/lib/arel/update_manager.rb +5 -0
  67. data/lib/arel/visitors/dot.rb +2 -0
  68. data/lib/arel/visitors/to_sql.rb +3 -1
  69. metadata +8 -8
@@ -3,7 +3,7 @@
3
3
  module Arel # :nodoc: all
4
4
  module Nodes
5
5
  class DeleteStatement < Arel::Nodes::Node
6
- attr_accessor :relation, :wheres, :groups, :havings, :orders, :limit, :offset, :key
6
+ attr_accessor :relation, :wheres, :groups, :havings, :orders, :limit, :offset, :comment, :key
7
7
 
8
8
  def initialize(relation = nil, wheres = [])
9
9
  super()
@@ -14,6 +14,7 @@ module Arel # :nodoc: all
14
14
  @orders = []
15
15
  @limit = nil
16
16
  @offset = nil
17
+ @comment = nil
17
18
  @key = nil
18
19
  end
19
20
 
@@ -24,7 +25,7 @@ module Arel # :nodoc: all
24
25
  end
25
26
 
26
27
  def hash
27
- [self.class, @relation, @wheres, @orders, @limit, @offset, @key].hash
28
+ [self.class, @relation, @wheres, @orders, @limit, @offset, @comment, @key].hash
28
29
  end
29
30
 
30
31
  def eql?(other)
@@ -36,6 +37,7 @@ module Arel # :nodoc: all
36
37
  self.havings == other.havings &&
37
38
  self.limit == other.limit &&
38
39
  self.offset == other.offset &&
40
+ self.comment == other.comment &&
39
41
  self.key == other.key
40
42
  end
41
43
  alias :== :eql?
@@ -3,7 +3,7 @@
3
3
  module Arel # :nodoc: all
4
4
  module Nodes
5
5
  class UpdateStatement < Arel::Nodes::Node
6
- attr_accessor :relation, :wheres, :values, :groups, :havings, :orders, :limit, :offset, :key
6
+ attr_accessor :relation, :wheres, :values, :groups, :havings, :orders, :limit, :offset, :comment, :key
7
7
 
8
8
  def initialize(relation = nil)
9
9
  super()
@@ -15,6 +15,7 @@ module Arel # :nodoc: all
15
15
  @orders = []
16
16
  @limit = nil
17
17
  @offset = nil
18
+ @comment = nil
18
19
  @key = nil
19
20
  end
20
21
 
@@ -25,7 +26,7 @@ module Arel # :nodoc: all
25
26
  end
26
27
 
27
28
  def hash
28
- [@relation, @wheres, @values, @orders, @limit, @offset, @key].hash
29
+ [@relation, @wheres, @values, @orders, @limit, @offset, @comment, @key].hash
29
30
  end
30
31
 
31
32
  def eql?(other)
@@ -38,6 +39,7 @@ module Arel # :nodoc: all
38
39
  self.orders == other.orders &&
39
40
  self.limit == other.limit &&
40
41
  self.offset == other.offset &&
42
+ self.comment == other.comment &&
41
43
  self.key == other.key
42
44
  end
43
45
  alias :== :eql?
@@ -250,8 +250,12 @@ module Arel # :nodoc: all
250
250
  end
251
251
 
252
252
  def comment(*values)
253
- @ctx.comment = Nodes::Comment.new(values)
254
- self
253
+ if values.any?
254
+ @ctx.comment = Nodes::Comment.new(values)
255
+ self
256
+ else
257
+ @ctx.comment
258
+ end
255
259
  end
256
260
 
257
261
  private
@@ -45,5 +45,10 @@ module Arel # :nodoc: all
45
45
  @ast.havings << expr
46
46
  self
47
47
  end
48
+
49
+ def comment(value)
50
+ @ast.comment = value
51
+ self
52
+ end
48
53
  end
49
54
  end
@@ -153,6 +153,7 @@ module Arel # :nodoc: all
153
153
  visit_edge o, "orders"
154
154
  visit_edge o, "limit"
155
155
  visit_edge o, "offset"
156
+ visit_edge o, "comment"
156
157
  visit_edge o, "key"
157
158
  end
158
159
 
@@ -162,6 +163,7 @@ module Arel # :nodoc: all
162
163
  visit_edge o, "orders"
163
164
  visit_edge o, "limit"
164
165
  visit_edge o, "offset"
166
+ visit_edge o, "comment"
165
167
  visit_edge o, "key"
166
168
  end
167
169
 
@@ -35,6 +35,7 @@ module Arel # :nodoc: all
35
35
  collect_nodes_for o.wheres, collector, " WHERE ", " AND "
36
36
  collect_nodes_for o.orders, collector, " ORDER BY "
37
37
  maybe_visit o.limit, collector
38
+ maybe_visit o.comment, collector
38
39
  end
39
40
 
40
41
  def visit_Arel_Nodes_UpdateStatement(o, collector)
@@ -48,6 +49,7 @@ module Arel # :nodoc: all
48
49
  collect_nodes_for o.wheres, collector, " WHERE ", " AND "
49
50
  collect_nodes_for o.orders, collector, " ORDER BY "
50
51
  maybe_visit o.limit, collector
52
+ maybe_visit o.comment, collector
51
53
  end
52
54
 
53
55
  def visit_Arel_Nodes_InsertStatement(o, collector)
@@ -763,7 +765,7 @@ module Arel # :nodoc: all
763
765
 
764
766
  def visit_Arel_Nodes_SqlLiteral(o, collector)
765
767
  collector.preparable = false
766
- collector.retryable = o.retryable
768
+ collector.retryable &&= o.retryable
767
769
  collector << o.to_s
768
770
  end
769
771
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.2.2.2
4
+ version: 7.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Heinemeier Hansson
@@ -15,28 +15,28 @@ dependencies:
15
15
  requirements:
16
16
  - - '='
17
17
  - !ruby/object:Gem::Version
18
- version: 7.2.2.2
18
+ version: 7.2.3
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - '='
24
24
  - !ruby/object:Gem::Version
25
- version: 7.2.2.2
25
+ version: 7.2.3
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: activemodel
28
28
  requirement: !ruby/object:Gem::Requirement
29
29
  requirements:
30
30
  - - '='
31
31
  - !ruby/object:Gem::Version
32
- version: 7.2.2.2
32
+ version: 7.2.3
33
33
  type: :runtime
34
34
  prerelease: false
35
35
  version_requirements: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - '='
38
38
  - !ruby/object:Gem::Version
39
- version: 7.2.2.2
39
+ version: 7.2.3
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: timeout
42
42
  requirement: !ruby/object:Gem::Requirement
@@ -475,10 +475,10 @@ licenses:
475
475
  - MIT
476
476
  metadata:
477
477
  bug_tracker_uri: https://github.com/rails/rails/issues
478
- changelog_uri: https://github.com/rails/rails/blob/v7.2.2.2/activerecord/CHANGELOG.md
479
- documentation_uri: https://api.rubyonrails.org/v7.2.2.2/
478
+ changelog_uri: https://github.com/rails/rails/blob/v7.2.3/activerecord/CHANGELOG.md
479
+ documentation_uri: https://api.rubyonrails.org/v7.2.3/
480
480
  mailing_list_uri: https://discuss.rubyonrails.org/c/rubyonrails-talk
481
- source_code_uri: https://github.com/rails/rails/tree/v7.2.2.2/activerecord
481
+ source_code_uri: https://github.com/rails/rails/tree/v7.2.3/activerecord
482
482
  rubygems_mfa_required: 'true'
483
483
  rdoc_options:
484
484
  - "--main"