Permalink
Browse files

Merge pull request #14359 from arthurnn/mysql2_56_franc_sec

MySQL 5.6  Fractional Seconds
  • Loading branch information...
rafaelfranca committed Mar 12, 2014
2 parents 7bbdb07 + 2ed1cbb commit 79ceae6241f612f866ff2b8670788feaf199b96f
@@ -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.
@@ -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?
@@ -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
@@ -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
@@ -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

0 comments on commit 79ceae6

Please sign in to comment.