activerecord-sqlserver-adapter 3.2.18 → 4.0.0

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