activerecord-sqlserver-adapter 6.0.2 → 6.1.0.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +18 -71
  3. data/README.md +13 -2
  4. data/VERSION +1 -1
  5. data/activerecord-sqlserver-adapter.gemspec +1 -1
  6. data/lib/active_record/connection_adapters/sqlserver/core_ext/calculations.rb +0 -9
  7. data/lib/active_record/connection_adapters/sqlserver/core_ext/explain.rb +7 -2
  8. data/lib/active_record/connection_adapters/sqlserver/database_limits.rb +0 -4
  9. data/lib/active_record/connection_adapters/sqlserver/database_statements.rb +27 -15
  10. data/lib/active_record/connection_adapters/sqlserver/quoting.rb +3 -3
  11. data/lib/active_record/connection_adapters/sqlserver/schema_creation.rb +22 -1
  12. data/lib/active_record/connection_adapters/sqlserver/schema_dumper.rb +9 -3
  13. data/lib/active_record/connection_adapters/sqlserver/schema_statements.rb +7 -5
  14. data/lib/active_record/connection_adapters/sqlserver/sql_type_metadata.rb +27 -7
  15. data/lib/active_record/connection_adapters/sqlserver/table_definition.rb +0 -1
  16. data/lib/active_record/connection_adapters/sqlserver/transaction.rb +2 -2
  17. data/lib/active_record/connection_adapters/sqlserver/utils.rb +1 -1
  18. data/lib/active_record/connection_adapters/sqlserver_adapter.rb +83 -66
  19. data/lib/active_record/connection_adapters/sqlserver_column.rb +17 -0
  20. data/lib/active_record/sqlserver_base.rb +9 -15
  21. data/lib/active_record/tasks/sqlserver_database_tasks.rb +17 -14
  22. data/lib/arel/visitors/sqlserver.rb +60 -28
  23. data/test/cases/adapter_test_sqlserver.rb +17 -15
  24. data/test/cases/change_column_collation_test_sqlserver.rb +33 -0
  25. data/test/cases/coerced_tests.rb +531 -77
  26. data/test/cases/disconnected_test_sqlserver.rb +39 -0
  27. data/test/cases/execute_procedure_test_sqlserver.rb +9 -0
  28. data/test/cases/in_clause_test_sqlserver.rb +27 -0
  29. data/test/cases/migration_test_sqlserver.rb +7 -0
  30. data/test/cases/order_test_sqlserver.rb +7 -0
  31. data/test/cases/primary_keys_test_sqlserver.rb +103 -0
  32. data/test/cases/rake_test_sqlserver.rb +3 -2
  33. data/test/cases/schema_dumper_test_sqlserver.rb +9 -0
  34. data/test/migrations/create_clients_and_change_column_collation.rb +19 -0
  35. data/test/models/sqlserver/sst_string_collation.rb +3 -0
  36. data/test/schema/sqlserver_specific_schema.rb +7 -0
  37. data/test/support/marshal_compatibility_fixtures/SQLServer/rails_6_0_topic.dump +0 -0
  38. data/test/support/marshal_compatibility_fixtures/SQLServer/rails_6_0_topic_associations.dump +0 -0
  39. data/test/support/sql_counter_sqlserver.rb +14 -12
  40. metadata +22 -8
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "cases/helper_sqlserver"
4
+
5
+ class TestDisconnectedAdapter < ActiveRecord::TestCase
6
+ self.use_transactional_tests = false
7
+
8
+ def setup
9
+ @connection = ActiveRecord::Base.connection
10
+ end
11
+
12
+ teardown do
13
+ return if in_memory_db?
14
+ db_config = ActiveRecord::Base.connection_db_config
15
+ ActiveRecord::Base.establish_connection(db_config)
16
+ end
17
+
18
+ test "can't execute procedures while disconnected" do
19
+ @connection.execute_procedure :sp_tables, "sst_datatypes"
20
+ @connection.disconnect!
21
+ assert_raises(ActiveRecord::ConnectionNotEstablished, 'SQL Server client is not connected') do
22
+ @connection.execute_procedure :sp_tables, "sst_datatypes"
23
+ end
24
+ end
25
+
26
+ test "can't execute query while disconnected" do
27
+ sql = "SELECT count(*) from products WHERE id IN(@0, @1)"
28
+ binds = [
29
+ ActiveRecord::Relation::QueryAttribute.new("id", 2, ActiveRecord::Type::BigInteger.new),
30
+ ActiveRecord::Relation::QueryAttribute.new("id", 2, ActiveRecord::Type::BigInteger.new)
31
+ ]
32
+
33
+ @connection.exec_query sql, "TEST", binds
34
+ @connection.disconnect!
35
+ assert_raises(ActiveRecord::ConnectionNotEstablished, 'SQL Server client is not connected') do
36
+ @connection.exec_query sql, "TEST", binds
37
+ end
38
+ end
39
+ end
@@ -41,4 +41,13 @@ class ExecuteProcedureTestSQLServer < ActiveRecord::TestCase
41
41
  date_base = connection.select_value("select GETUTCDATE()")
42
42
  assert_equal date_base.change(usec: 0), date_proc.change(usec: 0)
43
43
  end
44
+
45
+ it 'test deprecation with transaction return when executing procedure' do
46
+ assert_deprecated do
47
+ ActiveRecord::Base.transaction do
48
+ connection.execute_procedure("my_getutcdate")
49
+ return
50
+ end
51
+ end
52
+ end
44
53
  end
@@ -33,4 +33,31 @@ class InClauseTestSQLServer < ActiveRecord::TestCase
33
33
  assert_includes posts.to_sql, "ORDER BY [authors].[name]"
34
34
  assert_equal 8, posts.length
35
35
  end
36
+
37
+ it "removes ordering from 'not' subqueries" do
38
+ authors_subquery = Author.where.not(name: ["Mary", "Bob"]).order(:name)
39
+ posts = Post.where(author: authors_subquery)
40
+
41
+ assert_includes authors_subquery.to_sql, "ORDER BY [authors].[name]"
42
+ assert_not_includes posts.to_sql, "ORDER BY [authors].[name]"
43
+ assert_equal 5, posts.length
44
+ end
45
+
46
+ it "does not remove ordering from 'not' subquery that includes a limit" do
47
+ authors_subquery = Author.where.not(name: ["Ronan", "Mary", "Bob"]).order(:name).limit(2)
48
+ posts = Post.where(author: authors_subquery)
49
+
50
+ assert_includes authors_subquery.to_sql, "ORDER BY [authors].[name]"
51
+ assert_includes posts.to_sql, "ORDER BY [authors].[name]"
52
+ assert_equal 5, posts.length
53
+ end
54
+
55
+ it "does not remove ordering from 'not' subquery that includes an offset" do
56
+ authors_subquery = Author.where.not(name: ["David", "Ronan", "Cian"]).order(:name).offset(1)
57
+ posts = Post.where(author: authors_subquery)
58
+
59
+ assert_includes authors_subquery.to_sql, "ORDER BY [authors].[name]"
60
+ assert_includes posts.to_sql, "ORDER BY [authors].[name]"
61
+ assert_equal 3, posts.length
62
+ end
36
63
  end
@@ -63,6 +63,13 @@ class MigrationTestSQLServer < ActiveRecord::TestCase
63
63
  it "change null and default" do
64
64
  assert_nothing_raised { connection.change_column :people, :first_name, :text, null: true, default: nil }
65
65
  end
66
+
67
+ it "change collation" do
68
+ assert_nothing_raised { connection.change_column :sst_string_collation, :string_with_collation, :varchar, collation: :SQL_Latin1_General_CP437_BIN }
69
+
70
+ SstStringCollation.reset_column_information
71
+ assert_equal "SQL_Latin1_General_CP437_BIN", SstStringCollation.columns_hash['string_with_collation'].collation
72
+ end
66
73
  end
67
74
 
68
75
  describe "#create_schema" do
@@ -143,4 +143,11 @@ class OrderTestSQLServer < ActiveRecord::TestCase
143
143
  assert_equal post1, Post.order(Arel.sql(order)).first
144
144
  assert_equal post2, Post.order(Arel.sql(order)).second
145
145
  end
146
+
147
+ # Executing this kind of queries will raise "A column has been specified more than once in the order by list"
148
+ # This test shows that we don't do anything to prevent this
149
+ it "doesn't deduplicate semantically equal orders" do
150
+ sql = Post.order(:id).order("posts.id ASC").to_sql
151
+ assert_equal "SELECT [posts].* FROM [posts] ORDER BY [posts].[id] ASC, posts.id ASC", sql
152
+ end
146
153
  end
@@ -0,0 +1,103 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "cases/helper_sqlserver"
4
+ require "support/schema_dumping_helper"
5
+
6
+ class PrimaryKeyUuidTypeTest < ActiveRecord::TestCase
7
+ include SchemaDumpingHelper
8
+
9
+ self.use_transactional_tests = false
10
+
11
+ class Barcode < ActiveRecord::Base
12
+ end
13
+
14
+ setup do
15
+ @connection = ActiveRecord::Base.connection
16
+ @connection.create_table(:barcodes, primary_key: "code", id: :uuid, force: true)
17
+ end
18
+
19
+ teardown do
20
+ @connection.drop_table(:barcodes, if_exists: true)
21
+ end
22
+
23
+ def test_any_type_primary_key
24
+ assert_equal "code", Barcode.primary_key
25
+
26
+ column = Barcode.column_for_attribute(Barcode.primary_key)
27
+ assert_not column.null
28
+ assert_equal :uuid, column.type
29
+ assert_not_predicate column, :is_identity?
30
+ assert_predicate column, :is_primary?
31
+ ensure
32
+ Barcode.reset_column_information
33
+ end
34
+
35
+ test "schema dump primary key includes default" do
36
+ schema = dump_table_schema "barcodes"
37
+ assert_match %r/create_table "barcodes", primary_key: "code", id: :uuid, default: -> { "newid\(\)" }/, schema
38
+ end
39
+ end
40
+
41
+ class PrimaryKeyIntegerTest < ActiveRecord::TestCase
42
+ include SchemaDumpingHelper
43
+
44
+ self.use_transactional_tests = false
45
+
46
+ class Barcode < ActiveRecord::Base
47
+ end
48
+
49
+ class Widget < ActiveRecord::Base
50
+ end
51
+
52
+ setup do
53
+ @connection = ActiveRecord::Base.connection
54
+ end
55
+
56
+ teardown do
57
+ @connection.drop_table :barcodes, if_exists: true
58
+ @connection.drop_table :widgets, if_exists: true
59
+ end
60
+
61
+ test "integer primary key without default" do
62
+ @connection.create_table(:widgets, id: :integer, force: true)
63
+ column = @connection.columns(:widgets).find { |c| c.name == "id" }
64
+ assert_predicate column, :is_primary?
65
+ assert_predicate column, :is_identity?
66
+ assert_equal :integer, column.type
67
+ assert_not_predicate column, :bigint?
68
+
69
+ schema = dump_table_schema "widgets"
70
+ assert_match %r/create_table "widgets", id: :integer, force: :cascade do/, schema
71
+ end
72
+
73
+ test "bigint primary key without default" do
74
+ @connection.create_table(:widgets, id: :bigint, force: true)
75
+ column = @connection.columns(:widgets).find { |c| c.name == "id" }
76
+ assert_predicate column, :is_primary?
77
+ assert_predicate column, :is_identity?
78
+ assert_equal :integer, column.type
79
+ assert_predicate column, :bigint?
80
+
81
+ schema = dump_table_schema "widgets"
82
+ assert_match %r/create_table "widgets", force: :cascade do/, schema
83
+ end
84
+
85
+ test "don't set identity to integer and bigint when there is a default" do
86
+ @connection.create_table(:barcodes, id: :integer, default: nil, force: true)
87
+ @connection.create_table(:widgets, id: :bigint, default: nil, force: true)
88
+
89
+ column = @connection.columns(:widgets).find { |c| c.name == "id" }
90
+ assert_predicate column, :is_primary?
91
+ assert_not_predicate column, :is_identity?
92
+
93
+ schema = dump_table_schema "widgets"
94
+ assert_match %r/create_table "widgets", id: :bigint, default: nil, force: :cascade do/, schema
95
+
96
+ column = @connection.columns(:barcodes).find { |c| c.name == "id" }
97
+ assert_predicate column, :is_primary?
98
+ assert_not_predicate column, :is_identity?
99
+
100
+ schema = dump_table_schema "barcodes"
101
+ assert_match %r/create_table "barcodes", id: :integer, default: nil, force: :cascade do/, schema
102
+ end
103
+ end
@@ -10,8 +10,9 @@ class SQLServerRakeTest < ActiveRecord::TestCase
10
10
 
11
11
  let(:db_tasks) { ActiveRecord::Tasks::DatabaseTasks }
12
12
  let(:new_database) { "activerecord_unittest_tasks" }
13
- let(:default_configuration) { ARTest.connection_config["arunit"] }
13
+ let(:default_configuration) { ARTest.test_configuration_hashes["arunit"] }
14
14
  let(:configuration) { default_configuration.merge("database" => new_database) }
15
+ let(:db_config) { ActiveRecord::Base.configurations.resolve(configuration) }
15
16
 
16
17
  before { skip "on azure" if azure_skip }
17
18
  before { disconnect! unless azure_skip }
@@ -151,7 +152,7 @@ class SQLServerRakeStructureDumpLoadTest < SQLServerRakeTest
151
152
  _(filedata).must_match %r{CREATE TABLE dbo\.users}
152
153
  db_tasks.purge(configuration)
153
154
  _(connection.tables).wont_include "users"
154
- db_tasks.load_schema configuration, :sql, filename
155
+ db_tasks.load_schema db_config, :sql, filename
155
156
  _(connection.tables).must_include "users"
156
157
  end
157
158
  end
@@ -119,6 +119,15 @@ class SchemaDumperTestSQLServer < ActiveRecord::TestCase
119
119
  assert_line :json_col, type: "text", limit: nil, precision: nil, scale: nil, default: nil
120
120
  end
121
121
 
122
+ it "dump column collation" do
123
+ generate_schema_for_table('sst_string_collation')
124
+
125
+ assert_line :string_without_collation, type: "string", limit: nil, default: nil, collation: nil
126
+ assert_line :string_default_collation, type: "varchar", limit: nil, default: nil, collation: nil
127
+ assert_line :string_with_collation, type: "varchar", limit: nil, default: nil, collation: "SQL_Latin1_General_CP1_CS_AS"
128
+ assert_line :varchar_with_collation, type: "varchar", limit: nil, default: nil, collation: "SQL_Latin1_General_CP1_CS_AS"
129
+ end
130
+
122
131
  # Special Cases
123
132
 
124
133
  it "honor nonstandard primary keys" do
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ class CreateClientsAndChangeColumnCollation < ActiveRecord::Migration[5.2]
4
+ def up
5
+ create_table :clients do |t|
6
+ t.string :name
7
+ t.string :code, collation: :SQL_Latin1_General_CP1_CS_AS
8
+
9
+ t.timestamps
10
+ end
11
+
12
+ change_column :clients, :name, :string, collation: 'SQL_Latin1_General_CP1_CS_AS'
13
+ change_column :clients, :code, :string, collation: 'SQL_Latin1_General_CP1_CI_AS'
14
+ end
15
+
16
+ def down
17
+ drop_table :clients
18
+ end
19
+ end
@@ -0,0 +1,3 @@
1
+ class SstStringCollation < ActiveRecord::Base
2
+ self.table_name = "sst_string_collation"
3
+ end
@@ -95,6 +95,13 @@ ActiveRecord::Schema.define do
95
95
  t.column :string_with_multiline_default, :string, default: "Some long default with a\nnew line."
96
96
  end
97
97
 
98
+ create_table :sst_string_collation, collation: :SQL_Latin1_General_CP1_CI_AS, force: true do |t|
99
+ t.string :string_without_collation
100
+ t.varchar :string_default_collation, collation: :SQL_Latin1_General_CP1_CI_AS
101
+ t.varchar :string_with_collation, collation: :SQL_Latin1_General_CP1_CS_AS
102
+ t.varchar :varchar_with_collation, collation: :SQL_Latin1_General_CP1_CS_AS
103
+ end
104
+
98
105
  create_table :sst_edge_schemas, force: true do |t|
99
106
  t.string :description
100
107
  t.column "crazy]]quote", :string
@@ -11,17 +11,19 @@ module ARTest
11
11
  end
12
12
  end
13
13
 
14
- ignored_sql = [
15
- /INFORMATION_SCHEMA\.(TABLES|VIEWS|COLUMNS|KEY_COLUMN_USAGE)/im,
16
- /sys.columns/i,
17
- /SELECT @@version/,
18
- /SELECT @@TRANCOUNT/,
19
- /(BEGIN|COMMIT|ROLLBACK|SAVE) TRANSACTION/,
20
- /SELECT CAST\(.* AS .*\) AS value/,
21
- /SELECT DATABASEPROPERTYEX/im
22
- ]
23
-
24
- sqlcounter = ObjectSpace.each_object(ActiveRecord::SQLCounter).to_a.first
25
- sqlcounter.instance_variable_set :@ignore, Regexp.union(ignored_sql.push(sqlcounter.ignore))
14
+ # TODO: Delete the code below after all Rails 6.1 tests passing.
15
+ #
16
+ # ignored_sql = [
17
+ # /INFORMATION_SCHEMA\.(TABLES|VIEWS|COLUMNS|KEY_COLUMN_USAGE)/im,
18
+ # /sys.columns/i,
19
+ # /SELECT @@version/,
20
+ # /SELECT @@TRANCOUNT/,
21
+ # /(BEGIN|COMMIT|ROLLBACK|SAVE) TRANSACTION/,
22
+ # /SELECT CAST\(.* AS .*\) AS value/,
23
+ # /SELECT DATABASEPROPERTYEX/im
24
+ # ]
25
+ #
26
+ # sqlcounter = ObjectSpace.each_object(ActiveRecord::SQLCounter).to_a.first
27
+ # sqlcounter.instance_variable_set :@ignore, Regexp.union(ignored_sql.push(sqlcounter.ignore))
26
28
  end
27
29
  end
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: 6.0.2
4
+ version: 6.1.0.0.rc1
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: 2021-04-12 00:00:00.000000000 Z
17
+ date: 2021-05-05 00:00:00.000000000 Z
18
18
  dependencies:
19
19
  - !ruby/object:Gem::Dependency
20
20
  name: activerecord
@@ -22,14 +22,14 @@ dependencies:
22
22
  requirements:
23
23
  - - "~>"
24
24
  - !ruby/object:Gem::Version
25
- version: 6.0.0
25
+ version: 6.1.0
26
26
  type: :runtime
27
27
  prerelease: false
28
28
  version_requirements: !ruby/object:Gem::Requirement
29
29
  requirements:
30
30
  - - "~>"
31
31
  - !ruby/object:Gem::Version
32
- version: 6.0.0
32
+ version: 6.1.0
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: tiny_tds
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -144,10 +144,12 @@ files:
144
144
  - test/bin/install-openssl.sh
145
145
  - test/bin/setup.sh
146
146
  - test/cases/adapter_test_sqlserver.rb
147
+ - test/cases/change_column_collation_test_sqlserver.rb
147
148
  - test/cases/change_column_null_test_sqlserver.rb
148
149
  - test/cases/coerced_tests.rb
149
150
  - test/cases/column_test_sqlserver.rb
150
151
  - test/cases/connection_test_sqlserver.rb
152
+ - test/cases/disconnected_test_sqlserver.rb
151
153
  - test/cases/execute_procedure_test_sqlserver.rb
152
154
  - test/cases/fetch_test_sqlserver.rb
153
155
  - test/cases/fully_qualified_identifier_test_sqlserver.rb
@@ -160,6 +162,7 @@ files:
160
162
  - test/cases/optimizer_hints_test_sqlserver.rb
161
163
  - test/cases/order_test_sqlserver.rb
162
164
  - test/cases/pessimistic_locking_test_sqlserver.rb
165
+ - test/cases/primary_keys_test_sqlserver.rb
163
166
  - test/cases/rake_test_sqlserver.rb
164
167
  - test/cases/schema_dumper_test_sqlserver.rb
165
168
  - test/cases/schema_test_sqlserver.rb
@@ -173,6 +176,7 @@ files:
173
176
  - test/config.yml
174
177
  - test/debug.rb
175
178
  - test/fixtures/1px.gif
179
+ - test/migrations/create_clients_and_change_column_collation.rb
176
180
  - test/migrations/create_clients_and_change_column_null.rb
177
181
  - test/migrations/transaction_table/1_table_will_never_be_created.rb
178
182
  - test/models/sqlserver/booking.rb
@@ -191,6 +195,7 @@ files:
191
195
  - test/models/sqlserver/quoted_view_1.rb
192
196
  - test/models/sqlserver/quoted_view_2.rb
193
197
  - test/models/sqlserver/sst_memory.rb
198
+ - test/models/sqlserver/sst_string_collation.rb
194
199
  - test/models/sqlserver/string_default.rb
195
200
  - test/models/sqlserver/string_defaults_big_view.rb
196
201
  - test/models/sqlserver/string_defaults_view.rb
@@ -207,6 +212,8 @@ files:
207
212
  - test/support/connection_reflection.rb
208
213
  - test/support/core_ext/query_cache.rb
209
214
  - test/support/load_schema_sqlserver.rb
215
+ - test/support/marshal_compatibility_fixtures/SQLServer/rails_6_0_topic.dump
216
+ - test/support/marshal_compatibility_fixtures/SQLServer/rails_6_0_topic_associations.dump
210
217
  - test/support/minitest_sqlserver.rb
211
218
  - test/support/paths_sqlserver.rb
212
219
  - test/support/rake_helpers.rb
@@ -217,8 +224,8 @@ licenses:
217
224
  - MIT
218
225
  metadata:
219
226
  bug_tracker_uri: https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/issues
220
- changelog_uri: https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/blob/v6.0.2/CHANGELOG.md
221
- source_code_uri: https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/tree/v6.0.2
227
+ changelog_uri: https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/blob/v6.1.0.0.rc1/CHANGELOG.md
228
+ source_code_uri: https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/tree/v6.1.0.0.rc1
222
229
  post_install_message:
223
230
  rdoc_options: []
224
231
  require_paths:
@@ -230,9 +237,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
230
237
  version: 2.5.0
231
238
  required_rubygems_version: !ruby/object:Gem::Requirement
232
239
  requirements:
233
- - - ">="
240
+ - - ">"
234
241
  - !ruby/object:Gem::Version
235
- version: '0'
242
+ version: 1.3.1
236
243
  requirements: []
237
244
  rubygems_version: 3.1.4
238
245
  signing_key:
@@ -245,10 +252,12 @@ test_files:
245
252
  - test/bin/install-openssl.sh
246
253
  - test/bin/setup.sh
247
254
  - test/cases/adapter_test_sqlserver.rb
255
+ - test/cases/change_column_collation_test_sqlserver.rb
248
256
  - test/cases/change_column_null_test_sqlserver.rb
249
257
  - test/cases/coerced_tests.rb
250
258
  - test/cases/column_test_sqlserver.rb
251
259
  - test/cases/connection_test_sqlserver.rb
260
+ - test/cases/disconnected_test_sqlserver.rb
252
261
  - test/cases/execute_procedure_test_sqlserver.rb
253
262
  - test/cases/fetch_test_sqlserver.rb
254
263
  - test/cases/fully_qualified_identifier_test_sqlserver.rb
@@ -261,6 +270,7 @@ test_files:
261
270
  - test/cases/optimizer_hints_test_sqlserver.rb
262
271
  - test/cases/order_test_sqlserver.rb
263
272
  - test/cases/pessimistic_locking_test_sqlserver.rb
273
+ - test/cases/primary_keys_test_sqlserver.rb
264
274
  - test/cases/rake_test_sqlserver.rb
265
275
  - test/cases/schema_dumper_test_sqlserver.rb
266
276
  - test/cases/schema_test_sqlserver.rb
@@ -274,6 +284,7 @@ test_files:
274
284
  - test/config.yml
275
285
  - test/debug.rb
276
286
  - test/fixtures/1px.gif
287
+ - test/migrations/create_clients_and_change_column_collation.rb
277
288
  - test/migrations/create_clients_and_change_column_null.rb
278
289
  - test/migrations/transaction_table/1_table_will_never_be_created.rb
279
290
  - test/models/sqlserver/booking.rb
@@ -292,6 +303,7 @@ test_files:
292
303
  - test/models/sqlserver/quoted_view_1.rb
293
304
  - test/models/sqlserver/quoted_view_2.rb
294
305
  - test/models/sqlserver/sst_memory.rb
306
+ - test/models/sqlserver/sst_string_collation.rb
295
307
  - test/models/sqlserver/string_default.rb
296
308
  - test/models/sqlserver/string_defaults_big_view.rb
297
309
  - test/models/sqlserver/string_defaults_view.rb
@@ -308,6 +320,8 @@ test_files:
308
320
  - test/support/connection_reflection.rb
309
321
  - test/support/core_ext/query_cache.rb
310
322
  - test/support/load_schema_sqlserver.rb
323
+ - test/support/marshal_compatibility_fixtures/SQLServer/rails_6_0_topic.dump
324
+ - test/support/marshal_compatibility_fixtures/SQLServer/rails_6_0_topic_associations.dump
311
325
  - test/support/minitest_sqlserver.rb
312
326
  - test/support/paths_sqlserver.rb
313
327
  - test/support/rake_helpers.rb