aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
diff options
context:
space:
mode:
Diffstat (limited to 'activerecord')
-rw-r--r--activerecord/CHANGELOG.md22
-rw-r--r--activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb6
-rw-r--r--activerecord/lib/active_record/connection_adapters/mysql_adapter.rb6
-rw-r--r--activerecord/test/cases/adapters/mysql2/quoting_test.rb25
4 files changed, 6 insertions, 53 deletions
diff --git a/activerecord/CHANGELOG.md b/activerecord/CHANGELOG.md
index 8667f40406..8e262b5fd7 100644
--- a/activerecord/CHANGELOG.md
+++ b/activerecord/CHANGELOG.md
@@ -1,25 +1,3 @@
-* Fix bug when using Mysql2 adapter where in some cases, boolean values were
- being output in sql as `t` or `f` instead of `1` or `0`. Example:
-
- class Model < ActiveRecord::Base
- validates_uniqueness_of :boolean_col
- end
- Model.first.valid?
-
- Previously generated sql:
-
- SELECT 1 AS one FROM `models` WHERE
- `models`.`boolean_col` = BINARY 'f' LIMIT 1
-
- With fix:
-
- SELECT 1 AS one FROM `models` WHERE
- `models`.`boolean_col` = BINARY 0 LIMIT 1
-
- Fixes: #11119
-
- *Adam Williams*
-
* `change_column` for PostgreSQL adapter respects the `:array` option.
*Yves Senn*
diff --git a/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb b/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
index be42d7e3c6..5b25b26164 100644
--- a/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
+++ b/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
@@ -272,12 +272,6 @@ module ActiveRecord
QUOTED_FALSE
end
- def type_cast(value, column)
- return super unless value == true || value == false
-
- value ? 1 : 0
- end
-
# REFERENTIAL INTEGRITY ====================================
def disable_referential_integrity(&block) #:nodoc:
diff --git a/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb b/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb
index be0eb64efd..1826d88500 100644
--- a/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb
+++ b/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb
@@ -160,6 +160,12 @@ module ActiveRecord
# QUOTING ==================================================
+ def type_cast(value, column)
+ return super unless value == true || value == false
+
+ value ? 1 : 0
+ end
+
def quote_string(string) #:nodoc:
@connection.quote(string)
end
diff --git a/activerecord/test/cases/adapters/mysql2/quoting_test.rb b/activerecord/test/cases/adapters/mysql2/quoting_test.rb
deleted file mode 100644
index 90157b088b..0000000000
--- a/activerecord/test/cases/adapters/mysql2/quoting_test.rb
+++ /dev/null
@@ -1,25 +0,0 @@
-require "cases/helper"
-
-module ActiveRecord
- module ConnectionAdapters
- class Mysql2Adapter
- class QuotingTest < ActiveRecord::TestCase
- def setup
- @conn = ActiveRecord::Base.connection
- end
-
- def test_type_cast_true
- c = Column.new(nil, 1, 'boolean')
- assert_equal 1, @conn.type_cast(true, nil)
- assert_equal 1, @conn.type_cast(true, c)
- end
-
- def test_type_cast_false
- c = Column.new(nil, 1, 'boolean')
- assert_equal 0, @conn.type_cast(false, nil)
- assert_equal 0, @conn.type_cast(false, c)
- end
- end
- end
- end
-end