activerecord-sqlserver-adapter 5.2.0 → 5.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +6 -6
- data/CHANGELOG.md +15 -0
- data/Dockerfile +1 -1
- data/README.md +0 -7
- data/VERSION +1 -1
- data/lib/active_record/connection_adapters/sqlserver/core_ext/calculations.rb +19 -0
- data/lib/active_record/connection_adapters/sqlserver/core_ext/finder_methods.rb +43 -0
- data/lib/active_record/connection_adapters/sqlserver/core_ext/query_methods.rb +26 -0
- data/lib/active_record/connection_adapters/sqlserver/database_tasks.rb +1 -0
- data/lib/active_record/connection_adapters/sqlserver/schema_statements.rb +10 -5
- data/lib/active_record/connection_adapters/sqlserver_adapter.rb +6 -2
- data/test/cases/adapter_test_sqlserver.rb +18 -18
- data/test/cases/change_column_null_test_sqlserver.rb +4 -4
- data/test/cases/coerced_tests.rb +28 -9
- data/test/cases/column_test_sqlserver.rb +490 -458
- data/test/cases/connection_test_sqlserver.rb +2 -2
- data/test/cases/fetch_test_sqlserver.rb +5 -5
- data/test/cases/helper_sqlserver.rb +5 -0
- data/test/cases/json_test_sqlserver.rb +6 -6
- data/test/cases/migration_test_sqlserver.rb +10 -2
- data/test/cases/pessimistic_locking_test_sqlserver.rb +9 -9
- data/test/cases/rake_test_sqlserver.rb +20 -20
- data/test/cases/schema_dumper_test_sqlserver.rb +34 -33
- data/test/cases/schema_test_sqlserver.rb +2 -2
- data/test/cases/showplan_test_sqlserver.rb +14 -14
- data/test/cases/specific_schema_test_sqlserver.rb +11 -11
- data/test/cases/transaction_test_sqlserver.rb +9 -9
- data/test/cases/trigger_test_sqlserver.rb +8 -8
- data/test/cases/utils_test_sqlserver.rb +36 -36
- data/test/cases/uuid_test_sqlserver.rb +8 -8
- data/test/schema/datatypes/2012.sql +1 -0
- metadata +5 -5
- data/BACKERS.md +0 -32
- data/circle.yml +0 -38
@@ -11,8 +11,8 @@ class SpecificSchemaTestSQLServer < ActiveRecord::TestCase
|
|
11
11
|
|
12
12
|
it 'models can use tinyint pk tables' do
|
13
13
|
obj = SSTestTinyintPk.create! name: '1'
|
14
|
-
['Fixnum', 'Integer'].must_include obj.id.class.name
|
15
|
-
SSTestTinyintPk.find(obj.id).must_equal obj
|
14
|
+
_(['Fixnum', 'Integer']).must_include obj.id.class.name
|
15
|
+
_(SSTestTinyintPk.find(obj.id)).must_equal obj
|
16
16
|
end
|
17
17
|
|
18
18
|
it 'be able to complex count tables with no primary key' do
|
@@ -58,17 +58,17 @@ class SpecificSchemaTestSQLServer < ActiveRecord::TestCase
|
|
58
58
|
|
59
59
|
it 'default objects work' do
|
60
60
|
obj = SSTestObjectDefault.create! name: 'MetaSkills'
|
61
|
-
obj.date.must_be_nil 'since this is set on insert'
|
62
|
-
obj.reload.date.must_be_instance_of Date
|
61
|
+
_(obj.date).must_be_nil 'since this is set on insert'
|
62
|
+
_(obj.reload.date).must_be_instance_of Date
|
63
63
|
end
|
64
64
|
|
65
65
|
it 'allows datetime2 as timestamps' do
|
66
|
-
SSTestBooking.columns_hash['created_at'].sql_type.must_equal 'datetime2(7)'
|
67
|
-
SSTestBooking.columns_hash['updated_at'].sql_type.must_equal 'datetime2(7)'
|
66
|
+
_(SSTestBooking.columns_hash['created_at'].sql_type).must_equal 'datetime2(7)'
|
67
|
+
_(SSTestBooking.columns_hash['updated_at'].sql_type).must_equal 'datetime2(7)'
|
68
68
|
obj1 = SSTestBooking.new name: 'test1'
|
69
69
|
obj1.save!
|
70
|
-
obj1.created_at.must_be_instance_of Time
|
71
|
-
obj1.updated_at.must_be_instance_of Time
|
70
|
+
_(obj1.created_at).must_be_instance_of Time
|
71
|
+
_(obj1.updated_at).must_be_instance_of Time
|
72
72
|
end
|
73
73
|
|
74
74
|
# Natural primary keys.
|
@@ -124,10 +124,10 @@ class SpecificSchemaTestSQLServer < ActiveRecord::TestCase
|
|
124
124
|
o = SSTestDatatypeMigration.create!
|
125
125
|
o.varchar_col = "O'Reilly"
|
126
126
|
o.save!
|
127
|
-
o.reload.varchar_col.must_equal "O'Reilly"
|
127
|
+
_(o.reload.varchar_col).must_equal "O'Reilly"
|
128
128
|
o.varchar_col = nil
|
129
129
|
o.save!
|
130
|
-
o.reload.varchar_col.must_be_nil
|
130
|
+
_(o.reload.varchar_col).must_be_nil
|
131
131
|
end
|
132
132
|
|
133
133
|
# With column names that have spaces
|
@@ -156,7 +156,7 @@ class SpecificSchemaTestSQLServer < ActiveRecord::TestCase
|
|
156
156
|
it 'returns a new id via connection newid_function' do
|
157
157
|
acceptable_uuid = ActiveRecord::ConnectionAdapters::SQLServer::Type::Uuid::ACCEPTABLE_UUID
|
158
158
|
db_uuid = ActiveRecord::Base.connection.newid_function
|
159
|
-
db_uuid.must_match(acceptable_uuid)
|
159
|
+
_(db_uuid).must_match(acceptable_uuid)
|
160
160
|
end
|
161
161
|
|
162
162
|
# with similar table definition in two schemas
|
@@ -34,22 +34,22 @@ class TransactionTestSQLServer < ActiveRecord::TestCase
|
|
34
34
|
it 'can use an isolation level and reverts back to starting isolation level' do
|
35
35
|
in_level = nil
|
36
36
|
begin_level = connection.user_options_isolation_level
|
37
|
-
begin_level.must_match %r{read committed}i
|
37
|
+
_(begin_level).must_match %r{read committed}i
|
38
38
|
Ship.transaction(isolation: :serializable) do
|
39
39
|
Ship.create! name: 'Black Pearl'
|
40
40
|
in_level = connection.user_options_isolation_level
|
41
41
|
end
|
42
42
|
after_level = connection.user_options_isolation_level
|
43
|
-
in_level.must_match %r{serializable}i
|
44
|
-
after_level.must_match %r{read committed}i
|
43
|
+
_(in_level).must_match %r{serializable}i
|
44
|
+
_(after_level).must_match %r{read committed}i
|
45
45
|
end
|
46
46
|
|
47
47
|
it 'can use an isolation level and reverts back to starting isolation level under exceptions' do
|
48
|
-
connection.user_options_isolation_level.must_match %r{read committed}i
|
49
|
-
lambda {
|
48
|
+
_(connection.user_options_isolation_level).must_match %r{read committed}i
|
49
|
+
_(lambda {
|
50
50
|
Ship.transaction(isolation: :serializable) { Ship.create! }
|
51
|
-
}.must_raise(ActiveRecord::RecordInvalid)
|
52
|
-
connection.user_options_isolation_level.must_match %r{read committed}i
|
51
|
+
}).must_raise(ActiveRecord::RecordInvalid)
|
52
|
+
_(connection.user_options_isolation_level).must_match %r{read committed}i
|
53
53
|
end
|
54
54
|
|
55
55
|
describe 'when READ_COMMITTED_SNAPSHOT is set' do
|
@@ -64,7 +64,7 @@ class TransactionTestSQLServer < ActiveRecord::TestCase
|
|
64
64
|
end
|
65
65
|
|
66
66
|
it 'should use READ COMMITTED as an isolation level' do
|
67
|
-
connection.user_options_isolation_level.must_match "read committed snapshot"
|
67
|
+
_(connection.user_options_isolation_level).must_match "read committed snapshot"
|
68
68
|
|
69
69
|
Ship.transaction(isolation: :serializable) do
|
70
70
|
Ship.create! name: 'Black Pearl'
|
@@ -73,7 +73,7 @@ class TransactionTestSQLServer < ActiveRecord::TestCase
|
|
73
73
|
# We're actually testing that the isolation level was correctly reset to
|
74
74
|
# "READ COMMITTED", and that no exception was raised (it's reported back
|
75
75
|
# by SQL Server as "read committed snapshot").
|
76
|
-
connection.user_options_isolation_level.must_match "read committed snapshot"
|
76
|
+
_(connection.user_options_isolation_level).must_match "read committed snapshot"
|
77
77
|
end
|
78
78
|
end
|
79
79
|
|
@@ -12,19 +12,19 @@ class SQLServerTriggerTest < ActiveRecord::TestCase
|
|
12
12
|
exclude_output_inserted_table_names['sst_table_with_trigger'] = true
|
13
13
|
assert SSTestTriggerHistory.all.empty?
|
14
14
|
obj = SSTestTrigger.create! event_name: 'test trigger'
|
15
|
-
['Fixnum', 'Integer'].must_include obj.id.class.name
|
16
|
-
obj.event_name.must_equal 'test trigger'
|
17
|
-
obj.id.must_be :present?
|
18
|
-
obj.id.to_s.must_equal SSTestTriggerHistory.first.id_source
|
15
|
+
_(['Fixnum', 'Integer']).must_include obj.id.class.name
|
16
|
+
_(obj.event_name).must_equal 'test trigger'
|
17
|
+
_(obj.id).must_be :present?
|
18
|
+
_(obj.id.to_s).must_equal SSTestTriggerHistory.first.id_source
|
19
19
|
end
|
20
20
|
|
21
21
|
it 'can insert into a table with output inserted - with a uniqueidentifier value' do
|
22
22
|
exclude_output_inserted_table_names['sst_table_with_uuid_trigger'] = 'uniqueidentifier'
|
23
23
|
assert SSTestTriggerHistory.all.empty?
|
24
24
|
obj = SSTestTriggerUuid.create! event_name: 'test uuid trigger'
|
25
|
-
obj.id.class.name.must_equal 'String'
|
26
|
-
obj.event_name.must_equal 'test uuid trigger'
|
27
|
-
obj.id.must_be :present?
|
28
|
-
obj.id.to_s.must_equal SSTestTriggerHistory.first.id_source
|
25
|
+
_(obj.id.class.name).must_equal 'String'
|
26
|
+
_(obj.event_name).must_equal 'test uuid trigger'
|
27
|
+
_(obj.id).must_be :present?
|
28
|
+
_(obj.id.to_s).must_equal SSTestTriggerHistory.first.id_source
|
29
29
|
end
|
30
30
|
end
|
@@ -3,15 +3,15 @@ require 'cases/helper_sqlserver'
|
|
3
3
|
class UtilsTestSQLServer < ActiveRecord::TestCase
|
4
4
|
|
5
5
|
it '.quote_string' do
|
6
|
-
SQLServer::Utils.quote_string("I'll store this in C:\\Users").must_equal "I''ll store this in C:\\Users"
|
6
|
+
_(SQLServer::Utils.quote_string("I'll store this in C:\\Users")).must_equal "I''ll store this in C:\\Users"
|
7
7
|
end
|
8
8
|
|
9
9
|
it '.unquote_string' do
|
10
|
-
SQLServer::Utils.unquote_string("I''ll store this in C:\\Users").must_equal "I'll store this in C:\\Users"
|
10
|
+
_(SQLServer::Utils.unquote_string("I''ll store this in C:\\Users")).must_equal "I'll store this in C:\\Users"
|
11
11
|
end
|
12
12
|
|
13
13
|
it '.quoted_raw' do
|
14
|
-
SQLServer::Utils.quoted_raw("some.Name").must_equal "[some.Name]"
|
14
|
+
_(SQLServer::Utils.quoted_raw("some.Name")).must_equal "[some.Name]"
|
15
15
|
end
|
16
16
|
|
17
17
|
describe '.extract_identifiers constructor and thus SQLServer::Utils::Name value object' do
|
@@ -47,8 +47,8 @@ class UtilsTestSQLServer < ActiveRecord::TestCase
|
|
47
47
|
it 'extracts and returns #object identifier unquoted by default or quoted as needed' do
|
48
48
|
valid_names.each do |n|
|
49
49
|
name = extract_identifiers(n)
|
50
|
-
name.object.must_equal 'object', "With #{n.inspect} for #object"
|
51
|
-
name.object_quoted.must_equal '[object]', "With #{n.inspect} for #object_quoted"
|
50
|
+
_(name.object).must_equal 'object', "With #{n.inspect} for #object"
|
51
|
+
_(name.object_quoted).must_equal '[object]', "With #{n.inspect} for #object_quoted"
|
52
52
|
end
|
53
53
|
end
|
54
54
|
|
@@ -58,64 +58,64 @@ class UtilsTestSQLServer < ActiveRecord::TestCase
|
|
58
58
|
present, blank = send(:"#{part}_names")
|
59
59
|
present.each do |n|
|
60
60
|
name = extract_identifiers(n)
|
61
|
-
name.send(:"#{part}").must_equal "#{part}", "With #{n.inspect} for ##{part} method"
|
62
|
-
name.send(:"#{part}_quoted").must_equal "[#{part}]", "With #{n.inspect} for ##{part}_quoted method"
|
61
|
+
_(name.send(:"#{part}")).must_equal "#{part}", "With #{n.inspect} for ##{part} method"
|
62
|
+
_(name.send(:"#{part}_quoted")).must_equal "[#{part}]", "With #{n.inspect} for ##{part}_quoted method"
|
63
63
|
end
|
64
64
|
blank.each do |n|
|
65
65
|
name = extract_identifiers(n)
|
66
|
-
name.send(:"#{part}").must_be_nil "With #{n.inspect} for ##{part} method"
|
67
|
-
name.send(:"#{part}_quoted").must_be_nil "With #{n.inspect} for ##{part}_quoted method"
|
66
|
+
_(name.send(:"#{part}")).must_be_nil "With #{n.inspect} for ##{part} method"
|
67
|
+
_(name.send(:"#{part}_quoted")).must_be_nil "With #{n.inspect} for ##{part}_quoted method"
|
68
68
|
end
|
69
69
|
end
|
70
70
|
|
71
71
|
end
|
72
72
|
|
73
73
|
it 'does not blow up on nil or blank string name' do
|
74
|
-
extract_identifiers(nil).object.must_be_nil
|
75
|
-
extract_identifiers(' ').object.must_be_nil
|
74
|
+
_(extract_identifiers(nil).object).must_be_nil
|
75
|
+
_(extract_identifiers(' ').object).must_be_nil
|
76
76
|
end
|
77
77
|
|
78
78
|
it 'has a #quoted that returns a fully quoted name with all identifiers as orginially passed in' do
|
79
|
-
extract_identifiers('object').quoted.must_equal '[object]'
|
80
|
-
extract_identifiers('server.database..object').quoted.must_equal '[server].[database]..[object]'
|
81
|
-
extract_identifiers('[server]...[object]').quoted.must_equal '[server]...[object]'
|
79
|
+
_(extract_identifiers('object').quoted).must_equal '[object]'
|
80
|
+
_(extract_identifiers('server.database..object').quoted).must_equal '[server].[database]..[object]'
|
81
|
+
_(extract_identifiers('[server]...[object]').quoted).must_equal '[server]...[object]'
|
82
82
|
end
|
83
83
|
|
84
84
|
it 'can take a symbol argument' do
|
85
|
-
extract_identifiers(:object).object.must_equal 'object'
|
85
|
+
_(extract_identifiers(:object).object).must_equal 'object'
|
86
86
|
end
|
87
87
|
|
88
88
|
it 'allows identifiers with periods to work' do
|
89
|
-
extract_identifiers('[obj.name]').quoted.must_equal '[obj.name]'
|
90
|
-
extract_identifiers('[obj.name].[foo]').quoted.must_equal '[obj.name].[foo]'
|
89
|
+
_(extract_identifiers('[obj.name]').quoted).must_equal '[obj.name]'
|
90
|
+
_(extract_identifiers('[obj.name].[foo]').quoted).must_equal '[obj.name].[foo]'
|
91
91
|
end
|
92
92
|
|
93
93
|
it 'should indicate if a name is fully qualitified' do
|
94
|
-
extract_identifiers('object').fully_qualified
|
95
|
-
extract_identifiers('schema.object').fully_qualified
|
96
|
-
extract_identifiers('database.schema.object').fully_qualified
|
97
|
-
extract_identifiers('database.object').fully_qualified
|
98
|
-
extract_identifiers('server...object').fully_qualified
|
99
|
-
extract_identifiers('server.database..object').fully_qualified
|
100
|
-
extract_identifiers('server.database.schema.object').fully_qualified
|
101
|
-
extract_identifiers('server.database.schema.').fully_qualified
|
102
|
-
extract_identifiers('[obj.name]').fully_qualified
|
103
|
-
extract_identifiers('[schema].[obj.name]').fully_qualified
|
104
|
-
extract_identifiers('[database].[schema].[obj.name]').fully_qualified
|
105
|
-
extract_identifiers('[database].[obj.name]').fully_qualified
|
106
|
-
extract_identifiers('[server.name]...[obj.name]').fully_qualified
|
107
|
-
extract_identifiers('[server.name].[database]..[obj.name]').fully_qualified
|
108
|
-
extract_identifiers('[server.name].[database].[schema].[obj.name]').fully_qualified
|
109
|
-
extract_identifiers('[server.name].[database].[schema].').fully_qualified
|
94
|
+
_(extract_identifiers('object').fully_qualified?).must_equal false
|
95
|
+
_(extract_identifiers('schema.object').fully_qualified?).must_equal false
|
96
|
+
_(extract_identifiers('database.schema.object').fully_qualified?).must_equal false
|
97
|
+
_(extract_identifiers('database.object').fully_qualified?).must_equal false
|
98
|
+
_(extract_identifiers('server...object').fully_qualified?).must_equal false
|
99
|
+
_(extract_identifiers('server.database..object').fully_qualified?).must_equal false
|
100
|
+
_(extract_identifiers('server.database.schema.object').fully_qualified?).must_equal true
|
101
|
+
_(extract_identifiers('server.database.schema.').fully_qualified?).must_equal true
|
102
|
+
_(extract_identifiers('[obj.name]').fully_qualified?).must_equal false
|
103
|
+
_(extract_identifiers('[schema].[obj.name]').fully_qualified?).must_equal false
|
104
|
+
_(extract_identifiers('[database].[schema].[obj.name]').fully_qualified?).must_equal false
|
105
|
+
_(extract_identifiers('[database].[obj.name]').fully_qualified?).must_equal false
|
106
|
+
_(extract_identifiers('[server.name]...[obj.name]').fully_qualified?).must_equal false
|
107
|
+
_(extract_identifiers('[server.name].[database]..[obj.name]').fully_qualified?).must_equal false
|
108
|
+
_(extract_identifiers('[server.name].[database].[schema].[obj.name]').fully_qualified?).must_equal true
|
109
|
+
_(extract_identifiers('[server.name].[database].[schema].').fully_qualified?).must_equal true
|
110
110
|
end
|
111
111
|
|
112
112
|
it 'can return fully qualified quoted table name' do
|
113
113
|
name = extract_identifiers('[my.server].db.schema.')
|
114
|
-
name.fully_qualified_database_quoted.must_equal '[my.server].[db]'
|
114
|
+
_(name.fully_qualified_database_quoted).must_equal '[my.server].[db]'
|
115
115
|
name = extract_identifiers('[server.name].[database].[schema].[object]')
|
116
|
-
name.fully_qualified_database_quoted.must_equal '[server.name].[database]'
|
116
|
+
_(name.fully_qualified_database_quoted).must_equal '[server.name].[database]'
|
117
117
|
name = extract_identifiers('server.database.schema.object')
|
118
|
-
name.fully_qualified_database_quoted.must_equal '[server].[database]'
|
118
|
+
_(name.fully_qualified_database_quoted).must_equal '[server].[database]'
|
119
119
|
end
|
120
120
|
|
121
121
|
end
|
@@ -6,24 +6,24 @@ class SQLServerUuidTest < ActiveRecord::TestCase
|
|
6
6
|
let(:acceptable_uuid) { ActiveRecord::ConnectionAdapters::SQLServer::Type::Uuid::ACCEPTABLE_UUID }
|
7
7
|
|
8
8
|
it 'has a uuid primary key' do
|
9
|
-
SSTestUuid.columns_hash['id'].type.must_equal :uuid
|
9
|
+
_(SSTestUuid.columns_hash['id'].type).must_equal :uuid
|
10
10
|
assert SSTestUuid.primary_key
|
11
11
|
end
|
12
12
|
|
13
13
|
it 'can create with a new pk' do
|
14
14
|
obj = SSTestUuid.create!
|
15
|
-
obj.id.must_be :present?
|
16
|
-
obj.id.must_match acceptable_uuid
|
15
|
+
_(obj.id).must_be :present?
|
16
|
+
_(obj.id).must_match acceptable_uuid
|
17
17
|
end
|
18
18
|
|
19
19
|
it 'can create other uuid column on reload' do
|
20
20
|
obj = SSTestUuid.create!
|
21
21
|
obj.reload
|
22
|
-
obj.other_uuid.must_match acceptable_uuid
|
22
|
+
_(obj.other_uuid).must_match acceptable_uuid
|
23
23
|
end
|
24
24
|
|
25
25
|
it 'can find uuid pk via connection' do
|
26
|
-
connection.primary_key(SSTestUuid.table_name).must_equal 'id'
|
26
|
+
_(connection.primary_key(SSTestUuid.table_name)).must_equal 'id'
|
27
27
|
end
|
28
28
|
|
29
29
|
it 'changing column default' do
|
@@ -31,17 +31,17 @@ class SQLServerUuidTest < ActiveRecord::TestCase
|
|
31
31
|
connection.add_column table_name, :thingy, :uuid, null: false, default: "NEWSEQUENTIALID()"
|
32
32
|
SSTestUuid.reset_column_information
|
33
33
|
column = SSTestUuid.columns_hash['thingy']
|
34
|
-
column.default_function.must_equal "newsequentialid()"
|
34
|
+
_(column.default_function).must_equal "newsequentialid()"
|
35
35
|
# Now to a different function.
|
36
36
|
connection.change_column table_name, :thingy, :uuid, null: false, default: "NEWID()"
|
37
37
|
SSTestUuid.reset_column_information
|
38
38
|
column = SSTestUuid.columns_hash['thingy']
|
39
|
-
column.default_function.must_equal "newid()"
|
39
|
+
_(column.default_function).must_equal "newid()"
|
40
40
|
end
|
41
41
|
|
42
42
|
it 'can insert even when use_output_inserted to false ' do
|
43
43
|
obj = with_use_output_inserted_disabled { SSTestUuid.create!(name: "😢") }
|
44
|
-
obj.id.must_be :nil?
|
44
|
+
_(obj.id).must_be :nil?
|
45
45
|
end
|
46
46
|
|
47
47
|
end
|
@@ -35,6 +35,7 @@ CREATE TABLE [sst_datatypes] (
|
|
35
35
|
[smalldatetime] [smalldatetime] NULL DEFAULT '1901-01-01T15:45:00.000Z',
|
36
36
|
[time_7] [time](7) NULL DEFAULT '04:20:00.2883215',
|
37
37
|
[time_2] [time](2) NULL,
|
38
|
+
[time_default] [time] NULL DEFAULT '15:03:42.0621978',
|
38
39
|
-- Character Strings
|
39
40
|
[char_10] [char](10) NULL DEFAULT '1234567890',
|
40
41
|
[varchar_50] [varchar](50) NULL DEFAULT 'test varchar_50',
|
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: 5.2.
|
4
|
+
version: 5.2.1
|
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:
|
17
|
+
date: 2020-03-30 00:00:00.000000000 Z
|
18
18
|
dependencies:
|
19
19
|
- !ruby/object:Gem::Dependency
|
20
20
|
name: activerecord
|
@@ -54,7 +54,6 @@ extra_rdoc_files: []
|
|
54
54
|
files:
|
55
55
|
- ".gitignore"
|
56
56
|
- ".travis.yml"
|
57
|
-
- BACKERS.md
|
58
57
|
- CHANGELOG.md
|
59
58
|
- CODE_OF_CONDUCT.md
|
60
59
|
- Dockerfile
|
@@ -67,13 +66,14 @@ files:
|
|
67
66
|
- VERSION
|
68
67
|
- activerecord-sqlserver-adapter.gemspec
|
69
68
|
- appveyor.yml
|
70
|
-
- circle.yml
|
71
69
|
- docker-compose.ci.yml
|
72
70
|
- lib/active_record/connection_adapters/sqlserver/core_ext/active_record.rb
|
73
71
|
- lib/active_record/connection_adapters/sqlserver/core_ext/attribute_methods.rb
|
74
72
|
- lib/active_record/connection_adapters/sqlserver/core_ext/calculations.rb
|
75
73
|
- lib/active_record/connection_adapters/sqlserver/core_ext/explain.rb
|
76
74
|
- lib/active_record/connection_adapters/sqlserver/core_ext/explain_subscriber.rb
|
75
|
+
- lib/active_record/connection_adapters/sqlserver/core_ext/finder_methods.rb
|
76
|
+
- lib/active_record/connection_adapters/sqlserver/core_ext/query_methods.rb
|
77
77
|
- lib/active_record/connection_adapters/sqlserver/database_limits.rb
|
78
78
|
- lib/active_record/connection_adapters/sqlserver/database_statements.rb
|
79
79
|
- lib/active_record/connection_adapters/sqlserver/database_tasks.rb
|
@@ -222,7 +222,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
222
222
|
- !ruby/object:Gem::Version
|
223
223
|
version: '0'
|
224
224
|
requirements: []
|
225
|
-
rubygems_version: 3.0.
|
225
|
+
rubygems_version: 3.0.3
|
226
226
|
signing_key:
|
227
227
|
specification_version: 4
|
228
228
|
summary: ActiveRecord SQL Server Adapter.
|
data/BACKERS.md
DELETED
@@ -1,32 +0,0 @@
|
|
1
|
-
# Backers
|
2
|
-
|
3
|
-
You can join in supporting TinyTDS and the Rails SQL Server Adapter development by [pledging on Patreon](https://www.patreon.com/metaskills)! Backers in the same pledge level appear in the order of pledge date.
|
4
|
-
|
5
|
-
### $2000
|
6
|
-
|
7
|
-
[It could be you!](https://www.patreon.com/bePatron?c=765225&rid=1611218)
|
8
|
-
|
9
|
-
|
10
|
-
### $500
|
11
|
-
|
12
|
-
[It could be you!](https://www.patreon.com/bePatron?c=765225&rid=1611209)
|
13
|
-
|
14
|
-
|
15
|
-
### $250
|
16
|
-
|
17
|
-
[It could be you!](https://www.patreon.com/bePatron?c=765225&rid=1611199)
|
18
|
-
|
19
|
-
|
20
|
-
### $100
|
21
|
-
|
22
|
-
[It could be you!](https://www.patreon.com/bePatron?c=765225&rid=1611196)
|
23
|
-
|
24
|
-
|
25
|
-
### $50+
|
26
|
-
|
27
|
-
[It could be you!](https://www.patreon.com/bePatron?c=765225&rid=1611186)
|
28
|
-
|
29
|
-
|
30
|
-
### $10+
|
31
|
-
|
32
|
-
[It could be you!](https://www.patreon.com/bePatron?c=765225&rid=1611149)
|
data/circle.yml
DELETED
@@ -1,38 +0,0 @@
|
|
1
|
-
general:
|
2
|
-
branches:
|
3
|
-
ignore:
|
4
|
-
- /dev.*/
|
5
|
-
|
6
|
-
machine:
|
7
|
-
environment:
|
8
|
-
PATH: /opt/local/bin:${PATH}
|
9
|
-
TINYTDS_VERSION: 2.1.0
|
10
|
-
ACTIVERECORD_UNITTEST_HOST: localhost
|
11
|
-
ACTIVERECORD_UNITTEST_DATASERVER: localhost
|
12
|
-
services:
|
13
|
-
- docker
|
14
|
-
|
15
|
-
dependencies:
|
16
|
-
override:
|
17
|
-
- sudo ./test/bin/install-openssl.sh
|
18
|
-
- openssl version
|
19
|
-
- sudo ./test/bin/install-freetds.sh
|
20
|
-
- tsql -C
|
21
|
-
- rvm-exec 2.3.8 bundle install
|
22
|
-
- rvm-exec 2.4.5 bundle install
|
23
|
-
- rvm-exec 2.5.3 bundle install
|
24
|
-
- rvm-exec 2.6.0 bundle install
|
25
|
-
|
26
|
-
database:
|
27
|
-
override:
|
28
|
-
- echo "Hello"
|
29
|
-
post:
|
30
|
-
- docker info
|
31
|
-
- ./test/bin/setup.sh
|
32
|
-
|
33
|
-
test:
|
34
|
-
override:
|
35
|
-
- rvm-exec 2.3.8 bundle exec rake test
|
36
|
-
- rvm-exec 2.4.5 bundle exec rake test
|
37
|
-
- rvm-exec 2.5.3 bundle exec rake test
|
38
|
-
- rvm-exec 2.6.0 bundle exec rake test
|