activerecord-sqlserver-adapter 3.2.18 → 4.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 (30) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +4 -28
  3. data/VERSION +1 -1
  4. data/lib/active_record/connection_adapters/sqlserver/core_ext/active_record.rb +2 -7
  5. data/lib/active_record/connection_adapters/sqlserver/core_ext/explain.rb +6 -9
  6. data/lib/active_record/connection_adapters/sqlserver/core_ext/explain_subscriber.rb +3 -25
  7. data/lib/active_record/connection_adapters/sqlserver/core_ext/odbc.rb +4 -14
  8. data/lib/active_record/connection_adapters/sqlserver/core_ext/relation.rb +1 -3
  9. data/lib/active_record/connection_adapters/sqlserver/database_limits.rb +2 -4
  10. data/lib/active_record/connection_adapters/sqlserver/database_statements.rb +74 -80
  11. data/lib/active_record/connection_adapters/sqlserver/errors.rb +10 -14
  12. data/lib/active_record/connection_adapters/sqlserver/quoting.rb +24 -15
  13. data/lib/active_record/connection_adapters/sqlserver/schema_cache.rb +24 -19
  14. data/lib/active_record/connection_adapters/sqlserver/schema_creation.rb +28 -0
  15. data/lib/active_record/connection_adapters/sqlserver/schema_statements.rb +118 -77
  16. data/lib/active_record/connection_adapters/sqlserver/showplan.rb +10 -13
  17. data/lib/active_record/connection_adapters/sqlserver/showplan/printer_table.rb +8 -11
  18. data/lib/active_record/connection_adapters/sqlserver/showplan/printer_xml.rb +2 -5
  19. data/lib/active_record/connection_adapters/sqlserver/table_definition.rb +23 -0
  20. data/lib/active_record/connection_adapters/sqlserver/utils.rb +4 -10
  21. data/lib/active_record/connection_adapters/sqlserver_adapter.rb +121 -247
  22. data/lib/active_record/connection_adapters/sqlserver_column.rb +116 -0
  23. data/lib/active_record/sqlserver_base.rb +28 -0
  24. data/lib/active_record/sqlserver_test_case.rb +17 -0
  25. data/lib/arel/arel_sqlserver.rb +5 -0
  26. data/lib/arel/nodes_sqlserver.rb +14 -0
  27. data/lib/arel/select_manager_sqlserver.rb +62 -0
  28. data/lib/arel/visitors/sqlserver.rb +251 -188
  29. metadata +32 -10
  30. data/lib/active_record/connection_adapters/sqlserver/core_ext/database_statements.rb +0 -97
metadata CHANGED
@@ -1,10 +1,11 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord-sqlserver-adapter
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.18
4
+ version: 4.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ken Collins
8
+ - Anna Carey
8
9
  - Murray Steele
9
10
  - Shawn Balestracci
10
11
  - Joe Rafaniello
@@ -12,22 +13,36 @@ authors:
12
13
  autorequire:
13
14
  bindir: bin
14
15
  cert_chain: []
15
- date: 2017-06-19 00:00:00.000000000 Z
16
+ date: 2014-05-15 00:00:00.000000000 Z
16
17
  dependencies:
17
18
  - !ruby/object:Gem::Dependency
18
19
  name: activerecord
19
20
  requirement: !ruby/object:Gem::Requirement
20
21
  requirements:
21
- - - "~>"
22
+ - - ~>
22
23
  - !ruby/object:Gem::Version
23
- version: 3.2.0
24
+ version: 4.0.0
24
25
  type: :runtime
25
26
  prerelease: false
26
27
  version_requirements: !ruby/object:Gem::Requirement
27
28
  requirements:
28
- - - "~>"
29
+ - - ~>
29
30
  - !ruby/object:Gem::Version
30
- version: 3.2.0
31
+ version: 4.0.0
32
+ - !ruby/object:Gem::Dependency
33
+ name: arel
34
+ requirement: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - ~>
37
+ - !ruby/object:Gem::Version
38
+ version: 4.0.1
39
+ type: :runtime
40
+ prerelease: false
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: 4.0.1
31
46
  description: ActiveRecord SQL Server Adapter. For SQL Server 2005 And Higher.
32
47
  email: ken@metaskills.net
33
48
  executables: []
@@ -38,7 +53,6 @@ files:
38
53
  - MIT-LICENSE
39
54
  - VERSION
40
55
  - lib/active_record/connection_adapters/sqlserver/core_ext/active_record.rb
41
- - lib/active_record/connection_adapters/sqlserver/core_ext/database_statements.rb
42
56
  - lib/active_record/connection_adapters/sqlserver/core_ext/explain.rb
43
57
  - lib/active_record/connection_adapters/sqlserver/core_ext/explain_subscriber.rb
44
58
  - lib/active_record/connection_adapters/sqlserver/core_ext/odbc.rb
@@ -48,13 +62,21 @@ files:
48
62
  - lib/active_record/connection_adapters/sqlserver/errors.rb
49
63
  - lib/active_record/connection_adapters/sqlserver/quoting.rb
50
64
  - lib/active_record/connection_adapters/sqlserver/schema_cache.rb
65
+ - lib/active_record/connection_adapters/sqlserver/schema_creation.rb
51
66
  - lib/active_record/connection_adapters/sqlserver/schema_statements.rb
52
67
  - lib/active_record/connection_adapters/sqlserver/showplan.rb
53
68
  - lib/active_record/connection_adapters/sqlserver/showplan/printer_table.rb
54
69
  - lib/active_record/connection_adapters/sqlserver/showplan/printer_xml.rb
70
+ - lib/active_record/connection_adapters/sqlserver/table_definition.rb
55
71
  - lib/active_record/connection_adapters/sqlserver/utils.rb
56
72
  - lib/active_record/connection_adapters/sqlserver_adapter.rb
73
+ - lib/active_record/connection_adapters/sqlserver_column.rb
74
+ - lib/active_record/sqlserver_base.rb
75
+ - lib/active_record/sqlserver_test_case.rb
57
76
  - lib/activerecord-sqlserver-adapter.rb
77
+ - lib/arel/arel_sqlserver.rb
78
+ - lib/arel/nodes_sqlserver.rb
79
+ - lib/arel/select_manager_sqlserver.rb
58
80
  - lib/arel/visitors/sqlserver.rb
59
81
  homepage: http://github.com/rails-sqlserver/activerecord-sqlserver-adapter
60
82
  licenses: []
@@ -65,17 +87,17 @@ require_paths:
65
87
  - lib
66
88
  required_ruby_version: !ruby/object:Gem::Requirement
67
89
  requirements:
68
- - - ">="
90
+ - - '>='
69
91
  - !ruby/object:Gem::Version
70
92
  version: '0'
71
93
  required_rubygems_version: !ruby/object:Gem::Requirement
72
94
  requirements:
73
- - - ">="
95
+ - - '>='
74
96
  - !ruby/object:Gem::Version
75
97
  version: '0'
76
98
  requirements: []
77
99
  rubyforge_project: activerecord-sqlserver-adapter
78
- rubygems_version: 2.6.8
100
+ rubygems_version: 2.2.1
79
101
  signing_key:
80
102
  specification_version: 4
81
103
  summary: ActiveRecord SQL Server Adapter. For SQL Server 2005 And Higher.
@@ -1,97 +0,0 @@
1
- module ActiveRecord
2
- module ConnectionAdapters
3
- module Sqlserver
4
- module CoreExt
5
- module DatabaseStatements
6
-
7
- # This is a copy of the current (3.1.3) ActiveRecord's transaction method. We should propose
8
- # a patch to the default transaction method to make it more callback for adapters that want to
9
- # do deadlock retry logic. Because this is a copy, we really need to keep an eye out on this when
10
- # upgradding the adapter.
11
- def transaction_with_retry_deadlock_victim(options = {})
12
- options.assert_valid_keys :requires_new, :joinable
13
-
14
- last_transaction_joinable = defined?(@transaction_joinable) ? @transaction_joinable : nil
15
- if options.has_key?(:joinable)
16
- @transaction_joinable = options[:joinable]
17
- else
18
- @transaction_joinable = true
19
- end
20
- requires_new = options[:requires_new] || !last_transaction_joinable
21
-
22
- transaction_open = false
23
- @_current_transaction_records ||= []
24
-
25
- begin
26
- if block_given?
27
- if requires_new || open_transactions == 0
28
- if open_transactions == 0
29
- begin_db_transaction
30
- elsif requires_new
31
- create_savepoint
32
- end
33
- increment_open_transactions
34
- transaction_open = true
35
- @_current_transaction_records.push([])
36
- end
37
- yield
38
- end
39
- rescue Exception => database_transaction_rollback
40
- if transaction_open && !outside_transaction?
41
- transaction_open = false
42
- decrement_open_transactions
43
- # handle deadlock victim retries at the outermost transaction
44
- if open_transactions == 0
45
- if database_transaction_rollback.is_a?(::ActiveRecord::DeadlockVictim)
46
- # SQL Server has already rolled back, so rollback activerecord's history
47
- rollback_transaction_records(true)
48
- retry
49
- else
50
- rollback_db_transaction
51
- rollback_transaction_records(true)
52
- end
53
- else
54
- rollback_to_savepoint
55
- rollback_transaction_records(false)
56
- end
57
- end
58
- raise unless database_transaction_rollback.is_a?(::ActiveRecord::Rollback)
59
- end
60
- ensure
61
- @transaction_joinable = last_transaction_joinable
62
-
63
- if outside_transaction?
64
- @open_transactions = 0
65
- elsif transaction_open
66
- decrement_open_transactions
67
- begin
68
- if open_transactions == 0
69
- commit_db_transaction
70
- commit_transaction_records
71
- else
72
- release_savepoint
73
- save_point_records = @_current_transaction_records.pop
74
- unless save_point_records.blank?
75
- @_current_transaction_records.push([]) if @_current_transaction_records.empty?
76
- @_current_transaction_records.last.concat(save_point_records)
77
- end
78
- end
79
- rescue Exception => database_transaction_rollback
80
- if open_transactions == 0
81
- rollback_db_transaction
82
- rollback_transaction_records(true)
83
- else
84
- rollback_to_savepoint
85
- rollback_transaction_records(false)
86
- end
87
- raise
88
- end
89
- end
90
- end
91
-
92
- end
93
- end
94
- end
95
- end
96
- end
97
-