activerecord-sqlserver-adapter 4.2.9 → 4.2.10

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8f5d6ca15cc209e9b813902b9858da21c7e7c884
4
- data.tar.gz: 6bd880c3daa536eee4df06414864df65cd8745c4
3
+ metadata.gz: b3f5cb06eb492b1fce0526281946dea07336bec9
4
+ data.tar.gz: 1b4d4a21a4a4ed6858572daac58016d8d5672d35
5
5
  SHA512:
6
- metadata.gz: 5245acb11cbaa31099871f12c5a9387776dc5def556bbdcfecc25eebc3a1b167a29ebb14b6aa1cd58ad8fa52241bd58ef0f784aa29167a68a3c4c3d1f55aa9d2
7
- data.tar.gz: 514c6fa8bc3c4e7d16df6db884c5705aa6932b5de7b3fd857cfb2346409efe004a117fc8c51de90a4d67ac26c1bca4c1c4753ce25c5913edf17651646809417f
6
+ metadata.gz: ae62612e1fe093da674fa74d67ee2e85a516795871fb6fa5fc281fadd2c09a5a0378a7a202caf592d6ab4babaa08545e218fe18a46a9e195805e8cf69195746b
7
+ data.tar.gz: 398a1381b3f0157bec451e29c45c57f4ade59291e10f3c17e95591bcf9471f743a2e96852c7509f946cd7237edf4b5ffcbfdd68b044165cf57d55f63daf602b9
@@ -1,3 +1,10 @@
1
+ ## v4.2.10
2
+
3
+ #### Fixed
4
+
5
+ * Ensure small datetime/datetime2 fractionals are properly quoted. Fixes #457.
6
+
7
+
1
8
  ## v4.2.9
2
9
 
3
10
  #### Fixed
data/VERSION CHANGED
@@ -1 +1 @@
1
- 4.2.9
1
+ 4.2.10
@@ -17,7 +17,7 @@ module ActiveRecord
17
17
 
18
18
  def quote_fractional(value)
19
19
  seconds = (value.send(fractional_property).to_f / fractional_operator.to_f).round(fractional_scale)
20
- seconds.to_s.split('.').last.to(fractional_scale-1)
20
+ seconds.to_d.to_s.split('.').last.to(fractional_scale-1)
21
21
  end
22
22
 
23
23
  def fractional_property
@@ -354,6 +354,11 @@ class ColumnTestSQLServer < ActiveRecord::TestCase
354
354
  obj.datetime2_7.must_equal Time.utc(9999, 12, 31, 23, 59, 59, Rational(123456800, 1000)), "Nanoseconds were <#{obj.datetime2_7.nsec}> vs <123456800>"
355
355
  obj.save!
356
356
  obj.reload.datetime2_7.must_equal Time.utc(9999, 12, 31, 23, 59, 59, Rational(123456800, 1000)), "Nanoseconds were <#{obj.datetime2_7.nsec}> vs <123456800>"
357
+ # Can save small fraction nanosecond precisoins and return again.
358
+ obj.datetime2_7 = Time.utc(2008, 6, 21, 13, 30, 0, Rational(15020, 1000))
359
+ obj.datetime2_7.must_equal Time.utc(2008, 6, 21, 13, 30, 0, Rational(15000, 1000)), "Nanoseconds were <#{obj.datetime2_7.nsec}> vs <15000>"
360
+ obj.save!
361
+ obj.reload.datetime2_7.must_equal Time.utc(2008, 6, 21, 13, 30, 0, Rational(15000, 1000)), "Nanoseconds were <#{obj.datetime2_7.nsec}> vs <15000>"
357
362
  # With other precisions.
358
363
  time = Time.utc 9999, 12, 31, 23, 59, 59, Rational(123456789, 1000)
359
364
  col = column('datetime2_3')
@@ -38,7 +38,7 @@ class ExecuteProcedureTestSQLServer < ActiveRecord::TestCase
38
38
  it 'uses the proper timezone' do
39
39
  date_proc = connection.execute_procedure('my_getutcdate').first['utcdate']
40
40
  date_base = connection.select_value('select GETUTCDATE()')
41
- assert_equal date_base, date_proc
41
+ assert_equal date_base.change(usec: 0), date_proc.change(usec: 0)
42
42
  end
43
43
 
44
44
  end
@@ -68,6 +68,15 @@ class SpecificSchemaTestSQLServer < ActiveRecord::TestCase
68
68
  obj.reload.date.must_be_instance_of Date
69
69
  end
70
70
 
71
+ it 'allows datetime2 as timestamps' do
72
+ SSTestBooking.columns_hash['created_at'].sql_type.must_equal 'datetime2(7)'
73
+ SSTestBooking.columns_hash['updated_at'].sql_type.must_equal 'datetime2(7)'
74
+ obj1 = SSTestBooking.new name: 'test1'
75
+ obj1.save!
76
+ obj1.created_at.must_be_instance_of Time
77
+ obj1.updated_at.must_be_instance_of Time
78
+ end
79
+
71
80
  # Natural primary keys.
72
81
 
73
82
  it 'work with identity inserts' do
@@ -0,0 +1,3 @@
1
+ class SSTestBooking < ActiveRecord::Base
2
+ self.table_name = 'sst_bookings'
3
+ end
@@ -37,6 +37,12 @@ ActiveRecord::Schema.define do
37
37
 
38
38
  # Edge Cases
39
39
 
40
+ create_table 'sst_bookings', force: true do |t|
41
+ t.string :name
42
+ t.datetime2 :created_at, null: false
43
+ t.datetime2 :updated_at, null: false
44
+ end
45
+
40
46
  create_table 'sst_uuids', force: true, id: :uuid do |t|
41
47
  t.string :name
42
48
  t.uuid :other_uuid, default: 'NEWID()'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord-sqlserver-adapter
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.2.9
4
+ version: 4.2.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ken Collins
@@ -14,7 +14,7 @@ authors:
14
14
  autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
- date: 2016-03-15 00:00:00.000000000 Z
17
+ date: 2016-03-20 00:00:00.000000000 Z
18
18
  dependencies:
19
19
  - !ruby/object:Gem::Dependency
20
20
  name: activerecord
@@ -136,6 +136,7 @@ files:
136
136
  - test/debug.rb
137
137
  - test/fixtures/1px.gif
138
138
  - test/migrations/transaction_table/1_table_will_never_be_created.rb
139
+ - test/models/sqlserver/booking.rb
139
140
  - test/models/sqlserver/customers_view.rb
140
141
  - test/models/sqlserver/datatype.rb
141
142
  - test/models/sqlserver/datatype_migration.rb
@@ -218,6 +219,7 @@ test_files:
218
219
  - test/debug.rb
219
220
  - test/fixtures/1px.gif
220
221
  - test/migrations/transaction_table/1_table_will_never_be_created.rb
222
+ - test/models/sqlserver/booking.rb
221
223
  - test/models/sqlserver/customers_view.rb
222
224
  - test/models/sqlserver/datatype.rb
223
225
  - test/models/sqlserver/datatype_migration.rb