提交 c9cc1f47 编写于 作者: S Sean Griffin

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.
上级 fcfca5c7
...@@ -41,15 +41,6 @@ def sqlite3_connection(config) ...@@ -41,15 +41,6 @@ def sqlite3_connection(config)
end end
module ConnectionAdapters #:nodoc: 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 # The SQLite3 adapter works SQLite 3.6.16 or newer
# with the sqlite3-ruby drivers (available as gem from https://rubygems.org/gems/sqlite3). # with the sqlite3-ruby drivers (available as gem from https://rubygems.org/gems/sqlite3).
# #
...@@ -240,10 +231,6 @@ def _type_cast(value) # :nodoc: ...@@ -240,10 +231,6 @@ def _type_cast(value) # :nodoc:
end end
end end
def type_classes_with_standard_constructor
super.merge(binary: SQLite3Binary)
end
def quote_string(s) #:nodoc: def quote_string(s) #:nodoc:
@connection.class.quote(s) @connection.class.quote(s)
end end
...@@ -493,11 +480,6 @@ def rename_column(table_name, column_name, new_column_name) #:nodoc: ...@@ -493,11 +480,6 @@ def rename_column(table_name, column_name, new_column_name) #:nodoc:
protected protected
def initialize_type_map(m)
super
m.register_type(/binary/i, SQLite3Binary.new)
end
def table_structure(table_name) def table_structure(table_name)
structure = exec_query("PRAGMA table_info(#{quote_table_name(table_name)})", 'SCHEMA').to_hash 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? raise(ActiveRecord::StatementInvalid, "Could not find table '#{table_name}'") if structure.empty?
......
...@@ -108,16 +108,6 @@ def test_type_equality ...@@ -108,16 +108,6 @@ def test_type_equality
assert_not_equal Type::Value.new(precision: 1), Type::Value.new(precision: 2) assert_not_equal Type::Value.new(precision: 1), Type::Value.new(precision: 2)
end 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 def test_attributes_which_are_invalid_for_database_can_still_be_reassigned
type_which_cannot_go_to_the_database = Type::Value.new type_which_cannot_go_to_the_database = Type::Value.new
def type_which_cannot_go_to_the_database.type_cast_for_database(*) def type_which_cannot_go_to_the_database.type_cast_for_database(*)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册