From d647d16a3d8441ad00616fb0163606729e13ea68 Mon Sep 17 00:00:00 2001 From: Drew Shoemaker Date: Tue, 17 Jun 2025 16:57:25 -0400 Subject: [PATCH 1/2] Passing tablefree specs when running on Rails 7.2 --- lib/activerecord/tablefree.rb | 23 +++++++++++++++++------ lib/activerecord/tablefree/connection.rb | 8 +++++--- 2 files changed, 22 insertions(+), 9 deletions(-) diff --git a/lib/activerecord/tablefree.rb b/lib/activerecord/tablefree.rb index b4ad841..44b97b4 100644 --- a/lib/activerecord/tablefree.rb +++ b/lib/activerecord/tablefree.rb @@ -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 From d1a0fe1ddf6f09f3b3727978cd11deb153ffcee9 Mon Sep 17 00:00:00 2001 From: Drew Shoemaker Date: Wed, 18 Jun 2025 16:38:00 -0400 Subject: [PATCH 2/2] Rails 8 compatibility --- lib/activerecord/tablefree.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/activerecord/tablefree.rb b/lib/activerecord/tablefree.rb index 44b97b4..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