Class: ActiveRecord::ConnectionAdapters::RactorConnectionHandler::AbstractProxyAdapter::QueryRequest
| Relationships & Source Files | |
| Inherits: | Object |
| Defined in: | activerecord/lib/active_record/connection_adapters/ractor_connection_handler/abstract_proxy_adapter/query_request.rb |
Class Method Summary
Instance Attribute Summary
- #allow_retry readonly
- #batch readonly
- #name readonly
- #prepare readonly
- #sql readonly
Instance Method Summary
Constructor Details
.new(sql:, name:, binds:, prepare:, batch:, allow_retry:) ⇒ QueryRequest
# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/abstract_proxy_adapter/query_request.rb', line 12
def initialize(sql:, name:, binds:, prepare:, batch:, allow_retry:) @prepare = !!prepare @batch = !!batch @allow_retry = !!allow_retry @sql = sql @name = name @binds_payload = Proxy.dump_binds(binds) ActiveSupport::Ractors.make_shareable(self) end
Instance Attribute Details
#allow_retry (readonly)
[ GitHub ]#batch (readonly)
[ GitHub ]# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/abstract_proxy_adapter/query_request.rb', line 10
attr_reader :sql, :name, :prepare, :batch, :allow_retry
#name (readonly)
[ GitHub ]# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/abstract_proxy_adapter/query_request.rb', line 10
attr_reader :sql, :name, :prepare, :batch, :allow_retry
#prepare (readonly)
[ GitHub ]# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/abstract_proxy_adapter/query_request.rb', line 10
attr_reader :sql, :name, :prepare, :batch, :allow_retry
#sql (readonly)
[ GitHub ]# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/abstract_proxy_adapter/query_request.rb', line 10
attr_reader :sql, :name, :prepare, :batch, :allow_retry
Instance Method Details
#binds
[ GitHub ]# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/abstract_proxy_adapter/query_request.rb', line 22
def binds @binds_payload ? Marshal.load(@binds_payload) : [] end
#perform(connection)
[ GitHub ]# File 'activerecord/lib/active_record/connection_adapters/ractor_connection_handler/abstract_proxy_adapter/query_request.rb', line 26
def perform(connection) intent = QueryIntent.new( adapter: connection, processed_sql: sql, name: name, binds: binds, prepare: prepare, allow_retry: allow_retry, materialize_transactions: false, batch: batch, ) intent.notification_payload = {} result, warnings, last_inserted_id = connection.execute_raw_intent(intent) QueryResponse.new( result, intent.notification_payload[:affected_rows] || result.affected_rows, intent.notification_payload[:row_count] || result.length, last_inserted_id, warnings, ) end