Skip to content

Commit 63d368f

Browse files
authored
Merge pull request #1207 from evaniainbrooks/1184-rails-8.1
Add Rails 8.1 compatibility
2 parents a98c556 + 2281241 commit 63d368f

3 files changed

Lines changed: 33 additions & 1 deletion

File tree

activerecord-jdbc-adapter.gemspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ Gem::Specification.new do |gem|
4141
gem.executables = gem.files.grep(%r{^bin/}).map { |f| File.basename(f) }
4242
gem.test_files = gem.files.grep(%r{^test/})
4343

44-
gem.add_dependency "activerecord", "~> 8.0.0"
44+
gem.add_dependency "activerecord", "~> 8.0"
4545

4646
#gem.add_development_dependency 'test-unit', '2.5.4'
4747
#gem.add_development_dependency 'test-unit-context', '>= 0.3.0'

lib/arjdbc/abstract/database_statements.rb

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,21 @@ module DatabaseStatements
99

1010
NO_BINDS = [].freeze
1111

12+
unless method_defined?(:mark_transaction_written_if_write)
13+
def mark_transaction_written_if_write(sql)
14+
if write_query?(sql)
15+
ensure_writes_are_allowed(sql)
16+
mark_transaction_written
17+
end
18+
end
19+
end
20+
21+
unless method_defined?(:check_if_write_query)
22+
def check_if_write_query(sql)
23+
ensure_writes_are_allowed(sql) if write_query?(sql)
24+
end
25+
end
26+
1227
def exec_insert(sql, name = nil, binds = NO_BINDS, pk = nil, sequence_name = nil, returning: nil)
1328
if preventing_writes?
1429
raise ActiveRecord::ReadOnlyError, "Write query attempted while in readonly mode: #{sql}"

lib/arjdbc/postgresql/schema_statements.rb

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,23 @@ module SchemaStatements
66
ForeignKeyDefinition = ActiveRecord::ConnectionAdapters::ForeignKeyDefinition
77
Utils = ActiveRecord::ConnectionAdapters::PostgreSQL::Utils
88

9+
def decode_string_array(value)
10+
return value if value.is_a?(Array)
11+
_arjdbc_array_parser.parse_pg_array(value)
12+
end
13+
14+
private
15+
16+
def _arjdbc_array_parser
17+
@_arjdbc_array_parser ||= begin
18+
obj = Object.new
19+
obj.extend(ActiveRecord::ConnectionAdapters::PostgreSQL::ArrayParser)
20+
obj
21+
end
22+
end
23+
24+
public
25+
926
def foreign_keys(table_name)
1027
scope = quoted_scope(table_name)
1128
fk_info = internal_exec_query(<<~SQL, "SCHEMA", allow_retry: true, materialize_transactions: false)

0 commit comments

Comments
 (0)