activerecord-jdbcsqlserver-adapter 51.1.0 → 52.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 (56) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -1
  3. data/CHANGELOG.md +22 -39
  4. data/{Dockerfile → Dockerfile.ci} +0 -0
  5. data/Gemfile +1 -3
  6. data/README.md +5 -8
  7. data/VERSION +1 -1
  8. data/activerecord-jdbcsqlserver-adapter.gemspec +2 -3
  9. data/docker-compose.ci.yml +7 -5
  10. data/lib/active_record/connection_adapters/sqlserver/core_ext/calculations.rb +25 -29
  11. data/lib/active_record/connection_adapters/sqlserver/core_ext/explain.rb +14 -18
  12. data/lib/active_record/connection_adapters/sqlserver/core_ext/finder_methods.rb +43 -0
  13. data/lib/active_record/connection_adapters/sqlserver/core_ext/query_methods.rb +26 -0
  14. data/lib/active_record/connection_adapters/sqlserver/database_limits.rb +13 -2
  15. data/lib/active_record/connection_adapters/sqlserver/database_statements.rb +53 -10
  16. data/lib/active_record/connection_adapters/sqlserver/database_tasks.rb +1 -0
  17. data/lib/active_record/connection_adapters/sqlserver/jdbc_overrides.rb +5 -13
  18. data/lib/active_record/connection_adapters/sqlserver/schema_creation.rb +2 -1
  19. data/lib/active_record/connection_adapters/sqlserver/schema_dumper.rb +2 -2
  20. data/lib/active_record/connection_adapters/sqlserver/schema_statements.rb +43 -27
  21. data/lib/active_record/connection_adapters/sqlserver/transaction.rb +3 -4
  22. data/lib/active_record/connection_adapters/sqlserver/type/json.rb +1 -1
  23. data/lib/active_record/connection_adapters/sqlserver/type/string.rb +7 -0
  24. data/lib/active_record/connection_adapters/sqlserver/type/time.rb +1 -0
  25. data/lib/active_record/connection_adapters/sqlserver_adapter.rb +20 -14
  26. data/lib/active_record/tasks/sqlserver_database_tasks.rb +3 -1
  27. data/lib/activerecord-jdbcsqlserver-adapter.rb +3 -0
  28. data/lib/arel/visitors/sqlserver.rb +1 -1
  29. data/lib/arel_sqlserver.rb +0 -1
  30. data/test/bin/install-freetds.sh +18 -0
  31. data/test/cases/adapter_test_sqlserver.rb +29 -21
  32. data/test/cases/change_column_null_test_sqlserver.rb +42 -0
  33. data/test/cases/coerced_tests.rb +304 -30
  34. data/test/cases/column_test_sqlserver.rb +496 -462
  35. data/test/cases/connection_test_sqlserver.rb +2 -2
  36. data/test/cases/fetch_test_sqlserver.rb +5 -5
  37. data/test/cases/helper_sqlserver.rb +6 -0
  38. data/test/cases/json_test_sqlserver.rb +6 -6
  39. data/test/cases/migration_test_sqlserver.rb +13 -3
  40. data/test/cases/order_test_sqlserver.rb +19 -19
  41. data/test/cases/pessimistic_locking_test_sqlserver.rb +9 -9
  42. data/test/cases/rake_test_sqlserver.rb +20 -20
  43. data/test/cases/schema_dumper_test_sqlserver.rb +34 -33
  44. data/test/cases/schema_test_sqlserver.rb +2 -2
  45. data/test/cases/showplan_test_sqlserver.rb +25 -10
  46. data/test/cases/specific_schema_test_sqlserver.rb +11 -11
  47. data/test/cases/transaction_test_sqlserver.rb +9 -9
  48. data/test/cases/trigger_test_sqlserver.rb +8 -8
  49. data/test/cases/utils_test_sqlserver.rb +36 -36
  50. data/test/cases/uuid_test_sqlserver.rb +8 -8
  51. data/test/migrations/create_clients_and_change_column_null.rb +23 -0
  52. data/test/schema/datatypes/2012.sql +1 -0
  53. data/test/schema/sqlserver_specific_schema.rb +9 -1
  54. data/test/support/core_ext/query_cache.rb +29 -0
  55. metadata +19 -10
  56. data/BACKERS.md +0 -32
@@ -0,0 +1,29 @@
1
+ require 'active_record/connection_adapters/sqlserver_adapter'
2
+
3
+ module SqlIgnoredCache
4
+ extend ActiveSupport::Concern
5
+
6
+ IGNORED_SQL = [
7
+ /INFORMATION_SCHEMA\.(TABLES|VIEWS|COLUMNS|KEY_COLUMN_USAGE)/im,
8
+ /SELECT @@version/,
9
+ /SELECT @@TRANCOUNT/,
10
+ /(BEGIN|COMMIT|ROLLBACK|SAVE) TRANSACTION/,
11
+ /SELECT CAST\(.* AS .*\) AS value/,
12
+ /SELECT DATABASEPROPERTYEX/im
13
+ ]
14
+
15
+ # We don't want to coerce every ActiveRecord test that relies on `query_cache`
16
+ # just because we do more queries than the other adapters.
17
+ #
18
+ # Removing internal queries from the cache will make AR tests pass without
19
+ # compromising cache outside tests.
20
+ def cache_sql(sql, name, binds)
21
+ result = super
22
+ @query_cache.delete_if { |k, v| k =~ Regexp.union(IGNORED_SQL) }
23
+ result
24
+ end
25
+ end
26
+
27
+ ActiveSupport.on_load(:active_record) do
28
+ ActiveRecord::ConnectionAdapters::SQLServerAdapter.prepend(SqlIgnoredCache)
29
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord-jdbcsqlserver-adapter
3
3
  version: !ruby/object:Gem::Version
4
- version: 51.1.0
4
+ version: 52.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ken Collins
@@ -15,17 +15,17 @@ authors:
15
15
  autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
- date: 2020-12-18 00:00:00.000000000 Z
18
+ date: 2021-01-05 00:00:00.000000000 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  requirement: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - "~>"
24
24
  - !ruby/object:Gem::Version
25
- version: 5.1.0
25
+ version: 5.2.0
26
26
  - - ">="
27
27
  - !ruby/object:Gem::Version
28
- version: 5.1.7
28
+ version: 5.2.3
29
29
  name: activerecord
30
30
  type: :runtime
31
31
  prerelease: false
@@ -33,16 +33,16 @@ dependencies:
33
33
  requirements:
34
34
  - - "~>"
35
35
  - !ruby/object:Gem::Version
36
- version: 5.1.0
36
+ version: 5.2.0
37
37
  - - ">="
38
38
  - !ruby/object:Gem::Version
39
- version: 5.1.7
39
+ version: 5.2.3
40
40
  - !ruby/object:Gem::Dependency
41
41
  requirement: !ruby/object:Gem::Requirement
42
42
  requirements:
43
43
  - - "~>"
44
44
  - !ruby/object:Gem::Version
45
- version: '51.8'
45
+ version: '52.7'
46
46
  name: activerecord-jdbc-adapter
47
47
  type: :runtime
48
48
  prerelease: false
@@ -50,7 +50,7 @@ dependencies:
50
50
  requirements:
51
51
  - - "~>"
52
52
  - !ruby/object:Gem::Version
53
- version: '51.8'
53
+ version: '52.7'
54
54
  - !ruby/object:Gem::Dependency
55
55
  requirement: !ruby/object:Gem::Requirement
56
56
  requirements:
@@ -76,10 +76,9 @@ extra_rdoc_files: []
76
76
  files:
77
77
  - ".gitignore"
78
78
  - ".travis.yml"
79
- - BACKERS.md
80
79
  - CHANGELOG.md
81
80
  - CODE_OF_CONDUCT.md
82
- - Dockerfile
81
+ - Dockerfile.ci
83
82
  - Gemfile
84
83
  - Guardfile
85
84
  - MIT-LICENSE
@@ -96,6 +95,8 @@ files:
96
95
  - lib/active_record/connection_adapters/sqlserver/core_ext/date_time.rb
97
96
  - lib/active_record/connection_adapters/sqlserver/core_ext/explain.rb
98
97
  - lib/active_record/connection_adapters/sqlserver/core_ext/explain_subscriber.rb
98
+ - lib/active_record/connection_adapters/sqlserver/core_ext/finder_methods.rb
99
+ - lib/active_record/connection_adapters/sqlserver/core_ext/query_methods.rb
99
100
  - lib/active_record/connection_adapters/sqlserver/database_limits.rb
100
101
  - lib/active_record/connection_adapters/sqlserver/database_statements.rb
101
102
  - lib/active_record/connection_adapters/sqlserver/database_tasks.rb
@@ -160,9 +161,11 @@ files:
160
161
  - lib/jdbc_mssql_driver_loader.rb
161
162
  - test/appveyor/dbsetup.ps1
162
163
  - test/appveyor/dbsetup.sql
164
+ - test/bin/install-freetds.sh
163
165
  - test/bin/setup.sh
164
166
  - test/bin/wait-for.sh
165
167
  - test/cases/adapter_test_sqlserver.rb
168
+ - test/cases/change_column_null_test_sqlserver.rb
166
169
  - test/cases/coerced_tests.rb
167
170
  - test/cases/column_test_sqlserver.rb
168
171
  - test/cases/connection_test_sqlserver.rb
@@ -188,6 +191,7 @@ files:
188
191
  - test/config.yml
189
192
  - test/debug.rb
190
193
  - test/fixtures/1px.gif
194
+ - test/migrations/create_clients_and_change_column_null.rb
191
195
  - test/migrations/transaction_table/1_table_will_never_be_created.rb
192
196
  - test/models/sqlserver/booking.rb
193
197
  - test/models/sqlserver/customers_view.rb
@@ -219,6 +223,7 @@ files:
219
223
  - test/schema/sqlserver_specific_schema.rb
220
224
  - test/support/coerceable_test_sqlserver.rb
221
225
  - test/support/connection_reflection.rb
226
+ - test/support/core_ext/query_cache.rb
222
227
  - test/support/load_schema_sqlserver.rb
223
228
  - test/support/minitest_sqlserver.rb
224
229
  - test/support/paths_sqlserver.rb
@@ -251,9 +256,11 @@ summary: ActiveRecord JDBC SQL Server Adapter.
251
256
  test_files:
252
257
  - test/appveyor/dbsetup.ps1
253
258
  - test/appveyor/dbsetup.sql
259
+ - test/bin/install-freetds.sh
254
260
  - test/bin/setup.sh
255
261
  - test/bin/wait-for.sh
256
262
  - test/cases/adapter_test_sqlserver.rb
263
+ - test/cases/change_column_null_test_sqlserver.rb
257
264
  - test/cases/coerced_tests.rb
258
265
  - test/cases/column_test_sqlserver.rb
259
266
  - test/cases/connection_test_sqlserver.rb
@@ -279,6 +286,7 @@ test_files:
279
286
  - test/config.yml
280
287
  - test/debug.rb
281
288
  - test/fixtures/1px.gif
289
+ - test/migrations/create_clients_and_change_column_null.rb
282
290
  - test/migrations/transaction_table/1_table_will_never_be_created.rb
283
291
  - test/models/sqlserver/booking.rb
284
292
  - test/models/sqlserver/customers_view.rb
@@ -310,6 +318,7 @@ test_files:
310
318
  - test/schema/sqlserver_specific_schema.rb
311
319
  - test/support/coerceable_test_sqlserver.rb
312
320
  - test/support/connection_reflection.rb
321
+ - test/support/core_ext/query_cache.rb
313
322
  - test/support/load_schema_sqlserver.rb
314
323
  - test/support/minitest_sqlserver.rb
315
324
  - test/support/paths_sqlserver.rb
data/BACKERS.md DELETED
@@ -1,32 +0,0 @@
1
- # Backers
2
-
3
- You can join in supporting TinyTDS and the Rails SQL Server Adapter development by [pledging on Patreon](https://www.patreon.com/metaskills)! Backers in the same pledge level appear in the order of pledge date.
4
-
5
- ### $2000
6
-
7
- [It could be you!](https://www.patreon.com/bePatron?c=765225&rid=1611218)
8
-
9
-
10
- ### $500
11
-
12
- [It could be you!](https://www.patreon.com/bePatron?c=765225&rid=1611209)
13
-
14
-
15
- ### $250
16
-
17
- [It could be you!](https://www.patreon.com/bePatron?c=765225&rid=1611199)
18
-
19
-
20
- ### $100
21
-
22
- [It could be you!](https://www.patreon.com/bePatron?c=765225&rid=1611196)
23
-
24
-
25
- ### $50+
26
-
27
- [It could be you!](https://www.patreon.com/bePatron?c=765225&rid=1611186)
28
-
29
-
30
- ### $10+
31
-
32
- [It could be you!](https://www.patreon.com/bePatron?c=765225&rid=1611149)