activerecord-sqlserver-adapter 4.2.9 → 4.2.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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