Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Merge pull request #14359 from arthurnn/mysql2_56_franc_sec

MySQL 5.6  Fractional Seconds
  • Loading branch information...
commit 79ceae6241f612f866ff2b8670788feaf199b96f 2 parents 7bbdb07 + 2ed1cbb
@rafaelfranca rafaelfranca authored
View
4 activerecord/CHANGELOG.md
@@ -1,3 +1,7 @@
+* Support for Mysql 5.6 Fractional Seconds.
+
+ *arthurnn*, *Tatsuhiko Miyagawa*
+
* Support for Postgres `citext` data type enabling case-insensitive where
values without needing to wrap in UPPER/LOWER sql functions.
View
8 activerecord/lib/active_record/connection_adapters/mysql2_adapter.rb
@@ -83,6 +83,14 @@ def quote_string(string)
@connection.escape(string)
end
+ def quoted_date(value)
+ if value.acts_like?(:time) && value.respond_to?(:usec)
+ "#{super}.#{sprintf("%06d", value.usec)}"
+ else
+ super
+ end
+ end
+
# CONNECTION MANAGEMENT ====================================
def active?
View
2  activerecord/test/cases/base_test.rb
@@ -212,7 +212,7 @@ def test_preserving_time_objects
)
# For adapters which support microsecond resolution.
- if current_adapter?(:PostgreSQLAdapter, :SQLite3Adapter)
+ if current_adapter?(:PostgreSQLAdapter, :SQLite3Adapter) || mysql_56?
assert_equal 11, Topic.find(1).written_on.sec
assert_equal 223300, Topic.find(1).written_on.usec
assert_equal 9900, Topic.find(2).written_on.usec
View
5 activerecord/test/cases/helper.rb
@@ -41,6 +41,11 @@ def in_memory_db?
ActiveRecord::Base.connection_pool.spec.config[:database] == ":memory:"
end
+def mysql_56?
+ current_adapter?(:Mysql2Adapter) &&
+ ActiveRecord::Base.connection.send(:version).join(".") >= "5.6.0"
+end
+
def supports_savepoints?
ActiveRecord::Base.connection.supports_savepoints?
end
View
6 activerecord/test/schema/schema.rb
@@ -674,7 +674,11 @@ def create_table(*args, &block)
t.string :title
t.string :author_name
t.string :author_email_address
- t.datetime :written_on
+ if mysql_56?
+ t.datetime :written_on, limit: 6
+ else
+ t.datetime :written_on
+ end
t.time :bonus_time
t.date :last_read
# use VARCHAR2(4000) instead of CLOB datatype as CLOB data type has many limitations in
Please sign in to comment.
Something went wrong with that request. Please try again.