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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +316 -7
- data/README.rdoc +1 -1
- data/lib/active_record/associations/alias_tracker.rb +6 -4
- data/lib/active_record/associations/belongs_to_association.rb +18 -2
- data/lib/active_record/associations/collection_association.rb +9 -7
- data/lib/active_record/associations/join_dependency/join_association.rb +25 -27
- data/lib/active_record/attribute_methods/serialization.rb +1 -1
- data/lib/active_record/attribute_methods.rb +24 -19
- data/lib/active_record/attributes.rb +37 -26
- data/lib/active_record/autosave_association.rb +22 -12
- data/lib/active_record/base.rb +2 -2
- data/lib/active_record/connection_adapters/abstract/connection_pool.rb +49 -32
- data/lib/active_record/connection_adapters/abstract/query_cache.rb +17 -6
- data/lib/active_record/connection_adapters/abstract/schema_definitions.rb +5 -1
- data/lib/active_record/connection_adapters/abstract/schema_statements.rb +3 -0
- data/lib/active_record/connection_adapters/abstract_adapter.rb +32 -3
- data/lib/active_record/connection_adapters/abstract_mysql_adapter.rb +14 -6
- data/lib/active_record/connection_adapters/mysql/quoting.rb +7 -1
- data/lib/active_record/connection_adapters/mysql2/database_statements.rb +3 -3
- data/lib/active_record/connection_adapters/mysql2_adapter.rb +8 -1
- data/lib/active_record/connection_adapters/postgresql/schema_definitions.rb +14 -12
- data/lib/active_record/connection_adapters/postgresql/schema_dumper.rb +1 -1
- data/lib/active_record/connection_adapters/postgresql/schema_statements.rb +1 -1
- data/lib/active_record/connection_adapters/postgresql_adapter.rb +8 -3
- data/lib/active_record/connection_adapters/sqlite3/quoting.rb +13 -0
- data/lib/active_record/connection_adapters/sqlite3/schema_statements.rb +1 -0
- data/lib/active_record/connection_adapters/sqlite3_adapter.rb +10 -5
- data/lib/active_record/connection_adapters/trilogy_adapter.rb +1 -1
- data/lib/active_record/connection_handling.rb +12 -8
- data/lib/active_record/core.rb +27 -7
- data/lib/active_record/counter_cache.rb +1 -1
- data/lib/active_record/database_configurations/connection_url_resolver.rb +3 -1
- data/lib/active_record/delegated_type.rb +18 -18
- data/lib/active_record/encryption/encryptable_record.rb +1 -1
- data/lib/active_record/encryption/encrypted_attribute_type.rb +1 -1
- data/lib/active_record/encryption/encryptor.rb +21 -20
- data/lib/active_record/enum.rb +13 -12
- data/lib/active_record/errors.rb +3 -3
- data/lib/active_record/fixture_set/table_row.rb +19 -2
- data/lib/active_record/gem_version.rb +2 -2
- data/lib/active_record/migration.rb +2 -1
- data/lib/active_record/query_logs.rb +4 -0
- data/lib/active_record/querying.rb +4 -4
- data/lib/active_record/railtie.rb +2 -2
- data/lib/active_record/railties/databases.rake +2 -1
- data/lib/active_record/relation/calculations.rb +35 -30
- data/lib/active_record/relation/finder_methods.rb +10 -10
- data/lib/active_record/relation/predicate_builder/association_query_value.rb +2 -0
- data/lib/active_record/relation/query_attribute.rb +1 -1
- data/lib/active_record/relation/query_methods.rb +16 -9
- data/lib/active_record/relation/where_clause.rb +8 -2
- data/lib/active_record/relation.rb +15 -5
- data/lib/active_record/schema_dumper.rb +29 -11
- data/lib/active_record/secure_token.rb +3 -3
- data/lib/active_record/signed_id.rb +7 -6
- data/lib/active_record/tasks/postgresql_database_tasks.rb +7 -0
- data/lib/active_record/transactions.rb +3 -1
- data/lib/active_record.rb +1 -1
- data/lib/arel/collectors/bind.rb +1 -1
- data/lib/arel/crud.rb +2 -0
- data/lib/arel/delete_manager.rb +5 -0
- data/lib/arel/nodes/delete_statement.rb +4 -2
- data/lib/arel/nodes/update_statement.rb +4 -2
- data/lib/arel/select_manager.rb +6 -2
- data/lib/arel/update_manager.rb +5 -0
- data/lib/arel/visitors/dot.rb +2 -0
- data/lib/arel/visitors/to_sql.rb +3 -1
- 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?
         | 
    
        data/lib/arel/select_manager.rb
    CHANGED
    
    | @@ -250,8 +250,12 @@ module Arel # :nodoc: all | |
| 250 250 | 
             
                end
         | 
| 251 251 |  | 
| 252 252 | 
             
                def comment(*values)
         | 
| 253 | 
            -
                   | 
| 254 | 
            -
             | 
| 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
         | 
    
        data/lib/arel/update_manager.rb
    CHANGED
    
    
    
        data/lib/arel/visitors/dot.rb
    CHANGED
    
    | @@ -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 |  | 
    
        data/lib/arel/visitors/to_sql.rb
    CHANGED
    
    | @@ -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  | 
| 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. | 
| 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. | 
| 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. | 
| 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. | 
| 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. | 
| 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. | 
| 479 | 
            -
              documentation_uri: https://api.rubyonrails.org/v7.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. | 
| 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"
         |