Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion activerecord-jdbc-adapter.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ Gem::Specification.new do |gem|
gem.executables = gem.files.grep(%r{^bin/}).map { |f| File.basename(f) }
gem.test_files = gem.files.grep(%r{^test/})

gem.add_dependency "activerecord", "~> 8.0.0"
gem.add_dependency "activerecord", "~> 8.0"

#gem.add_development_dependency 'test-unit', '2.5.4'
#gem.add_development_dependency 'test-unit-context', '>= 0.3.0'
Expand Down
15 changes: 15 additions & 0 deletions lib/arjdbc/abstract/database_statements.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,21 @@ module DatabaseStatements

NO_BINDS = [].freeze

unless 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
end
end

unless method_defined?(:check_if_write_query)
def check_if_write_query(sql)
ensure_writes_are_allowed(sql) if write_query?(sql)
end
end

def exec_insert(sql, name = nil, binds = NO_BINDS, pk = nil, sequence_name = nil, returning: nil)
if preventing_writes?
raise ActiveRecord::ReadOnlyError, "Write query attempted while in readonly mode: #{sql}"
Expand Down
17 changes: 17 additions & 0 deletions lib/arjdbc/postgresql/schema_statements.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,23 @@ module SchemaStatements
ForeignKeyDefinition = ActiveRecord::ConnectionAdapters::ForeignKeyDefinition
Utils = ActiveRecord::ConnectionAdapters::PostgreSQL::Utils

def decode_string_array(value)
return value if value.is_a?(Array)
_arjdbc_array_parser.parse_pg_array(value)
end

private

def _arjdbc_array_parser
@_arjdbc_array_parser ||= begin
obj = Object.new
obj.extend(ActiveRecord::ConnectionAdapters::PostgreSQL::ArrayParser)
obj
end
end

public

def foreign_keys(table_name)
scope = quoted_scope(table_name)
fk_info = internal_exec_query(<<~SQL, "SCHEMA", allow_retry: true, materialize_transactions: false)
Expand Down