diff --git a/lib/active_record/connection_adapters/oracle_enhanced/jdbc_connection.rb b/lib/active_record/connection_adapters/oracle_enhanced/jdbc_connection.rb index 3f227a5af..a65a4d815 100644 --- a/lib/active_record/connection_adapters/oracle_enhanced/jdbc_connection.rb +++ b/lib/active_record/connection_adapters/oracle_enhanced/jdbc_connection.rb @@ -98,6 +98,8 @@ def new_connection(config) @raw_connection = @raw_connection.underlying_connection end + # Workaround FrozenError (can't modify frozen Hash): + config = config.dup config[:driver] ||= @raw_connection.meta_data.connection.java_class.name username = @raw_connection.meta_data.user_name else diff --git a/lib/active_record/connection_adapters/oracle_enhanced/quoting.rb b/lib/active_record/connection_adapters/oracle_enhanced/quoting.rb index 5907a266e..a4d2c420f 100644 --- a/lib/active_record/connection_adapters/oracle_enhanced/quoting.rb +++ b/lib/active_record/connection_adapters/oracle_enhanced/quoting.rb @@ -10,14 +10,11 @@ module Quoting def quote_column_name(name) #:nodoc: name = name.to_s - self.class.quoted_column_names[name] ||= begin - # if only valid lowercase column characters in name - if /\A[a-z][a-z_0-9\$#]*\Z/.match?(name) - "\"#{name.upcase}\"" - else - # remove double quotes which cannot be used inside quoted identifier - "\"#{name.gsub('"', '')}\"" - end + self.class.quoted_column_names[name] ||= if /\A[a-z][a-z_0-9\$#]*\Z/.match?(name) + "\"#{name.upcase}\"" + else + # remove double quotes which cannot be used inside quoted identifier + "\"#{name.gsub('"', '')}\"" end end