activerecord-sqlserver-adapter 5.2.1 → 7.0.0.0

Sign up to get free protection for your applications and to get access to all the features.
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