diff --git a/lib/activerecord/tablefree.rb b/lib/activerecord/tablefree.rb index b4ad841..110d371 100644 --- a/lib/activerecord/tablefree.rb +++ b/lib/activerecord/tablefree.rb @@ -138,7 +138,7 @@ def destroy_all(*_args) end case ActiveRecord::VERSION::MAJOR - when 5, 6, 7 + when 5, 6, 7, 8 def find_by_sql(*_args) case tablefree_options[:database] when :pretend_success @@ -152,13 +152,8 @@ def find_by_sql(*_args) end def transaction - # case tablefree_options[:database] - # when :pretend_success @_current_transaction_records ||= [] yield - # when :fail_fast - # raise NoDatabase.new("Can't #transaction on Tablefree class") - # end end def tablefree? @@ -168,6 +163,21 @@ def tablefree? def table_exists? false end + + def data_source_exists? + false + end + + def connection_pool + @connection_pool ||= Class.new do + def with_connection(*args) + yield ActiveRecord::Tablefree::Connection.new + end + def connection + self + end + end.new + end end module ClassMethods @@ -231,7 +241,8 @@ def reload(*_args) end end - def add_to_transaction; end + def add_to_transaction(ensure_finalize = true) + end private diff --git a/lib/activerecord/tablefree/connection.rb b/lib/activerecord/tablefree/connection.rb index 7aad9fe..1b37f9d 100644 --- a/lib/activerecord/tablefree/connection.rb +++ b/lib/activerecord/tablefree/connection.rb @@ -1,16 +1,14 @@ module ActiveRecord::Tablefree class Connection < ActiveRecord::ConnectionAdapters::AbstractAdapter def initialize + super(ActiveRecord::Base, nil, nil, { adapter: "tablefree" }) @connection = Object.new # The Raw Connection @owner = nil @instrumenter = ActiveSupport::Notifications.instrumenter @logger = Object.new @config = Object.new - @pool = nil @schema_cache = ActiveRecord::Tablefree::SchemaCache.new @quoted_column_names, @quoted_table_names = {}, {} - @visitor = Object.new - @lock = Object.new @prepared_statements = false end @@ -71,5 +69,9 @@ def execute(*_args) def cacheable_query(arel) # :nodoc: ActiveRecord::Tablefree::StatementCache.partial_query visitor, arel.ast, collector end + + def internal_exec_query(sql, name = "SQL", binds = [], prepare: false, async: false, allow_retry: false) # :nodoc: + [] + end end end