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

@ -41,15 +41,6 @@ def sqlite3_connection(config)
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 @@ def _type_cast(value) # :nodoc:
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 @@ def rename_column(table_name, column_name, new_column_name) #:nodoc:
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?

@ -108,16 +108,6 @@ def test_type_equality
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(*)