1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

Remove the SQLite3 Binary subclass

As far as I can tell, the original reason that this behavior was added
has been sufficiently resolved elsewhere, as we no longer remove the
encoding of strings coming out of the database.
This commit is contained in:
Sean Griffin 2015-02-11 10:30:24 -07:00
parent fcfca5c700
commit c9cc1f47ad
2 changed files with 0 additions and 28 deletions

View file

@ -41,15 +41,6 @@ module ActiveRecord
end
module ConnectionAdapters #:nodoc:
class SQLite3Binary < Type::Binary # :nodoc:
def cast_value(value)
if value.encoding != Encoding::ASCII_8BIT
value = value.force_encoding(Encoding::ASCII_8BIT)
end
value
end
end
# The SQLite3 adapter works SQLite 3.6.16 or newer
# with the sqlite3-ruby drivers (available as gem from https://rubygems.org/gems/sqlite3).
#
@ -240,10 +231,6 @@ module ActiveRecord
end
end
def type_classes_with_standard_constructor
super.merge(binary: SQLite3Binary)
end
def quote_string(s) #:nodoc:
@connection.class.quote(s)
end
@ -493,11 +480,6 @@ module ActiveRecord
protected
def initialize_type_map(m)
super
m.register_type(/binary/i, SQLite3Binary.new)
end
def table_structure(table_name)
structure = exec_query("PRAGMA table_info(#{quote_table_name(table_name)})", 'SCHEMA').to_hash
raise(ActiveRecord::StatementInvalid, "Could not find table '#{table_name}'") if structure.empty?

View file

@ -108,16 +108,6 @@ module ActiveRecord
assert_not_equal Type::Value.new(precision: 1), Type::Value.new(precision: 2)
end
if current_adapter?(:SQLite3Adapter)
def test_binary_encoding
type = SQLite3Binary.new
utf8_string = "a string".encode(Encoding::UTF_8)
type_cast = type.type_cast_from_user(utf8_string)
assert_equal Encoding::ASCII_8BIT, type_cast.encoding
end
end
def test_attributes_which_are_invalid_for_database_can_still_be_reassigned
type_which_cannot_go_to_the_database = Type::Value.new
def type_which_cannot_go_to_the_database.type_cast_for_database(*)