activerecord-sqlserver-adapter 5.2.0 → 5.2.1
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 +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
|