activerecord-sqlserver-adapter 8.0.10 → 8.1.0

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.
Files changed (71) hide show
  1. checksums.yaml +4 -4
  2. data/.devcontainer/Dockerfile +1 -1
  3. data/.github/workflows/ci.yml +34 -3
  4. data/CHANGELOG.md +14 -68
  5. data/Dockerfile.ci +1 -1
  6. data/Gemfile +7 -9
  7. data/Guardfile +2 -2
  8. data/README.md +33 -13
  9. data/Rakefile +1 -1
  10. data/VERSION +1 -1
  11. data/activerecord-sqlserver-adapter.gemspec +15 -16
  12. data/compose.ci.yaml +8 -1
  13. data/lib/active_record/connection_adapters/sqlserver/core_ext/attribute_methods.rb +1 -1
  14. data/lib/active_record/connection_adapters/sqlserver/core_ext/explain.rb +1 -2
  15. data/lib/active_record/connection_adapters/sqlserver/core_ext/explain_subscriber.rb +1 -1
  16. data/lib/active_record/connection_adapters/sqlserver/core_ext/finder_methods.rb +4 -4
  17. data/lib/active_record/connection_adapters/sqlserver/database_statements.rb +118 -83
  18. data/lib/active_record/connection_adapters/sqlserver/database_tasks.rb +3 -4
  19. data/lib/active_record/connection_adapters/sqlserver/quoting.rb +7 -7
  20. data/lib/active_record/connection_adapters/sqlserver/schema_creation.rb +24 -12
  21. data/lib/active_record/connection_adapters/sqlserver/schema_dumper.rb +17 -8
  22. data/lib/active_record/connection_adapters/sqlserver/schema_statements.rb +162 -156
  23. data/lib/active_record/connection_adapters/sqlserver/showplan/printer_table.rb +2 -2
  24. data/lib/active_record/connection_adapters/sqlserver/showplan.rb +5 -5
  25. data/lib/active_record/connection_adapters/sqlserver/sql_type_metadata.rb +2 -7
  26. data/lib/active_record/connection_adapters/sqlserver/table_definition.rb +3 -1
  27. data/lib/active_record/connection_adapters/sqlserver/type/data.rb +3 -3
  28. data/lib/active_record/connection_adapters/sqlserver/type/date.rb +3 -3
  29. data/lib/active_record/connection_adapters/sqlserver/type/datetime.rb +3 -4
  30. data/lib/active_record/connection_adapters/sqlserver/type/smalldatetime.rb +1 -1
  31. data/lib/active_record/connection_adapters/sqlserver/type/time.rb +4 -6
  32. data/lib/active_record/connection_adapters/sqlserver/type/time_value_fractional.rb +1 -1
  33. data/lib/active_record/connection_adapters/sqlserver/type/uuid.rb +0 -2
  34. data/lib/active_record/connection_adapters/sqlserver/utils.rb +10 -12
  35. data/lib/active_record/connection_adapters/sqlserver_adapter.rb +118 -66
  36. data/lib/active_record/connection_adapters/sqlserver_column.rb +17 -9
  37. data/lib/active_record/tasks/sqlserver_database_tasks.rb +5 -5
  38. data/lib/arel/visitors/sqlserver.rb +55 -26
  39. data/test/cases/active_schema_test_sqlserver.rb +45 -23
  40. data/test/cases/adapter_test_sqlserver.rb +72 -59
  41. data/test/cases/coerced_tests.rb +365 -161
  42. data/test/cases/column_test_sqlserver.rb +328 -316
  43. data/test/cases/connection_test_sqlserver.rb +15 -11
  44. data/test/cases/enum_test_sqlserver.rb +8 -9
  45. data/test/cases/execute_procedure_test_sqlserver.rb +1 -1
  46. data/test/cases/fetch_test_sqlserver.rb +1 -1
  47. data/test/cases/helper_sqlserver.rb +7 -3
  48. data/test/cases/index_test_sqlserver.rb +8 -6
  49. data/test/cases/insert_all_test_sqlserver.rb +3 -28
  50. data/test/cases/json_test_sqlserver.rb +8 -8
  51. data/test/cases/lateral_test_sqlserver.rb +2 -2
  52. data/test/cases/migration_test_sqlserver.rb +12 -12
  53. data/test/cases/pessimistic_locking_test_sqlserver.rb +6 -6
  54. data/test/cases/primary_keys_test_sqlserver.rb +4 -4
  55. data/test/cases/rake_test_sqlserver.rb +15 -7
  56. data/test/cases/schema_dumper_test_sqlserver.rb +109 -113
  57. data/test/cases/schema_test_sqlserver.rb +7 -7
  58. data/test/cases/transaction_test_sqlserver.rb +6 -8
  59. data/test/cases/trigger_test_sqlserver.rb +1 -1
  60. data/test/cases/utils_test_sqlserver.rb +3 -3
  61. data/test/cases/view_test_sqlserver.rb +12 -8
  62. data/test/cases/virtual_column_test_sqlserver.rb +113 -0
  63. data/test/migrations/create_clients_and_change_column_collation.rb +2 -2
  64. data/test/models/sqlserver/edge_schema.rb +2 -2
  65. data/test/schema/sqlserver_specific_schema.rb +49 -37
  66. data/test/support/coerceable_test_sqlserver.rb +10 -10
  67. data/test/support/connection_reflection.rb +0 -5
  68. data/test/support/core_ext/backtrace_cleaner.rb +36 -0
  69. data/test/support/query_assertions.rb +6 -6
  70. data/test/support/rake_helpers.rb +6 -10
  71. metadata +12 -107
@@ -7,36 +7,36 @@ ActiveRecord::Schema.define do
7
7
 
8
8
  create_table :sst_datatypes_migration, force: true do |t|
9
9
  # Simple Rails conventions.
10
- t.integer :integer_col
11
- t.bigint :bigint_col
12
- t.boolean :boolean_col
13
- t.decimal :decimal_col
14
- t.float :float_col
15
- t.string :string_col
16
- t.text :text_col
17
- t.datetime :datetime_nil_precision_col, precision: nil
18
- t.datetime :datetime_col # Precision defaults to 6
10
+ t.integer :integer_col
11
+ t.bigint :bigint_col
12
+ t.boolean :boolean_col
13
+ t.decimal :decimal_col
14
+ t.float :float_col
15
+ t.string :string_col
16
+ t.text :text_col
17
+ t.datetime :datetime_nil_precision_col, precision: nil
18
+ t.datetime :datetime_col # Precision defaults to 6
19
19
  t.timestamp :timestamp_col # Precision defaults to 6
20
- t.time :time_col
21
- t.date :date_col
22
- t.binary :binary_col
20
+ t.time :time_col
21
+ t.date :date_col
22
+ t.binary :binary_col
23
23
  # Our type methods.
24
- t.real :real_col
25
- t.money :money_col
26
- t.smalldatetime :smalldatetime_col
27
- t.datetime2 :datetime2_col
24
+ t.real :real_col
25
+ t.money :money_col
26
+ t.smalldatetime :smalldatetime_col
27
+ t.datetime2 :datetime2_col
28
28
  t.datetimeoffset :datetimeoffset
29
- t.smallmoney :smallmoney_col
30
- t.char :char_col
31
- t.varchar :varchar_col
32
- t.text_basic :text_basic_col
33
- t.nchar :nchar_col
34
- t.ntext :ntext_col
35
- t.binary_basic :binary_basic_col
36
- t.binary_basic :binary_basic_16_col, limit: 16
37
- t.varbinary :varbinary_col
38
- t.uuid :uuid_col
39
- t.ss_timestamp :sstimestamp_col
29
+ t.smallmoney :smallmoney_col
30
+ t.char :char_col
31
+ t.varchar :varchar_col
32
+ t.text_basic :text_basic_col
33
+ t.nchar :nchar_col
34
+ t.ntext :ntext_col
35
+ t.binary_basic :binary_basic_col
36
+ t.binary_basic :binary_basic_16_col, limit: 16
37
+ t.varbinary :varbinary_col
38
+ t.uuid :uuid_col
39
+ t.ss_timestamp :sstimestamp_col
40
40
  if supports_json?
41
41
  t.json :json_col
42
42
  else
@@ -48,7 +48,7 @@ ActiveRecord::Schema.define do
48
48
 
49
49
  if ENV["IN_MEMORY_OLTP"] && supports_in_memory_oltp?
50
50
  create_table "sst_memory", force: true, id: false,
51
- options: "WITH (MEMORY_OPTIMIZED = ON, DURABILITY = SCHEMA_AND_DATA)" do |t|
51
+ options: "WITH (MEMORY_OPTIMIZED = ON, DURABILITY = SCHEMA_AND_DATA)" do |t|
52
52
  t.primary_key_nonclustered :id
53
53
  t.string :name
54
54
  t.timestamps
@@ -63,8 +63,8 @@ ActiveRecord::Schema.define do
63
63
 
64
64
  create_table "sst_uuids", force: true, id: :uuid do |t|
65
65
  t.string :name
66
- t.uuid :other_uuid, default: "NEWID()"
67
- t.uuid :uuid_nil_default, default: nil
66
+ t.uuid :other_uuid, default: "NEWID()"
67
+ t.uuid :uuid_nil_default, default: nil
68
68
  end
69
69
 
70
70
  create_table "sst_my$strange_table", force: true do |t|
@@ -85,7 +85,7 @@ ActiveRecord::Schema.define do
85
85
  execute "IF EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_NAME = 'sst_quoted-view1') DROP VIEW [sst_quoted-view1]"
86
86
  execute "CREATE VIEW [sst_quoted-view1] AS SELECT * FROM [sst_quoted-table]"
87
87
  execute "IF EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_NAME = 'sst_quoted-view2') DROP VIEW [sst_quoted-view2]"
88
- execute "CREATE VIEW [sst_quoted-view2] AS \n /*#{'x' * 4000}}*/ \n SELECT * FROM [sst_quoted-table]"
88
+ execute "CREATE VIEW [sst_quoted-view2] AS \n /*#{"x" * 4000}}*/ \n SELECT * FROM [sst_quoted-table]"
89
89
 
90
90
  create_table :sst_string_defaults, force: true do |t|
91
91
  t.column :string_with_null_default, :string, default: nil
@@ -138,21 +138,33 @@ ActiveRecord::Schema.define do
138
138
  )
139
139
  TINYITPKTABLE
140
140
 
141
- execute "DROP DEFAULT [sst_getdateobject];" rescue nil
142
- execute "CREATE DEFAULT [sst_getdateobject] AS getdate();" rescue nil
141
+ begin
142
+ execute "DROP DEFAULT [sst_getdateobject];"
143
+ rescue
144
+ nil
145
+ end
146
+ begin
147
+ execute "CREATE DEFAULT [sst_getdateobject] AS getdate();"
148
+ rescue
149
+ nil
150
+ end
143
151
  create_table "sst_defaultobjects", force: true do |t|
144
152
  t.string :name
145
- t.date :date
153
+ t.date :date
146
154
  end
147
155
  execute "sp_bindefault 'sst_getdateobject', 'sst_defaultobjects.date'"
148
156
 
149
- execute "DROP PROCEDURE my_getutcdate" rescue nil
157
+ begin
158
+ execute "DROP PROCEDURE my_getutcdate"
159
+ rescue
160
+ nil
161
+ end
150
162
  execute <<-SQL
151
163
  CREATE PROCEDURE my_getutcdate AS
152
164
  SELECT GETUTCDATE() utcdate
153
165
  SQL
154
166
 
155
- create_table 'A Table With Spaces', force: true do |t|
167
+ create_table "A Table With Spaces", force: true do |t|
156
168
  t.string :name
157
169
  end
158
170
 
@@ -195,7 +207,7 @@ ActiveRecord::Schema.define do
195
207
  execute <<-STRINGDEFAULTSBIGVIEW
196
208
  CREATE VIEW sst_string_defaults_big_view AS
197
209
  SELECT id, string_with_pretend_null_one as pretend_null
198
- /*#{'x' * 4000}}*/
210
+ /*#{"x" * 4000}}*/
199
211
  FROM sst_string_defaults
200
212
  STRINGDEFAULTSBIGVIEW
201
213
 
@@ -20,32 +20,32 @@ module ARTest
20
20
 
21
21
  def coerce_all_tests!
22
22
  instance_methods(false).each do |method|
23
- next unless method.to_s =~ /\Atest/
23
+ next unless method.to_s.start_with?("test")
24
24
 
25
25
  undef_method(method)
26
26
  end
27
- STDOUT.puts "🙉 🙈 🙊 Undefined all tests: #{name}"
27
+ $stdout.puts "🙉 🙈 🙊 Undefined all tests: #{name}"
28
28
  end
29
29
 
30
30
  private
31
31
 
32
32
  def coerced_test_warning(test_to_coerce)
33
- if test_to_coerce.is_a?(Regexp)
34
- method = instance_methods(false).select { |m| m =~ test_to_coerce }
33
+ method = if test_to_coerce.is_a?(Regexp)
34
+ instance_methods(false).select { |m| m =~ test_to_coerce }
35
35
  else
36
- method = test_to_coerce
36
+ test_to_coerce
37
37
  end
38
38
 
39
39
  Array(method).each do |m|
40
40
  result = if m && method_defined?(m)
41
- alias_method("original_#{test_to_coerce.inspect.tr('/\:"', '')}", m)
42
- undef_method(m)
43
- end
41
+ alias_method("original_#{test_to_coerce.inspect.tr('/\:"', "")}", m)
42
+ undef_method(m)
43
+ end
44
44
 
45
45
  if result.blank?
46
- STDOUT.puts "🐳 Unfound coerced test: #{name}##{m}"
46
+ $stdout.puts "🐳 Unfound coerced test: #{name}##{m}"
47
47
  else
48
- STDOUT.puts "🐵 Undefined coerced test: #{name}##{m}"
48
+ $stdout.puts "🐵 Undefined coerced test: #{name}##{m}"
49
49
  end
50
50
  end
51
51
  end
@@ -15,11 +15,6 @@ module ARTest
15
15
  connection.instance_variable_get :@connection_parameters
16
16
  end
17
17
 
18
- def connection_tds_73
19
- rc = connection.raw_connection
20
- rc.respond_to?(:tds_73?) && rc.tds_73?
21
- end
22
-
23
18
  def connection_sqlserver_azure?
24
19
  connection.sqlserver_azure?
25
20
  end
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Need to handle `ActiveRecord` lines like they are in the source rather than in the Rails gem.
4
+ module SQLServer
5
+ module BacktraceCleaner
6
+ extend ActiveSupport::Concern
7
+
8
+ private
9
+
10
+ def add_gem_filter
11
+ gems_paths = (Gem.path | [Gem.default_dir]).map { |p| Regexp.escape(p) }
12
+ return if gems_paths.empty?
13
+
14
+ gems_regexp = %r{\A(#{gems_paths.join("|")})/(bundler/)?gems/([^/]+)-([\w.]+)/(.*)}
15
+ gems_result = '\3 (\4) \5'
16
+
17
+ add_filter do |line|
18
+ if line.match?(/activerecord/)
19
+ line
20
+ else
21
+ line.sub(gems_regexp, gems_result)
22
+ end
23
+ end
24
+ end
25
+
26
+ def add_gem_silencer
27
+ add_silencer do |line|
28
+ ActiveSupport::BacktraceCleaner::FORMATTED_GEMS_PATTERN.match?(line) && !/activerecord/.match?(line)
29
+ end
30
+ end
31
+ end
32
+ end
33
+
34
+ ActiveSupport.on_load(:active_record) do
35
+ ActiveSupport::BacktraceCleaner.prepend(SQLServer::BacktraceCleaner)
36
+ end
@@ -16,13 +16,13 @@ module ARTest
16
16
  if count
17
17
  assert_equal count, queries.size, "#{queries.size} instead of #{count} queries were executed. Queries: #{queries.join("\n\n")}"
18
18
  else
19
- assert_operator queries.size, :>=, 1, "1 or more queries expected, but none were executed.#{queries.empty? ? '' : "\nQueries:\n#{queries.join("\n")}"}"
19
+ assert_operator queries.size, :>=, 1, "1 or more queries expected, but none were executed.#{"\nQueries:\n#{queries.join("\n")}" unless queries.empty?}"
20
20
  end
21
21
  result
22
22
  end
23
23
  end
24
24
 
25
- def assert_queries_and_values_match(match, bound_values=[], count: nil, &block)
25
+ def assert_queries_and_values_match(match, bound_values = [], count: nil, &block)
26
26
  ActiveRecord::Base.lease_connection.materialize_transactions
27
27
 
28
28
  counter = ActiveRecord::Assertions::QueryAssertions::SQLCounter.new
@@ -35,9 +35,9 @@ module ARTest
35
35
  end
36
36
 
37
37
  if count
38
- assert_equal count, matched_queries.size, "#{matched_queries.size} instead of #{count} queries were executed.#{count.log.empty? ? '' : "\nQueries:\n#{counter.log.join("\n")}"}"
38
+ assert_equal count, matched_queries.size, "#{matched_queries.size} instead of #{count} queries were executed.#{"\nQueries:\n#{counter.log.join("\n")}" unless count.log.empty?}"
39
39
  else
40
- assert_operator matched_queries.size, :>=, 1, "1 or more queries expected, but none were executed.#{counter.log.empty? ? '' : "\nQueries:\n#{counter.log.join("\n")}"}"
40
+ assert_operator matched_queries.size, :>=, 1, "1 or more queries expected, but none were executed.#{"\nQueries:\n#{counter.log.join("\n")}" unless counter.log.empty?}"
41
41
  end
42
42
 
43
43
  result
@@ -53,7 +53,7 @@ module ARTest
53
53
  grouped_queries = [[]]
54
54
 
55
55
  queries.each do |query|
56
- if query =~ /SAVE TRANSACTION \S+/
56
+ if /SAVE TRANSACTION \S+/.match?(query)
57
57
  grouped_queries << [query]
58
58
  else
59
59
  grouped_queries.last << query
@@ -61,7 +61,7 @@ module ARTest
61
61
  end
62
62
 
63
63
  grouped_queries.each do |group|
64
- group.append "/* release savepoint placeholder for testing */" if group.first =~ /SAVE TRANSACTION \S+/
64
+ group.append "/* release savepoint placeholder for testing */" if /SAVE TRANSACTION \S+/.match?(group.first)
65
65
  end
66
66
 
67
67
  grouped_queries.flatten
@@ -6,11 +6,9 @@ SQLSERVER_COERCED = "test/cases/coerced_tests.rb"
6
6
  def env_ar_test_files
7
7
  return unless ENV["TEST_FILES_AR"] && !ENV["TEST_FILES_AR"].empty?
8
8
 
9
- @env_ar_test_files ||= begin
10
- ENV["TEST_FILES_AR"].split(",").map { |file|
11
- File.join ARTest::SQLServer.root_activerecord, file.strip
12
- }.sort
13
- end
9
+ @env_ar_test_files ||= ENV["TEST_FILES_AR"].split(",").map { |file|
10
+ File.join ARTest::SQLServer.root_activerecord, file.strip
11
+ }.sort
14
12
  end
15
13
 
16
14
  def env_test_files
@@ -24,11 +22,9 @@ def sqlserver_cases
24
22
  end
25
23
 
26
24
  def ar_cases
27
- @ar_cases ||= begin
28
- Dir.glob("#{ARTest::SQLServer.root_activerecord}/test/cases/**/*_test.rb").reject {
29
- |x| x.include?("/adapters/") || x.include?("/encryption/performance")
30
- }.sort
31
- end
25
+ @ar_cases ||= Dir.glob("#{ARTest::SQLServer.root_activerecord}/test/cases/**/*_test.rb").reject { |x|
26
+ x.include?("/adapters/") || x.include?("/encryption/performance")
27
+ }.sort
32
28
  end
33
29
 
34
30
  def test_files
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: 8.0.10
4
+ version: 8.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ken Collins
@@ -22,28 +22,28 @@ dependencies:
22
22
  requirements:
23
23
  - - "~>"
24
24
  - !ruby/object:Gem::Version
25
- version: 8.0.0
25
+ version: 8.1.0.rc1
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: 8.0.0
32
+ version: 8.1.0.rc1
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: tiny_tds
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
- - - ">="
37
+ - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '0'
39
+ version: '3.0'
40
40
  type: :runtime
41
41
  prerelease: false
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  requirements:
44
- - - ">="
44
+ - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: '0'
46
+ version: '3.0'
47
47
  description: ActiveRecord SQL Server Adapter. SQL Server 2012 and upward.
48
48
  email:
49
49
  - ken@metaskills.net
@@ -184,6 +184,7 @@ files:
184
184
  - test/cases/utils_test_sqlserver.rb
185
185
  - test/cases/uuid_test_sqlserver.rb
186
186
  - test/cases/view_test_sqlserver.rb
187
+ - test/cases/virtual_column_test_sqlserver.rb
187
188
  - test/config.yml
188
189
  - test/debug.rb
189
190
  - test/fixtures/1px.gif
@@ -226,6 +227,7 @@ files:
226
227
  - test/schema/sqlserver_specific_schema.rb
227
228
  - test/support/coerceable_test_sqlserver.rb
228
229
  - test/support/connection_reflection.rb
230
+ - test/support/core_ext/backtrace_cleaner.rb
229
231
  - test/support/core_ext/query_cache.rb
230
232
  - test/support/load_schema_sqlserver.rb
231
233
  - test/support/marshal_compatibility_fixtures/SQLServer/rails_6_1_topic.dump
@@ -243,8 +245,8 @@ licenses:
243
245
  - MIT
244
246
  metadata:
245
247
  bug_tracker_uri: https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/issues
246
- changelog_uri: https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/blob/v8.0.10/CHANGELOG.md
247
- source_code_uri: https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/tree/v8.0.10
248
+ changelog_uri: https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/blob/v8.1.0/CHANGELOG.md
249
+ source_code_uri: https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/tree/v8.1.0
248
250
  rdoc_options: []
249
251
  require_paths:
250
252
  - lib
@@ -262,101 +264,4 @@ requirements: []
262
264
  rubygems_version: 3.6.7
263
265
  specification_version: 4
264
266
  summary: ActiveRecord SQL Server Adapter.
265
- test_files:
266
- - test/appveyor/dbsetup.ps1
267
- - test/appveyor/dbsetup.sql
268
- - test/bin/install-freetds.sh
269
- - test/bin/install-openssl.sh
270
- - test/bin/setup.sh
271
- - test/cases/active_schema_test_sqlserver.rb
272
- - test/cases/adapter_test_sqlserver.rb
273
- - test/cases/change_column_collation_test_sqlserver.rb
274
- - test/cases/change_column_index_test_sqlserver.rb
275
- - test/cases/change_column_null_test_sqlserver.rb
276
- - test/cases/coerced_tests.rb
277
- - test/cases/column_test_sqlserver.rb
278
- - test/cases/connection_test_sqlserver.rb
279
- - test/cases/dbconsole.rb
280
- - test/cases/disconnected_test_sqlserver.rb
281
- - test/cases/eager_load_too_many_ids_test_sqlserver.rb
282
- - test/cases/enum_test_sqlserver.rb
283
- - test/cases/execute_procedure_test_sqlserver.rb
284
- - test/cases/fetch_test_sqlserver.rb
285
- - test/cases/fully_qualified_identifier_test_sqlserver.rb
286
- - test/cases/helper_sqlserver.rb
287
- - test/cases/in_clause_test_sqlserver.rb
288
- - test/cases/index_test_sqlserver.rb
289
- - test/cases/insert_all_test_sqlserver.rb
290
- - test/cases/json_test_sqlserver.rb
291
- - test/cases/lateral_test_sqlserver.rb
292
- - test/cases/migration_test_sqlserver.rb
293
- - test/cases/optimizer_hints_test_sqlserver.rb
294
- - test/cases/order_test_sqlserver.rb
295
- - test/cases/pessimistic_locking_test_sqlserver.rb
296
- - test/cases/primary_keys_test_sqlserver.rb
297
- - test/cases/rake_test_sqlserver.rb
298
- - test/cases/schema_dumper_test_sqlserver.rb
299
- - test/cases/schema_test_sqlserver.rb
300
- - test/cases/showplan_test_sqlserver.rb
301
- - test/cases/specific_schema_test_sqlserver.rb
302
- - test/cases/temp_test_sqlserver.rb
303
- - test/cases/temporary_table_test_sqlserver.rb
304
- - test/cases/transaction_test_sqlserver.rb
305
- - test/cases/trigger_test_sqlserver.rb
306
- - test/cases/utils_test_sqlserver.rb
307
- - test/cases/uuid_test_sqlserver.rb
308
- - test/cases/view_test_sqlserver.rb
309
- - test/config.yml
310
- - test/debug.rb
311
- - test/fixtures/1px.gif
312
- - test/fixtures/sst_customers_view.yml
313
- - test/migrations/create_clients_and_change_column_collation.rb
314
- - test/migrations/create_clients_and_change_column_null.rb
315
- - test/migrations/transaction_table/1_table_will_never_be_created.rb
316
- - test/models/sqlserver/alien.rb
317
- - test/models/sqlserver/booking.rb
318
- - test/models/sqlserver/composite_pk.rb
319
- - test/models/sqlserver/customers_view.rb
320
- - test/models/sqlserver/datatype.rb
321
- - test/models/sqlserver/datatype_migration.rb
322
- - test/models/sqlserver/dollar_table_name.rb
323
- - test/models/sqlserver/edge_schema.rb
324
- - test/models/sqlserver/fk_has_fk.rb
325
- - test/models/sqlserver/fk_has_pk.rb
326
- - test/models/sqlserver/natural_pk_data.rb
327
- - test/models/sqlserver/natural_pk_int_data.rb
328
- - test/models/sqlserver/no_pk_data.rb
329
- - test/models/sqlserver/object_default.rb
330
- - test/models/sqlserver/quoted_table.rb
331
- - test/models/sqlserver/quoted_view_1.rb
332
- - test/models/sqlserver/quoted_view_2.rb
333
- - test/models/sqlserver/recurring_task.rb
334
- - test/models/sqlserver/sst_memory.rb
335
- - test/models/sqlserver/sst_string_collation.rb
336
- - test/models/sqlserver/string_default.rb
337
- - test/models/sqlserver/string_defaults_big_view.rb
338
- - test/models/sqlserver/string_defaults_view.rb
339
- - test/models/sqlserver/table_with_spaces.rb
340
- - test/models/sqlserver/tinyint_pk.rb
341
- - test/models/sqlserver/trigger.rb
342
- - test/models/sqlserver/trigger_history.rb
343
- - test/models/sqlserver/upper.rb
344
- - test/models/sqlserver/uppered.rb
345
- - test/models/sqlserver/uuid.rb
346
- - test/schema/datatypes/2012.sql
347
- - test/schema/enable-in-memory-oltp.sql
348
- - test/schema/sqlserver_specific_schema.rb
349
- - test/support/coerceable_test_sqlserver.rb
350
- - test/support/connection_reflection.rb
351
- - test/support/core_ext/query_cache.rb
352
- - test/support/load_schema_sqlserver.rb
353
- - test/support/marshal_compatibility_fixtures/SQLServer/rails_6_1_topic.dump
354
- - test/support/marshal_compatibility_fixtures/SQLServer/rails_6_1_topic_associations.dump
355
- - test/support/marshal_compatibility_fixtures/SQLServer/rails_7_1_topic.dump
356
- - test/support/marshal_compatibility_fixtures/SQLServer/rails_7_1_topic_associations.dump
357
- - test/support/minitest_sqlserver.rb
358
- - test/support/paths_sqlserver.rb
359
- - test/support/query_assertions.rb
360
- - test/support/rake_helpers.rb
361
- - test/support/table_definition_sqlserver.rb
362
- - test/support/test_in_memory_oltp.rb
267
+ test_files: []