Sha256: d8b601448043f1a9d3ee8caa288241614f13d1014b65b71f3bfaab6cef6ce700
Contents?: true
Size: 1.38 KB
Versions: 1
Compression:
Stored size: 1.38 KB
Contents
module Sequel module ActiveRecordConnection module Sqlite def execute_ddl(sql, opts=OPTS) execute(sql, opts) end private # ActiveRecord doesn't send SQLite methods Sequel expects, so we need to # try to replicate what ActiveRecord does around connection excecution. def _execute(type, sql, opts, &block) if activerecord_raw_connection.respond_to?(:extended_result_codes=) activerecord_raw_connection.extended_result_codes = true end if ActiveRecord::VERSION::MAJOR >= 6 activerecord_connection.materialize_transactions end activerecord_connection.send(:log, sql) do ActiveSupport::Dependencies.interlock.permit_concurrent_loads do case type when :select activerecord_raw_connection.query(sql, &block) when :insert activerecord_raw_connection.execute(sql) activerecord_raw_connection.last_insert_row_id when :update activerecord_raw_connection.execute_batch(sql) activerecord_raw_connection.changes end end end rescue ActiveRecord::StatementInvalid => exception if exception.cause.is_a?(SQLite3::Exception) raise_error(exception.cause) else raise exception end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
sequel-activerecord_connection-0.2.1 | lib/sequel/extensions/activerecord_connection/sqlite.rb |