From 053f532926cc55c0a8db6b3f4bb42f6c88f1cc1d Mon Sep 17 00:00:00 2001 From: Charles Oliver Nutter Date: Tue, 29 Sep 2026 05:36:04 -0500 Subject: [PATCH 1/3] These methods no lonegr exist in 8.1 --- lib/arjdbc/abstract/database_statements.rb | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/lib/arjdbc/abstract/database_statements.rb b/lib/arjdbc/abstract/database_statements.rb index f6de22c5d..9506fb136 100644 --- a/lib/arjdbc/abstract/database_statements.rb +++ b/lib/arjdbc/abstract/database_statements.rb @@ -9,19 +9,15 @@ module DatabaseStatements NO_BINDS = [].freeze - unless ::ActiveRecord::ConnectionAdapters::AbstractAdapter.method_defined?(:mark_transaction_written_if_write) - def mark_transaction_written_if_write(sql) - if write_query?(sql) - ensure_writes_are_allowed(sql) - mark_transaction_written - end + def mark_transaction_written_if_write(sql) + if write_query?(sql) + ensure_writes_are_allowed(sql) + mark_transaction_written end end - unless ::ActiveRecord::ConnectionAdapters::AbstractAdapter.method_defined?(:check_if_write_query) - def check_if_write_query(sql) - ensure_writes_are_allowed(sql) if write_query?(sql) - end + def check_if_write_query(sql) + ensure_writes_are_allowed(sql) if write_query?(sql) end def exec_insert(sql, name = nil, binds = NO_BINDS, pk = nil, sequence_name = nil, returning: nil) From 2402d6b07b0d03c7b9ca0356719f683c1953418e Mon Sep 17 00:00:00 2001 From: Charles Oliver Nutter Date: Tue, 29 Sep 2026 05:38:43 -0500 Subject: [PATCH 2/3] cast_type is always passed in 8.1 --- lib/arjdbc/sqlite3/adapter.rb | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/lib/arjdbc/sqlite3/adapter.rb b/lib/arjdbc/sqlite3/adapter.rb index 158abd74b..cb4d59eea 100644 --- a/lib/arjdbc/sqlite3/adapter.rb +++ b/lib/arjdbc/sqlite3/adapter.rb @@ -90,9 +90,6 @@ module SQLite3 "cache_size" => 2000 } - COLUMN_TAKES_CAST_TYPE = ConnectionAdapters::Column.instance_method(:initialize). - parameters.any? { |_kind, name| name == :cast_type } - class StatementPool < ConnectionAdapters::StatementPool # :nodoc: private def dealloc(stmt) @@ -475,7 +472,7 @@ def new_column_from_field(table_name, field, definitions) rowid = is_column_the_rowid?(field, definitions) column_args = [field["name"]] - column_args << lookup_cast_type(field["type"]) if COLUMN_TAKES_CAST_TYPE + column_args << lookup_cast_type(field["type"]) column_args.push( default_value, type_metadata, From 2e2452a246986fb5e37a27ec7a948e23345b22b7 Mon Sep 17 00:00:00 2001 From: Charles Oliver Nutter Date: Tue, 29 Sep 2026 05:44:52 -0500 Subject: [PATCH 3/3] Just use the Rails 8.1 fetch_cast_type here --- lib/arjdbc/sqlite3/adapter.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/arjdbc/sqlite3/adapter.rb b/lib/arjdbc/sqlite3/adapter.rb index cb4d59eea..b04e307f9 100644 --- a/lib/arjdbc/sqlite3/adapter.rb +++ b/lib/arjdbc/sqlite3/adapter.rb @@ -614,7 +614,7 @@ def copy_table(from, to, options = {}) column_options[:stored] = column.virtual_stored? column_options[:type] = column.type elsif column.has_default? - type = column.respond_to?(:fetch_cast_type) ? column.fetch_cast_type(self) : lookup_cast_type_from_column(column) + type = column.fetch_cast_type(self) default = type.deserialize(column.default) default = -> { column.default_function } if default.nil?