activerecord-sqlserver-adapter 5.1.5 → 5.1.6

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2a40800fd3d59fb80d22946187334124093a6060
4
- data.tar.gz: af15e951258df52f8a44807d7e891d2da354d8f0
3
+ metadata.gz: ed52e9558d488ea412397afde7def592ba77bc02
4
+ data.tar.gz: 74fa1e05812b1dceb9adc7c70b54340dcd8592f1
5
5
  SHA512:
6
- metadata.gz: f3cd2dd2f39983e7c4b4267666e6960f8f93bf493bab25711e6cbc0b7ab3b41fe134ffb944c6e973b2e19c151a4551ffe669aa66135d708eaf738a73c42abc6b
7
- data.tar.gz: bf31bc039ef3250071b784046b5cb6619797692553015f9b96da51b3bb2b08f03b6f676a7634326ba28b79e98c9aa105a3325e39008064adb79afd09f7ca08da
6
+ metadata.gz: 260d513189436bcc2d1a1f109e737598f6e466872cb9e7a7d3c183f8c1088877402bbd4b8dc3b7c506e1522759ce02c7ce538d0d9d42b6436d393fe5c2e625e7
7
+ data.tar.gz: f95f71dc632eda2c413d1d1224664ce7d48748bdf3ff541f7cee6034535645880b2ea52700db9fbcf4bf615be79ccab2c5a65f2e9883fe4d6d35736bee0785a8
@@ -1,3 +1,10 @@
1
+ ## v5.1.6
2
+
3
+ #### Added
4
+
5
+ * Use lock hint when joining table in query.
6
+
7
+
1
8
  ## v5.1.5
2
9
 
3
10
  #### Fixed
data/VERSION CHANGED
@@ -1 +1 @@
1
- 5.1.5
1
+ 5.1.6
@@ -95,17 +95,29 @@ module Arel
95
95
  collector = visit_Arel_Nodes_SelectStatement_SQLServer_Lock collector
96
96
  end
97
97
  if o.right.any?
98
- collector << " " if o.left
98
+ collector << SPACE if o.left
99
99
  collector = inject_join o.right, collector, ' '
100
100
  end
101
101
  collector
102
102
  end
103
103
 
104
+ def visit_Arel_Nodes_InnerJoin o, collector
105
+ collector << "INNER JOIN "
106
+ collector = visit o.left, collector
107
+ collector = visit_Arel_Nodes_SelectStatement_SQLServer_Lock collector, space: true
108
+ if o.right
109
+ collector << SPACE
110
+ visit(o.right, collector)
111
+ else
112
+ collector
113
+ end
114
+ end
115
+
104
116
  def visit_Arel_Nodes_OuterJoin o, collector
105
117
  collector << "LEFT OUTER JOIN "
106
118
  collector = visit o.left, collector
107
119
  collector = visit_Arel_Nodes_SelectStatement_SQLServer_Lock collector, space: true
108
- collector << " "
120
+ collector << SPACE
109
121
  visit o.right, collector
110
122
  end
111
123
 
@@ -52,6 +52,34 @@ class PessimisticLockingTestSQLServer < ActiveRecord::TestCase
52
52
  end
53
53
  end
54
54
 
55
+ describe 'joining tables' do
56
+
57
+ it 'joined tables use updlock by default' do
58
+ assert_sql %r|SELECT \[people\]\.\* FROM \[people\] WITH\(UPDLOCK\) INNER JOIN \[readers\] WITH\(UPDLOCK\)\s+ON \[readers\]\.\[person_id\] = \[people\]\.\[id\]| do
59
+ Person.lock(true).joins(:readers).load
60
+ end
61
+ end
62
+
63
+ it 'joined tables can use custom lock directive' do
64
+ assert_sql %r|SELECT \[people\]\.\* FROM \[people\] WITH\(NOLOCK\) INNER JOIN \[readers\] WITH\(NOLOCK\)\s+ON \[readers\]\.\[person_id\] = \[people\]\.\[id\]| do
65
+ Person.lock('WITH(NOLOCK)').joins(:readers).load
66
+ end
67
+ end
68
+
69
+ it 'left joined tables use updlock by default' do
70
+ assert_sql %r|SELECT \[people\]\.\* FROM \[people\] WITH\(UPDLOCK\) LEFT OUTER JOIN \[readers\] WITH\(UPDLOCK\)\s+ON \[readers\]\.\[person_id\] = \[people\]\.\[id\]| do
71
+ Person.lock(true).left_joins(:readers).load
72
+ end
73
+ end
74
+
75
+ it 'left joined tables can use custom lock directive' do
76
+ assert_sql %r|SELECT \[people\]\.\* FROM \[people\] WITH\(NOLOCK\) LEFT OUTER JOIN \[readers\] WITH\(NOLOCK\)\s+ON \[readers\]\.\[person_id\] = \[people\]\.\[id\]| do
77
+ Person.lock('WITH(NOLOCK)').left_joins(:readers).load
78
+ end
79
+ end
80
+
81
+ end
82
+
55
83
  end
56
84
 
57
85
  describe 'For paginated finds' do
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.1.5
4
+ version: 5.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ken Collins
@@ -14,7 +14,7 @@ authors:
14
14
  autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
- date: 2017-12-29 00:00:00.000000000 Z
17
+ date: 2018-01-23 00:00:00.000000000 Z
18
18
  dependencies:
19
19
  - !ruby/object:Gem::Dependency
20
20
  name: activerecord