Skip to content

Commit d82d7eb

Browse files
committed
[Rails 5] Fix some times coming back nil after save.
As part of #528, a few errors were introduced. Since we have a `fast_string_to_time` implementation that uses a custom format which includes %N, parsing the time for DB from DB could fail. So we ensure we always have a nanosecond on the SQL even if it is 0. No need not to.
1 parent 237ce43 commit d82d7eb

File tree

3 files changed

+3
-3
lines changed

3 files changed

+3
-3
lines changed

lib/active_record/connection_adapters/sqlserver/type/datetime.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ def serialize(value)
1414
return super unless value.acts_like?(:time)
1515
datetime = super.to_s(:_sqlserver_datetime).tap do |v|
1616
fraction = quote_fractional(value)
17-
v << ".#{fraction}" unless fraction.to_i.zero?
17+
v << ".#{fraction}"
1818
end
1919
Data.new datetime, self
2020
end

lib/active_record/connection_adapters/sqlserver/type/time.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ def serialize(value)
1010
return super unless value.acts_like?(:time)
1111
time = value.to_s(:_sqlserver_time).tap do |v|
1212
fraction = quote_fractional(value)
13-
v << ".#{fraction}" unless fraction.to_i.zero?
13+
v << ".#{fraction}"
1414
end
1515
Data.new time, self
1616
end

test/cases/schema_dumper_test_sqlserver.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ class SchemaDumperTestSQLServer < ActiveRecord::TestCase
3030
assert_line :datetime2_3, type: 'datetime2', limit: nil, precision: 3, scale: nil, default: nil
3131
assert_line :datetime2_1, type: 'datetime2', limit: nil, precision: 1, scale: nil, default: nil
3232
end
33-
assert_line :smalldatetime, type: 'smalldatetime',limit: nil, precision: nil, scale: nil, default: "01-01-1901 15:45:00"
33+
assert_line :smalldatetime, type: 'smalldatetime',limit: nil, precision: nil, scale: nil, default: "01-01-1901 15:45:00.0"
3434
if connection_dblib_73?
3535
assert_line :time_7, type: 'time', limit: nil, precision: 7, scale: nil, default: "04:20:00.2883215"
3636
assert_line :time_2, type: 'time', limit: nil, precision: 2, scale: nil, default: nil

0 commit comments

Comments
 (0)