activerecord-sqlserver-adapter 5.2.1 → 7.0.0.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 (164) hide show
  1. checksums.yaml +4 -4
  2. data/.editorconfig +9 -0
  3. data/.github/issue_template.md +23 -0
  4. data/.github/workflows/ci.yml +29 -0
  5. data/.gitignore +1 -0
  6. data/.rubocop.yml +29 -0
  7. data/CHANGELOG.md +17 -27
  8. data/{Dockerfile → Dockerfile.ci} +1 -1
  9. data/Gemfile +49 -41
  10. data/Guardfile +9 -8
  11. data/MIT-LICENSE +1 -1
  12. data/README.md +65 -42
  13. data/RUNNING_UNIT_TESTS.md +3 -0
  14. data/Rakefile +14 -16
  15. data/VERSION +1 -1
  16. data/activerecord-sqlserver-adapter.gemspec +25 -14
  17. data/appveyor.yml +22 -17
  18. data/docker-compose.ci.yml +7 -5
  19. data/guides/RELEASING.md +11 -0
  20. data/lib/active_record/connection_adapters/sqlserver/core_ext/active_record.rb +2 -4
  21. data/lib/active_record/connection_adapters/sqlserver/core_ext/attribute_methods.rb +5 -4
  22. data/lib/active_record/connection_adapters/sqlserver/core_ext/calculations.rb +10 -14
  23. data/lib/active_record/connection_adapters/sqlserver/core_ext/explain.rb +12 -5
  24. data/lib/active_record/connection_adapters/sqlserver/core_ext/explain_subscriber.rb +2 -0
  25. data/lib/active_record/connection_adapters/sqlserver/core_ext/finder_methods.rb +10 -7
  26. data/lib/active_record/connection_adapters/sqlserver/core_ext/preloader.rb +30 -0
  27. data/lib/active_record/connection_adapters/sqlserver/database_limits.rb +9 -4
  28. data/lib/active_record/connection_adapters/sqlserver/database_statements.rb +117 -52
  29. data/lib/active_record/connection_adapters/sqlserver/database_tasks.rb +9 -12
  30. data/lib/active_record/connection_adapters/sqlserver/errors.rb +2 -3
  31. data/lib/active_record/connection_adapters/sqlserver/quoting.rb +51 -14
  32. data/lib/active_record/connection_adapters/sqlserver/schema_creation.rb +40 -6
  33. data/lib/active_record/connection_adapters/sqlserver/schema_dumper.rb +18 -10
  34. data/lib/active_record/connection_adapters/sqlserver/schema_statements.rb +235 -167
  35. data/lib/active_record/connection_adapters/sqlserver/showplan/printer_table.rb +4 -2
  36. data/lib/active_record/connection_adapters/sqlserver/showplan/printer_xml.rb +3 -1
  37. data/lib/active_record/connection_adapters/sqlserver/showplan.rb +8 -8
  38. data/lib/active_record/connection_adapters/sqlserver/sql_type_metadata.rb +36 -7
  39. data/lib/active_record/connection_adapters/sqlserver/table_definition.rb +43 -45
  40. data/lib/active_record/connection_adapters/sqlserver/transaction.rb +8 -10
  41. data/lib/active_record/connection_adapters/sqlserver/type/big_integer.rb +3 -3
  42. data/lib/active_record/connection_adapters/sqlserver/type/binary.rb +5 -4
  43. data/lib/active_record/connection_adapters/sqlserver/type/boolean.rb +3 -3
  44. data/lib/active_record/connection_adapters/sqlserver/type/char.rb +7 -4
  45. data/lib/active_record/connection_adapters/sqlserver/type/data.rb +5 -3
  46. data/lib/active_record/connection_adapters/sqlserver/type/date.rb +7 -5
  47. data/lib/active_record/connection_adapters/sqlserver/type/datetime.rb +8 -8
  48. data/lib/active_record/connection_adapters/sqlserver/type/datetime2.rb +2 -2
  49. data/lib/active_record/connection_adapters/sqlserver/type/datetimeoffset.rb +2 -2
  50. data/lib/active_record/connection_adapters/sqlserver/type/decimal.rb +5 -4
  51. data/lib/active_record/connection_adapters/sqlserver/type/decimal_without_scale.rb +22 -0
  52. data/lib/active_record/connection_adapters/sqlserver/type/float.rb +3 -3
  53. data/lib/active_record/connection_adapters/sqlserver/type/integer.rb +3 -3
  54. data/lib/active_record/connection_adapters/sqlserver/type/json.rb +2 -1
  55. data/lib/active_record/connection_adapters/sqlserver/type/money.rb +4 -4
  56. data/lib/active_record/connection_adapters/sqlserver/type/real.rb +3 -3
  57. data/lib/active_record/connection_adapters/sqlserver/type/small_integer.rb +3 -3
  58. data/lib/active_record/connection_adapters/sqlserver/type/small_money.rb +4 -4
  59. data/lib/active_record/connection_adapters/sqlserver/type/smalldatetime.rb +3 -3
  60. data/lib/active_record/connection_adapters/sqlserver/type/string.rb +2 -2
  61. data/lib/active_record/connection_adapters/sqlserver/type/text.rb +3 -3
  62. data/lib/active_record/connection_adapters/sqlserver/type/time.rb +6 -6
  63. data/lib/active_record/connection_adapters/sqlserver/type/time_value_fractional.rb +8 -9
  64. data/lib/active_record/connection_adapters/sqlserver/type/timestamp.rb +3 -3
  65. data/lib/active_record/connection_adapters/sqlserver/type/tiny_integer.rb +3 -3
  66. data/lib/active_record/connection_adapters/sqlserver/type/unicode_char.rb +5 -4
  67. data/lib/active_record/connection_adapters/sqlserver/type/unicode_string.rb +2 -2
  68. data/lib/active_record/connection_adapters/sqlserver/type/unicode_text.rb +3 -3
  69. data/lib/active_record/connection_adapters/sqlserver/type/unicode_varchar.rb +6 -5
  70. data/lib/active_record/connection_adapters/sqlserver/type/unicode_varchar_max.rb +4 -4
  71. data/lib/active_record/connection_adapters/sqlserver/type/uuid.rb +4 -3
  72. data/lib/active_record/connection_adapters/sqlserver/type/varbinary.rb +6 -5
  73. data/lib/active_record/connection_adapters/sqlserver/type/varbinary_max.rb +4 -4
  74. data/lib/active_record/connection_adapters/sqlserver/type/varchar.rb +6 -5
  75. data/lib/active_record/connection_adapters/sqlserver/type/varchar_max.rb +4 -4
  76. data/lib/active_record/connection_adapters/sqlserver/type.rb +38 -35
  77. data/lib/active_record/connection_adapters/sqlserver/utils.rb +26 -12
  78. data/lib/active_record/connection_adapters/sqlserver/version.rb +2 -2
  79. data/lib/active_record/connection_adapters/sqlserver_adapter.rb +271 -180
  80. data/lib/active_record/connection_adapters/sqlserver_column.rb +76 -16
  81. data/lib/active_record/sqlserver_base.rb +11 -9
  82. data/lib/active_record/tasks/sqlserver_database_tasks.rb +38 -39
  83. data/lib/activerecord-sqlserver-adapter.rb +3 -1
  84. data/lib/arel/visitors/sqlserver.rb +177 -56
  85. data/lib/arel_sqlserver.rb +4 -2
  86. data/test/appveyor/dbsetup.ps1 +4 -4
  87. data/test/cases/active_schema_test_sqlserver.rb +55 -0
  88. data/test/cases/adapter_test_sqlserver.rb +258 -173
  89. data/test/cases/change_column_collation_test_sqlserver.rb +33 -0
  90. data/test/cases/change_column_null_test_sqlserver.rb +14 -12
  91. data/test/cases/coerced_tests.rb +1421 -397
  92. data/test/cases/column_test_sqlserver.rb +321 -315
  93. data/test/cases/connection_test_sqlserver.rb +17 -20
  94. data/test/cases/disconnected_test_sqlserver.rb +39 -0
  95. data/test/cases/eager_load_too_many_ids_test_sqlserver.rb +18 -0
  96. data/test/cases/execute_procedure_test_sqlserver.rb +28 -19
  97. data/test/cases/fetch_test_sqlserver.rb +33 -21
  98. data/test/cases/fully_qualified_identifier_test_sqlserver.rb +15 -19
  99. data/test/cases/helper_sqlserver.rb +15 -15
  100. data/test/cases/in_clause_test_sqlserver.rb +63 -0
  101. data/test/cases/index_test_sqlserver.rb +15 -15
  102. data/test/cases/json_test_sqlserver.rb +25 -25
  103. data/test/cases/lateral_test_sqlserver.rb +35 -0
  104. data/test/cases/migration_test_sqlserver.rb +74 -27
  105. data/test/cases/optimizer_hints_test_sqlserver.rb +72 -0
  106. data/test/cases/order_test_sqlserver.rb +59 -53
  107. data/test/cases/pessimistic_locking_test_sqlserver.rb +27 -33
  108. data/test/cases/primary_keys_test_sqlserver.rb +103 -0
  109. data/test/cases/rake_test_sqlserver.rb +70 -45
  110. data/test/cases/schema_dumper_test_sqlserver.rb +124 -109
  111. data/test/cases/schema_test_sqlserver.rb +20 -26
  112. data/test/cases/scratchpad_test_sqlserver.rb +4 -4
  113. data/test/cases/showplan_test_sqlserver.rb +28 -35
  114. data/test/cases/specific_schema_test_sqlserver.rb +68 -65
  115. data/test/cases/transaction_test_sqlserver.rb +18 -20
  116. data/test/cases/trigger_test_sqlserver.rb +14 -13
  117. data/test/cases/utils_test_sqlserver.rb +70 -70
  118. data/test/cases/uuid_test_sqlserver.rb +13 -14
  119. data/test/debug.rb +8 -6
  120. data/test/migrations/create_clients_and_change_column_collation.rb +19 -0
  121. data/test/migrations/create_clients_and_change_column_null.rb +3 -1
  122. data/test/migrations/transaction_table/1_table_will_never_be_created.rb +4 -4
  123. data/test/models/sqlserver/booking.rb +3 -1
  124. data/test/models/sqlserver/composite_pk.rb +9 -0
  125. data/test/models/sqlserver/customers_view.rb +3 -1
  126. data/test/models/sqlserver/datatype.rb +2 -0
  127. data/test/models/sqlserver/datatype_migration.rb +2 -0
  128. data/test/models/sqlserver/dollar_table_name.rb +3 -1
  129. data/test/models/sqlserver/edge_schema.rb +3 -3
  130. data/test/models/sqlserver/fk_has_fk.rb +3 -1
  131. data/test/models/sqlserver/fk_has_pk.rb +3 -1
  132. data/test/models/sqlserver/natural_pk_data.rb +4 -2
  133. data/test/models/sqlserver/natural_pk_int_data.rb +3 -1
  134. data/test/models/sqlserver/no_pk_data.rb +3 -1
  135. data/test/models/sqlserver/object_default.rb +3 -1
  136. data/test/models/sqlserver/quoted_table.rb +4 -2
  137. data/test/models/sqlserver/quoted_view_1.rb +3 -1
  138. data/test/models/sqlserver/quoted_view_2.rb +3 -1
  139. data/test/models/sqlserver/sst_memory.rb +3 -1
  140. data/test/models/sqlserver/sst_string_collation.rb +3 -0
  141. data/test/models/sqlserver/string_default.rb +3 -1
  142. data/test/models/sqlserver/string_defaults_big_view.rb +3 -1
  143. data/test/models/sqlserver/string_defaults_view.rb +3 -1
  144. data/test/models/sqlserver/tinyint_pk.rb +3 -1
  145. data/test/models/sqlserver/trigger.rb +4 -2
  146. data/test/models/sqlserver/trigger_history.rb +3 -1
  147. data/test/models/sqlserver/upper.rb +3 -1
  148. data/test/models/sqlserver/uppered.rb +3 -1
  149. data/test/models/sqlserver/uuid.rb +3 -1
  150. data/test/schema/sqlserver_specific_schema.rb +56 -21
  151. data/test/support/coerceable_test_sqlserver.rb +19 -13
  152. data/test/support/connection_reflection.rb +3 -2
  153. data/test/support/core_ext/query_cache.rb +4 -1
  154. data/test/support/load_schema_sqlserver.rb +5 -5
  155. data/test/support/marshal_compatibility_fixtures/SQLServer/rails_6_1_topic.dump +0 -0
  156. data/test/support/marshal_compatibility_fixtures/SQLServer/rails_6_1_topic_associations.dump +0 -0
  157. data/test/support/minitest_sqlserver.rb +3 -1
  158. data/test/support/paths_sqlserver.rb +11 -11
  159. data/test/support/rake_helpers.rb +15 -10
  160. data/test/support/sql_counter_sqlserver.rb +16 -15
  161. data/test/support/test_in_memory_oltp.rb +9 -7
  162. metadata +47 -13
  163. data/.travis.yml +0 -25
  164. data/lib/active_record/connection_adapters/sqlserver/core_ext/query_methods.rb +0 -26
@@ -1,30 +1,31 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ARTest
2
4
  module SQLServer
3
-
4
5
  extend self
5
6
 
6
7
  def root_sqlserver
7
- File.expand_path File.join(File.dirname(__FILE__), '..', '..')
8
+ File.expand_path File.join(File.dirname(__FILE__), "..", "..")
8
9
  end
9
10
 
10
11
  def test_root_sqlserver
11
- File.join root_sqlserver, 'test'
12
+ File.join root_sqlserver, "test"
12
13
  end
13
14
 
14
15
  def root_activerecord
15
- File.join Gem.loaded_specs['rails'].full_gem_path, 'activerecord'
16
+ File.join Gem.loaded_specs["rails"].full_gem_path, "activerecord"
16
17
  end
17
18
 
18
19
  def root_activerecord_lib
19
- File.join root_activerecord, 'lib'
20
+ File.join root_activerecord, "lib"
20
21
  end
21
22
 
22
23
  def root_activerecord_test
23
- File.join root_activerecord, 'test'
24
+ File.join root_activerecord, "test"
24
25
  end
25
26
 
26
27
  def test_load_paths
27
- ['lib', 'test', root_activerecord_lib, root_activerecord_test]
28
+ ["lib", "test", root_activerecord_lib, root_activerecord_test]
28
29
  end
29
30
 
30
31
  def add_to_load_paths!
@@ -32,17 +33,16 @@ module ARTest
32
33
  end
33
34
 
34
35
  def migrations_root
35
- File.join test_root_sqlserver, 'migrations'
36
+ File.join test_root_sqlserver, "migrations"
36
37
  end
37
38
 
38
39
  def arconfig_file
39
- File.join test_root_sqlserver, 'config.yml'
40
+ File.join test_root_sqlserver, "config.yml"
40
41
  end
41
42
 
42
43
  def arconfig_file_env!
43
- ENV['ARCONFIG'] = arconfig_file
44
+ ENV["ARCONFIG"] = arconfig_file
44
45
  end
45
-
46
46
  end
47
47
  end
48
48
 
@@ -1,28 +1,33 @@
1
+ # frozen_string_literal: true
1
2
 
2
- SQLSERVER_HELPER = 'test/cases/helper_sqlserver.rb'
3
- SQLSERVER_COERCED = 'test/cases/coerced_tests.rb'
3
+ SQLSERVER_HELPER = "test/cases/helper_sqlserver.rb"
4
+ SQLSERVER_COERCED = "test/cases/coerced_tests.rb"
4
5
 
5
6
  def env_ar_test_files
6
- return unless ENV['TEST_FILES_AR'] && !ENV['TEST_FILES_AR'].empty?
7
+ return unless ENV["TEST_FILES_AR"] && !ENV["TEST_FILES_AR"].empty?
8
+
7
9
  @env_ar_test_files ||= begin
8
- ENV['TEST_FILES_AR'].split(',').map { |file|
10
+ ENV["TEST_FILES_AR"].split(",").map { |file|
9
11
  File.join ARTest::SQLServer.root_activerecord, file.strip
10
12
  }.sort
11
13
  end
12
14
  end
13
15
 
14
16
  def env_test_files
15
- return unless ENV['TEST_FILES'] && !ENV['TEST_FILES'].empty?
16
- @env_test_files ||= ENV['TEST_FILES'].split(',').map(&:strip)
17
+ return unless ENV["TEST_FILES"] && !ENV["TEST_FILES"].empty?
18
+
19
+ @env_test_files ||= ENV["TEST_FILES"].split(",").map(&:strip)
17
20
  end
18
21
 
19
22
  def sqlserver_cases
20
- @sqlserver_cases ||= Dir.glob('test/cases/*_test_sqlserver.rb')
23
+ @sqlserver_cases ||= Dir.glob("test/cases/*_test_sqlserver.rb")
21
24
  end
22
25
 
23
26
  def ar_cases
24
27
  @ar_cases ||= begin
25
- Dir.glob("#{ARTest::SQLServer.root_activerecord}/test/cases/**/*_test.rb").reject{ |x| x =~ /\/adapters\// }.sort
28
+ Dir.glob("#{ARTest::SQLServer.root_activerecord}/test/cases/**/*_test.rb").reject {
29
+ |x| x.include?("/adapters/") || x.include?("/encryption/performance")
30
+ }.sort
26
31
  end
27
32
  end
28
33
 
@@ -31,9 +36,9 @@ def test_files
31
36
  [SQLSERVER_HELPER] + env_ar_test_files
32
37
  elsif env_test_files
33
38
  env_test_files
34
- elsif ENV['ONLY_SQLSERVER']
39
+ elsif ENV["ONLY_SQLSERVER"]
35
40
  sqlserver_cases
36
- elsif ENV['ONLY_ACTIVERECORD']
41
+ elsif ENV["ONLY_ACTIVERECORD"]
37
42
  [SQLSERVER_HELPER] + (ar_cases + [SQLSERVER_COERCED])
38
43
  else
39
44
  [SQLSERVER_HELPER] + (ar_cases + [SQLSERVER_COERCED] + sqlserver_cases)
@@ -1,28 +1,29 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ARTest
2
4
  module SQLServer
3
-
4
5
  module SqlCounterSqlserver
5
-
6
6
  # Only return the log vs. log_all
7
7
  def capture_sql_ss
8
8
  ActiveRecord::SQLCounter.clear_log
9
9
  yield
10
10
  ActiveRecord::SQLCounter.log.dup
11
11
  end
12
-
13
12
  end
14
13
 
15
- ignored_sql = [
16
- /INFORMATION_SCHEMA\.(TABLES|VIEWS|COLUMNS|KEY_COLUMN_USAGE)/im,
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))
26
-
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))
27
28
  end
28
29
  end
@@ -1,14 +1,16 @@
1
- if ENV['IN_MEMORY_OLTP']
2
- require 'config'
3
- require 'active_record'
4
- require 'support/config'
5
- require 'support/connection'
1
+ # frozen_string_literal: true
2
+
3
+ if ENV["IN_MEMORY_OLTP"]
4
+ require "config"
5
+ require "active_record"
6
+ require "support/config"
7
+ require "support/connection"
6
8
 
7
9
  ARTest.connect
8
10
 
9
11
  if ActiveRecord::Base.connection.supports_in_memory_oltp?
10
- puts 'Configuring In-Memory OLTP...'
11
- inmem_file = ARTest::SQLServer.test_root_sqlserver, 'schema', 'enable-in-memory-oltp.sql'
12
+ puts "Configuring In-Memory OLTP..."
13
+ inmem_file = ARTest::SQLServer.test_root_sqlserver, "schema", "enable-in-memory-oltp.sql"
12
14
  inmem_sql = File.read File.join(inmem_file)
13
15
  ActiveRecord::Base.connection.execute(inmem_sql)
14
16
  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: 5.2.1
4
+ version: 7.0.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ken Collins
@@ -11,10 +11,10 @@ authors:
11
11
  - Shawn Balestracci
12
12
  - Joe Rafaniello
13
13
  - Tom Ward
14
- autorequire:
14
+ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
- date: 2020-03-30 00:00:00.000000000 Z
17
+ date: 2022-02-22 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: 5.2.0
25
+ version: 7.0.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: 5.2.0
32
+ version: 7.0.0
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: tiny_tds
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -52,11 +52,14 @@ executables: []
52
52
  extensions: []
53
53
  extra_rdoc_files: []
54
54
  files:
55
+ - ".editorconfig"
56
+ - ".github/issue_template.md"
57
+ - ".github/workflows/ci.yml"
55
58
  - ".gitignore"
56
- - ".travis.yml"
59
+ - ".rubocop.yml"
57
60
  - CHANGELOG.md
58
61
  - CODE_OF_CONDUCT.md
59
- - Dockerfile
62
+ - Dockerfile.ci
60
63
  - Gemfile
61
64
  - Guardfile
62
65
  - MIT-LICENSE
@@ -67,13 +70,14 @@ files:
67
70
  - activerecord-sqlserver-adapter.gemspec
68
71
  - appveyor.yml
69
72
  - docker-compose.ci.yml
73
+ - guides/RELEASING.md
70
74
  - lib/active_record/connection_adapters/sqlserver/core_ext/active_record.rb
71
75
  - lib/active_record/connection_adapters/sqlserver/core_ext/attribute_methods.rb
72
76
  - lib/active_record/connection_adapters/sqlserver/core_ext/calculations.rb
73
77
  - lib/active_record/connection_adapters/sqlserver/core_ext/explain.rb
74
78
  - lib/active_record/connection_adapters/sqlserver/core_ext/explain_subscriber.rb
75
79
  - lib/active_record/connection_adapters/sqlserver/core_ext/finder_methods.rb
76
- - lib/active_record/connection_adapters/sqlserver/core_ext/query_methods.rb
80
+ - lib/active_record/connection_adapters/sqlserver/core_ext/preloader.rb
77
81
  - lib/active_record/connection_adapters/sqlserver/database_limits.rb
78
82
  - lib/active_record/connection_adapters/sqlserver/database_statements.rb
79
83
  - lib/active_record/connection_adapters/sqlserver/database_tasks.rb
@@ -99,6 +103,7 @@ files:
99
103
  - lib/active_record/connection_adapters/sqlserver/type/datetime2.rb
100
104
  - lib/active_record/connection_adapters/sqlserver/type/datetimeoffset.rb
101
105
  - lib/active_record/connection_adapters/sqlserver/type/decimal.rb
106
+ - lib/active_record/connection_adapters/sqlserver/type/decimal_without_scale.rb
102
107
  - lib/active_record/connection_adapters/sqlserver/type/float.rb
103
108
  - lib/active_record/connection_adapters/sqlserver/type/integer.rb
104
109
  - lib/active_record/connection_adapters/sqlserver/type/json.rb
@@ -137,20 +142,28 @@ files:
137
142
  - test/bin/install-freetds.sh
138
143
  - test/bin/install-openssl.sh
139
144
  - test/bin/setup.sh
145
+ - test/cases/active_schema_test_sqlserver.rb
140
146
  - test/cases/adapter_test_sqlserver.rb
147
+ - test/cases/change_column_collation_test_sqlserver.rb
141
148
  - test/cases/change_column_null_test_sqlserver.rb
142
149
  - test/cases/coerced_tests.rb
143
150
  - test/cases/column_test_sqlserver.rb
144
151
  - test/cases/connection_test_sqlserver.rb
152
+ - test/cases/disconnected_test_sqlserver.rb
153
+ - test/cases/eager_load_too_many_ids_test_sqlserver.rb
145
154
  - test/cases/execute_procedure_test_sqlserver.rb
146
155
  - test/cases/fetch_test_sqlserver.rb
147
156
  - test/cases/fully_qualified_identifier_test_sqlserver.rb
148
157
  - test/cases/helper_sqlserver.rb
158
+ - test/cases/in_clause_test_sqlserver.rb
149
159
  - test/cases/index_test_sqlserver.rb
150
160
  - test/cases/json_test_sqlserver.rb
161
+ - test/cases/lateral_test_sqlserver.rb
151
162
  - test/cases/migration_test_sqlserver.rb
163
+ - test/cases/optimizer_hints_test_sqlserver.rb
152
164
  - test/cases/order_test_sqlserver.rb
153
165
  - test/cases/pessimistic_locking_test_sqlserver.rb
166
+ - test/cases/primary_keys_test_sqlserver.rb
154
167
  - test/cases/rake_test_sqlserver.rb
155
168
  - test/cases/schema_dumper_test_sqlserver.rb
156
169
  - test/cases/schema_test_sqlserver.rb
@@ -164,9 +177,11 @@ files:
164
177
  - test/config.yml
165
178
  - test/debug.rb
166
179
  - test/fixtures/1px.gif
180
+ - test/migrations/create_clients_and_change_column_collation.rb
167
181
  - test/migrations/create_clients_and_change_column_null.rb
168
182
  - test/migrations/transaction_table/1_table_will_never_be_created.rb
169
183
  - test/models/sqlserver/booking.rb
184
+ - test/models/sqlserver/composite_pk.rb
170
185
  - test/models/sqlserver/customers_view.rb
171
186
  - test/models/sqlserver/datatype.rb
172
187
  - test/models/sqlserver/datatype_migration.rb
@@ -182,6 +197,7 @@ files:
182
197
  - test/models/sqlserver/quoted_view_1.rb
183
198
  - test/models/sqlserver/quoted_view_2.rb
184
199
  - test/models/sqlserver/sst_memory.rb
200
+ - test/models/sqlserver/sst_string_collation.rb
185
201
  - test/models/sqlserver/string_default.rb
186
202
  - test/models/sqlserver/string_defaults_big_view.rb
187
203
  - test/models/sqlserver/string_defaults_view.rb
@@ -198,6 +214,8 @@ files:
198
214
  - test/support/connection_reflection.rb
199
215
  - test/support/core_ext/query_cache.rb
200
216
  - test/support/load_schema_sqlserver.rb
217
+ - test/support/marshal_compatibility_fixtures/SQLServer/rails_6_1_topic.dump
218
+ - test/support/marshal_compatibility_fixtures/SQLServer/rails_6_1_topic_associations.dump
201
219
  - test/support/minitest_sqlserver.rb
202
220
  - test/support/paths_sqlserver.rb
203
221
  - test/support/rake_helpers.rb
@@ -206,8 +224,11 @@ files:
206
224
  homepage: http://github.com/rails-sqlserver/activerecord-sqlserver-adapter
207
225
  licenses:
208
226
  - MIT
209
- metadata: {}
210
- post_install_message:
227
+ metadata:
228
+ bug_tracker_uri: https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/issues
229
+ changelog_uri: https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/blob/v7.0.0.0/CHANGELOG.md
230
+ source_code_uri: https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/tree/v7.0.0.0
231
+ post_install_message:
211
232
  rdoc_options: []
212
233
  require_paths:
213
234
  - lib
@@ -215,15 +236,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
215
236
  requirements:
216
237
  - - ">="
217
238
  - !ruby/object:Gem::Version
218
- version: '0'
239
+ version: 2.7.0
219
240
  required_rubygems_version: !ruby/object:Gem::Requirement
220
241
  requirements:
221
242
  - - ">="
222
243
  - !ruby/object:Gem::Version
223
244
  version: '0'
224
245
  requirements: []
225
- rubygems_version: 3.0.3
226
- signing_key:
246
+ rubygems_version: 3.2.22
247
+ signing_key:
227
248
  specification_version: 4
228
249
  summary: ActiveRecord SQL Server Adapter.
229
250
  test_files:
@@ -232,20 +253,28 @@ test_files:
232
253
  - test/bin/install-freetds.sh
233
254
  - test/bin/install-openssl.sh
234
255
  - test/bin/setup.sh
256
+ - test/cases/active_schema_test_sqlserver.rb
235
257
  - test/cases/adapter_test_sqlserver.rb
258
+ - test/cases/change_column_collation_test_sqlserver.rb
236
259
  - test/cases/change_column_null_test_sqlserver.rb
237
260
  - test/cases/coerced_tests.rb
238
261
  - test/cases/column_test_sqlserver.rb
239
262
  - test/cases/connection_test_sqlserver.rb
263
+ - test/cases/disconnected_test_sqlserver.rb
264
+ - test/cases/eager_load_too_many_ids_test_sqlserver.rb
240
265
  - test/cases/execute_procedure_test_sqlserver.rb
241
266
  - test/cases/fetch_test_sqlserver.rb
242
267
  - test/cases/fully_qualified_identifier_test_sqlserver.rb
243
268
  - test/cases/helper_sqlserver.rb
269
+ - test/cases/in_clause_test_sqlserver.rb
244
270
  - test/cases/index_test_sqlserver.rb
245
271
  - test/cases/json_test_sqlserver.rb
272
+ - test/cases/lateral_test_sqlserver.rb
246
273
  - test/cases/migration_test_sqlserver.rb
274
+ - test/cases/optimizer_hints_test_sqlserver.rb
247
275
  - test/cases/order_test_sqlserver.rb
248
276
  - test/cases/pessimistic_locking_test_sqlserver.rb
277
+ - test/cases/primary_keys_test_sqlserver.rb
249
278
  - test/cases/rake_test_sqlserver.rb
250
279
  - test/cases/schema_dumper_test_sqlserver.rb
251
280
  - test/cases/schema_test_sqlserver.rb
@@ -259,9 +288,11 @@ test_files:
259
288
  - test/config.yml
260
289
  - test/debug.rb
261
290
  - test/fixtures/1px.gif
291
+ - test/migrations/create_clients_and_change_column_collation.rb
262
292
  - test/migrations/create_clients_and_change_column_null.rb
263
293
  - test/migrations/transaction_table/1_table_will_never_be_created.rb
264
294
  - test/models/sqlserver/booking.rb
295
+ - test/models/sqlserver/composite_pk.rb
265
296
  - test/models/sqlserver/customers_view.rb
266
297
  - test/models/sqlserver/datatype.rb
267
298
  - test/models/sqlserver/datatype_migration.rb
@@ -277,6 +308,7 @@ test_files:
277
308
  - test/models/sqlserver/quoted_view_1.rb
278
309
  - test/models/sqlserver/quoted_view_2.rb
279
310
  - test/models/sqlserver/sst_memory.rb
311
+ - test/models/sqlserver/sst_string_collation.rb
280
312
  - test/models/sqlserver/string_default.rb
281
313
  - test/models/sqlserver/string_defaults_big_view.rb
282
314
  - test/models/sqlserver/string_defaults_view.rb
@@ -293,6 +325,8 @@ test_files:
293
325
  - test/support/connection_reflection.rb
294
326
  - test/support/core_ext/query_cache.rb
295
327
  - test/support/load_schema_sqlserver.rb
328
+ - test/support/marshal_compatibility_fixtures/SQLServer/rails_6_1_topic.dump
329
+ - test/support/marshal_compatibility_fixtures/SQLServer/rails_6_1_topic_associations.dump
296
330
  - test/support/minitest_sqlserver.rb
297
331
  - test/support/paths_sqlserver.rb
298
332
  - test/support/rake_helpers.rb
data/.travis.yml DELETED
@@ -1,25 +0,0 @@
1
- sudo: required
2
- cache: bundler
3
- services:
4
- - docker
5
- env:
6
- global:
7
- - COMPOSE_FILE: docker-compose.ci.yml
8
- before_install:
9
- - sudo rm /usr/local/bin/docker-compose
10
- - sudo curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
11
- - sudo chmod +x /usr/local/bin/docker-compose
12
- install:
13
- - docker-compose build --build-arg TARGET_VERSION=$TARGET_VERSION
14
- script:
15
- - docker-compose run ci
16
- matrix:
17
- include:
18
- - name: 2.3.8
19
- env: TARGET_VERSION=2.3.8
20
- - name: 2.4.6
21
- env: TARGET_VERSION=2.4.6
22
- - name: 2.5.5
23
- env: TARGET_VERSION=2.5.5
24
- - name: 2.6.3
25
- env: TARGET_VERSION=2.6.3
@@ -1,26 +0,0 @@
1
- require 'active_record/relation'
2
- require 'active_record/version'
3
-
4
- module ActiveRecord
5
- module ConnectionAdapters
6
- module SQLServer
7
- module CoreExt
8
- module QueryMethods
9
-
10
- private
11
-
12
- # Copy of original from Rails master. This patch can be removed when adapter supports Rails 6.
13
- def table_name_matches?(from)
14
- table_name = Regexp.escape(table.name)
15
- quoted_table_name = Regexp.escape(connection.quote_table_name(table.name))
16
- /(?:\A|(?<!FROM)\s)(?:\b#{table_name}\b|#{quoted_table_name})(?!\.)/i.match?(from.to_s)
17
- end
18
- end
19
- end
20
- end
21
- end
22
- end
23
-
24
- ActiveSupport.on_load(:active_record) do
25
- ActiveRecord::Relation.include(ActiveRecord::ConnectionAdapters::SQLServer::CoreExt::QueryMethods)
26
- end