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:
parent
fcfca5c700
commit
c9cc1f47ad
2 changed files with 0 additions and 28 deletions
|
@ -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?
|
||||
|
|
|
@ -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(*)
|
||||
|
|
Loading…
Reference in a new issue